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

From Gramps
Jump to: navigation, search
m (move the link to previous releases)
m (Include ChangeLog files)
(199 intermediate revisions by 8 users not shown)
Line 1: Line 1:
'''What to do for a release'''
+
{{man note|Developer notes for '''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
  
==Translations==
+
* Translations stuff
 +
cd po
 +
python3 update_po.py -p 
 +
git diff gramps.pot
 +
 
 +
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.
 +
 
 +
For checking current translation files:
 +
  python3 update_po.py -k all
 +
 
 +
==Release name==
 +
Refer to (and update) the [[Previous releases of Gramps|list of previous releases]] to select an appropriate name.
 +
 
 +
==Changelog and NEWS file==
 +
Look at the changelog:
 +
git log v{{version}}..
 +
 
 +
Edit and update the <code>NEWS</code> file.
 +
Commit the NEWS file:
 +
git commit -am "update for {{version}} release"
 +
 
 +
==Working on VERSION==
 +
 
 +
Check <code>[https://github.com/gramps-project/gramps/blob/master/gramps/version.py gramps/version.py]</code> to indicate an official release:
 +
gedit gramps/version.py
 +
 
 +
and if need, update the version for the release:
 +
VERSION_TUPLE = (4, 2, 0)
 +
 
 +
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
 +
 
 +
Save change:
 +
git add .
 +
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 {{version}}" v{{version}}
 +
 
 +
Tags should be prefixed with the letter v.
 +
 
 +
==Include ChangeLog files==
  
* 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
+
[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''.
* build what should be the final <tt>gramps.pot</tt> file:
+
 
  cd po
+
git checkout <tag>
  make gramps.pot
+
git log v{{version}}.. --pretty --numstat --summary --no-merges | git2cl > ChangeLog
* commit the new <tt>gramps.pot</tt> file to svn
+
git log v{{version}}.. --pretty --numstat --summary --no-merges -- po/*.po | git2cl > po/ChangeLog
* ask for all [[Translating GRAMPS|translators]] on <tt>gramps[email protected].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
+
  git commit -am "Update ChangeLog files"
* 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
+
  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 the changes to the repository:
 +
git push origin v{{version}}
 +
 
 +
==Work on tag ==
 +
 
 +
===Move to the new release number on branch ===
 +
 
 +
Bump the version number in <code>gramps/version.py</code>
 +
 
 +
Update the version for the release:
 +
VERSION_TUPLE = (4, 0, ...)
 +
 
 +
Revert change on <code>gramps/gen/const.py</code> 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>
 +
 
 +
Modify <code>MANIFEST.in</code>
 +
+ include ChangeLog
 +
+ include po/ChangeLog
 +
 
 +
Create the official source tarball:
 +
 
 +
python3 setup.py sdist
  
==Preparing the tarball==
+
==Making the source tarball available==
  
* note the names of [[previous releases]]
+
Create the <code>readme.rst</code> file containing the changes since the previous release.
* 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"
 
  
==Making the candidate build available==
+
===Github===
 +
* Automatically created when tagged
  
* login to cpanel at http://gramps-project.org/cpanel
+
https://github.com/gramps-project/gramps/releases
* 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==
+
===Sourceforge (previous way)===
* edit configure.in; update the following lines:
+
* access the "Sourceforge Project Admin->File Manager" page at https://sourceforge.net/projects/gramps/
dnl RELEASE=0.SVN$(svnversion -n .)
+
or via your ''<dev>'' account:
dnl RELEASE=0rc1
+
  $ sftp <dev>@frs.sourceforge.net
RELEASE=1
+
Connecting to frs.sourceforge.net...
* note the svn commit revision number
+
  Password:
* create a tag in svn for the release:
+
  sftp> cd /home/frs/project/gramps/Stable
svn copy -r ### https://gramps.svn.sourceforge.net/svnroot/gramps/branches/gramps22 \
+
* create a new folder in the "Stable" hierarchy
  https://gramps.svn.sourceforge.net/svnroot/gramps/tags/gramps-2.2.x \
+
* put the <code>readme.rst</code> <code>gramps-{{version}}.tar.gz</code> files to the new folder
-m "tag 2.2.x"
 
* run the following command:  
 
  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==
+
==Announcing the new release==
* announce on <tt>[email protected]</tt>, <tt>[email protected]</tt> and <tt>[email protected]</tt>
+
 +
* 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 [[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
+
<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 mantisdb(Bug/issue database) and enable the new version via Admin:Projects item for reporting issues.
  
==Update the version number==
+
==Post-release==
* edit <tt>configure.in</tt>; increment the version number
+
* merge forward the <code>NEWS</code> 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]]
 +
* [[GrampsAIO-4 package updating]] - Updating the MS-Windows package
 +
* [[:Category:AppData]] - Screenshots used by Appdata - Debian
  
==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 16:38, 21 December 2016

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

Updated guidelines for Git

Translation update

Run the following steps:

git checkout gramps52
git pull
  • Translations stuff
cd po
python3 update_po.py -p  
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.

For checking current translation files:

 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 add .
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, 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>

Modify MANIFEST.in

+ include ChangeLog
+ include po/ChangeLog

Create the official source tarball:

python3 setup.py sdist

Making the source tarball available

Create the readme.rst file containing the changes since the previous release.

Github

  • Automatically created when tagged

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

Sourceforge (previous way)

or via your <dev> account:

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

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