mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-09 12:23:04 +00:00
maint: update release procedure
* bootstrap.conf: Request do-release-commit-and-tag and readme-release. * README-hacking: Adjust.
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -31,3 +31,4 @@
|
|||||||
/patches
|
/patches
|
||||||
/releases
|
/releases
|
||||||
/stamp-h*
|
/stamp-h*
|
||||||
|
/README-release
|
||||||
|
|||||||
105
README-hacking
105
README-hacking
@@ -70,8 +70,9 @@ out-of-date version of the C code, but the process is not foolproof.
|
|||||||
Also, you may run into similar problems yourself if you modify Bison.
|
Also, you may run into similar problems yourself if you modify Bison.
|
||||||
|
|
||||||
Only building the initial full source tree will be a bit painful.
|
Only building the initial full source tree will be a bit painful.
|
||||||
Later, after synchronizing from the repository a plain `make' should
|
Later, after synchronizing from the repository a plain 'make' should
|
||||||
be sufficient.
|
be sufficient. Note, however, that when gnulib is updated, running
|
||||||
|
'./bootstrap' again might be needed.
|
||||||
|
|
||||||
** First checkout
|
** First checkout
|
||||||
|
|
||||||
@@ -118,14 +119,14 @@ explicitly by the user.
|
|||||||
|
|
||||||
*** Updating Bison
|
*** Updating Bison
|
||||||
|
|
||||||
If you pull a newer version of a branch, say via `git pull', you might
|
If you pull a newer version of a branch, say via "git pull", you might
|
||||||
import requests for updated submodules. A simple `git diff' will
|
import requests for updated submodules. A simple "git diff" will
|
||||||
reveal if the current version of the submodule (i.e., the actual
|
reveal if the current version of the submodule (i.e., the actual
|
||||||
contents of the gnulib directory) and the current request from the
|
contents of the gnulib directory) and the current request from the
|
||||||
subscriber (i.e., the reference of the version of gnulib that the
|
subscriber (i.e., the reference of the version of gnulib that the
|
||||||
Bison reporitory requests) differ. To upgrade the submodules (i.e.,
|
Bison reporitory requests) differ. To upgrade the submodules (i.e.,
|
||||||
to check out the version that is actually requested by the subscriber,
|
to check out the version that is actually requested by the subscriber,
|
||||||
run `git submodule update'.
|
run "git submodule update".
|
||||||
|
|
||||||
$ git pull
|
$ git pull
|
||||||
$ git submodule update
|
$ git submodule update
|
||||||
@@ -177,39 +178,43 @@ release:
|
|||||||
that 1. Bison compiles cleanly, 2. the parsers it produces compile
|
that 1. Bison compiles cleanly, 2. the parsers it produces compile
|
||||||
cleanly too.
|
cleanly too.
|
||||||
|
|
||||||
- Build with -DGNULIB_POSIXCHECK. It suggests gnulib modules that can
|
- Maybe build with -DGNULIB_POSIXCHECK, which suggests gnulib modules
|
||||||
fix portability issues.
|
that can fix portability issues. See if you really want to pay
|
||||||
|
attention to its warnings; there's no need to obey blindly to it
|
||||||
|
(<http://lists.gnu.org/archive/html/bison-patches/2012-05/msg00057.html>).
|
||||||
|
|
||||||
- Check with `make syntax-check' if there are issues diagnosed by
|
- Check with "make syntax-check" if there are issues diagnosed by
|
||||||
gnulib.
|
gnulib.
|
||||||
|
|
||||||
- run `make maintainer-check' which:
|
- run "make maintainer-check" which:
|
||||||
- runs `valgrind -q bison' to run Bison under Valgrind.
|
- runs "valgrind -q bison" to run Bison under Valgrind.
|
||||||
- runs the parsers under Valgrind.
|
- runs the parsers under Valgrind.
|
||||||
- runs the test suite with G++ as C compiler...
|
- runs the test suite with G++ as C compiler...
|
||||||
|
|
||||||
- run `make maintainer-push-check', which runs `make maintainer-check'
|
- run "make maintainer-push-check", which runs "make maintainer-check"
|
||||||
while activating the push implementation and its pull interface wrappers
|
while activating the push implementation and its pull interface wrappers
|
||||||
in many test cases that were originally written to exercise only the
|
in many test cases that were originally written to exercise only the
|
||||||
pull implementation. This makes certain the push implementation can
|
pull implementation. This makes certain the push implementation can
|
||||||
perform every task the pull implementation can.
|
perform every task the pull implementation can.
|
||||||
|
|
||||||
- run `make maintainer-xml-check', which runs `make maintainer-check'
|
- run "make maintainer-xml-check", which runs "make maintainer-check"
|
||||||
while checking Bison's XML automaton report for every working grammar
|
while checking Bison's XML automaton report for every working grammar
|
||||||
passed to Bison in the test suite. The check just diffs the output of
|
passed to Bison in the test suite. The check just diffs the output of
|
||||||
Bison's included XSLT style sheets with the output of --report=all and
|
Bison's included XSLT style sheets with the output of --report=all and
|
||||||
--graph.
|
--graph.
|
||||||
|
|
||||||
- running `make maintainer-release-check' takes care of running
|
- running "make maintainer-release-check" takes care of running
|
||||||
maintainer-check, maintainer-push-check and maintainer-xml-check.
|
maintainer-check, maintainer-push-check and maintainer-xml-check.
|
||||||
|
|
||||||
- Change tests/atlocal/CFLAGS to add your preferred options. For
|
- Change tests/atlocal/CFLAGS to add your preferred options. For
|
||||||
instance, `-traditional' to check that the parsers are K&R. Note
|
instance, "-traditional" to check that the parsers are K&R. Note
|
||||||
that it does not make sense for glr.c, which should be ANSI,
|
that it does not make sense for glr.c, which should be ANSI, but
|
||||||
but currently is actually GNU C, nor for lalr1.cc.
|
currently is actually GNU C, nor for lalr1.cc.
|
||||||
|
|
||||||
|
|
||||||
* Release Procedure
|
* Release Procedure
|
||||||
|
This section needs to be updated to take into account features from
|
||||||
|
gnulib. In particular, be sure to read README-release.
|
||||||
|
|
||||||
** Update the submodules. See above.
|
** Update the submodules. See above.
|
||||||
|
|
||||||
@@ -225,7 +230,7 @@ This helps: grep -l '\<_(' *
|
|||||||
See above.
|
See above.
|
||||||
|
|
||||||
** Update the foreign files
|
** Update the foreign files
|
||||||
Running `./bootstrap' in the top level should update them all for you.
|
Running "./bootstrap" in the top level should update them all for you.
|
||||||
This covers PO files too. Sometimes a PO file contains problems that
|
This covers PO files too. Sometimes a PO file contains problems that
|
||||||
causes it to be rejected by recent Gettext releases; please report
|
causes it to be rejected by recent Gettext releases; please report
|
||||||
these to the Translation Project.
|
these to the Translation Project.
|
||||||
@@ -237,7 +242,7 @@ Bison sources.
|
|||||||
|
|
||||||
** Check copyright years.
|
** Check copyright years.
|
||||||
We update years in copyright statements throughout Bison once at the
|
We update years in copyright statements throughout Bison once at the
|
||||||
start of every year by running `make update-copyright'. However, before
|
start of every year by running "make update-copyright". However, before
|
||||||
a release, it's good to verify that it's actually been run. Besides the
|
a release, it's good to verify that it's actually been run. Besides the
|
||||||
copyright statement for each Bison file, check the copyright statements
|
copyright statement for each Bison file, check the copyright statements
|
||||||
that the skeletons insert into generated parsers, and check all
|
that the skeletons insert into generated parsers, and check all
|
||||||
@@ -248,55 +253,57 @@ The version number, *and* the date of the release (including for
|
|||||||
betas).
|
betas).
|
||||||
|
|
||||||
** Mention the release name in a commit message
|
** Mention the release name in a commit message
|
||||||
Should have an entry similar to `Version 2.3b.'.
|
Should have an entry similar to "Version 2.3b.".
|
||||||
|
|
||||||
** Tag the release
|
** Tag the release
|
||||||
Before Bison will build with the right version number, you must tag
|
Before Bison will build with the right version number, you must tag
|
||||||
the release in git. Do this after all other changes. The command is
|
the release in git. Do this after all other changes. The command is
|
||||||
similar to:
|
similar to:
|
||||||
|
|
||||||
git tag -a v2.3b
|
git tag -a v2.3b -m "Bison 2.3b."
|
||||||
|
|
||||||
The commit message can be simply:
|
|
||||||
|
|
||||||
Bison 2.3b
|
|
||||||
|
|
||||||
** Push
|
** Push
|
||||||
Once `make distcheck' passes, push your changes and the tag.
|
Once "make distcheck" passes, push your changes and the tag.
|
||||||
`git push' without arguments will not push the tag.
|
"git push" without arguments will not push the tag.
|
||||||
|
|
||||||
** make alpha
|
** make alpha, beta, or release
|
||||||
FIXME: `make alpha' is not maintained and is broken. These
|
See README-release.
|
||||||
instructions need to be replaced or removed.
|
|
||||||
|
|
||||||
Running `make alpha' is absolutely perfect for beta releases: it makes
|
|
||||||
the tarballs, the xdeltas, and prepares (in /tmp/) a proto
|
|
||||||
announcement. It is so neat, that that's what I use anyway for
|
|
||||||
genuine releases, but adjusting things by hand (e.g., the urls in the
|
|
||||||
announcement file, the ChangeLog which is not needed etc.).
|
|
||||||
|
|
||||||
If it fails, you're on your own...
|
|
||||||
|
|
||||||
It requires GNU Make.
|
|
||||||
|
|
||||||
** Upload
|
** Upload
|
||||||
The generic GNU upload procedure is at:
|
There are two ways to upload the tarballs to the GNU servers: using
|
||||||
|
gnupload (from gnulib), or by hand. Obviously prefer the former. But
|
||||||
|
in either case, be sure to read the following paragraph.
|
||||||
|
|
||||||
http://www.gnu.org/prep/maintain/maintain.html#Automated-FTP-Uploads
|
*** Setup
|
||||||
|
You need "gnupg".
|
||||||
|
|
||||||
Follow the instructions there to register your information so you're permitted
|
Make sure your public key has been uploaded at least to
|
||||||
to upload. Make sure your public key has been uploaded at least to
|
|
||||||
keys.gnupg.net. You can upload it with:
|
keys.gnupg.net. You can upload it with:
|
||||||
|
|
||||||
gpg --keyserver keys.gnupg.net --send-keys F125BDF3
|
gpg --keyserver keys.gnupg.net --send-keys F125BDF3
|
||||||
|
|
||||||
where F125BDF3 should be replaced with your key ID.
|
where F125BDF3 should be replaced with your key ID.
|
||||||
|
|
||||||
|
*** Using gnupload
|
||||||
|
You need "ncftp".
|
||||||
|
|
||||||
|
At the end "make release" (or alpha/beta) will display the prodecure
|
||||||
|
to run. Just copy and paste it in your shell.
|
||||||
|
|
||||||
|
*** By hand
|
||||||
|
|
||||||
|
The generic GNU upload procedure is at:
|
||||||
|
|
||||||
|
http://www.gnu.org/prep/maintain/maintain.html#Automated-FTP-Uploads
|
||||||
|
|
||||||
|
Follow the instructions there to register your information so you're permitted
|
||||||
|
to upload.
|
||||||
|
|
||||||
Here's a brief reminder of how to roll the tarballs and upload them:
|
Here's a brief reminder of how to roll the tarballs and upload them:
|
||||||
|
|
||||||
*** make distcheck
|
*** make distcheck
|
||||||
*** gpg -b bison-2.3b.tar.gz
|
*** gpg -b bison-2.3b.tar.gz
|
||||||
*** In a file named `bison-2.3b.tar.gz.directive', type:
|
*** In a file named "bison-2.3b.tar.gz.directive", type:
|
||||||
|
|
||||||
version: 1.1
|
version: 1.1
|
||||||
directory: bison
|
directory: bison
|
||||||
@@ -362,10 +369,10 @@ replaced with your key ID.
|
|||||||
Complete/fix the announcement file. The generated list of recipients
|
Complete/fix the announcement file. The generated list of recipients
|
||||||
(info-gnu@gnu.org, bug-bison@gnu.org, help-bison@gnu.org,
|
(info-gnu@gnu.org, bug-bison@gnu.org, help-bison@gnu.org,
|
||||||
bison-patches@gnu.org, and coordinator@translationproject.org) is
|
bison-patches@gnu.org, and coordinator@translationproject.org) is
|
||||||
appropriate for a stable release or a ``serious beta''. For any other
|
appropriate for a stable release or a "serious beta". For any other
|
||||||
release, drop at least info-gnu@gnu.org. For an example of how to fill
|
release, drop at least info-gnu@gnu.org. For an example of how to
|
||||||
out the rest of the template, search the mailing list archives for the
|
fill out the rest of the template, search the mailing list archives
|
||||||
most recent release announcement.
|
for the most recent release announcement.
|
||||||
|
|
||||||
For a stable release, send the same announcement on the comp.compilers
|
For a stable release, send the same announcement on the comp.compilers
|
||||||
newsgroup by sending email to compilers@iecc.com. Do not make any Cc as
|
newsgroup by sending email to compilers@iecc.com. Do not make any Cc as
|
||||||
@@ -373,7 +380,7 @@ the moderator will throw away anything cross-posted or Cc'ed. It really
|
|||||||
needs to be a separate message.
|
needs to be a separate message.
|
||||||
|
|
||||||
** Bump the version number
|
** Bump the version number
|
||||||
In configure.ac. Run `make'. So that developers don't accidentally add new
|
In configure.ac. Run "make". So that developers don't accidentally add new
|
||||||
items to the old NEWS entry, create a new empty NEWS entry something like:
|
items to the old NEWS entry, create a new empty NEWS entry something like:
|
||||||
|
|
||||||
Changes in version ?.? (????-??-??):
|
Changes in version ?.? (????-??-??):
|
||||||
|
|||||||
@@ -18,12 +18,17 @@
|
|||||||
# gnulib modules used by this package.
|
# gnulib modules used by this package.
|
||||||
gnulib_modules='
|
gnulib_modules='
|
||||||
announce-gen argmatch assert calloc-posix close closeout config-h c-strcase
|
announce-gen argmatch assert calloc-posix close closeout config-h c-strcase
|
||||||
configmake dirname error extensions fdl fopen-safer gendocs getopt-gnu
|
configmake
|
||||||
|
dirname
|
||||||
|
do-release-commit-and-tag
|
||||||
|
error extensions fdl fopen-safer gendocs getopt-gnu
|
||||||
gettext git-version-gen gitlog-to-changelog
|
gettext git-version-gen gitlog-to-changelog
|
||||||
gpl-3.0 hash inttypes isnan javacomp-script
|
gpl-3.0 hash inttypes isnan javacomp-script
|
||||||
javaexec-script ldexpl maintainer-makefile malloc-gnu mbschr mbsrchr
|
javaexec-script ldexpl maintainer-makefile malloc-gnu mbschr mbsrchr
|
||||||
mbswidth obstack perror progname
|
mbswidth obstack perror progname
|
||||||
quote quotearg realloc-posix
|
quote quotearg
|
||||||
|
readme-release
|
||||||
|
realloc-posix
|
||||||
spawn-pipe stdbool stpcpy strdup-posix strerror strtoul strverscmp
|
spawn-pipe stdbool stpcpy strdup-posix strerror strtoul strverscmp
|
||||||
unistd unistd-safer unlocked-io update-copyright unsetenv verify
|
unistd unistd-safer unlocked-io update-copyright unsetenv verify
|
||||||
warnings
|
warnings
|
||||||
@@ -76,6 +81,8 @@ bootstrap_epilogue()
|
|||||||
# Make sure we don't need src/bison, which usually doesn't exist at
|
# Make sure we don't need src/bison, which usually doesn't exist at
|
||||||
# the time of a bootstrap.
|
# the time of a bootstrap.
|
||||||
touch src/parse-gram.[ch]
|
touch src/parse-gram.[ch]
|
||||||
|
|
||||||
|
perl -pi -e "s/\@PACKAGE\@/$package/g" README-release
|
||||||
}
|
}
|
||||||
|
|
||||||
# Keep our bootstrap script in sync with gnulib's. If we ever need to
|
# Keep our bootstrap script in sync with gnulib's. If we ever need to
|
||||||
|
|||||||
1
build-aux/.gitignore
vendored
1
build-aux/.gitignore
vendored
@@ -23,3 +23,4 @@
|
|||||||
/vc-list-files
|
/vc-list-files
|
||||||
/warn-on-use.h
|
/warn-on-use.h
|
||||||
/ylwrap
|
/ylwrap
|
||||||
|
/do-release-commit-and-tag
|
||||||
|
|||||||
Reference in New Issue
Block a user