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

From Gramps
Jump to: navigation, search
m (Preparing the tarball: tagging trunk)
(External links)
(120 intermediate revisions by 8 users not shown)
Line 1: Line 1:
'''What to do for a release'''
+
'''What to do for a release '''
 +
=Updated guidelines for Git =
  
These notes are based on a 2.2.x-based release.  Specifically, these are the notes that resulted from the release of 2.2.9 in October 2007:
+
==Translation update==
 +
Run the following steps:
 +
git checkout gramps{{Stable_branch}}
 +
git pull
 +
cd po
 +
./genpot.sh # or python update_po.py -p  see [[Translation_environment4|New environment]] and [[Talk:Translation_environment4|differences between tools]]
 +
git diff gramps.pot
 +
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.
 +
 
 +
==Release name==
 +
Refer to (and update) the [[Previous releases of Gramps|list of previous releases]] to select an appropriate name.
 +
 
 +
==Changelog and NEWS file==
 +
Create the changelog files:
 +
git log gramps-{{version}}.. --pretty --numstat --summary --no-merges | git2cl > ChangeLog
 +
git log gramps-{{version}}.. --pretty --numstat --summary --no-merges -- po/*.po | git2cl > po/ChangeLog
 +
 
 +
Using the <tt>Changelog</tt> files generated with <tt>git2cl</tt> in the step above, edit and update the <tt>NEWS</tt> file.
 +
Commit the NEWS file:
 +
git commit -am "update for {{version}} release"
 +
 
 +
==Working on VERSION==
 +
 
 +
* 4.0.x
 +
 
 +
Check <tt>gramps/version.py</tt> to indicate an official release:
 +
  gedit gramps/version.py
 +
 
 +
and if need, update the version for the release:
 +
VERSION_TUPLE = (4, 0, 2)
 +
 
 +
Modify <tt>gramps/gen/const.py</tt> to indicate an official release:
 +
- VERSION += get_git_revision(ROOT_DIR)
 +
+ VERSION += "-1"
 +
 
 +
Save change:
 +
git commit -am "make official release"
 +
 
 +
The version number should be the same on "about" dialog:
 +
python Gramps.py
 +
or
 +
python Gramps.py -v
 +
 
 +
* 3.4.x
 +
 
 +
Modify <tt>configure.in</tt> to indicate an official release:
 +
gedit configure.in
 +
There are two changes to make:
 +
:1) Change the following line:
 +
-RELEASE=0.SVN$(git log -1 --format=%h .)
 +
+dnl RELEASE=0.SVN$(git log -1 --format=%h .)
 +
:2) And change this line:
 +
-dnl RELEASE=1
 +
+RELEASE=1
 +
Save these two changes.
 +
git commit -am "make official release" configure.in
 +
Now run the following and check the version number in the "about" dialog:
 +
./autogen.sh
 +
python src/gramps.py
 +
 
 +
==Create a tag==
 +
Create the release tag:
 +
git tag -am "tag {{version}}" gramps-{{version}}
 +
 
 +
==Push to repository==
 +
Push the changes to the repository:
 +
git push origin gramps-{{version}}
 +
 
 +
==Work on tag ==
 +
 
 +
===Move to the new release number on branch ===
 +
 
 +
* 4.0.x
 +
 
 +
Bump the version number in <tt>gramps/version.py</tt>
 +
 
 +
Update the version for the release:
 +
VERSION_TUPLE = (4, 0, ...)
 +
 
 +
Revert change on <tt>gramps/gen/const.py</tt> to indicate git revision:
 +
- VERSION += "-1"
 +
+ VERSION += get_git_revision(ROOT_DIR)
 +
 
 +
Save change:
 +
git commit -am "bump to <new version number>"
 +
git push
  
==Translations==
+
* 3.4.x
  
* 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
+
Bump the version number in <tt>configure.in</tt> and <tt>src/const.py.in</tt>
* build what should be the final <tt>gramps.pot</tt> file:
+
 
  cd po
+
Save change:
  make gramps.pot
+
  git commit -am "bump to <new version number>"
* commit the new <tt>gramps.pot</tt> file to svn
+
  git push
* 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
+
 
* 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
+
===Release from tag===
 +
 
 +
git checkout <tag> -b <new_branch_name>
 +
 
 +
* Gramps-4.0.x
 +
 
 +
Modify <tt>MANIFEST.in</tt>
 +
+ include ChangeLog
 +
+ include po/ChangeLog
  
==Preparing the tarball==
+
Create the official source tarball:
  
* note the names of [[previous releases]]
+
  python setup.py sdist
* edit <tt>ChangeLog</tt>
 
* edit <tt>NEWS</tt> to add a few lines
 
* 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"
 
* 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==
+
* Gramps-3.4
  
* login to cpanel at http://gramps-project.org/cpanel
+
Build, check and create the official source tarball:
* 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
 
* upload the candidate <tt>.tar.gz</tt> file into the <tt>public_html/test/</tt> directory
 
* ask people to download and test from http://gramps-project.org/test/
 
  
==Making the release available==
+
  ./autogen.sh
* edit configure.in; update the following lines:
 
dnl RELEASE=0.SVN$(svnversion -n .)
 
dnl RELEASE=0rc1
 
RELEASE=1
 
* commit to svn; note the revision number
 
* create a tag in svn for the release:
 
svn copy -r ### https://gramps.svn.sourceforge.net/svnroot/gramps/branches/gramps22 \
 
  https://gramps.svn.sourceforge.net/svnroot/gramps/tags/gramps-2.2.x \
 
-m "tag 2.2.x"
 
*  run the following command:
 
 
  make distcheck
 
  make distcheck
* upload the tarball by anonymous ftp to ftp://upload.sourceforge.net/incoming/
 
* 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==
+
==Making the source tarball available==
* announce on <tt>[email protected]</tt>, <tt>[email protected]</tt> and <tt>[email protected]</tt>
+
* access the "Sourceforge Project Admin->File Manager" page at https://sourceforge.net/projects/gramps/
 +
or via your ''<dev>'' account:
 +
$ sftp <dev>@frs.sourceforge.net
 +
Connecting to frs.sourceforge.net...
 +
Password:
 +
sftp> cd /home/frs/project/gramps
 +
* create a new folder in the "Stable" hierarchy
 +
* upload the <tt>gramps-{{version}}.tar.gz</tt> file to the new folder
 +
 
 +
==Announcing the new release==
 +
 
* update [[News]] section on this wiki
 
* update [[News]] section on this wiki
* update the list of [[previous releases]]
+
* update the list of [[Previous releases of Gramps|previous releases]]
* update reference to the new version on the [[Installation]] page
+
* update reference to the new version on the [[Template:Version|wiki template]]
* change the topic on the IRC channel <tt>#gramps</tt>
+
* update [[HeadlineNews]]
* login to cpanel at http://gramps-project.org/cpanel
+
* change the topic on the IRC channel #gramps
* delete the candidate builds from the <tt>public_html/test/</tt> directory
+
<pre> /TOPIC #gramps Welcome to Gramps! The latest versions are 4.1.0 and the legacy 3.4.8 || http://www.gramps-project.org/ || Please state OS and Gramps version when asking a question. Understand that replies can take up to 2 days depending on whose watching the channel. Please consider asking on the gramps-users mailing list. </pre>
* 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
+
* merge forward the <tt>NEWS</tt> file
* make certain the <tt>RELEASE=1</tt> line is back to <tt>dnl RELEASE=1</tt>
 
* commit to svn
 
  
==See also==
+
=See also=
* [[Brief introduction to SVN]]
+
* [[Git|Brief introduction to Git]]
 
* [[Running a development version of Gramps]]
 
* [[Running a development version of Gramps]]
 
* [[:Category:Developers/Packaging]]
 
* [[:Category:Developers/Packaging]]
  
==External links==
+
=External links=
* http://gramps.svn.sourceforge.net/viewvc/gramps/
+
* https://github.com/gramps-project
 
* http://gramps-project.org/cpanel
 
* http://gramps-project.org/cpanel
 +
* http://svn.code.sf.net/p/gramps/code/
 
* http://sourceforge.net/projects/gramps/
 
* http://sourceforge.net/projects/gramps/
  
 
[[Category:Developers/General]]
 
[[Category:Developers/General]]

Revision as of 05:24, 6 August 2015

What to do for a release

Updated guidelines for Git

Translation update

Run the following steps:

git checkout gramps52
git pull
cd po
./genpot.sh # or python update_po.py -p  see New environment and differences between tools
git 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:

git log gramps-5.2.1.. --pretty --numstat --summary --no-merges | git2cl > ChangeLog
git log gramps-5.2.1.. --pretty --numstat --summary --no-merges -- po/*.po | git2cl > po/ChangeLog

Using the Changelog files generated with git2cl in the step above, edit and update the NEWS file. Commit the NEWS file:

git commit -am "update for 5.2.1 release"

Working on VERSION

  • 4.0.x

Check gramps/version.py to indicate an official release:

gedit gramps/version.py 

and if need, update the version for the release:

VERSION_TUPLE = (4, 0, 2)

Modify gramps/gen/const.py to indicate an official release:

- VERSION += get_git_revision(ROOT_DIR)
+ VERSION += "-1"

Save change:

git commit -am "make official release"

The version number should be the same on "about" dialog:

python Gramps.py

or

python Gramps.py -v
  • 3.4.x

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$(git log -1 --format=%h .)
+dnl RELEASE=0.SVN$(git log -1 --format=%h .)
2) And change this line:
-dnl RELEASE=1
+RELEASE=1

Save these two changes.

git commit -am "make official release" configure.in

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

./autogen.sh
python src/gramps.py

Create a tag

Create the release tag:

git tag -am "tag 5.2.1" gramps-5.2.1

Push to repository

Push the changes to the repository:

git push origin gramps-5.2.1

Work on tag

Move to the new release number on branch

  • 4.0.x

Bump the version number in gramps/version.py

Update the version for the release:

VERSION_TUPLE = (4, 0, ...)

Revert change on gramps/gen/const.py to indicate git revision:

- VERSION += "-1"
+ VERSION += get_git_revision(ROOT_DIR)

Save change:

git commit -am "bump to <new version number>"
git push
  • 3.4.x

Bump the version number in configure.in and src/const.py.in

Save change:

git commit -am "bump to <new version number>"
git push

Release from tag

git checkout <tag> -b <new_branch_name>
  • Gramps-4.0.x

Modify MANIFEST.in

+ include ChangeLog
+ include po/ChangeLog

Create the official source tarball:

python setup.py sdist
  • Gramps-3.4

Build, check and create the official source tarball:

./autogen.sh
make distcheck

Making the source tarball available

or via your <dev> account:

$ sftp <dev>@frs.sourceforge.net
Connecting to frs.sourceforge.net...
Password:
sftp> cd /home/frs/project/gramps
  • create a new folder in the "Stable" hierarchy
  • upload the gramps-5.2.1.tar.gz file to the new folder

Announcing the new release

 /TOPIC #gramps Welcome to Gramps! The latest versions are 4.1.0 and the legacy 3.4.8 || http://www.gramps-project.org/ || Please state OS and Gramps version when asking a question. Understand that replies can take up to 2 days depending on whose watching the channel. Please consider asking on the gramps-users mailing list. 

Post-release

  • merge forward the NEWS file

See also

External links