]> git.saurik.com Git - bison.git/blobdiff - HACKING
maint: use announce-gen's new --mail-headers.
[bison.git] / HACKING
diff --git a/HACKING b/HACKING
index 16dff1a59a35d84b4e6bf4d8c53c9df9d4d66e8d..ec3d36d3c5b21c3e80e78a091b7b4c424b64bfd1 100644 (file)
--- a/HACKING
+++ b/HACKING
@@ -172,6 +172,9 @@ release:
   that 1. Bison compiles cleanly, 2. the parsers it produces compile
   cleanly too.
 
+- Build with -DGNULIB_POSIXCHECK.  It suggests gnulib modules that can
+  fix portability issues.
+
 - run `make maintainer-check' which:
   - runs `valgrind -q bison' to run Bison under Valgrind.
   - runs the parsers under Valgrind.
@@ -194,11 +197,17 @@ release:
   that it does not make sense for glr.c, which should be ANSI,
   but currently is actually GNU C, nor for lalr1.cc.
 
+- Test with a very recent version of GCC for both C and C++.  Testing
+  with older versions that are still in use is nice too.
+
 
 * Release Procedure
 
-** Try to get the *.pot files to the Translation Project at least one week
-before a stable release, to give them time to translate them.
+** Try to get the *.pot files to the Translation Project at least one
+week before a stable release, to give them time to translate them.
+Before generating the *.pot files, make sure that po/POTFILES.in and
+runtime-po/POTFILES.in list all files with translatable strings.
+This helps: grep -l '\<_(' *
 
 ** Tests
 See above.
@@ -210,9 +219,17 @@ causes it to be rejected by recent Gettext releases; please report
 these to the Translation Project.
 
 ** Update README
-Make sure the information in this file is current.  Most notably, make sure it
-recommends a version of GNU M4 that is compatible with the latest Bison
-sources.
+Make sure the information in README is current.  Most notably, make sure
+it recommends a version of GNU M4 that is compatible with the latest
+Bison sources.
+
+** Check copyright years.
+We update years in copyright statements throughout Bison once at the
+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
+copyright statement for each Bison file, check the copyright statements
+that the skeletons insert into generated parsers, and check all
+occurrences of PACKAGE_COPYRIGHT_YEAR in configure.ac.
 
 ** Update NEWS
 The version number, *and* the date of the release (including for
@@ -221,9 +238,6 @@ betas).
 ** Update ChangeLog
 Should have an entry similar to `Version 1.49b.'.
 
-** Update configure.ac
-Be sure PACKAGE_COPYRIGHT_YEAR is up-to-date.
-
 ** Tag the release
 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 similar to:
@@ -283,24 +297,67 @@ Here's a brief reminder of how to roll the tarballs and upload them:
 *** put bison-2.3b.tar.gz.directive.asc
 *** Repeat all these steps for bison-2.3b.tar.bz2.
 
+** Update Bison manual on www.gnu.org.
+
+*** You need a non-anonymous checkout of the web pages directory.
+
+  $ cvs -d YOUR_USERID@cvs.savannah.gnu.org:/web/bison checkout bison
+
+*** Get familiar with the instructions for web page maintainers.
+http://www.gnu.org/server/standards/readme_index.html
+http://www.gnu.org/server/standards/README.software.html
+especially the note about symlinks.
+
+*** Build the web pages.
+Assuming BISON_CHECKOUT refers to a checkout of the Bison dir, and
+BISON_WWW_CHECKOUT refers to the web directory created above, do:
+
+  $ cd $BISON_CHECKOUT/doc
+  $ make stamp-vti
+  $ ../build-aux/gendocs.sh -o "$BISON_WWW_CHECKOUT/manual" \
+    bison "Bison - GNU parser generator"
+  $ cd $BISON_WWW_CHECKOUT
+
+Verify that the result looks sane.
+
+*** Commit the modified and the new files.
+
+*** Remove old files.
+Find the files which have not been overwritten (because they belonged to
+sections that have been removed or renamed):
+
+   $ cd manual/html_node
+   $ ls -lt
+
+Remove these files and commit their removal to CVS.  For each of these
+files, add a line to the file .symlinks.  This will ensure that
+hyperlinks to the removed files will redirect to the entire manual; this
+is better than a 404 error.
+
+There is a problem with 'index.html' being written twice (once for POSIX
+function 'index', once for the table of contents); you can ignore this
+issue.
+
 ** Announce
 To generate a template announcement file:
 
   make RELEASE_TYPE=alpha gpg_key_ID=F125BDF3 announcement
 
-where alpha can be replaced by beta or major and F125BDF3 should be replaced
-with your key ID.  For an example of how to fill out the template, search the
-mailing list archives for the most recent release announcement.
+where alpha can be replaced by beta or stable and F125BDF3 should be
+replaced with your key ID.
 
-Complete/fix the announcement file, and send it at least to
-info-gnu@gnu.org (if a real release, or a ``serious beta''),
-bug-bison@gnu.org, help-bison@gnu.org, bison-patches@gnu.org,
-and coordinator@translationproject.org.
+Complete/fix the announcement file.  The generated list of recipients
+(info-gnu@gnu.org, bug-bison@gnu.org, help-bison@gnu.org,
+bison-patches@gnu.org, and coordinator@translationproject.org) is
+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
+out the rest of the template, search the mailing list archives for the
+most recent release announcement.
 
-Send the same announcement on the comp.compilers newsgroup by sending
-email to compilers@iecc.com.  Do not make any Cc as the moderator will
-throw away anything cross-posted or Cc'ed.  It really needs to be a
-separate message.
+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
+the moderator will throw away anything cross-posted or Cc'ed.  It really
+needs to be a separate message.
 
 ** Bump the version number
 In configure.ac.  Run `make'.  So that developers don't accidentally add new
@@ -313,8 +370,8 @@ Push these changes.
 
 -----
 
-Copyright (C) 2002, 2003, 2004, 2005, 2007, 2008, 2009
-Free Software Foundation, Inc.
+Copyright (C) 2002, 2003, 2004, 2005, 2007, 2008, 2009, 2010 Free
+Software Foundation, Inc.
 
 This file is part of GNU Bison.