Open main menu

Gramps β

Changes

What to do for a release

2,138 bytes added, Wednesday at 15:44
m
Clarify what to add in metainfo xml file
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 necessary [[What_to_do_for_a_release#Post-release|Post release]] there are additional things which need to be done,tasks which are related to making a new release. For instance, for instance the wiki will require making a new release-section here on and updating [[Template:Version_Templates#General|"General" version templates]]. For the wiki, or making a new release-section on the bug tracker, or . Or when making new Debian and Mac and Windows packages[[:Category:Developers/Packaging|packaging]], so they will need to be coordinated with the appropriate people[[Team#Package_Maintainers|package maintainers]] and updating the corresponding [[:Category:Versions|Versions]] : [[Template:Version_Templates|Templates]].  ==Pre-release=====Agree a release timetable=== Co-ordinate with the [[Team#Package_Maintainers|package maintainers]] to agree a release timetable.For a major release there may be a schedule on the [[5.2_Roadmap|Roadmap]] ===Announce a feature freeze===For a major release, announce a feature freeze on the ''gramps-devel'' mailing list.This will usually be about 4 weeks before the release date. ===Translation update===The translation template should be updated, if necessary, just before the string freeze is announced.* Check for new files since the last release: cd po intltool-update -m :That will create a file called <code>missing</code>in the <code>po</code> directory if there are new files that need to be scanned for translatable strings. Examine each of the files listed in <code>missing</code>, adding each to <code>POTFILES.in</code> if it contains translatable string constants and to <code>POTFILES.skip</code> if it does not.* Generate a new template file: python update_po.py -p # makes a new gramps.pot template file git diff gramps.pot:Examine the changes. If they're all just comments about where a string is found you need not commit the change (so the next line will restore the official file, instead of the one you just made): git restore 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: git add gramps.pot git commit -m "Update translation template for new release" git push:After updating the <code>pot</code> file, push the changes and wait for Weblate to update the <code>po</code> files. Merge the corresponding pull request from Weblate.* Check current translation files: python update_po.py -k all:There should be very few warnings and no fatal errors. Warnings related to new languages using default values in their headers are acceptable. All fatal errors should be fixed.Also see:* [[Template:Gramps_translations#INCOMPLETE_TRANSLATIONS]] - Update if any translation needs to be added or excluded due to not meeting the minimum 70% completion requirement. ===Announce a string freeze===For a major release, announce a string freeze on the ''gramps-devel'' mailing list and on Weblate.This will usually be about 2 weeks before the release date. In the ''Program'' component on Weblate, select "Manage⟶Post announcement" from the menu. Enter an ''Expiry date'' the day before the release date, and select the ''Notify users'' checkbox to send a notification to all subscribed users.
==Prepare your repository==
eg:
''© 2007-2018 2025 The Gramps Developers''
to
''© 2007-'''20192026''' The Gramps Developers''.
Found in <code>gramps/gen/const.py</code>
Update the year for the copyright.
copyright = '2001-20192026, The Gramps Project'
===Update Classifier in setuppyproject.pytoml===Change [https://pypi.python.org/pypi?%3Aaction=list_classifiers Classifier] to the appropriate one in [https://github.com/gramps-project/gramps/blob/maintenance/gramps50gramps61/setuppyproject.py setuptoml pyproject.pytoml] (master is always the first one)
<pre>
Check if any additional language classifier needs to be added also.
 
 
===Update the 'behavior.betawarn' key value===
 
If the release is '''Production/Stable''' make sure that the '''behavior.betawarn''' key value has been set to '''False''' e.g., https://github.com/gramps-project/gramps/commit/9dc976f28dc16c514e9e8e0b0fa09338bfe04f8a#diff-3d9e6dc03ea37a4b7f7975db17f16509
 
Found in
gramps/gen/config.py
and
gramps/gui/grampsgui.py
 
 
Please note that in Gramps master this key is always '''True'''.
 
See also {{bug|11274}}
 
==Translation update==
* Check for new files since the last release:
cd po
intltool-update -m
:That will create a file called <code>missing</code>in the <code>po</code> directory if there are new files that need to be scanned for translatable strings. Examine each of the files listed in <code>missing</code>, adding each to <code>POTFILES.in</code> if it contains translatable string constants and to <code>POTFILES.skip</code> if it does not.
* Generate a new template file:
python3 update_po.py -p # makes a new gramps.pot template file
git diff gramps.pot
:Examine the changes. If they're all just comments about where a string is found you need not commit the change (so the next line will restore the official file, instead of the one you just made):
git checkout 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:
git add gramps.pot
git commit -m "Update translation template for new release"
 
* Check current translation files (there must be no 'fatal' errors):
python3 update_po.py -k all
 
* if all is well, return to the root directory:
cd ..
 
 
Also see:
* [[Template:Gramps_translations#INCOMPLETE_TRANSLATIONS]] - Update if any translation needs to be added or excluded due to not meeting the minimum 70% completion requirement.
==Release name==
==Changelog and NEWS file==
[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''. The change log can be generated in GNU ChangeLog format using git2cl which you may need to install on your system.
Note that the <code>{{version}}</code> below means the ''previous'' version, not the one you're about to release (which is the
Commit the NEWS file:
git add NEWS
git commit -m "Update Changelog ChangeLog and NEWS files"
==Working on VERSION==
* Modify <code>[https://github.com/gramps-project/gramps/blob/master/gramps/version.py gramps/version.py]</code>. Update <code>VERSION_TUPLE</code> to the new version and set <code>DEV_VERSION</code> to indicate an official release:
 
VERSION_TUPLE = (4, 2, ...)
- DEV_VERSION = True + DEV_VERSION = False * Check that Add an entry to the <code>VERSION_TUPLE</code> list of releases in <code>[https://github.com/gramps-project/gramps/blob/mastermaintenance/gramps52/grampsdata/versionorg.gramps_project.Gramps.py gramps/versionmetainfo.py]</code>reflects the release you're about to makexml. It should if the version was bumped after the last releasein org. If not, fix itgramps_project. * Modify <code>[https://githubGramps.com/gramps-project/gramps/blob/master/gramps/gen/constmetainfo.py#L132 gramps/gen/constxml.pyin]</code> to indicate an official release: - VERSION += git_revision + #VERSION += git_revisionfile.
* Save the changes:
* Check that the version number is correct:
python3 python Gramps.py -v
* If everything looks good, push the changes:
git push origin v{{version}}
===Move Update DEV_VERSION to the new release number on branch indicate a development version===
Bump the version number in Revert change on <code>gramps/version.pyDEV_VERSION</code> Update the version for the release: VERSION_TUPLE = (4, 2, ...) Revert change on in <code>gramps/gen/constversion.py</code> so that the git revision is appended to the reported version in non-release builds: - #VERSION +DEV_VERSION = get_git_revisionFalse + VERSION +DEV_VERSION = get_git_revisionTrue
Save change:
git commit -am "Bump Set to <new development version number>"
git push
* Find the tag you just pushed and click it, or click the "Draft a new release" button.
* Copy the NEWS file contents into the '''Write''' tab. You can use the '''Preview''' tab to check your formatting.
* Add the sh256sum of the source distribution to the bottom of the release notes.
 
You can obtain the sha256sum with the following command:
 
git archive --format=tar --prefix=gramps-{{version}} v{{version}} | gzip | sha256sum
 
Alternatively, download it and use:
 
sha256sum gramps-{{version}}.tar.gz
 
* Click '''Publish Release''' at the bottom of the edit area when you're satisfied with the contents.
* Click '''Add Folder''' and name the directory for the release version. Click "'Create'". Click your new folder to enter it.
* You can either download the GitHub-generated tarball or create one locally:
python3 setup.py python -m build --sdist
* Click '''Add File''' and drag the tarball to the drop area on the web page.
* Copy the release notes from GitHub into a file called README.md and upload it.
* update mantisdb(Bug/issue database) and enable the new version via Admin:Projects item for reporting issues. (You will need a high-enough status on the bug tracker in order to do this, so you can ask an appropriate person if you aren't.)
* announce on [email protected], [email protected] and [email protected] (You will need to be a member of all three lists first, to send to them.)
* announce on the Discourse forum in the "[https://gramps.discourse.group/c/gramps-announce Announcements]" category.
* announce on Gramps [https://gramps-project.org/blog/blog/ blog] (File under: [https://gramps-project.org/blog/category/releases/ Gramps Releases] and [https://gramps-project.org/blog/category/news/ News]) (not needed for an alpha or beta release)
* update [[News]] section on this wiki (not needed for an alpha or beta release)
* update the list of [[Previous releases of Gramps|previous releases]]
* update reference to the new version on the [[Template:Version|wiki template]] <small>{{version}}</small> (not needed for an alpha or beta release)* Verify other [[:Category:Versions|"version" Wiki templates]] values: Last version, Stable version, etc.
* update [[HeadlineNews]] (not needed for an alpha or beta release)
* update release <nowiki>{{version-released}}</nowiki> [https://gramps-project.org/wiki/index.php/Template:Version-released date on template] for the [[Download]] page pages <small>{{version-released}}</small> (not needed for an alpha or beta release)* have the IRC channel admin ([[Template:Reviews/ReviewList#General|tosky]]) change the topic on the Matrix room title and IRC channel #gramps title (not needed for an alpha or beta release) <code> /TOPIC #gramps Welcome to Gramps! The latest version is {{version}} || https://www.gramps-project.org/</code>* update the version number at [httphttps://en.wikipedia.org/wiki/Gramps Gramps_(software) Wikipedia] (not needed for an alpha or beta release)
==Post-release==
=See also=
*Category [[:Category:Versions|Versions]] : [[Template:Version_Templates|Template]]
*Building a distribution to share as on the [[Download]] page
:[[File:Windows_32x32.png]] [[Building Gramps AIO cx freeze-based]] - Updating the MS-Windows 32-bit and 64-bit All-In-One packagespackage
<!--
:[[File:Linux 32x32.png]] please add link to instructions on building Gramps installers for Linux. proofed while building v5.1.3
* [[:Category:AppData]] - Screenshots used by Appdata - Debian
* [[.dtd and .rng]]
* [[Rollover_for_the_manual|Rollover for the Wiki]] - for major and feature releases. No rollover for maintenance releases.
* [[Special:WhatLinksHere/Template:Bug|List of pages linked to Bug Report template]] - verify the reported issues still apply to the new release. Leave links in place for any issue fixed in maintenance releases. Simply add notations for the version where the fix was applied. Remove links for fixed issues in Rollovers.
=External links=
[[Category:Developers/General]]
[[Category:Developers/Packaging]]
56
edits