Home | History | Annotate | Download | only in bison
      1 Here 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 
     54 Once 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