Last week Eclipse and Equinox 3.5.2 was released as part of the Galileo SR2 release. So far, so good! A big thanks goes out to David Williams for keeping all the projects on the release train in line and ready for SR2. Also, kudos to the webmasters for ensuring that the mirrors were ready for the release.
The work of the release engineer isn’t done after the release bits are available. I tag all the projects in the Eclipse and Equinox project with as R3_5_2, as well as our our map files and the builder projects. This ensures that if required, exactly the same build can be reproduced. In addition, it’s useful for developers to be able to compare against a tag for a previous release, or to branch from a tag.
Our source resides in the /cvsroot/eclipse and /cvsroot/rt repositories. The steps I take to do this are as follows:
1. Start eclipse with a clean workspace.
2. Check out the vM2010211-1343 versions of org.eclipse.releng and the builder projects. Every time we run a build, the org.eclipse.releng and builder projects are retagged with with the build id. M2010211-1343 is the build id of the final 3.5.2 build so I retag these projects as R3_5_2.
3. I remove the orbit map from the releng project in my workspace. There are prebuilt bundles fetched from the Orbit repository so we don’t need to tag them.
4. Replace :pserver:anonymous with :extssh:kmoir in the remaining map files in my workspace. I have commit rights on all the eclipse and equinox projects for this very purpose.
5. Change the connection timeout on the Team CVS client to one larger than the default. Otherwise, your CVS connection will timeout while tagging all the projects.
6. Select the map files in my workspace. Right click and select Team and the Tag Map File Projects option.
8. Once all the tagging has completed after several hours, I will check out all the projects from the map files and compare with R3_5_2 to ensure that there aren’t any files missing the tag.
9. Install the releng tools to use the “Tag map file projects” functionality. This allows me to tag the versions of projects defined in your map files as another version without checking them out. Very useful.
- Q.Why don’t you do this tagging as part of the build process?
- A.Eclipse and Equinox is a large project with a lot of source – over 300 bundles and more than 30 features. Tagging this as part of the the build each time takes a few hours and is often has CVS timeouts. We don’t need that, the build is slow enough as it is today 🙂 That being said, if you have a smaller project of just a few bundles, tagging the bundles with the build id could be useful.