Releasing

From AbiWiki

Jump to: navigation, search

Contents

Important notes

  • The instructions on this page are for the current development release (2.9.x). For a stable release these instructions are very similar, but still different. These notes should be updated to also accommodate the stable release in the future.
  • These instructions assume you are mostly on a Linux/Unix machine.
  • These instrictions do not explain how to include a MacOSX release, since the OSX port is not ready for release at this time.

Prerequisites before making a new release

  • Make sure you have discussed in advance the fact that you are going to make a release; at least the developer mailing list should be informed.
  • Make sure you have commit access to both the "svnroot" and "svnweb" SVN repositories
  • Make sure you can build AbiWord on both a Linux and a Windows system, or that you get hold of someone who can.
  • Make sure everyone has committed all the stuff that needs to go into the new release
  • Make sure a "make distcheck" completes successfully on the latest version of trunk
  • Make sure the MSVC release build works (and the debug build too ofcourse)
  • Make sure no-one commits changes while you prepare the release

Updating the version number

You need to bump the (micro) version number in a number of places, if it hasn't been done already:

  • In the abiword module, update the version number in the following files:
 configure.in
 src/wp/main/win/AbiWord.exe.x86.MANIFEST
 src/wp/main/win/AbiWord.exe.amd64.MANIFEST
  • In the abiword-docs module, update the version number in the following files:
 configure.ac
  • For the abiword-msvc2008 module, start MSVC, open the solution and perform the following steps:
 1. Select all projects, except the LibAbiWord and WindowsInstaller projects
 2. Right click on a project, and select Properties
 3. Under Configuration Properties -> C/C++ -> Preprocessor
 4. Select the Debug configuration
 5. Edit the Preprocessor Definitions variable: it contains a bunch of defines, including 3 version related variables: PACKAGE_VERSION, ABI_BUILD_VERSION and ABIWORD_SERIES. Update these version numbers. Note: usually do you not need to touch the ABIWORD_SERIES variable, as it does not contain the micro version number.
 6. Save the updated preprocessor definitions.
 7. Select the Release configuration, and repeat steps 5 and 6.
 8. Close the Configuration Properties window
 9. Deselect all projects, select the LibAbiWord project, and repeat steps 4, 5, 6, 7 and 8.
 10. In the WindowsInstaller project, bump the version number in abi_appdef.nsh

Creating tarballs

  • On a Linux system, tag the release and generate the abiword and abiword-docs tarballs with the script below, setting the RELEASE and SVNUSER variables to the proper values.

NOTE: running make dist for the abiword-docs requires that you have abiword installed on your system.

#!/bin/bash

RELEASE="2.9.2"
SVNUSER="uwog"

mkdir abiword-release-dir-$RELEASE
cd abiword-release-dir-$RELEASE

svn copy -m "Tag release $RELEASE" svn+ssh://$SVNUSER@svn.abisource.com/svnroot/abiword/trunk svn+ssh://$SVNUSER@svn.abisource.com/svnroot/abiword/tags/release-$RELEASE
svn copy -m "Tag release $RELEASE" svn+ssh://$SVNUSER@svn.abisource.com/svnroot/abiword-docs/trunk svn+ssh://$SVNUSER@svn.abisource.com/svnroot/abiword-docs/tags/release-$RELEASE
svn copy -m "Tag release $RELEASE" svn+ssh://$SVNUSER@svn.abisource.com/svnroot/abiword-msvc2008/trunk svn+ssh://$SVNUSER@svn.abisource.com/svnroot/abiword-msvc2008/tags/release-$RELEASE

svn export svn+ssh://$SVNUSER@svn.abisource.com/svnroot/abiword/tags/release-$RELEASE abiword-$RELEASE
svn export svn+ssh://$SVNUSER@svn.abisource.com/svnroot/abiword-docs/tags/release-$RELEASE abiword-docs-$RELEASE

cd abiword-$RELEASE
./autogen.sh && make distcheck

cd ../abiword-docs-$RELEASE
./autogen.sh && make dist

