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

From Gramps
Jump to: navigation, search
m (Push to repository)
m (Translation update)
(47 intermediate revisions by the same user not shown)
Line 4: Line 4:
 
==Translation update==
 
==Translation update==
 
Run the following steps:
 
Run the following steps:
  git checkout gramps40
+
  git checkout gramps{{Stable_branch}}
 
  git pull
 
  git pull
 
  cd po
 
  cd po
  python update_po.py -p # or intltool-update -p , .genpot.sh see [[Translation_environment4|New environment]]
+
  ./genpot.sh # or python update_po.py -p see [[Translation_environment4|New environment]] and [[Talk:Translation_environment4|differences between tools]]
 
  git diff gramps.pot
 
  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.
Line 16: Line 16:
 
==Changelog and NEWS file==
 
==Changelog and NEWS file==
 
Create the changelog files:
 
Create the changelog files:
  git log gramps-4.0.1.. --pretty --numstat --summary --no-merges | git2cl > ChangeLog
+
  git log gramps-{{version}}.. --pretty --numstat --summary --no-merges | git2cl > ChangeLog
  git log gramps-4.0.1.. --pretty --numstat --summary --no-merges -- po | git2cl > po/ChangeLog
+
#git log gramps-{{version}}.. --pretty --numstat --summary --no-merges -- po | git2cl > po/ChangeLog
 +
  git log gramps-4.0.2.. --pretty --summary --no-merges -- po | git2cl > po/ChangeLog #4.0.2
  
 
Using the <tt>Changelog</tt> files generated with <tt>git2cl</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:
 
Commit the NEWS file:
  git commit -am "update for 4.0.2 release"
+
  git commit -am "update for {{version}} release"
  
 
==Working on VERSION==
 
==Working on VERSION==
  
Modify <tt>version.py</tt> to indicate an official release:
+
* 4.0.x
 +
 
 +
Check <tt>gramps/version.py</tt> to indicate an official release:
 
  gedit gramps/version.py  
 
  gedit gramps/version.py  
and update the version for the release:
+
 
 +
and if need, update the version for the release:
 
  VERSION_TUPLE = (4, 0, 2)
 
  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:
 
Save change:
 
  git commit -am "make official release"
 
  git commit -am "make official release"
Line 34: Line 43:
 
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
 +
 +
* 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 a tag==
 
Create the release tag:
 
Create the release tag:
  git tag -am "tag 4.0.2" gramps-4.0.2
+
  git tag -am "tag {{version}}" gramps-{{version}}
  
 
==Push to repository==
 
==Push to repository==
 
Push the changes to the repository:
 
Push the changes to the repository:
  git push origin gramps-4.0.2
+
  git push origin gramps-{{version}}
 
 
* bump the version number in <tt>gramps/version.py</tt>
 
  
 
==Work on tag ==
 
==Work on tag ==
  
git checkout -b gramps347 origin/tags/gramps-3.4.7
+
===Move to the new release number on branch ===
  
==Changelog and source tarball==
+
* 4.0.x
The Changelog files are required for the source tarball, but do not commit them to Git.
 
  
#Copy files from [[#Changelog and NEWS file|previous run under branch]].
+
Bump the version number in <tt>gramps/version.py</tt>
#Modify <tt>MANIFEST.in</tt>
 
+ include ChangeLog
 
  
Create the official source tarball:
+
Update the version for the release:
  python setup.py sdist
+
  VERSION_TUPLE = (4, 0, ...)
  
Note you should now have the file <tt>dist/gramps-4.0.2.tar.gz</tt>, approximately 14.7 Mo in size.
+
Revert change on <tt>gramps/gen/const.py</tt> to indicate git revision:
 +
- VERSION += "-1"
 +
+ VERSION += get_git_revision(ROOT_DIR)
  
==Making the source tarball available==
+
Save change:
* access the "Sourceforge Project Admin->File Manager" page at https://sourceforge.net/projects/gramps/
+
git commit -am "bump to <new version number>"
* create a new folder in the "Stable" hierarchy
+
git push
* upload the <tt>gramps-*.tar.gz</tt> file to the new folder
 
  
==Announcing the new release==
+
* 3.4.x
* announce on gramps-announce@lists.sourceforge.net, [email protected] and [email protected]
 
* update [[News]] section on this wiki
 
* 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]
 
