opennms-mirror / release-process.txt

Release Process

Once the branch to be released is "stable" (i.e. no commits going on) you are ready to tag:

1) cvs up (no changes)

2) cvs tag OPENNMS_{release}_RELEASE

For example: cvs tag OPENNMS_1_2_1-1_RELEASE. I usually put in the "-1" just in case we need to make a small change and re-release.

3) Once tagged, I go to the build machine, barbrady, and in /opt/cvs I check out a fresh copy of the release:

cvs -d:ext:tarus@cvs.sf.net:/cvsroot/opennms -z3 co -d opennms-1.2.1-1 -r OPENNMS_1_2_1-1_RELEASE opennms

4) I then go into my fedora-1 chroot and I build the srpm:

chroot /opt/distros/fedora1
cd /opt/cvs/opennms-1.2.1-1/
rm -rf work/
export JAVA_HOME=/usr/java/j2sdk1.4.2_04/
./build.sh -Drpm.platform=linux-i386-fedora-1 -Dproduct.release=1 -Dproduct.snapshot=false srpm

5) Then cd to the releases directory:

cd work/releases

now upload the source to ftp://upload.sf.net/incoming.

6) As I settle down for a long evening of building and uploading, I get a few things ready. I open a text editor and paste in a text version of the release notes and a text version of the CHANGELOG.

7) I then log into Sourceforge and go to Admin -> File Releases. I choose the opennms-source package and add a new release. I've started labeling them "stable" or "unstable" plus the release.

8) Once I add, say, the "stable-1.2.1" release, the Edit Release page shows up. I paste in the text versions of the release notes (I used to put in HTML versions but SF doesn't like that) and the CHANGELOG, check Preserve my pre-formatted text, and then "Submit/Refresh".

9) Once the documentation has been added to the package, I click on the opennms source file (that I uploaded in step 5) and click on "Add Files and/or Refresh View".

10) Then you have to "Edit Files In This Release", choosing, one at a time, the processor and file type for each file uploaded.

11) Finally, if anyone wants e-mail notifications, I send them.

12) Now it's time to build the other packages. Exit out of the chroot and go into the first one on the list (usually Centos), and repeat steps 4-11, building just the rpm this time.

I run tests on each build, so it takes about 15 minutes each load.

13) Upload the latest release notes and install guide to the DocManager part of Sourceforge.
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.