+ 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. 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
+ the NEWS files in gas, ld, gold and binutils.
+
+ Likewise for the ChangeLog files in: bfd, binutils, config, cpu,
+ elfcpp, gas, gold, gprof, include, ld, opcodes and toplevel.
+
+ Add a note of the name of the new branch to binutils/BRANCHES.
+
+ Commit these changes.
+
+ 4. Create the release branch using:
+
+ git branch binutils-2_33-branch
+ git push origin binutils-2_33-branch
+
+ If you get a message like:
+
+ remote: fatal: Invalid revision range 0000000000000000000000000000000000000000..f974f26cb16cc6fe3946f163c787a05e713fb77b
+
+ It appears that this can be ignored...
+
+ 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_33-branch 2.33
+
+ 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.
+
+ 6. Update "BINUTILS_BRANCH" in gdbadmin's crontab:
+
+ Log in as gdbadmin on sourceware.org, and then:
+
+ $ 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.33 (HEAD)" to 2.33, and create "2.34
+ (HEAD)":
+
+ https://sourceware.org/bugzilla/editversions.cgi?product=binutils
+
+ 8. Update bfd/version.m4 on HEAD to indicate that is now a snapshot
+ of the next release:
+
+ m4_define([BFD_VERSION], [2.33.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.32.90])
+
+ Regenerate various files on both branch and HEAD by configuring
+ with "--enable-maintainer-mode --enable-gold" and then building
+ with "make all-binutils all-gas all-gold all-gprof all-ld"
+
+ Add ChangeLog entries for the updated files. Commit the changes.
+ Make sure that this includes the .pot files as well as the
+ configure and makefiles.
+
+ 8. Create an initial prerelease:
+
+ a. Create a source tarball of the BRANCH sources:
+
+ cd <branch-sources>
+ ./src-release -x binutils
+
+ b. Build a test target using this tarball.
+
+ 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
+
+ If there are problems, fix them.
+
+ c. Upload the prerelease snapshot to the sourceware FTP site:
+
+ 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.
+
+ rm binutils-<version> binutils-<version>.tar binutils-<version>.tar.xz
+ rm gas/bfin-lex.c \
+ gas/bfin-parse.c \
+ gas/bfin-parse.h \
+ gas/itbl-lex.c \
+ gas/itbl-parse.c \
+ gas/itbl-parse.h \
+ gas/m68k-parse.c \
+ gas/rl78-parse.c \
+ gas/rl78-parse.h \
+ gas/rx-parse.c \
+ gas/rx-parse.h \
+ gold/yyscript.c \
+ gold/yyscript.h
+ rm -fr proto-toplev
+
+ 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.
+
+ A snapshot of the branch sources can be found here:
+
+ https://sourceware.org/pub/binutils/snapshots/binutils-2.30.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
+ 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
+ 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 {} \;
+
+ 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