Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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.