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.