Changes

Jump to: navigation, search

What to do for a release

5,913 bytes added, 19:24, 27 July 2021
m
Announcing the new release: Added compact list of Version templates where all the Values are also visible for inspection
{{man note|Developer notes for '''What to do for a release '''= Guidelines for version 4.0 =}}
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.  ==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===Run The translation template should be updated, if necessary, just before the following stepsstring freeze is announced.* Check for new files since the last release: cd gramps40po svn intltool-update-m cd :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. python * Generate a new template file: python3 update_po.py -p# makes a new gramps.pot template file svn 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 changeson <code>msgid</code> entries, you'll need to commit <ttcode>gramps.pot</ttcode> 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  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. ==Prepare your repository==* Check out the current 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-2020 The Gramps Developers'' to ''© 2007-'''2021''' The Gramps Developers''. Found in <code>gramps/gen/const.py</code> ===API docs update year===If needed in the file: docs/conf.py
==Release name==
Refer to (and update) the [[Previous releases|list of previous releases]] to select an appropriate name.
==Changelog and NEWS file==Create Update the changelog files: svn2cl --reparagraph --include-rev --authors=gramps/data/authors.xml cd po svn2cl --reparagraph --include-rev --authors=../gramps/data/authors.xml cd .year for the copyright.
Using the <tt>Changelog</tt> files generated with <tt>svn2cl</tt> in the step above, edit and update the <tt>NEWS</tt> file.Commit the NEWS file. Note the svn commit revision numbercopyright = '2001-2019, which youThe Gramps Project'll need in the next step when you create the subversion tag: svn commit -m "update for 4.0.0-alpha1 release" Committed revision 20810.
==Working on VERSION=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)
Modify <ttpre>setup.py</tt> to indicate an official releaseDevelopment Status ::1 - Planning gedit setup.py Development Status :: 2 - Pre-Alphaand update the version for the releaseDevelopment Status :: 3 - Alpha VERSION = "Development Status :: 4.0.0-alpha1"BetaSave change. svn commit Development Status :: 5 -m "make official release" setup.pyProduction/StableThe version number should be the same on "about" dialog: python Gramps.py</pre>
==Subversion tag==Using the previous commit revision number, create a tag for the new release: svn copy -r 20810 https://svn.code.sf.net/p/gramps/code/branches/maintenance/gramps40 https://svn.code.sf.net/p/gramps/code/tags/gramps-4.0.0-alpha1 -m "tag 4.0.0 alpha1" Committed revision 20811Check if any additional language classifier needs to be added also.
==Changelog and source tarball==
The Changelog files are required for the source tarball, but do not commit to subversion:
svn2cl --reparagraph --include-rev --authors=gramps/data/authors.xml
cd po
svn2cl --reparagraph --include-rev --authors=../gramps/data/authors.xml
cd ..
Create the official source tarball:
python setup.py sdist
Note you should now have ===Update the file <tt>dist/gramps-4.0.0-alpha1.tar.gz</tt>, approximately 12.2 Mo in size'behavior.betawarn' key value===
==Making If the source tarball available==* access release is '''Production/Stable''' make sure that the "Sourceforge Project Admin->File Manager" page at '''behavior.betawarn''' key value has been set to '''False''' e.g., https://sourceforgegithub.netcom/projectsgramps-project/gramps/* create a new folder in the "Unstable" hierarchy* upload the <tt>grampscommit/9dc976f28dc16c514e9e8e0b0fa09338bfe04f8a#diff-*.tar.gz</tt> file to the new folder3d9e6dc03ea37a4b7f7975db17f16509
==Announcing the new release==Found in * announce on gramps-announce@lists/gen/config.sourceforge.net, [email protected] pyand [email protected]* update [[News]] section on this wiki* update the list of [[previous releases]]* update reference to the new version on the [[Template:Version|wiki template]]* change the topic on the IRC channel # gramps* update the version number at [http:/gui/en.wikipediagrampsgui.org/wiki/GRAMPS Wikipedia]py
==Post-release==
* in <tt>trunk</tt>, merge forward the <tt>NEWS</tt> file
= Guidelines for version 3.4 and before =These notes are based on version 3.4.1, released Please note that in August 2012. The steps assume a working <tt>gramps34</tt> source directoryGramps master this key is always '''True'''.
==Translation update==Run the following steps: cd gramps34 svn update cd po make gramps.pot svn diff gramps.potIf there have been changes, you'll need to commit <tt>gramps.pot</tt> and ask translators to update their <tt>.po</tt> files before you can make a release.See also {{bug|11274}}
==Release name==
Refer to (and update) the [[Previous releasesof Gramps|list of previous releases]] . Previously you needed to select an appropriate namebut we have not named releases for several years now. You will still need to add the release though, including things like its relevant 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==
Create the changelog files:
svn2cl --reparagraph --include-rev --authors=src/data/authors.xml
cd po
svn2cl --reparagraph --include-rev --authors=../src/data/authors.xml
cd ..
Using [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''.  Note that the <ttcode>Changelog{{version}}</ttcode> files generated with below means the ''previous'' version, not the one you're about to release (which is the<ttcode>svn2cl..</ttcode>). git log v{{version}}.. --pretty --numstat --summary --no-merges | git2cl > ChangeLog git log v{{version}}.. --pretty --numstat --summary --no-merges -- po/*.po | git2cl > in the step above, edit po/ChangeLog git add ChangeLog git add po/ChangeLog*Edit and update the <ttcode>NEWS</ttcode> fileusing 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 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: Note - VERSION += git_revision + #VERSION += git_revision * Save the svn changes: git commit revision -am "Release Gramps {{version}}" * Check that the version numberis correct: python3 Gramps.py -v * If everything looks good, which push the changes: git push origin maintenance/gramps{{Stable_branch}}* If that fails then someone pushed a commit while youwere working. Return to [[What_to_do_for_a_release#Prepare_your_repository|Prepare your repository]] and start over. ==Create a tag==Create the release tag; note the '''ll need in the next step when you create v''' leading the subversion actual tag.: svn commit git tag -m am "update for 3.4.1 releaseTag {{version}}"v{{version}} ==Push to repository==Push the changes to the repository: Committed revision 20254.git push origin v{{version}} ===Move to the new release number on branch ===
==Subversion tag==Using Bump the previous commit revision version number, create a tag for the new release: svn copy -r 20254 https://svn.in <code.sf.net/p/>gramps/code/branches/maintenance/gramps34 https://svn.code.sfversion.net/p/grampspy</code/tags/gramps-3.4.1 -m "tag 3.4.1" Committed revision 20255.>
==Working on Update the tag==Check out version for the new tagrelease: cd .. svn co https://svn.code.sf.net/p/gramps/code/tags/gramps-3.VERSION_TUPLE = (4, 2, .1 cd gramps-3.4.1)
Modify Revert change on <ttcode>configuregramps/gen/const.inpy</ttcode> so that the git revision is appended to indicate an official the reported version in non-release: gedit configure.inThere are two changes to make::1) Change the following linebuilds: -RELEASE#VERSION +=0.SVN$(svnversion -n .)get_git_revision +dnl RELEASE=0.SVN$(svnversion -n .):2) And change this line: -dnl RELEASE=1 VERSION +RELEASE=1Save these two changes. svn commit -m "make official release" configure.inNow run the following and check the version number in the "about" dialog: ./autogen.sh make python src/gramps.pyget_git_revision
==Changelog and source tarball==Save change:Re-create (or copy from above) the 2 Changelog files. The Changelog files are required for the source tarball, but do not git commit -am "Bump to subversion: svn2cl --reparagraph --include-rev --authors=src/data/authors.xml cd po svn2cl --reparagraph --include-rev --authors=../src/data/authors.xml cd ..Create the official source tarball:<new version number>" make distcheckgit push
Note you should now have the file <tt>===Github===* Github generates a tarball automatically when we push a tag.* Go to [https://github.com/gramps-3project/gramps Github] and log in if necessary.4* Select '''NN Releases''' from the line of items just above the thick line ('''NN''' is the number of releases so far).1* Find the tag you just pushed and click it, or click the "Draft a new release" button.tar* Copy the NEWS file contents into the '''Write''' tab.gz</tt>, approximately 9You can use the '''Preview''' tab to check your formatting.6 Mo in size* Click '''Publish Release''' at the bottom of the edit area when you're satisfied with the contents.
==Making the source tarball available=SourceForge===* access the "Sourceforge Project Admin->File Manager" page at Go to [https://sourceforge.net/projects/gramps/files/ the SourceForge files page] and log in if necessary.* Click on '''Stable''' or '''Unstable''' depending on the class of the release you're making.* create a new folder in Click '''Add Folder''' and name the directory for the release version. Click "Stable'Create'" hierarchy. Click your new folder to enter it.* upload You can either download the <tt>grampsGitHub-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.tar* Copy the release notes from GitHub into a file called README.md and upload it.gz</tt> file to the new folder
==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/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)* 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 date on the [[Download]] page (not needed for an alpha or beta release)* change the topic on the Matrix room title and IRC channel #grampstitle (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==
* in <tt>gramps34</tt>, bump the version number in <tt>configure.in</tt> and <tt>src/const.py.in</tt>* in <tt>trunk</tt>, merge forward the <ttcode>NEWS</ttcode> file
=See also=
*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 SVNGit]]
* [[Running a development version of Gramps]]
* [[:Category:Developers/Packaging]]
* [[: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=
* httphttps://svngithub.code.sf.net/pcom/gramps/code/-project* httphttps://gramps-project.org/cpanel* httphttps://sourceforge.net/projects/gramps/
[[Category:Developers/General]]
4,529
edits

Navigation menu