update copyright year printed by gdb, gdbserver and gdbreplay
[deliverable/binutils-gdb.git] / binutils / README-how-to-make-a-release
index 4e6d1e759f3420303d0abde3b0ecb6172beb8eb4..7ad9ebfde7b89d1bc15cb00c66bd98008c2302b3 100644 (file)
@@ -1,5 +1,5 @@
                README for MAKING BINUTILS RELEASES
                README for MAKING BINUTILS RELEASES
-       
+
 This is a collection of notes on how to perform a binutils release.  A
 lot of this information can also be found in the maintain.texi file in
 the gnulib project:
 This is a collection of notes on how to perform a binutils release.  A
 lot of this information can also be found in the maintain.texi file in
 the gnulib project:
@@ -22,73 +22,267 @@ How to perform a release.
   1. Send an email out warning contributors about the forthcoming
      branch.  Set a date for the branch (weekends are better because
      they are less busy).
   1. Send an email out warning contributors about the forthcoming
      branch.  Set a date for the branch (weekends are better because
      they are less busy).
-  
-  2. Update the libiberty and config directories and the top level
-     configure files.  
+
+  2. When the branch date is near:  Update the libiberty and config
+     directories and the top level configure files.
 
   3. When branch day arrives add markers for the upcoming release to
      gas, ld, gold and binutils NEWS files.
 
   3. When branch day arrives add markers for the upcoming release to
      gas, ld, gold and binutils NEWS files.
+       [If using the make-prerelease.sh script, check that
+        common.sh has the right values].
        [make-prelease.sh command i]
        [make-prelease.sh command i]
-       [make-prelease.sh command C]
      Likewise for all of the ChangeLog files.
      Add a note of the name of the new branch to binutils/BRANCHES.
      Commit these changes.
        [make-prerelease.sh command C]
      Likewise for all of the ChangeLog files.
      Add a note of the name of the new branch to binutils/BRANCHES.
      Commit these changes.
        [make-prerelease.sh command C]
-     
+
   4. Create the release branch using:
 
   4. Create the release branch using:
 
-       git tag -a binutils-2_30-branch   [eg for the 2.30 branch...]
-        git push --tags origin binutils-2_30-branch
+       git branch binutils-2_31-branch
+        git push origin binutils-2_31-branch
+
+  5. Make sure that the branch is there.  IE check out the branch sources:
+  
+        git clone ssh://sourceware.org/git/binutils-gdb.git -b binutils-2_31-branch 2.31
+
+     If you get a message about being in a "detached head" state, something
+     has gone wrong...
+
+  6. Update "BINUTILS_BRANCH" in gdbadmin's crontab:
 
 
-  5. Update bfd/configure and bfd/configure.ac on HEAD to indicate
-     snapshot of the following release.
+     Log in as gdbadmin on sourceware.org, and then:
 
 
-  6. Rename the current HEAD version entry in Bugzilla, and create a
+        $ cd crontab
+        $ vi crontab
+        [change BINUTILS_BRANCH]
+        $ cvs ci crontab
+        $ crontab crontab
+
+     If you do not have access to this account, please feel free to
+     ask Joel Brobecker <brobecker AT adacore DOT com>.
+
+  7. Rename the current HEAD version entry in Bugzilla, and create a
      new one.  E.g. rename "2.30 (HEAD)" to 2.30, and create "2.31
      new one.  E.g. rename "2.30 (HEAD)" to 2.30, and create "2.31
-     (HEAD)".  Go to "Edit products" from the bottom toolbar, click on
-     "binutils", then on "Edit versions".  If you don't have
-     permissions to do this, either ask Daniel Berlin to fix your
-     account or ask Daniel Jacobowitz to do it.
+     (HEAD)":
+     
+        https://sourceware.org/bugzilla/editversions.cgi?product=binutils
 
 
-  7. Regenerate various files on both branch and HEAD by configuring
-     with --enable-maintainer-mode.  No need to check in changes to
-     the autoconf/automake/etc files, but be sure the .pot files are
-     up to date.
+  8. Update bfd/version.m4 on HEAD to indicate that is now a snapshot
+     of the next release:
+     
+       m4_define([BFD_VERSION], [2.31.51])
+       
+     Update the release number in bfd/version.m4 for the branch.
+     The branch only needs the point value set to 90 as the release
+     has not actually happened yet.
+
+       m4_define([BFD_VERSION], [2.30.90])
+
+     Regenerate various files on both branch and HEAD by configuring
+     with --enable-maintainer-mode.  NB/ Remember to build gold and
+     gprof.  Add ChangeLog entries.  Commit the changes.  Make sure
+     that this includes the .pot files as well as the configure and
+     makefiles.
 
   8. Create an initial prerelease:
 
 
   8. Create an initial prerelease:
 
