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

From Gramps
Jump to: navigation, search
m (Changelog and NEWS file)
m (Gramps 4.2.x)
 
(110 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 
'''What to do for a release '''
 
'''What to do for a release '''
= Guidelines for version 4.0 =
+
=Updated guidelines for Git =
 
+
These notes are based on version 4.0.0alpha1, released in December 2012.  The steps assume a working <tt>gramps40</tt> source directory.
+
  
 
==Translation update==
 
==Translation update==
 
Run the following steps:
 
Run the following steps:
  cd gramps40
+
  git checkout gramps{{Stable_branch}}
  svn update
+
  git pull
 
  cd po
 
  cd po
python update_po.py -p # or intltool-update -p , .genpot.sh see [[Translation_environment4|New environment]]
+
 
  svn diff gramps.pot
+
===Gramps 4.x===
 +
For Gramps 4.x use (See [[Translation_environment4|New environment]] and [[Talk:Translation_environment4|differences between tools]]. See [https://github.com/gramps-project/gramps/blob/master/po/update_po.py po/update_po.py] to generate a new template/catalog (gramps.pot).)
 +
python update_po.py -p 
 +
  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.
 
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==
 
==Release name==
Refer to (and update) the [[Previous releases|list of previous releases]] to select an appropriate name.
+
Refer to (and update) the [[Previous releases of Gramps|list of previous releases]] to select an appropriate name.
  
 
==Changelog and NEWS file==
 
==Changelog and NEWS file==
 
Create the changelog files:
 
Create the changelog files:
  svn2cl --reparagraph --include-rev --authors=../data/authors.xml
+
  git log v{{version}}.. --pretty --numstat --summary --no-merges | git2cl > ChangeLog
 
  cd po
 
  cd po
  svn2cl --reparagraph --include-rev --authors=data/authors.xml
+
  git log v{{version}}.. --pretty --numstat --summary --no-merges -- *.po | git2cl > ChangeLog
cd ..
+
  
Using the <tt>Changelog</tt> files generated with <tt>svn2cl</tt> in the step above, edit and update the <tt>NEWS</tt> file.
+
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.  Note the svn commit revision number, which you'll need in the next step when you create the subversion tag:
+
Commit the NEWS file:
  svn commit -m "update for 4.0.0-alpha1 release"
+
  git commit -am "update for {{version}} release"
Committed revision 20810.
+
  
 
==Working on VERSION==
 
==Working on VERSION==
  
Modify <tt>setup.py</tt> to indicate an official release:
+
===Gramps 4.2.x===
gedit setup.py
+
* 4.2.x
and update the version for the release:
+
VERSION = "4.0.0-alpha1"
+
Save change.
+
  
  svn commit -m "make official release" setup.py
+
Check <tt>[https://github.com/gramps-project/gramps/blob/master/gramps/version.py 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, 2, 0)
 +
 
 +
Modify <tt>[https://github.com/gramps-project/gramps/blob/master/gramps/gen/const.py#L132 gramps/gen/const.py]</tt> to indicate an official release:
 +
- VERSION += git_revision
 +
+ #VERSION += git_revision
 +
 
 +
Save change:
 +
git add .
 +
  git commit -am "make official release"
  
 
The version number should be the same on "about" dialog:
 
The version number should be the same on "about" dialog:
 
  python Gramps.py
 
  python Gramps.py
 +
or
 +
python Gramps.py -v
  
==Subversion tag==
+
==Create a tag==
Using the previous commit revision number, create a tag for the new release:
+
Create the release tag:
  svn copy -r 20810 https://svn.code.sf.net/p/gramps/code/branches/maintenance/gramps40 https://svn.code.sf.net/p/gramps/code/tags/gramps-4.0.0-alpha1 -m "tag 4.0.0 alpha1"
+
  git tag -am "tag {{version}}" v{{version}}
Committed revision 20811.
+
  
==Changelog and source tarball==
+
Tags should be prefixed with the letter v.
The Changelog files are required for the source tarball, but do not commit to subversion:
+
svn2cl --reparagraph --include-rev --authors=../data/authors.xml
+
cd po
+
svn2cl --reparagraph --include-rev --authors=data/authors.xml
+
cd ..
+
Create the official source tarball:
+
python setup.py sdist
+
  
Note you should now have the file <tt>dist/gramps-4.0.0-alpha1.tar.gz</tt>, approximately 12.2 Mo in size.
+
==Push to repository==
 +
Push the changes to the repository:
 +
git push origin v{{version}}
  
==Making the source tarball available==
+
==Work on tag ==
* access the "Sourceforge Project Admin->File Manager" page at https://sourceforge.net/projects/gramps/
+
* create a new folder in the "Unstable" hierarchy
+
* upload the <tt>gramps-*.tar.gz</tt> file to the new folder
+
  
==Announcing the new release==
+
===Move to the new release number on branch ===
* announce on gramps-announce@lists.sourceforge.net, gramps-devel@lists.sourceforge.net and gramps-users@lists.sourceforge.net
+
====Gramps 4.2.x====
* update [[News]] section on this wiki
+
* 4.0.x
* update the list of [[previous releases]]
+
* update reference to the new version on the [[Template:Version|wiki template]]
+
* change the topic on the IRC channel #gramps
+
* update the version number at [http://en.wikipedia.org/wiki/GRAMPS Wikipedia]
+
  
==Post-release==
+
Bump the version number in <tt>gramps/version.py</tt>
* in <tt>trunk</tt>, merge forward the <tt>NEWS</tt> file
+
  
= Guidelines for version 3.4 and before =
+
Update the version for the release:
These notes are based on version 3.4.1, released in August 2012. The steps assume a working <tt>gramps34</tt> source directory.
+
VERSION_TUPLE = (4, 0, ...)
  
==Translation update==
+
Revert change on <tt>gramps/gen/const.py</tt> to indicate git revision:
Run the following steps:
+
- #VERSION += get_git_revision
cd gramps34
+
+ VERSION += get_git_revision
svn update
+
cd po
+
make gramps.pot
+
svn 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==
+
Save change:
Refer to (and update) the [[Previous releases|list of previous releases]] to select an appropriate name.
+
git commit -am "bump to <new version number>"
 +
git push
  
==Changelog and NEWS file==
+
===Release from tag===
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 <tt>Changelog</tt> files generated with <tt>svn2cl</tt> in the step above, edit and update the <tt>NEWS</tt> file.
+
git checkout <tag> -b <new_branch_name>
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.4.1 release"
+
Committed revision 20254.
+
  
==Subversion tag==
+
====Gramps 4.2.x====
Using the previous commit revision number, create a tag for the new release:
+
* Gramps-4.0.x
svn copy -r 20254 https://svn.code.sf.net/p/gramps/code/branches/maintenance/gramps34 https://svn.code.sf.net/p/gramps/code/tags/gramps-3.4.1 -m "tag 3.4.1"
+
Committed revision 20255.
+
  
==Working on the tag==
+
Modify <tt>MANIFEST.in</tt>
Check out the new tag:
+
  + include ChangeLog
  cd ..
+
  + include po/ChangeLog
  svn co https://svn.code.sf.net/p/gramps/code/tags/gramps-3.4.1
+
cd gramps-3.4.1
+
  
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$(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:
 
Create the official source tarball:
make distcheck
 
  
Note you should now have the file <tt>gramps-3.4.1.tar.gz</tt>, approximately 9.6 Mo in size.
+
python setup.py sdist
  
 
==Making the source tarball available==
 
==Making the source tarball available==
 
* access the "Sourceforge Project Admin->File Manager" page at https://sourceforge.net/projects/gramps/
 
* 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
 
* create a new folder in the "Stable" hierarchy
* upload the <tt>gramps-*.tar.gz</tt> file to the new folder
+
* upload the <tt>gramps-{{version}}.tar.gz</tt> file to the new folder
  
 
==Announcing the new release==
 
==Announcing the new release==
 
* announce on gramps-announce@lists.sourceforge.net, gramps-devel@lists.sourceforge.net and gramps-users@lists.sourceforge.net
 
* announce on gramps-announce@lists.sourceforge.net, gramps-devel@lists.sourceforge.net and gramps-users@lists.sourceforge.net
 +
* announce on Gramps blog
 
* 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 [[Template:Version|wiki template]]
 
* update reference to the new version on the [[Template:Version|wiki template]]
 +
* update [[HeadlineNews]]
 
* change the topic on the IRC channel #gramps
 
* change the topic on the IRC channel #gramps
* update the version number at [http://en.wikipedia.org/wiki/GRAMPS Wikipedia]
+
<code> /TOPIC #gramps Welcome to Gramps! The latest versions are 4.2.1 and the legacy 3.4.9 || 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. </code>
 +
* update the version number at [http://en.wikipedia.org/wiki/Gramps Wikipedia]
 +
* update mantisdb(Bug/issue database) and enable the new version for reporting issues.
  
 
==Post-release==
 
==Post-release==
* in <tt>gramps34</tt>, bump the version number in <tt>configure.in</tt> and <tt>src/const.py.in</tt>
+
* merge forward the <tt>NEWS</tt> file
* in <tt>trunk</tt>, merge forward the <tt>NEWS</tt> file
+
  
 
=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://svn.code.sf.net/p/gramps/code/
+
* 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]]

Latest revision as of 10:00, 6 January 2016

What to do for a release

Updated guidelines for Git

Translation update

Run the following steps:

git checkout gramps42
git pull
cd po

Gramps 4.x

For Gramps 4.x use (See New environment and differences between tools. See po/update_po.py to generate a new template/catalog (gramps.pot).)

python update_po.py -p  
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 v4.2.2.. --pretty --numstat --summary --no-merges | git2cl > ChangeLog
cd po
git log v4.2.2.. --pretty --numstat --summary --no-merges -- *.po | git2cl > 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 4.2.2 release"

Working on VERSION

Gramps 4.2.x

  • 4.2.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, 2, 0)

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

- VERSION += git_revision
+ #VERSION += git_revision

Save change:

git add .
git commit -am "make official release"

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

python Gramps.py

or

python Gramps.py -v

Create a tag

Create the release tag:

git tag -am "tag 4.2.2" v4.2.2

Tags should be prefixed with the letter v.

Push to repository

Push the changes to the repository:

git push origin v4.2.2

Work on tag

Move to the new release number on branch

Gramps 4.2.x

  • 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 += get_git_revision
+ VERSION += get_git_revision

Save change:

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

Release from tag

git checkout <tag> -b <new_branch_name>

Gramps 4.2.x

  • Gramps-4.0.x

Modify MANIFEST.in

+ include ChangeLog
+ include po/ChangeLog

Create the official source tarball:

python setup.py sdist

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-4.2.2.tar.gz file to the new folder

Announcing the new release

  • announce on gramps-announce@lists.sourceforge.net, gramps-devel@lists.sourceforge.net and gramps-users@lists.sourceforge.net
  • announce on Gramps blog
  • update News section on this wiki
  • update the list of previous releases
  • update reference to the new version on the wiki template
  • update HeadlineNews
  • change the topic on the IRC channel #gramps

/TOPIC #gramps Welcome to Gramps! The latest versions are 4.2.1 and the legacy 3.4.9 || 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.

  • update the version number at Wikipedia
  • update mantisdb(Bug/issue database) and enable the new version for reporting issues.

Post-release

  • merge forward the NEWS file

See also

External links