Releasing

From AbiWiki

(Difference between revisions)
Jump to: navigation, search
(Building a Windows Installer)
 
(24 intermediate revisions not shown)
Line 1: Line 1:
-
NOTE: 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.
+
== 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 ==
== 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 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.
+
* 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 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 a "make distcheck" completes successfully on the latest version of trunk
Line 27: Line 32:
   1. Select all projects, except the LibAbiWord and WindowsInstaller projects
   1. Select all projects, except the LibAbiWord and WindowsInstaller projects
   2. Right click on a project, and select Properties
   2. Right click on a project, and select Properties
-
   3. Under Configuration Properties -> C/C++ -> Preprocessor  
+
   3. Under Configuration Properties -> C/C++ -> Preprocessor
-
   [TODO: DESCRIBE THIS STEP]
+
   4. Select the Debug configuration
-
   4. In the WindowsInstaller project, bump the version number in abi_appdef.nsh
+
  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 ==
== Creating tarballs ==
Line 65: Line 75:
* Build the installer with Build -> Build Solution
* Build the installer with Build -> Build Solution
-
The installer will be created in the ./Setup/NSISv2/ folder of the abiword-msvc2008 module (or was it in ./Setup?).
+
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 ==
== Making the new release available ==
Line 71: Line 81:
=== Uploading tarballs ===
=== 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):
+
* 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):
 +
<pre>
cd /home/www/downloads/abiword
cd /home/www/downloads/abiword
mkdir x.y.z
mkdir x.y.z
Line 78: Line 89:
mkdir source
mkdir source
mkdir Windows
mkdir Windows
 +
</pre>
-
* Upload the tarballs and Windows binary to abisource.com (replacing x.y.z with the actual AbiWord version):
+
* 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):
 +
<pre>
scp abiword-x.y.z.tar.gz uwog@abisource.com:/home/www/downloads/abiword/x.y.z/source
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-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
scp abiword-setup-x.y.z.exe uwog@abisource.com:/home/www/downloads/abiword/x.y.z/Windows
 +
</pre>
-
* Create the SHA1SUM hashes (replacing x.y.z with the actual AbiWord version):
+
* Create the SHA1SUM hashes on abisource.com (replacing x.y.z with the actual AbiWord version):
 +
<pre>
cd /home/www/downloads/abiword/x.y.z/source
cd /home/www/downloads/abiword/x.y.z/source
sha1sum * > SHA1SUM
sha1sum * > SHA1SUM
cd /home/www/downloads/abiword/x.y.z/Windows
cd /home/www/downloads/abiword/x.y.z/Windows
sha1sum * > SHA1SUM
sha1sum * > SHA1SUM
 +
</pre>
 +
 +
* Update the symlink to the latest release on abisource.com (replacing x.y.z with the actual AbiWord version):
 +
 +
<pre>
 +
cd /home/www/downloads/abiword
 +
rm latest-dev
 +
ln -s x.y.z latest-dev
 +
</pre>
=== Updating the website & announcing the new release ===
=== Updating the website & announcing the new release ===
-
* Checkout the website repository. The svn root is at:
+
First, checkout the website repository. The svn root is at:
   svn+ssh://<username>@svn.abisource.com/svnweb/www.abisource.com/trunk
   svn+ssh://<username>@svn.abisource.com/svnweb/www.abisource.com/trunk
-
#vi ./download/index/phtml
+
==== Creating the changelog ====
-
vi ./download/development.phtml  
+
 
-
vi ./abiword_version.inc
+
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):
-
$abiword_dev_version = "2.9.0";
+
 
-
index.html
+
<pre>
 +
cd changelogs
 +
php /path/to/your/abiword-module/generate_changelog.php x.y.z > x.y.z.phtml
 +
svn add x.y.z.phtml
 +
</pre>
 +
 
 +
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):
 +
 
 +
<pre>
 +
svn commit x.y.z.phtml
 +
</pre>
 +
 
 +
==== 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:
-
[TODO: create and upload the changelog]
+
  http://abisource.com/download/development.phtml
-
[TODO: UPDATE SYMLINKS]
+
==== Inform the public! ====
-
* Send a mail to the abiword-dev and abiword-user mailing list announcing the new release. It's generally a good idea to copy the release notes into the mail.
+
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!

Current revision as of 10:42, 25 November 2012

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