-     a. Bump the version on the branch, and check this in.
+     a. Create a source tarball of the BRANCH sources:
 
 
-     b. Create a source tarball:
-     
-          git clean -f -d -x
-          CFLAGS="-O -g0" ./src-release.sh -b binutils
-          rm -rf $release_dir/proto-toplev
-          rm $release_dir/binutils-$version
-          rm $release_dir/binutils-$version.tar
-          mv $release_dir/binutils-$version.tar.lzip ..
-     c. Build a test target using this tarball.
+           ./src-release -x binutils
+
+     b. Build a test target using this tarball.
+
+     c. Upload the prerelease snapshot to the FTP:
+
+          scp ../binutils-$version.tar.xz sourceware.org:~ftp/pub/binutils/snapshots
+          ssh sourceware.org md5sum ~ftp/pub/binutils/snapshots/binutils-$version.tar.xz
+
+     d. Clean up the source directory.
+
+   9. Tell the Translation Project where to find the new tarball. <coordinator@translationproject.org>
+      qv: http://translationproject.org/html/maintainers.html
+
+------------------------------------------------------------------------
+Dear Translation Project
+
+  The 2.31 release branch has been created for the FSF binutils.
 
 
-     d. Upload the prerelease snapshot to the FTP:
+  A snapshot of the branch sources can be found here:
 
 
-          scp ../binutils-$version.tar.bz2 sourceware.org:~ftp/pub/binutils/snapshots
-          ssh sourceware.org md5sum \~ftp/pub/binutils/snapshots/binutils-$version.tar.bz2
-          md5sum ../binutils-$version.tar.bz2
+    https://sourceware.org/pub/binutils/snapshots/binutils-2.30.90.tar.xz
 
 
-   9. Send it to the Translation Project:
-   
-        http://translationproject.org/html/maintainers.html
-       
-      Sending mail for one of the POT files is sufficient.
+  We hope to make the official release of the sources on the 8th July
+  although that could change if there are important bugs that need to
+  be fixed before the release.
+------------------------------------------------------------------------
 
   10. Announce the availability of the snapshot and the branch on the
       binutils mailing list.  Set a date for when the release will
 
   10. Announce the availability of the snapshot and the branch on the
       binutils mailing list.  Set a date for when the release will
