914
edits
Changes
→Announcing the new 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 [[What_to_do_for_a_release#Post-release|Post release]] 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, or making new Debian and Mac and Windows packages, so they will need to be coordinated with the appropriate people. ==Translation updatePrepare your repository==Run * Check out the following stepscurrent stable branch: git checkout maintenance/gramps{{Stable_branch}} :That branch name assumes that you're using the same name as the Github repository; if you're not (perhaps you don't use <code>maintenance</code> in the name) use your local name.* Make sure that your local copy is clean: git status: If you have any uncommitted changes, either commit them now or stash them until after you've completed the release.* Clean up any untracked files and make sure that the local repo is up to date: git clean -fdx git pull--rebase:If you had commits that hadn't been pushed yet they'll show up as "applying" messages in the output of this command. If that's the case re-run the tests and push as usual.* Build and test to make sure that everything works, then clean the repo of all build products. ===Check the About box year=== Check if the year in the {{man label|About}} box needs to be updated eg: ''© 2007-2018 The Gramps Developers'' to ''© 2007-'''2019''' The Gramps Developers''. Found in <code>gramps/gen/const.py</code> ===API docs update year===If needed in the file: docs/conf.py Update the year for the copyright. copyright = '2001-2019, The Gramps Project' ===Update Classifier in setup.py===Change [https://pypi.python.org/pypi?%3Aaction=list_classifiers Classifier] to the appropriate one in [https://github.com/gramps-project/gramps/blob/maintenance/gramps50/setup.py setup.py] (master is always the first one) <pre>Development Status :: 1 - PlanningDevelopment Status :: 2 - Pre-AlphaDevelopment Status :: 3 - AlphaDevelopment Status :: 4 - BetaDevelopment Status :: 5 - Production/Stable</pre> Check if any additional language classifier needs to be added also.
If there have been changes on <code>msgid<the release is '''Production/code> entries, youStable''' make sure that the '''behavior.betawarn'''ll need key value has been set to commit <code>gramps'''False''' e.g.pot<, https:/code> and ask translators to update their <tt>/github.po<com/tt> files before you can make a release.gramps-project/gramps/commit/9dc976f28dc16c514e9e8e0b0fa09338bfe04f8a#diff-3d9e6dc03ea37a4b7f7975db17f16509
==Working on VERSIONTranslation 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 <code>[https://github.com/gramps-project/gramps/blob/master/gramps/version.py gramps/version.py]</code> to indicate an official releasecurrent translation files (there must be no 'fatal' errors): gedit gramps/version python3 update_po.py -k all
==Include ChangeLog filesChangelog 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''.
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 -am m "Update ChangeLog Changelog and NEWS files" ==Working on VERSION== * Check that the <code>VERSION_TUPLE</code> in <code>[https://github.com/gramps-project/gramps/blob/master/gramps/version.py gramps/version.py]</code>reflects the release you're about to make. It should if the version was bumped after the last release. If not, fix it. * 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 the changes: git pushcommit -am "Release Gramps {{version}}" * Check that the version number is correct: python3 Gramps.py -v
==Push to repository==
Push the changes to the repository:
git push origin v{{version}}
===Move to the new release number on branch ===
Update the version for the release:
VERSION_TUPLE = (4, 02, ...)
Revert change on <code>gramps/gen/const.py</code> to indicate so that the git revisionis appended to the reported version in non-release builds:
- #VERSION += get_git_revision
+ VERSION += get_git_revision
Save change:
git commit -am "bump Bump to <new version number>"
git push
===Github===
* Automatically created Github generates a tarball automatically when taggedwe push a tag.* 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 releasesso far).* 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.* Click '''Publish Release''' at the bottom of the edit area when you're satisfied with the contents.
===SourceForge===* Edit Go to [https://sourceforge.net/projects/gramps/files/ the tag SourceForge files page] and publish log in if necessary.* 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 GitHub-generated tarball or create one locally: python3 setup.py sdist* Click '''Add File''' and drag the tarball to the drop area on the web page.* Copy the releasenotes 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 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]](not needed for an alpha or beta release)* update [[HeadlineNews]](not needed for an alpha or beta release)* update release date on the [[Download]] page (not needed for an alpha or beta release)* have the IRC channel admin ([[Template:Reviews/ReviewList#General|tosky]]) change the topic on the IRC channel #gramps(not needed for an alpha or beta release) <code> /TOPIC #gramps Welcome to Gramps! The latest versions are version is {{version}} and the legacy 3.4.9 || httphttps://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 databasenot needed for an alpha or beta release) and enable the new version via Admin:Projects item for reporting issues.
==Post-release==
=See also=
* [[Git|Brief introduction to Git]]
* [[Running a development version of Gramps]]
* [[:Category:Developers/Packaging]]
* [[GrampsAIOBuilding Gramps AIO cx freeze-4 package updatingbased]] - Updating the MS-Windows package
* [[:Category:AppData]] - Screenshots used by Appdata - Debian
* [[.dtd and .rng]]
=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]]