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