Packaging:Release

These are the steps to create a release of OpenLP.

Tag The Release
Make sure you have the latest version of the code:

user@linux:~/Projects/OpenLP/trunk$ bzr up

Then edit the  file and set the version in there:

user@linux:~/Projects/OpenLP/trunk$ echo "2.X.X" > openlp/.version

Then get the current revision from bzr and increase it one:

user@linux:~/Projects/OpenLP/trunk$ bzr revno 2512

Then edit the tests file to create the correct tag version. Current Revision + 1 user@linux:~/Project/OpenLP/trunk$ vim tests/utils/test_bzr_tags.py

The commit that change:

user@linux:~/Projects/OpenLP/trunk$ bzr commit -m "Release 2.X.X"

And then tag it:

user@linux:~/Projects/OpenLP/trunk$ bzr tag "2.X.X"

Create the Release Source Tarball
Export the code without any version control information:

user@linux:~/Projects/OpenLP/trunk$ bzr export -r "2.X.X" ../OpenLP-2.X.X

Create a tarball file:

user@linux:~/Projects/OpenLP/trunk$ cd .. user@linux:~/Projects/OpenLP$ tar -czvf OpenLP-2.X.X.tar.gz OpenLP-2.X.X

Upload the Release Source Tarball
Login to Sourceforge and create a new release directory.

Upload the zipped up file to Sourceforge:

user@linux:~/Projects/OpenLP$ scp OpenLP-2.X.X.tar.gz userid,openlp@frs.sourceforge.net:/home/frs/project/o/op/openlp/openlp/2.X.X/

Notify Packagers
Once you've created the source tarball, notify all the packagers that is available. Most of the packagers are on the openlp-packaging mailing list. The Windows and OS X packagers will upload their packages to the Project HQ server as well.

Create the PPA Build
Log into Jenkins and run the Build Ubuntu Package job.

Upload the Windows and OS X Packages
Upload the Windows setup file and the OS X disk image to Sourceforge:

user@linux:~$ scp OpenLP-1.X.X-setup.exe userid,openlp@frs.sourceforge.net:/home/frs/project/o/op/openlp/openlp/1.X.X/ user@linux:~$ scp OpenLP-1.X.X.dmg userid,openlp@frs.sourceforge.net:/home/frs/project/o/op/openlp/openlp/1.X.X/

Announce the Release
Once everything is packaged (usually on Saturday), it is time to update the website and formally announce the new release. This part is done on the Sunday of the release, usually after church.

Update the Download Page
On the web site, edit the download page and update the links to all point to the new release. Often this is easiest done by just editing the HTML itself.

Blog the Announcement
Most releases we have collaboratively worked on a release announcement. After the download page has been updated, the blog post is created and posted on the site. The Twitter account and the Facebook page will automatically pick up the blog post.

Spread the Good News
Last but not least, retweet the announcement on Twitter, share and like the announcement on Facebook, and do whatever else you can and want to announce the release.