Difference between revisions of "What to do for a release"
m (→Translation update) |
m (→Include ChangeLog files) |
||
(188 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 = | |
− | |||
==Translation update== | ==Translation update== | ||
Run the following steps: | Run the following steps: | ||
− | + | git checkout gramps{{Stable_branch}} | |
− | + | git pull | |
+ | |||
+ | * Translations stuff | ||
cd po | cd po | ||
− | + | python3 update_po.py -p | |
− | + | git diff gramps.pot | |
− | If there have been changes, you'll need to commit < | + | |
+ | 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== | ==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== | ||
− | + | 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== | ||
+ | |||
+ | [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 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 < | + | Modify <code>MANIFEST.in</code> |
− | + | + include ChangeLog | |
− | + | + include po/ChangeLog | |
− | |||
− | |||
− | + | ||
− | |||
− | |||
− | + | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
Create the official source tarball: | Create the official source tarball: | ||
− | |||
− | + | python3 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. | |
− | + | ||
− | + | ===Github=== | |
− | * access the Sourceforge | + | * Automatically created when tagged |
− | + | ||
− | + | https://github.com/gramps-project/gramps/releases | |
− | + | ||
− | * | + | ===Sourceforge (previous way)=== |
− | * | + | * 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/Stable | ||
+ | * create a new folder in the "Stable" hierarchy | ||
+ | * put the <code>readme.rst</code> <code>gramps-{{version}}.tar.gz</code> files to the new folder | ||
==Announcing the new release== | ==Announcing the new release== | ||
+ | * 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 [[ | + | * 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/ | + | <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. | ||
==Post-release== | ==Post-release== | ||
− | * | + | * merge forward the <code>NEWS</code> file |
− | |||
− | + | =See also= | |
− | * [[Brief introduction to | + | * [[Git|Brief introduction to Git]] |
* [[Running a development version of Gramps]] | * [[Running a development version of Gramps]] | ||
* [[:Category:Developers/Packaging]] | * [[:Category:Developers/Packaging]] | ||
+ | * [[GrampsAIO-4 package updating]] - Updating the MS-Windows package | ||
+ | * [[:Category:AppData]] - Screenshots used by Appdata - Debian | ||
− | + | =External links= | |
− | * | + | * 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
'Developer notes for What to do for a release ' |
Contents
- 1 Updated guidelines for Git
- 2 See also
- 3 External links
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.2..
Edit and update the NEWS
file.
Commit the NEWS file:
git commit -am "update for 5.2.2 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.2" v5.2.2
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.2.. --pretty --numstat --summary --no-merges | git2cl > ChangeLog git log v5.2.2.. --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.2
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)
- 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/Stable
- create a new folder in the "Stable" hierarchy
- put the
readme.rst
gramps-5.2.2.tar.gz
files to the new folder
Announcing the new release
- announce on [email protected], [email protected] and [email protected]
- 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 5.2.2 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
- Brief introduction to Git
- 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