-      actually happen.  Nag maintainers to fix any testsuite failures
-      for their architectures...
+      actually happen.  Something like:
+      
+------------------------------------------------------------------------
+Hi Everyone, 
+
+  The 2.XX branch has now been created:
+
+     git clone git://sourceware.org/git/binutils-gdb.git -b binutils-2_XX-branch 2.XX
+
+  A snapshot of the sources is also available here:
+
+    https://sourceware.org/pub/binutils/snapshots/binutils-2.XX.90.tar.xz
+
+  Please could all patches for the branch be run by me.
+  The rules for the branch are:
+
+    * No new features.
+    * Target specific bug fixes are OK.
+    * Generic bug fixes are OK if they are important and widely tested.
+    * Documentation updates/fixes are OK.
+    * Translation updates are OK.
+    * Fixes for testsuite failures are OK.
+
+  Ideally I would like to make the release happen in two weeks time,
+  i.e. Saturday 27th Jan.  Which I hope will be enough time for everyone
+  to get their final fixes in.
+------------------------------------------------------------------------
+
+  11. Build various different toolchains, test them and nag
+      maintainers to fix any testsuite failures for their
+      architectures...
+
+
+When the time comes to actually make the release....
+
+
+  20. Make sure that the branch sources still build, test and install 
+      correctly.  Make sure that the sources are clean, without any
+      patch files (.reg .orig *~) left over.
+
+         cd <branch>
+        cvsclean | xargs rm
+
+  21. Update the release number in bfd/version.m4 on the release
+      branch to a whole new minor version number, without a point
+      value.  Eg "2.29.90" becomes "2.30".  Change bfd/development.sh
+      to set all values to "false".  Regenerate the configure and
+      makefiles.  And *info* files.  Add ChangeLog entries for the
+      updates and add a  "this-is-the-2.XX-release" comment and
+      commit.  Make sure to include the .gmo files.
+
+  22. Check that your file creation mask will create the
+      correct file permissions.  Eg:
+
+           % umask
+           22
+
+      Remove any spurious autom4te.cache files left over from the
+      reconfiguring:
+
+            % find . -depth -name autom4te.cache -exec rm -r {} \;
 
 
-xxx -- fill in stuff here -- xxx
+  23. Note - check to see if any new files have been added to the top
+      level of the source directory, but which are not in the
+      DEVO_SUPPORT variable in the src-release.sh script.  If they are
+      needed then add them.
 
 
+       Create the release tarballs:
+  
+            ./src-release.sh -b -g -l -x binutils
+
+  24. Check that the files in the tarballs have the correct
+      permissions. 
+
+  25. Sanity check the release on x86_64-pc-linux-gnu by building and
+      running the testsuite.  Make the source directory read-only
+      before building.  Also test "make install".  If necessary fix
+      any problems.
+
+  26. Tag the branch with the new release number:
+
+            git tag -a binutils-2_XX
+             [optional: add "-u XXXXX" to sign with a gpg key]
+           git push origin binutils-2_XX
+
+        NB/ If you do sign the binaries make sure to use a key
+       that has been published with the FSF.
+
+  27. Upload the tarballs to ftp.gnu.org.
+
+       gnupload --to ftp.gnu.org:binutils binutils-X.XX.tar.*
+
+      The gnupload script is in the gnulib/build-aux directory.
+
+      Check for an email response from the upload.  If necessary
+      fix any problems.
+
+  28. Upload the tarballs (and signatures) to sourceware.org:
+
+       sftp sourceware.org
+         cd /sourceware/ftp/pub/binutils/releases
+        put binutils-X.XX.tar.*
+        chmod 644 binutils-X.XX.tar.*
+        quit
+
+      FIXME: Should the signatures (created by the gnupload script in
+      step 29) be uploaded as well ?
+
+  29. Update web pages.  For sourceware.org:
+
+      Create a new documentation folder on the sourceware.org web
+      pages as /sourceware/www/sourceware/htdocs/binutils/docs-X.XX.
+      Make the html documentation locally with the "make html" command
+      and then upload and rename the directories as needed.  (sftp
+      does not appear to support recursive uploads however, so the
+      directories will have to be made by hand).  Create an
+      index.html file and then edit the docs link to point to the new
+      docs-X.XX directory.
+      
+      Update the index.html file in the directory containing the
+      docs-X.XX entries to point to the new documentation and mention
+      the new version.
+
+      For the www.gnu.org site you have to email webmasters@gnu.org
+      and ask them to make the change(s).
+
+  30. Send emails to binutils@sourceware.org, info-gnu@gnu.org and
+      David Edelsohn <dje.gcc@gmail.com> announcing the new release.
+      Sign the email and include the checksum.
+      (The email to Davis is so that he can update the GNU Toolchain
+      social media).  Something like this:
+      ------------------------------------------------------------------------
+        Hi Everyone,
+
+        We are pleased to announce that version 2.XX of the GNU Binutils project
+        sources have been released and are now available for download at:
+
+          https://ftp.gnu.org/gnu/binutils
+          https://sourceware.org/pub/binutils/releases/
+
+          checksums: xxxx
+
+       This release contains numerous bug fixes, and also the
+       following new features:
+
+          <extract info from the NEWS files>
+
+       Our thanks go out to all of the binutils contributors, past and
+       present, for helping to make this release possible.
+
+      --------------------------------------------------------------------------
+
+  31. Clean up the source tree.  (Use "git status" to find new
+      files, and remove them).
+
+  32. Edit bfd/development.sh on the branch and set
+      "development=true".  Also bump the version in bfd/version.m4 by
+      adding a trailing .0, so that the date suffix keeps the version
+      lower than the trunk version.  Regenerate files.  Commit these
+      changes.
+
+  33. Email the binutils list telling everyone that the 2.31 branch
+      is now open for business as usual and that patched no longer
+      need special approval.
 -------------------------------------------------
 How to perform a point release.
 -------------------------------------------------
 -------------------------------------------------
 How to perform a point release.
 -------------------------------------------------
