Changes

Jump to: navigation, search

What to do for a release

2,111 bytes added, 04:13, 23 September 2017
m
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 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,which are related to making a new release, for instancemaking a new release-section here on the wiki, ormaking a new release-section on the bug tracker, ormaking new Debian and Mac and Windows packages, sothey will need to be coordinated with the appropriatepeople. Probably there should be a section of thispage which lists things like that ("Post-release" maybe?). ==Prepare your repository=Updated guidelines for Git =* 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.
==Translation update==
Run * Check for new files since the following stepslast release: git checkout gramps40 cd po git pull 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.* Generate a new template file: python python3 update_po.py -p # or intltool-update -p , makes a new gramps.pot template file git diff gramps.genpotpot:Examine the changes.sh see [[Translation_environment4|New environment]]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 diff 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 * if all is well, return to the root directory: cd ..
==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 willstill need to add the release though, including things like itsrelevant color.
==Changelog and NEWS file==
Create the changelog files:
git log gramps-4.0.1.. --pretty --numstat --summary --no-merges | git2cl > ChangeLog
git log gramps-4.0.1.. --pretty --numstat --summary --no-merges -- po | git2cl > po/ChangeLog
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<code>..<tt/code>). git log v{{version}}.. --pretty --numstat --summary --no-merges | git2cl<> ChangeLog git log v{{version}}.. --pretty --numstat --summary --no-merges -- po/tt*.po | git2cl > in the step above, edit po/ChangeLog git add 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 -am m "update Update NEWS for 4.0.2 {{version}} release"
==Working on VERSION==
* 4Check that the <code>VERSION_TUPLE</code> in <code>[https://github.0com/gramps-project/gramps/blob/master/gramps/version.xpy 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
Modify <tt>version.py</tt> to indicate an official release: gedit gramps/version.py and update * Save the version for the release: VERSION_TUPLE = (4, 0, 2)Save changechanges: git commit -am "make official releaseRelease Gramps {{version}}"
The * Check that the version number should be the same on "about" dialogis correct: python python3 Gramps.py-v
* 3.4.xIf everything looks good, push the changes:Modify <tt>configure.in< git push origin maintenance/tt> to indicate an official release:gramps{{Stable_branch}} gedit configure* If that fails then someone pushed a commit while you were working.inThere are two changes Return to make[https::1) Change the following line: //gramps-RELEASE=0project.SVN$(svnversion -n org/wiki/index.) +dnl RELEASEphp?title=0.SVN$(svnversion -n .):2) And change this line: -dnl RELEASE=1 +RELEASE=1Save these two changes. svn commit -m "make official release" configure.inNow run the following What_to_do_for_a_release#Prepare_your_repository Prepare your repository] and check the version number in the "about" dialog: ./autogen.sh make python src/grampsstart over.py
==Create a tag==
Create the release tag; note the '''v''' leading the actual tag.: git tag -am "tag 4.0.2Tag {{version}}" gramps-4.0.2v{{version}}
==Push to repository==
Push the changes to the repository:
git push origin gramps-4.0.2 ==Work on tag ==v{{version}}
===Move to the new release number on branch ===
* bump Bump the version number in <ttcode>gramps/version.py</ttcode>
Update the version for the release: VERSION_TUPLE ===Release from tag===(4, 2, ...)
git checkout Revert change on <tagcode> -b gramps/gen/const.py<new_branch_name/code>so that the git revision is appended to the reported version in non-release builds: - #VERSION += get_git_revision + VERSION += get_git_revision
Save change:
git commit -am "bump to <new version number>"
git push
===Github===* Gramps Github generates a tarball automatically when we push a tag.* Go to [https://github.com/gramps-3project/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 Edit.* 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.4
./autogen.sh make distcheck ==Changelog and source tarball=SourceForge=The Changelog files are required for the source tarball, but do not commit them to Git. #Copy files from [[#Changelog and NEWS file|previous run under branch]].#Modify <tt>MANIFEST.in</tt> + include ChangeLog Create the official source tarball: python setup.py sdist Note you should now have the file <tt>dist/gramps-4.0.2.tar.gz</tt>, approximately 14.7 Mo in size. ==Making the source tarball available==* 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 locallly: python3 setup.py sdist*.tar.gz</tt> file Click '''Add File''' and drag the tarball to the new folderdrop area on the web page.
==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/introduction-WP/blog/ blog] (File under: [https://gramps-project.org/introduction-WP/category/releases/ Gramps Releases] and [https://gramps-project.org/introduction-WP/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)* 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}} 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 Gramps Wikipedia]* announce freshmeat now known as [http://freecode.com/projects/gramps freecode], this is also a feed on the slashdot front page(not needed for an alpha or beta release)
==Post-release==
* in <tt>trunk</tt>, merge forward the <tt>NEWS</tt> file = Guidelines for version 4.0 = These notes are based on version 4.0.0alpha1, released in December 2012. The steps assume a working <tt>gramps40</tt> source directory. ==Translation update==Run the following steps: cd gramps40 svn update cd po python update_po.py -p # or intltool-update -p , .genpot.sh see [[Translation_environment4|New environment]] 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</ttcode> files before you can make a release. ==Release name==Refer to (and update) the [[Previous releases|list of previous releases]] to select an appropriate name. ==Changelog and NEWS file==Create the changelog files: svn2cl --reparagraph --include-rev --authors=data/authors.xml cd po svn2cl --reparagraph --include-rev --authors=../data/authors.xml cd .. 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 number, which you'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== Modify <tt>version.py</tt> to indicate an official release: gedit gramps/version.py and update the version for the release: VERSION_TUPLE = (4, 0, 0)Save change.  svn commit -m "make official release" gramps/version.py The version number should be the same on "about" dialog: python Gramps.py ==Subversion tag==Using the previous commit revision number, create a tag for the new release: svn copy -r 22385 https://svn.code.sf.net/p/gramps/code/branches/maintenance/gramps40 https://svn.code.sf.net/p/gramps/code/tags/gramps-4.0.0 -m "tag 4.0.0" Committed revision 22386. ==Changelog and source tarball==The Changelog files are required for the source tarball, but do not commit them to subversion. #Copy files from [[#Changelog and NEWS file|previous run under branch]].#Modify <tt>MANIFEST.in</tt> + include ChangeLog Create the official source tarball: python setup.py sdist Note you should now have the file <tt>dist/gramps-4.0.0.tar.gz</tt>, approximately 14.7 Mo in size. ==Making the source tarball available==* access the "Sourceforge Project Admin->File Manager" page at https://sourceforge.net/projects/gramps/* create a new folder in the "Stable" hierarchy* upload the <tt>gramps-*.tar.gz</tt> file to the new folder ==Announcing the new release==* announce on [email protected], [email protected] and [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://en.wikipedia.org/wiki/GRAMPS Wikipedia]* announce freshmeat now known as [http://freecode.com/projects/gramps freecode], this is also a feed on the slashdot front page ==Post-release==* bump the version number in <tt>gramps/version.py</tt>* in <tt>trunk</tt>, merge forward the <tt>NEWS</tt> file
=See also=
* [[Git|Brief introduction to SVNGit]]
* [[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
=External links=
* https://github.com/gramps-project
* http://gramps-project.org/cpanel
* http://svn.code.sf.net/p/gramps/code/
* http://gramps-project.org/cpanel
* http://sourceforge.net/projects/gramps/
[[Category:Developers/General]]
64
edits

Navigation menu