Releasing
From AbiWiki
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!