...
Roller releases are made on an as needed basis. Here's an overview of the release cycle.
When a Roller committer PMC member would like to make a release at some point in the future, he/she simply proposes that release to the Roller dev mailing list. After gaining some consensus that a release is needed, a committer should then create a release proposal page on the Roller Wiki which specifies which new features will be in the release.
After some of the planned features are added, a committer may propose a milestone build. Milestone builds are not official releases, each is just a snapshot, so formal vote is not required, only lazy consensus. They may be tagged in SVN Git and are made available via informal mechanisms, e.g. a committers peoplehttps://dist.apache.org space/repos/dist/dev/roller. They are meant for testing only and not intended for production use, so there will be no migration scripts to help folks migrate data from milestone M1 to M2, etc.
Once a committer feels that the release is completely ready, he/she proposes to start making release candidates, also made available via https://dist.apache.org/repos/dist/dev/roller. A release candidate is a complete release, signed and ready to be shipped. Like milestone releases, release candidates are not official releases. They are meant for testing only and not intended for production use. After some feedback and testing has occurred and a release candidate appears to be good for final release, a vote is called. Once there are three +1 votes from PMC members the release can be made.
...
This section tells you where the right place is for your code and in general how the Roller repository is structured.
Roller
...
Master
The Roller trunk is the main development repository and will try to always represent the version of the code base currently being developed for the next release. Each new release will be made from the trunk and distributed as appropriate. It is expected that any code commited to the trunk will be in full working order _in time for the next scheduled release_
...
A custom branch can be created whenever a feature is in development that is not on a certain schedule. this allows the custom branch to worked at whatever pace is desired and when the code is ready it can be applied to whatever branch is most appropriate.
Tags
All tags in the subversion Git repository are meant to be read-only archives of versions of Roller that went final. If you are ever looking for the code to a specific version of Roller you should look here. In roller svn Git this is at tags/*.
Step-by-step How to Create a
...
Creating a new release from the trunk
coming soon.
Creating a patch release from an old version
coming soon.
An Example
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.
...
Release
pom.xml
app/pom.xml
assembly-release/pom.xml
assembly-release/sign-release.sh
it-selenium/pom.xml
it-selenium/src/test/resources/roller-jettyrun.properties
docs/roller-install-guide.odt
docs/roller-user-guide.odt
docs/roller-install-guide.odt
$ mvn install
$ cd assembly-release
$ mvn package
$ ./sign-release.sh
./dev/roller/roller-5.2/v5.2.0-rc-1
./release/roller-5.2/v5.2.0
7. Update the website to point to the new files
Update the website's download links to point to the new release.
...