...
Let's assume that Roller has just recently released version 2.0 and the code repository is as follows ...
Code Block |
---|
branches/roller_1.0 (the old 1.x branch currently representing roller 1.3)
branches/roller_1.1 (the old 1.x branch currently representing roller 1.3)
trunk (now representing roller 2.1 in progress)
|
Matt has some code he has done to implement Acegi security, but he isn't sure it's going to be ready for the 2.1 release so he gets a custom branch.
Code Block |
---|
branches/roller_acegi (acegi development work by Matt)
|
Dave and Allen finish up the 2.1 dev work and do a new release
Code Block |
---|
trunk (now represents 2.2 dev work)
|
Somebody finds a horrible bug in 1.1 (the last 1.x release) and decides it's worth taking the time to do a fix and release 1.1.1 from that branch.
Code Block |
---|
branches/roller_1.1 (now represents potential 1.1.1 release)
|
Matt feels comfortable that the Acegi stuff is ready, so the acegi branch is put into the current trunk so it'll go into the 2.2 release.
Code Block |
---|
trunk (represents 2.2 dev work, with Matt's acegi code)
branches/roller_acegi (removed, no longer necessary)
|
Anil has some cool tag related feature to work on, but it requires a db change so he will work from the 3.x branch. Meanwhile, Dave, Allen, and Matt finish up the 2.2 code and do the release.
Code Block |
---|
branches/roller_3.0 (anil doing tag work)
trunk (now represents 2.3 dev work)
|
Anil says his tag stuff will be ready within the month and the team agrees that now is a good time for a major release.
Code Block |
---|
branches/roller_2.2 (created from trunk after last 2.2 release, represents potential 2.2.1 release)
trunk (now represents 3.0 release, includes Anil's tag work)
branches/roller_4.0 (created for new major release work)
|
...
NOTE: these instructions are for the Roller 5.0 branch and with Roller 5.1 (yet to be released) these instructions will change.
1. Obtain and update the source code.
Check out the Apache Roller source code from the appropriate branch. Within the pom files, update the Roller version the new number you will be releasing. Update the version within the three sign*.sh files to that version as well.
2. Create release for Tomcat
The commands below will create the Roller for Tomcat release bundle in ZIP and Gzipped TAR formats and the ASCii signature files:
Code Block |
---|
./build-tomcat-release.sh
./sign-tomcat-release.sh
|
...
3. Create release for Java EE
The commands below will create the Roller for Java EE release bundle in ZIP and Gzipped TAR formats and the ASCii signature files:
Code Block |
---|
./build-javaee-release.sh
./sign-javaee-release.sh
|
After that, files will be in the roller/dist directory.
...
4. Upload files for review
Upload to your home directory on people.apache.org, for example for RC1 you might put them here:
Code Block |
---|
/home/<username>/public_html/rc1
|
...
5. Vote on release
Call for a release vote and once the release is approved, move to the next step.
...
6. Move release files into place
Login to people.apache.org and move the release files into the directory tree in the right place. For example, for a Roller 5.0.2 4 release files would go under the roller-5 directory.
Code Block |
---|
/www/www.apache.org/dist/roller/roller-5/v5.0.24/src /www/www.apache.org/dist/roller/roller-5/v5.0.24/docs /www/www.apache.org/dist/roller/roller-5/v5.0.24/bin |
Wait 24 hours for mirrors to update. Once that happens you should delete the old release files for previous versions of Roller. They are already archived elsewhere by the infrastructure team.
...
7. Update the website to point to the new files
Update the website files in SVN and update to publish.
...
8. Announce the release
Make the announcement on the mailing list and other places.