* announce freshmeat now known as [http://freecode.com/projects/gramps freecode], this is also a feed on the slashdot front page
 
 
 
==Post-release==
 
* in <tt>trunk</tt>, merge forward the <tt>NEWS</tt> file
 
  
= Guidelines for version 4.0 =
+
Bump the version number in <tt>configure.in</tt> and <tt>src/const.py.in</tt>
  
These notes are based on version 4.0.0alpha1, released in December 2012.  The steps assume a working <tt>gramps40</tt> source directory.
+
Save change:
 
+
  git commit -am "bump to <new version number>"
==Translation update==
+
  git push
Run the following steps:
 
  cd gramps40
 
svn update
 
cd po
 
python update_po.py -p # or intltool-update -p , .genpot.sh see [[Translation_environment4|New environment]]
 
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==
 
Refer to (and update) the [[Previous releases|list of previous releases]] to select an appropriate name.
 
 
 
==Changelog and NEWS file==
 
Create the changelog files:
 
svn2cl --reparagraph --include-rev --authors=data/authors.xml
 
cd po
 
svn2cl --reparagraph --include-rev --authors=../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.
+
===Release from tag===
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 4.0.0-alpha1 release"
 
Committed revision 20810.
 
  
==Working on VERSION==
+
git checkout <tag> -b <new_branch_name>
  
Modify <tt>version.py</tt> to indicate an official release:
+
* Gramps-4.0.x
gedit gramps/version.py
 
and update the version for the release:
 
VERSION_TUPLE = (4, 0, 0)
 
Save change.
 
  
svn commit -m "make official release" gramps/version.py
+
Modify <tt>MANIFEST.in</tt>
 
 
The version number should be the same on "about" dialog:
 
python Gramps.py
 
 
 
==Subversion tag==
 
Using the previous commit revision number, create a tag for the new release:
 
svn copy -r 22385 https://svn.code.sf.net/p/gramps/code/branches/maintenance/gramps40 https://svn.code.sf.net/p/gramps/code/tags/gramps-4.0.0 -m "tag 4.0.0"
 
Committed revision 22386.
 
 
 
==Changelog and source tarball==
 
The Changelog files are required for the source tarball, but do not commit them to subversion.
 
 
 
#Copy files from [[#Changelog and NEWS file|previous run under branch]].
 
#Modify <tt>MANIFEST.in</tt>
 
 
  + include ChangeLog
 
  + include ChangeLog
 +
+ include po/ChangeLog
  
 
Create the official source tarball:
 
Create the official source tarball:
 +
 
  python setup.py sdist
 
  python setup.py sdist
  
Note you should now have the file <tt>dist/gramps-4.0.0.tar.gz</tt>, approximately 14.7 Mo in size.
+
* Gramps-3.4
 
 
==Making the source tarball available==
 
* access the "Sourceforge Project Admin->File Manager" page at https://sourceforge.net/projects/gramps/
 
* create a new folder in the "Stable" hierarchy
 
* upload the <tt>gramps-*.tar.gz</tt> file to the new folder
 
 
 
==Announcing the new release==
 
 
* update [[News]] section on this wiki
 
* 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]
 
* announce freshmeat now known as [http://freecode.com/projects/gramps freecode], this is also a feed on the slashdot front page
 
 
 
==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 =
 
These notes are based on version 3.4.1, released in August 2012.  The steps assume a working <tt>gramps34</tt> source directory.
 
 
 
==Translation update==
 
Run the following steps:
 
cd gramps34
 
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==
 
Refer to (and update) the [[Previous releases|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 <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.4.1 release"
 
Committed revision 20254.
 
 
 
==Subversion tag==
 
Using the previous commit revision number, create a tag for the new release:
 
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==
+
Build, check and create the official source tarball:
Check out the new tag:
 
cd ..
 
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
 
  ./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
 
Note you should now have the file <tt>gramps-3.4.1.tar.gz</tt>, approximately 9.6 Mo in size.
 
  
 
==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/
 
* 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==
Line 229: Line 127:
 
* update the list of [[previous releases]]
 
* update the list of [[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]
 
* update the version number at [http://en.wikipedia.org/wiki/GRAMPS Wikipedia]
Line 234: Line 133:
  
 
==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]]

Revision as of 16:50, 6 February 2014

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.0.. --pretty --numstat --summary --no-merges | git2cl > ChangeLog
#git log gramps-5.2.0.. --pretty --numstat --summary --no-merges -- po | git2cl > po/ChangeLog
git log gramps-4.0.2.. --pretty --summary --no-merges -- po | git2cl > po/ChangeLog #4.0.2

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.0 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
  • 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.0" gramps-5.2.0

Push to repository

Push the changes to the repository:

git push origin gramps-5.2.0

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

  • access the "Sourceforge Project Admin->File Manager" page at https://sourceforge.net/projects/gramps/
  • create a new folder in the "Stable" hierarchy
  • upload the gramps-5.2.0.tar.gz file to the new folder

Announcing the new release

Post-release

  • merge forward the NEWS file

See also

External links