@@ -115,12 +309,17 @@ looks like this:
 
   2.5 Prepare a list of the bugs which have been fixed.  This
       will be needed for step 8.
 
   2.5 Prepare a list of the bugs which have been fixed.  This
       will be needed for step 8.
-      
+
   3. In the branch sources:
   3. In the branch sources:
-  
+
        a. Update the minor release number in bfd/version.m4.
        a. Update the minor release number in bfd/version.m4.
-       b. Edit bfd/development.sh and set "development=false".
+       b. Edit bfd/development.sh, set "development=false" and
+       "experimental=false".
        c. Regenerate the configure files.
        c. Regenerate the configure files.
+       c.1. Remove spurious autom4te.cache files:
+
+          find . -depth -name autom4te.cache -exec rm -r {} \;
+         
        d. Commit the updates along with a "this-is-the-2.XX.X-release"
           note in all of the changelogs.
        e. Tag the branch with the new release number:
        d. Commit the updates along with a "this-is-the-2.XX.X-release"
           note in all of the changelogs.
        e. Tag the branch with the new release number:
@@ -133,24 +332,21 @@ looks like this:
           correct file permissions.  Eg:
 
            umask 022
           correct file permissions.  Eg:
 
            umask 022
-       
+
        g. Create the release tarballs:
             ./src-release -b -g -l -x binutils
 
        h. Check that the files in the tarballs have the correct
           permissions.
        g. Create the release tarballs:
             ./src-release -b -g -l -x binutils
 
        h. Check that the files in the tarballs have the correct
           permissions.
-       
+
        i. Edit bfd/development.sh and set "development=true".
        j. Commit this change into the git repository.
        k. Clean up the source tree.  (Use "git status" to find new
            files, and remove them).
 
        i. Edit bfd/development.sh and set "development=true".
        j. Commit this change into the git repository.
        k. Clean up the source tree.  (Use "git status" to find new
            files, and remove them).
 
-     FIXME: The tarballs will contain spurious autom4te.cache
-     directories which could be removed to reduce their size.
-
   4. [If paranoid - upload the tarballs to one of the FTP servers and
       ask people to test it before going on to step 5].
   4. [If paranoid - upload the tarballs to one of the FTP servers and
       ask people to test it before going on to step 5].
-      
+
   5. Upload the tarballs to ftp.gnu.org.
 
        gnupload --to ftp.gnu.org:binutils binutils-X.XX.X.tar.*
   5. Upload the tarballs to ftp.gnu.org.
 
        gnupload --to ftp.gnu.org:binutils binutils-X.XX.X.tar.*
@@ -160,18 +356,17 @@ looks like this:
   6. Upload the tarballs to sourceware.org:
 
        sftp sourceware.org
   6. Upload the tarballs to sourceware.org:
 
        sftp sourceware.org
-         cd /ftp/pub/binutils/releases
+         cd /sourceware/ftp/pub/binutils/releases
         put binutils-X.XX.X.tar.*
         chmod 644 binutils-X.XX.X.tar.*
         quit
 
         put binutils-X.XX.X.tar.*
         chmod 644 binutils-X.XX.X.tar.*
         quit
 
-    FIXME: Should the signatures (created by the gnupload script in
-    step 5) be uploaded as well ?
+    It is OK to upload the signatures as well.
 
   7. Update web pages.  For sourceware.org:
 
       * Log on to sourceware.org
 
   7. Update web pages.  For sourceware.org:
 
       * Log on to sourceware.org
-      * Go /www/htdocs/binutils
+      * Go to /sourceware/www/sourceware/htdocs/binutils
       * Edit index.html
 
       For the www.gnu.org site you have to email webmasters@gnu.org
       * Edit index.html
 
       For the www.gnu.org site you have to email webmasters@gnu.org
@@ -184,9 +379,9 @@ looks like this:
 ------------------------------------------------------------------------
 Hi Everyone,
 
 ------------------------------------------------------------------------
 Hi Everyone,
 
-  We are pleased to announce that version 2.XX.X of the Binutils project
-  sources have been released and are now available for download at:
-  
+  We are pleased to announce that version 2.XX.X of the GNU Binutils
+  project sources have been released and are now available for download at:
+
     https://ftp.gnu.org/gnu/binutils
     https://sourceware.org/pub/binutils/releases/
 
     https://ftp.gnu.org/gnu/binutils
     https://sourceware.org/pub/binutils/releases/
 
This page took 0.027159 seconds and 4 git commands to generate.