Building a Windows Installer

  • Checkout the tags you've just created for both the AbiWord and AbiWord-MSVC2008 modules
  • Open the MSVC solution, and set the active configuration to "Release Memory Optimized"
  • Build the installer with Build -> Build Solution

An installer called abiword-setup-x.y.z.exe will be created in the ./Setup/NSISv2/ folder of the abiword-msvc2008 module.

Making the new release available

Uploading tarballs

  • Create the directories on abisource.com to hold the tarballs and binaries, by ssh-ing into AbiSource and executing the following steps (replacing x.y.z with the actual AbiWord version):
cd /home/www/downloads/abiword
mkdir x.y.z
cd x.y.z
mkdir source
mkdir Windows
  • Upload the tarballs and Windows binary to abisource.com (replacing x.y.z with the actual AbiWord version and assuming the three files are located in the current directory):
scp abiword-x.y.z.tar.gz uwog@abisource.com:/home/www/downloads/abiword/x.y.z/source
scp abiword-docs-x.y.z.tar.gz uwog@abisource.com:/home/www/downloads/abiword/x.y.z/source
scp abiword-setup-x.y.z.exe uwog@abisource.com:/home/www/downloads/abiword/x.y.z/Windows
  • Create the SHA1SUM hashes on abisource.com (replacing x.y.z with the actual AbiWord version):
cd /home/www/downloads/abiword/x.y.z/source
sha1sum * > SHA1SUM
cd /home/www/downloads/abiword/x.y.z/Windows
sha1sum * > SHA1SUM
  • Update the symlink to the latest release on abisource.com (replacing x.y.z with the actual AbiWord version):
cd /home/www/downloads/abiword
rm latest-dev
ln -s x.y.z latest-dev

Updating the website & announcing the new release

First, checkout the website repository. The svn root is at:

 svn+ssh://<username>@svn.abisource.com/svnweb/www.abisource.com/trunk

Creating the changelog

A simple generate_changelog.php script exists in the root of the abiword module to help you generating the initial changelog. We assume you are in the www.abisource.com module. To generate a changelog, run (replacing x.y.z with the actual AbiWord version):

cd changelogs
php /path/to/your/abiword-module/generate_changelog.php x.y.z > x.y.z.phtml
svn add x.y.z.phtml

Now you can start cleaning up the changelog file x.y.z.phtml so it looks nice. Have a look at some of the previous changelogs how they looked to get some ideas. Commit the changelog when you are done (replacing x.y.z with the actual AbiWord version):

svn commit x.y.z.phtml

Creating the release notes

Next we need to create some release notes to communicate the highlights and specifics for this release.

  • Enter the ./release-note directory located under the root of the www.abisource.com module.
  • Copy the release notes of the previous release into a file called x.y.z.phtml (replacing x.y.z with the actual AbiWord version)
  • Update the version numbers located in the title and text of the x.y.z.phtml file
  • Update the highlights listed in the release notes. You can use the changelog that was generated in one of the previous steps to select 4 or 5 of the most important items to highlight. Make sure to pick the items that you think will be most beneficial to most (potential) AbiWord users.
  • Update the other parts of the text how you see fit. Maybe you want to add some shiny screenshots for example, or warn users of some risk.
  • Upload the release notes:
 svn add x.y.z.phtml
 svn commit x.y.z.phtml

Update the version number of the release on the website

  • In the root of the www.abisource.com web module, update the version in the $abiword_dev_version variable in the file abiword_version.inc
  • Commit the abiword_version.inc file

Verify the website

  • Check you can view the release notes and changelog on the frontpage of abisource.com
  • Check you can actually download all tarballs, the Windows installer and the SHA1SUMS on the download page, which is located at:
 http://abisource.com/download/development.phtml

Inform the public!

Send an e-mail to the abiword-dev and abiword-user mailing lists announcing the new release. It's generally a good idea to copy the release notes into the mail. And ofcourse visit some technology news sites and let them know a new AbiWord release is out!

Personal tools