Blame README-release

Packit Service c3aa71
Here are most of the steps we (maintainers) follow when making a release.
Packit Service c3aa71
Packit Service c3aa71
* Start from a clean, up-to-date git directory on "master":
Packit Service c3aa71
Packit Service c3aa71
    make -k maintainer-clean || { ./configure && make maintainer-clean; }
Packit Service c3aa71
    git checkout master
Packit Service c3aa71
    git pull origin master
Packit Service c3aa71
Packit Service c3aa71
* Ensure that the latest stable versions of autoconf, automake, etc.
Packit Service c3aa71
  are in your PATH.  See the buildreq list in bootstrap.conf for
Packit Service c3aa71
  the complete list of tools.
Packit Service c3aa71
Packit Service c3aa71
* Ensure that you have no uncommitted diffs.  This should produce no
Packit Service c3aa71
  output:
Packit Service c3aa71
Packit Service c3aa71
    git diff
Packit Service c3aa71
Packit Service c3aa71
* Ensure that you've pushed all changes that belong in the release:
Packit Service c3aa71
Packit Service c3aa71
    git push origin master
Packit Service c3aa71
Packit Service c3aa71
* Check that the NixOS/Hydra autobuilder is reporting all is well:
Packit Service c3aa71
Packit Service c3aa71
    http://hydra.nixos.org/jobset/gnu/bison-master
Packit Service c3aa71
Packit Service c3aa71
* Run the following command to download any new translations:
Packit Service c3aa71
Packit Service c3aa71
    ./bootstrap && ./configure
Packit Service c3aa71
Packit Service c3aa71
* Pre-release testing: ensure that the following command succeeds:
Packit Service c3aa71
Packit Service c3aa71
    make check syntax-check distcheck
Packit Service c3aa71
Packit Service c3aa71
* To (i) set the date, version number, and release TYPE on line 3 of
Packit Service c3aa71
  NEWS, (ii) commit that, and (iii) tag the release, run
Packit Service c3aa71
Packit Service c3aa71
    # "TYPE" must be stable, beta or alpha
Packit Service c3aa71
    make release-commit RELEASE='X.Y TYPE'
Packit Service c3aa71
Packit Service c3aa71
* Run the following to create release tarballs.  Your choice selects the
Packit Service c3aa71
  corresponding upload-to destination in the emitted gnupload command.
Packit Service c3aa71
  The different destinations are specified in cfg.mk.  See the definitions
Packit Service c3aa71
  of gnu_ftp_host-{alpha,beta,stable}.
Packit Service c3aa71
Packit Service c3aa71
    make release RELEASE='X.Y TYPE'
Packit Service c3aa71
Packit Service c3aa71
* Test the tarball.  Copy it to a few odd-ball systems and ensure that
Packit Service c3aa71
  it builds and passes all tests.
Packit Service c3aa71
Packit Service c3aa71
* While that's happening, write the release announcement that you will
Packit Service c3aa71
  soon post.  Start with the template, $HOME/announce-bison-X.Y
Packit Service c3aa71
  that was just created by that "make" command.
Packit Service c3aa71
Packit Service c3aa71
Once all the builds and tests have passed,
Packit Service c3aa71
Packit Service c3aa71
* Run the gnupload command that was suggested by your "make release"
Packit Service c3aa71
  run above, or run
Packit Service c3aa71
Packit Service c3aa71
    make upload RELEASE='X.Y TYPE'
Packit Service c3aa71
Packit Service c3aa71
* Wait a few minutes (maybe up to 30?) and then use the release URLs to
Packit Service c3aa71
  download all tarball/signature pairs and use gpg --verify to ensure
Packit Service c3aa71
  that they're all valid.
Packit Service c3aa71
Packit Service c3aa71
* Push the NEWS-updating changes and the new tag:
Packit Service c3aa71
Packit Service c3aa71
    v=$(cat .prev-version)
Packit Service c3aa71
    git push origin master tag v$v
Packit Service c3aa71
Packit Service c3aa71
* Announce it on Savannah first, so you can include the savannah.org
Packit Service c3aa71
  announcement link in the email message.
Packit Service c3aa71
Packit Service c3aa71
  Go to the news-submission form:
Packit Service c3aa71
Packit Service c3aa71
    https://savannah.gnu.org/news/submit.php?group=bison
Packit Service c3aa71
Packit Service c3aa71
  If it does not work, then enable "News" for the project via this link:
Packit Service c3aa71
Packit Service c3aa71
    https://savannah.gnu.org/project/admin/editgroupfeatures.php?group=bison
Packit Service c3aa71
Packit Service c3aa71
  Write something like the following:
Packit Service c3aa71
Packit Service c3aa71
    Subject: bison-X.Y released [stable]
Packit Service c3aa71
    +verbatim+
Packit Service c3aa71
    ...paste the announcement here...
Packit Service c3aa71
    -verbatim-
Packit Service c3aa71
Packit Service c3aa71
  Then go here to approve it:
Packit Service c3aa71
Packit Service c3aa71
    https://savannah.gnu.org/news/approve.php?group=bison
Packit Service c3aa71
Packit Service c3aa71
* Send the announcement email message.
Packit Service c3aa71
Packit Service c3aa71
* After each non-alpha release, run
Packit Service c3aa71
Packit Service c3aa71
    make web-manual-update
Packit Service c3aa71
Packit Service c3aa71
  to update the on-line manual accessible at
Packit Service c3aa71
Packit Service c3aa71
    http://www.gnu.org/software/bison/manual/