Difference between revisions of "What to do for a release"

From Gramps
Jump to: navigation, search
m (Making the release available: uploads now go to frs.sourceforge.net)
(re-write of the entire page based on my notes from GRAMPS 3.0.3)
Line 1: Line 1:
 
'''What to do for a release'''
 
'''What to do for a release'''
  
These notes are based on a 2.2.x-based releaseSpecifically, these are the notes that resulted from the release of 2.2.9 in October 2007:
+
These notes are based on version 3.0.3, released in October 2008The steps assume a working <tt>gramps30</tt> source directory.  See [[Running a development version of Gramps]] if this is not the case.
  
==Translations==
+
==Translation update==
 
+
Run the following steps:
* announce the intent to release on the <tt>gramps-devel@lists.sourceforge.net</tt> mailing list; ask that no further changes be committed to svn
+
cd gramps30
* build what should be the final <tt>gramps.pot</tt> file:
+
svn update
 
  cd po
 
  cd po
 
  make gramps.pot
 
  make gramps.pot
* commit the new <tt>gramps.pot</tt> file to svn
+
svn diff gramps.pot
* ask for all [[Translating GRAMPS|translators]] on <tt>gramps-users@lists.sourceforge.net</tt> and <tt>gramps-devel@lists.sourceforge.net</tt> to update the <tt>.po</tt> files; plan to release about 1 to 2 weeks after this date
+
If there have been changes, you'll need to commit <tt>gramps.pot</tt> and ask translators to update their <tt>.po</tt> files before you can make a release.
* ask for translators to e-mail their <tt>.po</tt> files to you; not all translators have svn access; expect to spend a bit of time checking in <tt>.po</tt> files
+
  
==Preparing the tarball==
+
==Release name==
 +
Refer to (and update) the [[Previous releases|list of previous releases]] to select an appropriate name.
  
* note the names of [[previous releases]]
+
==Changelog and NEWS file==
* edit <tt>NEWS</tt> to add a few lines
+
Create the changelog files:
* create the ChangeLog files using [[How to use svn2cl|svn2cl]]:
+
 
  svn2cl --reparagraph --include-rev --authors=src/data/authors.xml
 
  svn2cl --reparagraph --include-rev --authors=src/data/authors.xml
 
  cd po
 
  cd po
 
  svn2cl --reparagraph --include-rev --authors=../src/data/authors.xml
 
  svn2cl --reparagraph --include-rev --authors=../src/data/authors.xml
 
  cd ..
 
  cd ..
* edit <tt>configure.in</tt>; change the following lines:
 
RELEASE=0.SVN$(svnversion -n .)
 
dnl RELEASE=0rc1
 
dnl RELEASE=1
 
:to instead say:
 
dnl RELEASE=0.SVN$(svnversion -n .)
 
RELEASE=0rc1
 
dnl RELEASE=1
 
* run the following command:
 
make distcheck
 
* note that you should now have the <tt>gramps-2.2.x.tar.gz</tt> file
 
* note the svn commit revision number
 
* create a tag in svn for the release candidate:
 
svn copy -r ### https://gramps.svn.sourceforge.net/svnroot/gramps/branches/gramps22 \
 
https://gramps.svn.sourceforge.net/svnroot/gramps/tags/gramps-2.2.x-rc1 \
 
-m "tag 2.2.x-rc1"
 
* another example of creating a tag in svn:
 
svn copy -r 10392 https://gramps.svn.sourceforge.net/svnroot/gramps/branches/gramps30 \
 
https://gramps.svn.sourceforge.net/svnroot/gramps/tags/gramps-3.0.0 \
 
-m "tag 3.0.0-rc1"
 
* for trunk, creating the tag is just slightly different since trunk is not within the "branch" directory; for example:
 
svn copy -r 9856 https://gramps.svn.sourceforge.net/svnroot/gramps/trunk \
 
https://gramps.svn.sourceforge.net/svnroot/gramps/tags/gramps-2.90.0-beta \
 
-m "tag 2.90.0-beta"
 
  
==Making the candidate build available==
+
Using the <tt>Changelog</tt> files generated with <tt>svn2cl</tt> in the step above, edit and update the <tt>NEWS</tt> file.
 +
Commit the NEWS file.  Note the svn commit revision number, which you'll need in the next step when you create the subversion tag:
 +
svn commit -m "update for 3.0.3 release"
 +
Committed revision 11159.
  
