Open main menu

Gramps β

Changes

What to do for a release

4,496 bytes added, 7 April
Github
{{man note|Developer notes for '''What to do for a release '''}}
Note that the main use of this page will be for makinga normal "minor" release. If you are making a "major"release (e.g. x.y.0) then you will need to update thispage first, to change the numbers. But if you are onlymaking an "alpha" or "beta" release, somesteps may be skipped, or altered slightly.
Note also thatthere are additional things which need to be done,necessary [[What_to_do_for_a_release#Post-release|Post release]] tasks which are related to making a new release. For instance, for instancethe wiki will require making a new release-section here on and updating [[Template:Version_Templates#General|"General" version templates]]. For the wiki, ormaking a new release-section on the bug tracker, or. Or when making new Debian and Mac and Windows packages[[:Category:Developers/Packaging|packaging]], sothey will need to be coordinated with the appropriate[[Team#Package_Maintainers|package maintainers]] and updating the corresponding [[:Category:Versions|Versions]] : [[Template:Version_Templates|Templates]]. people==Pre-release=====Agree a release timetable=== Co-ordinate with the [[Team#Package_Maintainers|package maintainers]] to agree a release timetable. Probably 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: 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 section string is found you need not commit the change (so the next line will restore the official file, instead of thisthe 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" * Check current translation files: python3 update_po.py -k all:There should be very few warnings or fatal errors. Warnings related to new languages using default values in their headers are acceptable. There will also be some fatal errors reported due to the non-standard way we handle inflected dates. See the section on [https://gramps-project.org/wiki/index.php/Date_Handler#Localizing_the_date_formats Localizing the date formats] in the [https://gramps-project.org/wiki/index.php/Date_Handler Date Handler] wiki page which lists things like that (for further details. For example "{long_month}" may be translated as "{long_month.f[Р]}"Post.:All other 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 releasedate. In the ''Program'' component on Weblate, select "Manage⟶Post announcement" maybe?)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==
* Build and test to make sure that everything works, then clean the repo of all build products.
==Translation update=Check the About box year===* Check for new files since if the year in the last release{{man label|About}} box needs to be updated eg: cd po intltool ''© 2007-update -m 2023 The Gramps Developers'' :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 ''© 2007-'''2024''' The Gramps Developers''. Examine each of the files listed  Found in <code>missing<gramps/code>, adding each to <code>POTFILES.in<gen/code> if it contains translatable string constants and to <code>POTFILESconst.skippy</code> if it does not.* Generate a new template ===API docs update year===If needed in the file: python3 update_podocs/conf.py -p # makes a new gramps.pot template file git diff gramps.pot:Examine Update the year for the changescopyright. If they  copyright = 're all just comments about where a string is found you need not commit the change (so the next line will restore the official file2001-2024, instead of the one you just made):The Gramps Project'  git checkout gramps===Update Classifier in setup.potpy===Change [https:If there have been changes on <code>msgid</code> entries, you'll need to commit <code>gramps/pypi.python.pot<org/code> and ask translators pypi?%3Aaction=list_classifiers Classifier] to update their <tt>the appropriate one in [https://github.po<com/gramps-project/tt> files before you can make a release: git add gramps/blob/maintenance/gramps50/setup.pot git commit -m "Update translation template for new releasepy setup."py] (master is always the first one)
* Check current translation files (there must be no 'fatal' errors)<pre>Development Status :: 1 - PlanningDevelopment Status ::2 - Pre-Alpha python3 update_po.py Development Status :: 3 -k allAlphaDevelopment Status :: 4 - BetaDevelopment Status :: 5 - Production/Stable</pre>
* Check if all is well, return any additional language classifier needs to the root directory: cd .be added also.
==Release name==
Refer to (and update) the [[Previous releases of Gramps|list of previous releases]].  Previously you needed to select an appropriate name but we have not named releases for several years now. You willstill need to add the release though, including things like itsrelevant color. * [[Talk:Previous_releases_of_Gramps|Suggestions]] : For Gramps 5.0 <code>Just remember that you're standing on a planet that's evolving</code>
==Changelog and NEWS file==
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 add ChangeLog git add po/ChangeLog
*Edit and update the <code>NEWS</code> file using the new ChangeLog entries as a guide. If this is the first branch in a new series there will be no NEWS file, so look at a previous release and mimic the format.
Commit the NEWS file:
git add NEWS
git commit -m "Update Changelog and NEWS for {{version}} releasefiles"
==Working on VERSION==
* Modify <code>[https://github.com/gramps-project/gramps/blob/master/gramps/version.py gramps/version.py]</code> to indicate an official release:
- DEV_VERSION = True
+ DEV_VERSION = False
 
* Check that the <code>VERSION_TUPLE</code> reflects the release you're about to make. It should if the version was bumped after the last release. If not, fix it.
* Check that Add an entry to the <code>VERSION_TUPLE</code> in <code>[https://github.com/gramps-project/gramps/blob/mastermaintenance/grampsgramps52/data/versionorg.gramps_project.py gramps/versionGramps.metainfo.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:
* If everything looks good, push the changes:
git push origin maintenance/gramps{{Stable_branch}}
* If that fails then someone pushed a commit while you were working. Return to [https://gramps-project.org/wiki/index.php?title=[What_to_do_for_a_release#Prepare_your_repository |Prepare your repository]] and start over.
==Create a tag==
VERSION_TUPLE = (4, 2, ...)
Revert change on <code>gramps/gen/const.pyDEV_VERSION</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 Bump to <new version number>"
git push
* Go to [https://github.com/gramps-project/gramps Github] and log in if necessary.
* Select '''NN Releases''' from the line of items just above the thick line ('''NN''' is the number of releases so far).
* Find the tag you just pushed and click Editit, 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 on '''Stable''' or '''Unstable''' depending on the class of the release you're making.
* 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 GithubGitHub-generated tarball or create one localllylocally:
python3 setup.py 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.
==Announcing the new release==
* 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/introduction-WPblog/blog/ blog] (File under: [https://gramps-project.org/introduction-WPblog/category/releases/ Gramps Releases] and [https://gramps-project.org/introduction-WPblog/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]] (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)
* change the topic update release date on the IRC channel #gramps [[Download]] page (not needed for an alpha or beta release)<code> /TOPIC #gramps Welcome to Gramps! The latest versions are {{version}} and * change the legacy 3.4.9 || http://www.gramps-project.org/ || Please state OS Matrix room title and Gramps version when asking a question. Understand that replies can take up to 2 days depending on whose watching the IRC channel. Please consider asking on the gramps-users mailing list. </code>title (not needed for an alpha or beta release) * 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 [[Git: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 packages<!--:[[File:Linux 32x32.png]] please add link to instructions on building Gramps installers for Linux. proofed while building v5.1.3 :[[File:Beastie 32x32.png]] please add link to instructions on building Gramps installer for BSD. proofed while building v5.1.3 :[[File:Apple logo black 32x32.png]] please add link to instructions on building Gramps installer for Apple. proofed while building v5.1.3 -->* [[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
* [[.dtd and .rng]]
* [[Rollover_for_the_manual|Rollover for the Wiki]] - for major and minor 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=
* https://github.com/gramps-project
* httphttps://gramps-project.org/cpanel* http://svn.code.sf.net/p/gramps/code/* httphttps://sourceforge.net/projects/gramps/
[[Category:Developers/General]]
[[Category:Developers/Packaging]]