find-maint: Making Releases
13 Making Releases
******************
This section will explain how to make a findutils release. For the time
being here is a terse description of the main steps:
1. Commit changes; make sure your working directory has no uncommitted
changes.
2. Update translation files; re-run bootstrap to download the newest
'.po' files.
3. Make sure compiler warnings would block the release; re-run
'configure' with the options '--enable-compiler-warnings
--enable-compiler-warnings-are-errors'.
4. Test; make sure that all changes you have made have tests, and that
the tests pass. Verify this with 'env RUN_EXPENSIVE_TESTS=yes make
distcheck'.
5. Bugs; make sure all Savannah bug entries fixed in this release are
marked as fixed in Savannah. Optionally close them too to save
duplicate work (otherwise, close them after the release is
uploaded).
6. Add new release in Savannah field values; see the 'Bugs > Edit
Field Values' menu item. Add a field value for the release you are
about to make so that users can report bugs in it.
7. Update version; make sure that the NEWS file is updated with the
new release number (and checked in).
8. Tag the release; findutils releases are tagged like this for
example: v4.5.5. You can create a tag with the a command like
this:
git tag -s -m "Findutils release X.Y.Z" vX.Y.Z
9. Build the release tarball; do this with 'make distcheck'. Copy the
tarball somewhere safe.
10. Merge; if the release (and signed tag) were made on a local
branch, merge the branch to your local master.
11. Push; push your master to origin/master.
12. Push the new release tag; assuming that the name of your remote is
'origin', this is:
git push origin tag vX.Y.Z
13. Prepare the upload and upload it. You can do this with
build-aux/gnupload --to ftp.gnu.org:findutils findutils-X.Y.Z.tar.xz
Use 'alpha.gnu.org:findutils' for an alpha or beta release. ⇒
Automated FTP Uploads (maintain)Automated FTP Uploads, for
detailed upload instructions.
14. Check the FTP upload worked; you can look for an email from the
robot or check the contents of the actual FTP site.
15. Make a release announcement; include an extract from the NEWS file
which explains what's changed. Announcements for test releases
should just go to <bug-findutils@gnu.org>. Announcements for
stable releases should go to <info-gnu@gnu.org> as well.
16. Post-release administrativa: add a new dummy release header in
NEWS:
'* Major changes in release ?.?.?, YYYY-MM-DD'
and update the 'old_NEWS_hash' in 'cfg.mk' with 'make
update-NEWS-hash'. Commit both changes.
17. Close bugs; any bugs recorded on Savannah which were fixed in this
release should now be marked as closed if there were not already.
Update the 'Fixed Release' field of these bugs appropriately and
make sure the 'Assigned to' field is populated.