* login to cpanel at http://gramps-project.org/cpanel
+
==Subversion tag==
* rename the candidate from <tt>gramps-2.2.x.tar.gz</tt> to <tt>gramps-2.2.x-0rc1.tar.gz</tt> so everyone knows this is a release candidate
+
Create a tag for the release:
* upload the candidate <tt>.tar.gz</tt> file into the <tt>public_html/test/</tt> directory
+
svn copy -r 11159 https://gramps.svn.sourceforge.net/svnroot/gramps/branches/gramps30 https://gramps.svn.sourceforge.net/svnroot/gramps/tags/gramps-3.0.3 -m "tag 3.0.3"
* ask people to download and test from http://gramps-project.org/test/
+
  
==Making the release available==
+
==Working on the tag==
* edit configure.in; update the following lines:
+
Check out the new tag:
  dnl RELEASE=0.SVN$(svnversion -n .)
+
cd ..
  dnl RELEASE=0rc1
+
svn co https://gramps.svn.sourceforge.net/svnroot/gramps/tags/gramps-3.0.3
  RELEASE=1
+
cd gramps-3.0.3
* commit to svn; note the revision number
+
 
* create a tag in svn for the release:
+
Modify <tt>configure.in</tt> to indicate an official release:
  svn copy -r ### https://gramps.svn.sourceforge.net/svnroot/gramps/branches/gramps22 \
+
gedit configure.in
  https://gramps.svn.sourceforge.net/svnroot/gramps/tags/gramps-2.2.x \
+
There are two changes to make:
  -m "tag 2.2.x"
+
:1) Change the following line:
*  run the following command:  
+
  -RELEASE=0.SVN$(svnversion -n .)
 +
+dnl RELEASE=0.SVN$(svnversion -n .)
 +
:2) And change this line:
 +
  -dnl RELEASE=1
 +
  +RELEASE=1
 +
Save these two changes.
 +
svn commit -m "make official release" configure.in
 +
Now run the following and check the version number in the "about" dialog:
 +
  ./autogen.sh
 +
make
 +
python src/gramps.py
 +
 
 +
==Changelog and source tarball==
 +
Re-create (or copy from above) the 2 Changelog files. The Changelog files are required for the source tarball, but do not commit to subversion:
 +
svn2cl --reparagraph --include-rev --authors=src/data/authors.xml
 +
cd po
 +
svn2cl --reparagraph --include-rev --authors=../src/data/authors.xml
 +
  cd ..
 +
Create the official source tarball:
 
  make distcheck
 
  make distcheck
* upload the tarball using sftp to frs.sourceforge.net
 
* access the Sourceforge "admin" tab at http://sourceforge.net/projects/gramps/
 
* go to "File Releases"
 
* add a new release in the "Stable" package
 
* fill in name: a number such as 2.2.8 is the name for sourceforge site
 
* enter release notes -- usually this is the new section of the NEWS file
 
* add uploaded file(s) to the release by checking the appropriate check button and then clicking the "Add Files and/or Refresh View" button
 
* set architecture and the file type, click "Update/Refresh"
 
  
==Once the release is available==
+
Note you should now have the file <tt>gramps-3.0.3.tar.gz</tt>, approximately 5.5 MB in size.
* announce on <tt>gramps-announce@lists.sourceforge.net</tt>, <tt>gramps-devel@lists.sourceforge.net</tt> and <tt>gramps-users@lists.sourceforge.net</tt>
+
 
 +
==Making the source tarball available==
 +
Run the following steps:
 +
sftp s_charette@frs.sourceforge.net
 +
cd uploads
 +
put gramps-3.0.3.tar.gz
 +
* access the Sourceforge <tt>admin</tt> tab at http://sourceforge.net/projects/gramps/
 +
* go to <tt>File Releases</tt>
 +
* add a new release in the <tt>Stable</tt> package
 +
* fill in name, e.g., <tt>3.0.3</tt>
 +
* enter release notes (usually this is the text from <tt>NEWS</tt>)
 +
* add uploaded file(s) to the release by checking the appropriate check button and then clicking the "<tt>Add Files and/or Refresh View</tt>" button
 +
* set architecture and file type, click "<tt>Update/Refresh</tt>"
 +
 
 +
==Announcing the new release==
 +
* announce on gramps-announce@lists.sourceforge.net, gramps-devel@lists.sourceforge.net and gramps-users@lists.sourceforge.net
 
* update [[News]] section on this wiki
 
* update [[News]] section on this wiki
 
