[oi-dev] IPS repo organisation and versioning

Alasdair Lumsden alasdairrr at gmail.com
Mon May 30 22:25:44 UTC 2011


Hi All,

After discussions online I wanted to flesh out proposals for the IPS repos and version numbers moving for the stable build and future dev builds.

Repo wise:

/release - for the stable releases
/release-staging - a short-term staging area for us to test updates due to be published to /release, so we don't screw up peoples machines en-masse with untested updates

/dev - for our public consumption development releases, because we all know end users want bleeding edge desktop stuff.
/dev-staging - a short-term place where /dev releases get tested, so that, again, we don't screw up peoples machines en-masse with untested stuff

/experimental - primarily for oi devs, where we put in-progress and known-broken updates for people collaborating on forthcoming features/releases. This would help for longer-term collaborative development of bigger changes.

This is an increase on the number of repos we have now, and I appreciate there's a maintenance cost, but when we launch stable we will definitely need to stage the updates. /dev-staging is just /dev-il renamed. /experimental is new and requested by a few people who want to work on things that will be unstable for a good few /dev releases.

Version wise:

The Oracle build numbers no longer make sense (eg 0.151 aka [snv|oi]_151), so with the forking we have an opportunity to switch to something saner. We've been talking about doing this for ages, but haven't really come up with something. I've had a proposal through from DeanoC which I've tweaked slightly, which I think makes sense for us to do in time for the stable release. I'd appreciate feedback.

For the first stable release, we could bump the version up to 1.0.0. The next stable release would be 2.0.0. Security and bug fixes would increment the last digit, so 1.0.X, eg 1.0.4.

/dev would increment the 1.X field, so you'd have eg 1.2, 1.3, etc. Respins of /dev (which will hopefully be less common) will bump the minor version, eg 1.3.1. When we are ready to release, this goes into /dev as 2.0.0, then /release when we're happy with it.

This lets people flip between /dev and /release on major versions, which I think is important. It also lets people at any point upgrade from /release to /dev without much hassle. It also means bug fixes and security updates into /release won't hold back people upgrading to /dev.

For the version numbers in /experimental, I'd suggest we use 1.X.X.X for this branch, so that the OI devs can switch between /dev and /experimental easily as the dev builds increase in number. I imagine /experimental at any one point will be based off /dev with a bunch of extra stuff added.

There is an alternative to the above, which is to ditch that component of the IPS version numbers, which has been mentioned. But I'm not sure how well that would work with flipping between repos and knowing what has been bug/security-fixed and what hasn't. The advantage of the version numbers above is that they're very clear.

Let me know if there are any reasons not to go with the above or any better alternatives.

Cheers,

Alasdair





More information about the oi-dev mailing list