1Here are most of the steps we (maintainers) follow when making a release. 2 3* Start from a clean, up-to-date git directory on "master": 4 5 make -k maintainer-clean || { ./configure && make maintainer-clean; } 6 git checkout master 7 git pull origin master 8 9* Ensure that the latest stable versions of autoconf, automake, etc. 10 are in your PATH. See the buildreq list in bootstrap.conf for 11 the complete list of tools. 12 13* Ensure that you have no uncommitted diffs. This should produce no 14 output: 15 16 git diff 17 18* Ensure that you've pushed all changes that belong in the release: 19 20 git push origin master 21 22* Check that the NixOS/Hydra autobuilder is reporting all is well: 23 24 http://hydra.nixos.org/jobset/gnu/bison-master 25 26* Run the following command to download any new translations: 27 28 ./bootstrap && ./configure 29 30* Pre-release testing: ensure that the following command succeeds: 31 32 make check syntax-check distcheck 33 34* To (i) set the date, version number, and release TYPE on line 3 of 35 NEWS, (ii) commit that, and (iii) tag the release, run 36 37 # "TYPE" must be stable, beta or alpha 38 make release-commit RELEASE='X.Y TYPE' 39 40* Run the following to create release tarballs. Your choice selects the 41 corresponding upload-to destination in the emitted gnupload command. 42 The different destinations are specified in cfg.mk. See the definitions 43 of gnu_ftp_host-{alpha,beta,stable}. 44 45 make release RELEASE='X.Y TYPE' 46 47* Test the tarball. Copy it to a few odd-ball systems and ensure that 48 it builds and passes all tests. 49 50* While that's happening, write the release announcement that you will 51 soon post. Start with the template, $HOME/announce-bison-X.Y 52 that was just created by that "make" command. 53 54Once all the builds and tests have passed, 55 56* Run the gnupload command that was suggested by your "make release" 57 run above, or run 58 59 make upload RELEASE='X.Y TYPE' 60 61* Wait a few minutes (maybe up to 30?) and then use the release URLs to 62 download all tarball/signature pairs and use gpg --verify to ensure 63 that they're all valid. 64 65* Push the NEWS-updating changes and the new tag: 66 67 v=$(cat .prev-version) 68 git push origin master tag v$v 69 70* Announce it on Savannah first, so you can include the savannah.org 71 announcement link in the email message. 72 73 Go to the news-submission form: 74 75 https://savannah.gnu.org/news/submit.php?group=bison 76 77 If it does not work, then enable "News" for the project via this link: 78 79 https://savannah.gnu.org/project/admin/editgroupfeatures.php?group=bison 80 81 Write something like the following: 82 83 Subject: bison-X.Y released [stable] 84 +verbatim+ 85 ...paste the announcement here... 86 -verbatim- 87 88 Then go here to approve it: 89 90 https://savannah.gnu.org/news/approve.php?group=bison 91 92* Send the announcement email message. 93 94* After each non-alpha release, run 95 96 make web-manual-update 97 98 to update the on-line manual accessible at 99 100 http://www.gnu.org/software/bison/manual/ 101