Most of this content was authored by David Williams for Callisto, and it still applies today for Ganymede, so...
The following is a "blow-by-blow" schedule of the final days leading up to the Ganymede simultaneous release. This is one of the responsibilities of our heterogeneous projects working together towards having a simultaneous release.
Failure to follow these procedures and schedules can have dire consequences, which we all have seen before at one time or another -- if not done in the right way, in the right order, at the right time, mirrors get busy replicating one project, but other projects have difficulty accessing eclipse.org to produce their final builds much less upload them, so a "chain reaction" begins and everyone is much delayed simply due to network and infrastructure bottlenecks -- or, I should say, from someone not following these procedures and schedules! :)
Plus, this schedule and procedure should ensure the mirror system get's fully populated before demand for downloads gets in full swing -- meaning much fewer delays, 403's, and failed downloads for end-users -- which all Eclipse users will appreciate.
From Now to 6/24
Clean up "old" builds and releases
Delete or archive "old" builds or releases that are mirrored. This is important to reduce space used on the mirror servers. Not only is this a "nice" thing to always do, it is essential for this Ganymede release, as it can help avoid those mirror servers from filling up once they get the final release and they themselves having problems mirroring Ganymede, once it is released. And, of course, if they have problems, we all have problems! Everyone should have space at, if not already using, archive.eclipse.org, and if you are not sure how to "archive" a release there, please ask.
Prepare releases offline
That is, prepare your final releases zipped files, update jars, etc., but do not put zipped up builds, update jars, etc., in their final (mirrored) release areas of eclipse.org until instructed to do so. This may require some projects to "turn off" some final step of their build process, depending on how they do it, and how and when its copied to eclipse.org. If you have a special circumstance that does not fit in the following procedure and schedule, please send a note to discuss with our Eclipse Webmaster (Denis Roy) at email@example.com and work out a plan to accommodate your special situation.
Note: this may mean some projects need to "adjust" their final build procedures, so they do not rely on some other projects official, final, mirrored release, but this should not be required as any "pre-req'd" projects should just be making minor changes to doc, or highly local and internal bug fixes (nothing that would be changing constants or API's or even non API signatures!). If you do need some official, final release of a pre-req project, please work with them to find out where to get it from (other than a mirrored location).
All times below are in Eastern Daylight Time (which is UTC-4).
by 17:00 EDT, at the latest
- projects have prepared zips downloads and all update site files (again, offline -- just have them ready to go)
- update the Ganymede Signoffs page using status code Done
- to assist your downstream adopters, make sure you list the name/URL of your final release, even if it's not yet available under that name; this will allow people to do their renames in advance
- projects ensure update jars are in their "temporary" locations, as listed in the *.sc files
- Ganymede staging update site will be created to verify all are accurate, and ready to be copied to releases area
- Bjorn, please send e-mail to cross-project informing that the final "staging" is up, so EPP can build their packages
- EPP will start building packages as soon as Ganymede staging update site is ready (releases/ganymede/staging and eclipse/updates/3.4milestones will be the input for the packages)
- last opportunity for anyone to declare "emergency, stop ship" (and it had really better be an emergency! A simple build machine crash does not qualify ... better have backups! ... and, maybe, a lab fire might qualify if it is wide spread :)
- Denis disables replication
- gives the OK to upload on cross-project mailing list
- advises all committers that download.eclipse.org is frozen
9:05 to 14:00
- teams push builds in, projects to advise on cross-project list when upload is complete
- upload/copy/rsync zip files.
- update their own 'released' update sites.
- update the Ganymede Signoffs page, changing status codes to Promoted.
- Ganymede "staging" copied to "released"
- rename EPP packages and copy to "released" <== this is super important, as the new Main Downloads Page and the Packaging Site makes the EPP packages the default!
- [Nathan] Disable the Cron job from updating the Packaging Site Till 9AM Thursday
- (optional) All projects e-mail firstname.lastname@example.org to confirm build/update copy is done (Eclipse Project is largest, 4 hours is typical, so exact time may vary)
- NEW for Ganymede: we push the 'Friends' angle, because Eclipse Friends can download now while others wait for mirror sync
Denis sends mail to eclipse-mirrors requesting a manual sync, ask for torrents from ibiblio
- wait overnight, see if mirrors get the files
- projects should prepare final web pages, announcements, press releases, etc.
- Denis to do a mirror-site sanity check. How many? Are they all done? Assuming all is well,
- (re)enable cluster sync
- All confirmed "go" with note to cross-project, committers lists
- Ganymede Signoffs updated to Released
- Put web pages live, make announcements once Denis rolls over from his desk and stares at me.
watch eclipse.org servers glow red, especially build server
Ottawa committers are invited to Marshy's Bar and Grill - 117 Centrepointe Drive location for celebrations with beer and munchies. If you're coming, please let me know - webmaster at eclipse org - so we can plan how much beer and food to get.