Retirement of WIP (sgug-rse-wip.git in github)
The Why
Previously we've used a second github repository as a "free for all" in terms of what may be checked in/versioned. This has served us nicely while we got started - and we've had lots of changes and new things become available via this mechanism.
This has presented new challenges about our workflow that the sgug team have discussed:
- New packages like the libX11 client libraries come online in sgu-rse-wip
- This breaks quite a few of the built packages in sgug-rse like emacs, vim, ddd and a few others
- So the changes to the wip packages need to be in sync with and versioned against changes to packages in the main repository
We think we have a solution using a single repo that doesn't destroy our agility.
The Change
- We'll have the existing "master" branch in sgug-rse like today, changes only via pull request and approval within the team
- We'll have a branch related to the "up and coming" release - currently that would be "release0.0.5beta" - and this branch too requires a pull request and approval within the team
- There will be a "wip" branch equivalent to the existing sgug-rse-wip repository - if you are a member of sgug team you can push directly - pull requests from outside (the explicit team) are more than welcome and have equal standing
- wip is "HEAD" / "DEVELOPMENT"
- releaseX.X.X is the "RELEASE CANDIDATE" / "RELEASED VERSION"
- master is "MOST RECENT STABLE"
In terms of what this changes - this will allow us to be able to (in wip) stage changes that affect core sgug-rse packages against the dependencies either on or from things that are "work in progress"
The Process
- Everyone commits and pushes ongoing work to sgug-rse-wip
- We freeze the sgug-rse-wip repository
- The new branch "release0.0.5beta" contains the changes exclusively for the 0.0.5beta release, and can have updates/big fixes added to it until we are happy
- The frozen package ".spec" file from sgug-rse-wip are copied over into a new branch "wip" (clone from release0.0.5beta) of the main sgug-rse repository
So WIP continues as-is - but as a branch inside the main sgug-rse repository.
We have a branch for the ongoing next release - until the time where we feel it's ready for a general release.
At "release" time, the specific release branch is merge to master, and the next release branch is created.
It's a bit of organisational "faff" - but we avoid this issue of trying to check multiple repositories for changes.
Feedback welcomed - unless there are major blocking objections, I'd like to get this migration/swapover done at next opportunity, and get 0.0.5beta out the door (then our maintainers feel the pain of updating sooner rather than later).
Note For Clarity: This doesn't mean that "0.0.5release" will include new libX11 client libraries or the updated and versioned python bits, these remain "works in progress" for now, but there are already significant changes in 0.0.5 (the release notes will detail those updates) that it shouldn't be delayed any further.