Changes

Jump to: navigation, search

What to do for a release

4,188 bytes added, 04:13, 23 September 2017
m
Announcing the new release
{{man note|Developer notes for '''What to do for a release '''}}
=Updated guidelines for Git =
==Translation 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==thisRun page first, to change the following numbers. But if you are onlymaking an "alpha" or "beta" release, somesteps:may be skipped, or altered slightly. git checkout gramps{{Stable_branch}}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. git pullProbably there should be a section of this cd popage which lists things like that ("Post-release" maybe?).
See [[Translation_environment4|New environment]] ==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 [[Talkmake sure that the local repo is up to date:Translation_environment4|differences between tools]] 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.
See also [https==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</githubcode> directory if there are new files that need to be scanned for translatable strings.comExamine each of the files listed in <code>missing</gramps-projectcode>, adding each to <code>POTFILES.in</gramps/blob/master/po/update_pocode> if it contains translatable string constants and to <code>POTFILES.py poskip</update_pocode> if it does not.py] to generate * Generate a new template/catalog (gramps.pot).)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 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."
For checking * 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 releases of 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==
Look at the changelog:
git log v{{version}}.. --pretty --numstat --summary --no-merges > ChangeLog
[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 <code>{{version}}</code> below means the ''previous'' version, not the one you're about to release (which is the<code>..</code>). 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 *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 {{version}} release"
==Working on VERSION==
* Check that the <code>VERSION_TUPLE</code> in <ttcode>[https://github.com/gramps-project/gramps/blob/master/gramps/version.py gramps/version.py]</ttcode> reflects the release you're about to indicate an official release: gedit gramps/versionmake.py  and It should if need, update the version for was bumped after the last release:. If not, fix it. VERSION_TUPLE = (4, 2, 0) * Modify <ttcode>[https://github.com/gramps-project/gramps/blob/master/gramps/gen/const.py#L132 gramps/gen/const.py]</ttcode> to indicate an official release:
- VERSION += git_revision
+ #VERSION += git_revision
* Save changethe changes: git add . git commit -am "make official releaseRelease Gramps {{version}}"
The * Check that the version number should be the same on "about" dialogis correct: python3 Gramps.pyor
python3 Gramps.py -v
 
* 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==
Create the release tag; note the '''v''' leading the actual tag.: git tag -am "tag Tag {{version}}" v{{version}} Tags should be prefixed with the letter v.
==Push to repository==
Push the changes to the repository:
git push origin v{{version}}
 
==Work on tag ==
===Move to the new release number on branch ===
Bump the version number in <ttcode>gramps/version.py</ttcode>
Update the version for the release:
VERSION_TUPLE = (4, 02, ...)
Revert change on <ttcode>gramps/gen/const.py</ttcode> to indicate so that the git revisionis appended to the reported version in non-release builds:
- #VERSION += get_git_revision
+ VERSION += get_git_revision
git commit -am "bump to <new version number>"
git push
 
===Release from tag===
 
git checkout <tag> -b <new_branch_name>
 
git log v{{version}}.. --pretty --numstat --summary --no-merges | git2cl > ChangeLog
cd po
git log v{{version}}.. --pretty --numstat --summary --no-merges -- *.po | git2cl > ChangeLog
 
Using the <tt>Changelog</tt> files generated with <tt>git2cl</tt>,
 
Modify <tt>MANIFEST.in</tt>
+ include ChangeLog
+ include po/ChangeLog
 
Create the official source tarball:
 
python3 setup.py sdist
 
==Making the source tarball available==
 
Create the <code>readme.rst</code> file containing the changes since the previous release.
 
===Sourceforge===
* access the "Sourceforge Project Admin->File Manager" page at https://sourceforge.net/projects/gramps/
or via your ''<dev>'' account:
$ sftp <dev>@frs.sourceforge.net
Connecting to frs.sourceforge.net...
Password:
sftp> cd /home/frs/project/gramps
* create a new folder in the "Stable" hierarchy
* upload the <tt>gramps-{{version}}.tar.gz</tt> file to the new folder
===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 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.
===SourceForge===* Go to [https://githubsourceforge.comnet/projects/gramps-project/grampsfiles/releasesthe SourceForge files page] and 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 locallly: python3 setup.py sdist* Click '''Add File''' and drag the tarball to the drop 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 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==
* merge forward the <ttcode>NEWS</ttcode> file
=See also=
* [[:Category:Developers/Packaging]]
* [[GrampsAIO-4 package updating]] - Updating the MS-Windows package
* [[:Category:AppData]] - Screenshots used by Appdata - Debian
=External links=
64
edits

Navigation menu