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

From Gramps
Jump to: navigation, search
m (Translation update)
(Translation update)
(46 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
{{man note|Developer notes for '''What to do for a release '''}}
 
{{man note|Developer notes for '''What to do for a release '''}}
 +
 +
Note that the main use of this page will be for making
 +
a normal "minor" release.  If you are making a "major"
 +
release (e.g. x.y.0) then you will need to update this
 +
page first, to change the numbers.  But if you are only
 +
making an "alpha" or "beta" release, some
 +
steps may be skipped, or altered slightly.
 +
 +
Note also that
 +
there are additional things which need to be done,
 +
which are related to making a new release, for instance
 +
making a new release-section here on the wiki, or
 +
making a new release-section on the bug tracker, so
 +
they will need to be coordinated with the appropriate
 +
people.  Probably there should be a section of this
 +
page which lists things like that.
 +
 
=Updated guidelines for Git =
 
=Updated guidelines for Git =
  
Line 6: Line 23:
 
  git checkout gramps{{Stable_branch}}
 
  git checkout gramps{{Stable_branch}}
 
  git pull
 
  git pull
 +
 +
* Translations stuff
 
  cd po
 
  cd po
 +
intltool-update -m # then add any missing files to POTFILES.*
 +
python3 update_po.py -p # makes a new gramps.pot template file
 +
git diff gramps.pot
  
See [[Translation_environment4|New environment]] and [[Talk:Translation_environment4|differences between tools]].
+
If there have been changes on <code>msgid</code> entries, you'll need to commit <code>gramps.pot</code> and ask translators to update their <tt>.po</tt> files before you can make a release.
 
 
See also [https://github.com/gramps-project/gramps/blob/master/po/update_po.py po/update_po.py] to generate a new template/catalog (gramps.pot).)
 
python3 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.
 
  
For checking current translation files:
+
Check current translation files (there must be no 'fatal' errors):
 
   python3 update_po.py -k all
 
   python3 update_po.py -k all
  
Line 23: Line 40:
 
==Changelog and NEWS file==
 
==Changelog and NEWS file==
 
Look at the changelog:
 
Look at the changelog:
  git log v{{version}}.. --pretty --numstat --summary --no-merges > ChangeLog
+
  git log v{{version}}..
  
Edit and update the <tt>NEWS</tt> file.
+
Edit and update the <code>NEWS</code> file.
 
Commit the NEWS file:
 
Commit the NEWS file:
 
  git commit -am "update for {{version}} release"
 
  git commit -am "update for {{version}} release"
Line 31: Line 48:
 
==Working on VERSION==
 
==Working on VERSION==
  
===Gramps 4.2.x===
+
Check <code>[https://github.com/gramps-project/gramps/blob/master/gramps/version.py gramps/version.py]</code> to indicate an official release:
* 4.2.x
 
 
 
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  
 
  gedit gramps/version.py  
  
Line 40: Line 54:
 
  VERSION_TUPLE = (4, 2, 0)
 
  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:
+
Modify <code>[https://github.com/gramps-project/gramps/blob/master/gramps/gen/const.py#L132 gramps/gen/const.py]</code> to indicate an official release:
 
  - VERSION += git_revision
 
  - VERSION += git_revision
 
  + #VERSION += git_revision
 
  + #VERSION += git_revision
  
 
Save change:
 
Save change:
git add .
 
 
  git commit -am "make official release"
 
  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
+
  python3 Gramps.py
 
or
 
or
  python Gramps.py -v
+
  python3 Gramps.py -v
  
 
==Create a tag==
 
==Create a tag==
Line 58: Line 71:
  
 
Tags should be prefixed with the letter v.
 
Tags should be prefixed with the letter v.
 +
 +
==Include ChangeLog files==
 +
 +
[https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html#section2 Section ''2a''] of the '''G'''eneral '''P'''ublic '''L'''icense says that if you distribute a modified version of a program: ''you must cause the modified files to carry prominent notices stating that you changed the files and the date of any change''.
 +
 +
git checkout <tag>
 +
git log v{{version}}.. --pretty --numstat --summary --no-merges | git2cl > ChangeLog
 +
git log v{{version}}.. --pretty --numstat --summary --no-merges -- po/*.po | git2cl > po/ChangeLog
 +
git commit -am "Update ChangeLog files"
 +
git push
 +
 +
The <code>Changelog</code> files generated with <code>git2cl</code>.
 +
 +
Should be included on tarball generated by [[#Github|Github]].
  
 
==Push to repository==
 
==Push to repository==
Line 66: Line 93:
  
 
===Move to the new release number on branch ===
 
===Move to the new release number on branch ===
====Gramps 4.2.x====
 
* 4.0.x
 
  
Bump the version number in <tt>gramps/version.py</tt>
+
Bump the version number in <code>gramps/version.py</code>
  
 
Update the version for the release:
 
Update the version for the release:
  VERSION_TUPLE = (4, 0, ...)
+
  VERSION_TUPLE = (4, 2, ...)
  
Revert change on <tt>gramps/gen/const.py</tt> to indicate git revision:
+
Revert change on <code>gramps/gen/const.py</code> to indicate git revision:
 
  - #VERSION += get_git_revision
 
  - #VERSION += get_git_revision
 
  + VERSION += get_git_revision
 
  + VERSION += get_git_revision
Line 85: Line 110:
  
 
  git checkout <tag> -b <new_branch_name>
 
  git checkout <tag> -b <new_branch_name>
 
====Gramps 4.2.x====
 
 
git log v{{version}}.. --pretty --numstat --summary --no-merges | git2cl > ChangeLog
 
cd po
 
git log v{{version}}.. --pretty --numstat --summary --no-merges -- *.po | git2cl > ChangeLog
 
 
Using the <tt>Changelog</tt> files generated with <tt>git2cl</tt>,
 
 
Modify <tt>MANIFEST.in</tt>
 
+ include ChangeLog
 
+ include po/ChangeLog
 
 
Create the official source tarball:
 
 
python setup.py sdist
 
  
 
==Making the source tarball available==
 
==Making the source tarball available==
  
Create the <code>readme.rst</code> file containing the changes since the previous release.
+
The source tarball is generated by github in relation with the created tag.
 
 
===Sourceforge===
 
* 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
 
  
 
===Github===
 
===Github===
Line 120: Line 119:
  
 
https://github.com/gramps-project/gramps/releases
 
https://github.com/gramps-project/gramps/releases
 +
 +
Previous way for creating the official source tarball:
 +
 +
python3 setup.py sdist
 +
 +
* Edit the tag and publish the release
  
 
==Announcing the new release==
 
==Announcing the new release==
  
* announce on Gramps blog
+
* announce on Gramps [https://gramps-project.org/introduction-WP/blog/ blog] (File under: [https://gramps-project.org/introduction-WP/category/releases/ Gramps Releases] and [https://gramps-project.org/introduction-WP/category/news/  News])
 
* update [[News]] section on this wiki
 
* update [[News]] section on this wiki
 
* update the list of [[Previous releases of Gramps|previous releases]]
 
* update the list of [[Previous releases of Gramps|previous releases]]
Line 129: Line 134:
 
* update [[HeadlineNews]]
 
* update [[HeadlineNews]]
 
* change the topic on the IRC channel #gramps
 
* change the topic on the IRC channel #gramps
<code> /TOPIC #gramps Welcome to Gramps! The latest versions are 4.2.3 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>
+
<code> /TOPIC #gramps Welcome to Gramps! The latest versions are {{version}} 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 the version number at [http://en.wikipedia.org/wiki/Gramps Wikipedia]
* update mantisdb(Bug/issue database) and enable the new version for reporting issues.
+
* update mantisdb(Bug/issue database) and enable the new version via Admin:Projects item for reporting issues.
  
 
==Post-release==
 
==Post-release==
* merge forward the <tt>NEWS</tt> file
+
* merge forward the <code>NEWS</code> file
  
 
=See also=
 
=See also=
Line 141: Line 146:
 
* [[:Category:Developers/Packaging]]
 
* [[:Category:Developers/Packaging]]
 
* [[GrampsAIO-4 package updating]] - Updating the MS-Windows package
 
* [[GrampsAIO-4 package updating]] - Updating the MS-Windows package
 +
* [[:Category:AppData]] - Screenshots used by Appdata - Debian
  
 
=External links=
 
=External links=

Revision as of 21:29, 21 August 2017

Gramps-notes.png
'Developer notes for What to do for a release '

Note that the main use of this page will be for making a normal "minor" release. If you are making a "major" release (e.g. x.y.0) then you will need to update this page first, to change the numbers. But if you are only making an "alpha" or "beta" release, some steps may be skipped, or altered slightly.

Note also that there are additional things which need to be done, which are related to making a new release, for instance making a new release-section here on the wiki, or making a new release-section on the bug tracker, so they will need to be coordinated with the appropriate people. Probably there should be a section of this page which lists things like that.

Updated guidelines for Git

Translation update

Run the following steps:

git checkout gramps52
git pull
  • Translations stuff
cd po
intltool-update -m # then add any missing files to POTFILES.*
python3 update_po.py -p # makes a new gramps.pot template file
git diff gramps.pot

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

Check current translation files (there must be no 'fatal' errors):

 python3 update_po.py -k all

Release name

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

Changelog and NEWS file

Look at the changelog:

git log v5.2.1..

Edit and update the NEWS file. Commit the NEWS file:

git commit -am "update for 5.2.1 release"

Working on VERSION

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 commit -am "make official release"

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

python3 Gramps.py

or

python3 Gramps.py -v

Create a tag

Create the release tag:

git tag -am "tag 5.2.1" v5.2.1

Tags should be prefixed with the letter v.

Include ChangeLog files

Section 2a of the General Public License says that if you distribute a modified version of a program: you must cause the modified files to carry prominent notices stating that you changed the files and the date of any change.

git checkout <tag>
git log v5.2.1.. --pretty --numstat --summary --no-merges | git2cl > ChangeLog
git log v5.2.1.. --pretty --numstat --summary --no-merges -- po/*.po | git2cl > po/ChangeLog
git commit -am "Update ChangeLog files"
git push

The Changelog files generated with git2cl.

Should be included on tarball generated by Github.

Push to repository

Push the changes to the repository:

git push origin v5.2.1

Work on tag

Move to the new release number on branch

Bump the version number in gramps/version.py

Update the version for the release:

VERSION_TUPLE = (4, 2, ...)

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>

Making the source tarball available

The source tarball is generated by github in relation with the created tag.

Github

  • Automatically created when tagged

https://github.com/gramps-project/gramps/releases

Previous way for creating the official source tarball:

python3 setup.py sdist
  • Edit the tag and publish the release

Announcing the new release

/TOPIC #gramps Welcome to Gramps! The latest versions are 5.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 via Admin:Projects item for reporting issues.

Post-release

  • merge forward the NEWS file

See also

External links