* update the list of [[previous releases]]
 
* update the list of [[previous releases]]
* update reference to the new version on the [[Installation]] page
+
* update reference to the new version on the [[installation|installation page]]
* change the topic on the IRC channel <tt>#gramps</tt>
+
* change the topic on the IRC channel #gramps
* login to cpanel at http://gramps-project.org/cpanel
+
* delete the candidate builds from the <tt>public_html/test/</tt> directory
+
 
* update the version number at [http://en.wikipedia.org/wiki/GRAMPS Wikipedia]
 
* update the version number at [http://en.wikipedia.org/wiki/GRAMPS Wikipedia]
  
==Update the version number==
+
==Post-release==
* edit <tt>configure.in</tt>; increment the version number
+
* in <tt>gramps30</tt>, bump the version number in <tt>configure.in</tt>
* make certain the <tt>RELEASE=1</tt> line is back to <tt>dnl RELEASE=1</tt>
+
* in <tt>trunk</tt>, merge forward the <tt>NEWS</tt> file
* commit to svn
+
  
 
==See also==
 
==See also==

Revision as of 21:36, 19 October 2008

What to do for a release

These notes are based on version 3.0.3, released in October 2008. The steps assume a working gramps30 source directory. See Running a development version of Gramps if this is not the case.

Translation update

Run the following steps:

cd gramps30
svn update
cd po
make gramps.pot
svn diff gramps.pot

If there have been changes, you'll need to commit gramps.pot and ask translators to update their .po files before you can make a release.

Release name

Refer to (and update) the list of previous releases to select an appropriate name.

Changelog and NEWS file

Create the changelog files:

svn2cl --reparagraph --include-rev --authors=src/data/authors.xml
cd po
svn2cl --reparagraph --include-rev --authors=../src/data/authors.xml
cd ..

Using the Changelog files generated with svn2cl in the step above, edit and update the NEWS file. Commit the NEWS file. Note the svn commit revision number, which you'll need in the next step when you create the subversion tag:

svn commit -m "update for 3.0.3 release"
Committed revision 11159.

Subversion tag

Create a tag for the release:

svn copy -r 11159 https://gramps.svn.sourceforge.net/svnroot/gramps/branches/gramps30 https://gramps.svn.sourceforge.net/svnroot/gramps/tags/gramps-3.0.3 -m "tag 3.0.3"

Working on the tag

Check out the new tag:

cd ..
svn co https://gramps.svn.sourceforge.net/svnroot/gramps/tags/gramps-3.0.3
cd gramps-3.0.3

Modify configure.in to indicate an official release:

gedit configure.in

There are two changes to make:

1) Change the following line:
-RELEASE=0.SVN$(svnversion -n .)
+dnl RELEASE=0.SVN$(svnversion -n .)
2) And change this line:
-dnl RELEASE=1
+RELEASE=1

Save these two changes.

svn commit -m "make official release" configure.in

Now run the following and check the version number in the "about" dialog:

./autogen.sh
make
python src/gramps.py

Changelog and source tarball

Re-create (or copy from above) the 2 Changelog files. The Changelog files are required for the source tarball, but do not commit to subversion:

svn2cl --reparagraph --include-rev --authors=src/data/authors.xml
cd po
svn2cl --reparagraph --include-rev --authors=../src/data/authors.xml
cd ..

Create the official source tarball:

make distcheck

Note you should now have the file gramps-3.0.3.tar.gz, approximately 5.5 MB in size.

Making the source tarball available

Run the following steps:

sftp s_charette@frs.sourceforge.net
cd uploads
put gramps-3.0.3.tar.gz
  • access the Sourceforge admin tab at http://sourceforge.net/projects/gramps/
  • go to File Releases
  • add a new release in the Stable package
  • fill in name, e.g., 3.0.3
  • enter release notes (usually this is the text from NEWS)
  • add uploaded file(s) to the release by checking the appropriate check button and then clicking the "Add Files and/or Refresh View" button
  • set architecture and file type, click "Update/Refresh"

Announcing the new release

  • announce on gramps-announce@lists.sourceforge.net, gramps-devel@lists.sourceforge.net and gramps-users@lists.sourceforge.net
  • update News section on this wiki
  • update the list of previous releases
  • update reference to the new version on the installation page
  • change the topic on the IRC channel #gramps
  • update the version number at Wikipedia

Post-release

  • in gramps30, bump the version number in configure.in
  • in trunk, merge forward the NEWS file

See also

External links