Rename "sun" variable to avoid conflicts on Solaris
[deliverable/binutils-gdb.git] / binutils / README-how-to-make-a-release
index 3159b6b29ea773de45b0dd0759c465d20955dcca..ab07e630372095be5f70b8d98a4aa1a1cbc4ff9d 100644 (file)
@@ -27,10 +27,11 @@ How to perform a release.
      directories and the top level configure files.
 
   3. When branch day arrives add markers for the upcoming release to
-     the NEWS files in gas, ld, gold and binutils.
+     the NEWS files in gas, ld, and binutils.  No need to update NEWS
+     in the gold directory - it has its own release numbering.
 
      Likewise for the ChangeLog files in: bfd, binutils, config, cpu,
-     elfcpp, gas, gold, gprof, include, ld, opcodes and toplevel.
+     elfcpp, gas, gold, gprof, include, ld, libctf, opcodes and toplevel.
 
      Add a note of the name of the new branch to binutils/BRANCHES.
 
@@ -54,7 +55,8 @@ How to perform a release.
      If you get a message about being in a "detached head" state, something
      has gone wrong...
 
-     Keep the checked out sources - they are going to be needed in future steps.
+     Keep the checked out sources - they are going to be needed in future
+     steps.
 
   6. Update "BINUTILS_BRANCH" in gdbadmin's crontab:
 
@@ -94,32 +96,52 @@ How to perform a release.
      Make sure that this includes the .pot files as well as the
      configure and makefiles.
 
-  8. Create an initial prerelease:
+  8. Create an initial pre-release:
 
-     a. Create a source tarball of the BRANCH sources:
+     a. Remove any auto-generated files, in order to force the
+        src-release script to rebuild them.
+        
+          cd <branch-sources>
+          git clean -fdx .
+         
+     b. Create a source tarball of the BRANCH sources:
+
+          ./src-release -x binutils
+
+     c. Build a test target using this tarball.
 
-           ./src-release -x binutils
+           cp binutils-<version>.tar.xz /dev/shm
+          cd /dev/shm
+          tar xvf binutils-<version>.tar.xz
+          mkdir build
+          cd build
+          ../<version>/configure --quiet --enable-gold
+          make
 
-     b. Build a test target using this tarball.
+        If there are problems, fix them.
 
-     c. Upload the prerelease snapshot to the FTP:
+     d. Upload the pre-release snapshot to the sourceware FTP site:
 
-          scp ../binutils-$version.tar.xz sourceware.org:~ftp/pub/binutils/snapshots
-          ssh sourceware.org md5sum ~ftp/pub/binutils/snapshots/binutils-$version.tar.xz
+          cd <branch-sources>
+          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.
+     e. Clean up the source directory again.
 
-   9. Tell the Translation Project where to find the new tarball. <coordinator@translationproject.org>
+         git clean -fdx .
+
+   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.
+  The 2.3x release branch has been created for the FSF binutils.
 
   A snapshot of the branch sources can be found here:
 
-    https://sourceware.org/pub/binutils/snapshots/binutils-2.30.90.tar.xz
+    https://sourceware.org/pub/binutils/snapshots/binutils-2.3x.90.tar.xz
 
   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
@@ -133,13 +155,13 @@ Dear Translation Project
 ------------------------------------------------------------------------
 Hi Everyone, 
 
-  The 2.XX branch has now been created:
+  The 2.3x branch has now been created:
 
-     git clone git://sourceware.org/git/binutils-gdb.git -b binutils-2_XX-branch 2.XX
+     git clone git://sourceware.org/git/binutils-gdb.git -b binutils-2_3x-branch 2.3x
 
   A snapshot of the sources is also available here:
 
-    https://sourceware.org/pub/binutils/snapshots/binutils-2.XX.90.tar.xz
+    https://sourceware.org/pub/binutils/snapshots/binutils-2.3x.90.tar.xz
 
   Please could all patches for the branch be run by me.
   The rules for the branch are:
@@ -169,15 +191,15 @@ When the time comes to actually make the release....
       patch files (.reg .orig *~) left over.
 
          cd <branch>
-        cvsclean | xargs rm
+        git clean -dfx .
 
   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.
+      updates and add a  "this-is-the-2.3x-release" comment and
+      commit.
 
   22. Check that your file creation mask will create the
       correct file permissions.  Eg:
@@ -203,22 +225,22 @@ When the time comes to actually make the release....
       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.
+      running the testsuites (gas, gold, binutils and ld).  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
+            git tag -a binutils-2_3x
              [optional: add "-u XXXXX" to sign with a gpg key]
-           git push origin binutils-2_XX
+           git push origin binutils-2_3x
 
         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.*
+       gnupload --to ftp.gnu.org:binutils binutils-2.3x.tar.*
 
       The gnupload script is in the gnulib/build-aux directory.
 
@@ -229,8 +251,8 @@ When the time comes to actually make the release....
 
        sftp sourceware.org
          cd /sourceware/ftp/pub/binutils/releases
-        put binutils-X.XX.tar.*
-        chmod 644 binutils-X.XX.tar.*
+        put binutils-2.3x.tar.*
+        chmod 644 binutils-2.3x.tar.*
         quit
 
       FIXME: Should the signatures (created by the gnupload script in
@@ -239,30 +261,71 @@ When the time comes to actually make the release....
   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.
+      pages as /sourceware/www/sourceware/htdocs/binutils/docs-2.3x.
+
+       sftp sourceware.org
+         cd /sourceware/www/sourceware/htdocs/binutils
+        mkdir docs-2.3x
+        cd docs-2.3x
+        mkdir as bfd binutils gprof ld
+        cd ../docs-2.3(x-1)
+        get index.html
+
+      Update the (local copy of the) index.html file to point to the
+      new documentation and mention the new version and then upload it.
+
+        cd ../docs-2.3x
+        put index.html
+
       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.
+      directories had to be made by hand, as shown above).
+
+         cd as
+        lcd <build-dir>/gas/doc/as.html
+        put *
+        cd ../bfd
+        lcd ../../../bfd/doc/bfd.html
+        put *
+        cd ../binutils
+        lcd ../../../binutils/doc/binutils.html
+        put *
+        cd ../gprof
+        lcd ../../../gprof/gprof.html
+        put *
+        cd ../ld
+        lcd ../../ld/ld.html
+        put *
+        
+      Edit the top level binutils index.html file to change the links
+      to the new documentation.
+
+         cd ../../..
+        get index.html
+        [edit]
+        put index.html
+         rm docs
+        ln -s docs-2.3x docs
+        quit
+
+      Check that the new web page is correct.
 
       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.
+      Sign the email and include the checksum:
+
+          md5sum binutils-2.3x.tar.*
+
       (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
+        We are pleased to announce that version 2.3x of the GNU Binutils project
         sources have been released and are now available for download at:
 
           https://ftp.gnu.org/gnu/binutils
@@ -278,21 +341,26 @@ When the time comes to actually make the release....
        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).
+  31. Clean up the source tree:
 
-  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.
+        git clean -fdx .
 
-  33. Email the binutils list telling everyone that the 2.31 branch
+  32. Edit bfd/development.sh on the branch and set the development flag
+      to "true".  (Leave the experimental flag set to "false").  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.3x branch
       is now open for business as usual and that patched no longer
       need special approval.
+
+  34. Examine the bfd/config.bfd file and move any pending obsolete
+      targets into the definitely obsolete section.  Create a
+      changelog entry and commit.
+      
 -------------------------------------------------
 How to perform a point release.
 -------------------------------------------------
@@ -323,20 +391,19 @@ looks like this:
   3. In the branch sources:
 
        a. Update the minor release number in bfd/version.m4.
-       b. Edit bfd/development.sh, set "development=false" and
-       "experimental=false".
+       b. Edit bfd/development.sh, set "development=false".
        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"
+       d. Commit the updates along with a "this-is-the-2.3x.y-release"
           note in all of the changelogs.
        e. Tag the branch with the new release number:
 
-            git tag -a binutils-2_XX_X
+            git tag -a binutils-2_3x_y
              [optional: add "-u XXXXX" to sign with a gpg key]
-           git push origin binutils-2_XX_X
+           git push origin binutils-2_3x_y
 
        f. Check that your file creation mask will create the
           correct file permissions.  Eg:
@@ -344,6 +411,7 @@ looks like this:
            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
@@ -351,15 +419,13 @@ looks like this:
 
        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).
 
   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.*
+       gnupload --to ftp.gnu.org:binutils binutils-2.3x.y.tar.*
 
      The gnupload script is in the gnulib/build-aux directory.
 
@@ -367,8 +433,8 @@ looks like this:
 
        sftp sourceware.org
          cd /sourceware/ftp/pub/binutils/releases
-        put binutils-X.XX.X.tar.*
-        chmod 644 binutils-X.XX.X.tar.*
+        put binutils-2.3x.y.tar.*
+        chmod 644 binutils-2.3x.y.tar.*
         quit
 
     It is OK to upload the signatures as well.
@@ -386,16 +452,17 @@ looks like this:
      David Edelsohn <dje.gcc@gmail.com> announcing the new release.
      (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.X of the GNU Binutils
+  We are pleased to announce that version 2.3x.y 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/
 
-  This is a point release over the previous 2.XX version, containing bug
+  This is a point release over the previous 2.3x version, containing bug
   fixes but no new features.
 
   Our thanks go out to all of the binutils contributors, past and
@@ -407,6 +474,12 @@ Hi Everyone,
     xx
     xx
 --------------------------------------------------------------------------
+  9. Clean up the source tree.
+       
+            git clean -dfx .
+
+ 10. Edit bfd/development.sh on the branch and set the development flag
+     to "true".  Commit this change.
 
 \f
 Copyright (C) 2017-2019 Free Software Foundation, Inc.
This page took 0.067754 seconds and 4 git commands to generate.