Commit | Line | Data |
---|---|---|
78b2179a NC |
1 | README for MAKING BINUTILS RELEASES |
2 | ||
3 | This is a collection of notes on how to perform a binutils release. A | |
4 | lot of this information can also be found in the maintain.texi file in | |
5 | the gnulib project: | |
6 | ||
7 | https://www.gnu.org/software/gnulib/ | |
8 | ||
9 | It is useful to have a cloned copy of the sources of this project as | |
10 | it also contains an upload script used to install tarballs on the GNU | |
11 | FTP server. | |
12 | ||
13 | Make sure that you have upload authority on sourceware and fencepost. | |
14 | Beware - this is an involved process and can take weeks to complete. | |
15 | See the maintain.texi file for details on how to obtain these | |
16 | permissions. | |
17 | ||
18 | ------------------------------------------------- | |
19 | How to perform a release. | |
20 | ------------------------------------------------- | |
21 | ||
98ab9e96 NC |
22 | 1. Send an email out warning contributors about the forthcoming |
23 | branch. Set a date for the branch (weekends are better because | |
24 | they are less busy). | |
25 | ||
26 | 2. Update the libiberty and config directories and the top level | |
27 | configure files. | |
28 | ||
29 | 3. When branch day arrives add markers for the upcoming release to | |
9176ac5b NC |
30 | gas, ld, gold and binutils NEWS files. |
31 | [make-prelease.sh command i] | |
32 | [make-prelease.sh command C] | |
33 | Likewise for all of the ChangeLog files. | |
34 | Add a note of the name of the new branch to binutils/BRANCHES. | |
35 | Commit these changes. | |
36 | [make-prerelease.sh command C] | |
98ab9e96 NC |
37 | |
38 | 4. Create the release branch using: | |
39 | ||
40 | git tag -a binutils-2_30-branch [eg for the 2.30 branch...] | |
41 | git push --tags origin binutils-2_30-branch | |
42 | ||
43 | 5. Update bfd/configure and bfd/configure.ac on HEAD to indicate | |
44 | snapshot of the following release. | |
769c7ea5 | 45 | [make-prerelease.sh command hv + C] |
98ab9e96 NC |
46 | |
47 | 6. Rename the current HEAD version entry in Bugzilla, and create a | |
48 | new one. E.g. rename "2.30 (HEAD)" to 2.30, and create "2.31 | |
49 | (HEAD)". Go to "Edit products" from the bottom toolbar, click on | |
50 | "binutils", then on "Edit versions". If you don't have | |
51 | permissions to do this, either ask Daniel Berlin to fix your | |
52 | account or ask Daniel Jacobowitz to do it. | |
53 | ||
54 | 7. Regenerate various files on both branch and HEAD by configuring | |
55 | with --enable-maintainer-mode. No need to check in changes to | |
56 | the autoconf/automake/etc files, but be sure the .pot files are | |
57 | up to date. | |
58 | ||
59 | 8. Create an initial prerelease: | |
60 | ||
61 | a. Bump the version on the branch, and check this in. | |
62 | ||
63 | b. Create a source tarball: | |
64 | ||
65 | git clean -f -d -x | |
66 | CFLAGS="-O -g0" ./src-release.sh -b binutils | |
67 | rm -rf $release_dir/proto-toplev | |
68 | rm $release_dir/binutils-$version | |
69 | rm $release_dir/binutils-$version.tar | |
70 | mv $release_dir/binutils-$version.tar.lzip .. | |
71 | ||
72 | c. Build a test target using this tarball. | |
73 | ||
74 | d. Upload the prerelease snapshot to the FTP: | |
75 | ||
76 | scp ../binutils-$version.tar.bz2 sourceware.org:~ftp/pub/binutils/snapshots | |
77 | ssh sourceware.org md5sum \~ftp/pub/binutils/snapshots/binutils-$version.tar.bz2 | |
78 | md5sum ../binutils-$version.tar.bz2 | |
79 | ||
80 | 9. Send it to the Translation Project: | |
81 | ||
82 | http://translationproject.org/html/maintainers.html | |
83 | ||
84 | Sending mail for one of the POT files is sufficient. | |
85 | ||
86 | 10. Announce the availability of the snapshot and the branch on the | |
87 | binutils mailing list. Set a date for when the release will | |
88 | actually happen. Nag maintainers to fix any testsuite failures | |
89 | for their architectures... | |
90 | ||
78b2179a NC |
91 | xxx -- fill in stuff here -- xxx |
92 | ||
93 | ------------------------------------------------- | |
94 | How to perform a point release. | |
95 | ------------------------------------------------- | |
96 | ||
97 | A point release is easier than a normal release since a lot of the | |
98 | work has already been done. The branch has been created, the | |
99 | translations updated and the documentation uploaded. So the procedure | |
100 | looks like this: | |
101 | ||
102 | 0. Decide that a point release is necessary. | |
103 | ||
104 | Usually this only happens when a sufficient number of serious | |
105 | bugs have been found and fixed since the previous release, and a | |
106 | new official release is not imminent. | |
107 | ||
108 | 1. Tell the community that a point release is happening. Ask | |
109 | maintainers to ensure that their ports are up to date on the | |
110 | release branch. Ask the community if there are any bug fixes | |
111 | which are missing from the branch. Allow some time for the | |
112 | responses to this step. | |
113 | ||
114 | 2. Make sure that the branch sources build, test and install | |
115 | correctly. | |
116 | ||
98ab9e96 NC |
117 | 2.5 Prepare a list of the bugs which have been fixed. This |
118 | will be needed for step 8. | |
119 | ||
ef336cb0 | 120 | 3. In the branch sources: |
78b2179a | 121 | |
ef336cb0 NC |
122 | a. Update the minor release number in bfd/version.m4. |
123 | b. Edit bfd/development.sh and set "development=false". | |
124 | c. Regenerate the configure files. | |
125 | d. Commit the updates along with a "this-is-the-2.XX.X-release" | |
126 | note in all of the changelogs. | |
127 | e. Tag the branch with the new release number: | |
128 | ||
129 | git tag -a binutils-2_XX_X | |
130 | [optional: add "-u XXXXX" to sign with a gpg key] | |
131 | git push origin binutils-2_XX_X | |
132 | ||
8071ec09 NC |
133 | f. Check that your file creation mask will create the |
134 | correct file permissions. Eg: | |
135 | ||
136 | umask 022 | |
137 | ||
138 | g. Create the release tarballs: | |
ef336cb0 | 139 | ./src-release -b -g -l -x binutils |
8071ec09 NC |
140 | |
141 | h. Check that the files in the tarballs have the correct | |
142 | permissions. | |
143 | ||
144 | i. Edit bfd/development.sh and set "development=true". | |
145 | j. Commit this change into the git repository. | |
146 | k. Clean up the source tree. (Use "git status" to find new | |
ef336cb0 | 147 | files, and remove them). |
78b2179a NC |
148 | |
149 | FIXME: The tarballs will contain spurious autom4te.cache | |
150 | directories which could be removed to reduce their size. | |
151 | ||
ef336cb0 NC |
152 | 4. [If paranoid - upload the tarballs to one of the FTP servers and |
153 | ask people to test it before going on to step 5]. | |
78b2179a | 154 | |
ef336cb0 | 155 | 5. Upload the tarballs to ftp.gnu.org. |
78b2179a NC |
156 | |
157 | gnupload --to ftp.gnu.org:binutils binutils-X.XX.X.tar.* | |
158 | ||
ef336cb0 | 159 | The gnupload script is in the gnulib/build-aux directory. |
78b2179a | 160 | |
ef336cb0 | 161 | 6. Upload the tarballs to sourceware.org: |
78b2179a NC |
162 | |
163 | sftp sourceware.org | |
164 | cd /ftp/pub/binutils/releases | |
165 | put binutils-X.XX.X.tar.* | |
166 | chmod 644 binutils-X.XX.X.tar.* | |
167 | quit | |
168 | ||
169 | FIXME: Should the signatures (created by the gnupload script in | |
ef336cb0 | 170 | step 5) be uploaded as well ? |
78b2179a | 171 | |
ef336cb0 | 172 | 7. Update web pages. For sourceware.org: |
78b2179a NC |
173 | |
174 | * Log on to sourceware.org | |
175 | * Go /www/htdocs/binutils | |
176 | * Edit index.html | |
177 | ||
178 | For the www.gnu.org site you have to email webmasters@gnu.org | |
179 | and ask them to make the change(s). | |
180 | ||
ef336cb0 NC |
181 | 8. Send an emails to the binutils list, info-gnu@gnu.org and |
182 | David Edelsohn <dje.gcc@gmail.com> announcing the new release. | |
183 | (The email to Davis is so that he can update the GNU Toolchain | |
184 | social media). Something like this: | |
78b2179a NC |
185 | ------------------------------------------------------------------------ |
186 | Hi Everyone, | |
187 | ||
188 | We are pleased to announce that version 2.XX.X of the Binutils project | |
189 | sources have been released and are now available for download at: | |
190 | ||
191 | https://ftp.gnu.org/gnu/binutils | |
192 | https://sourceware.org/pub/binutils/releases/ | |
193 | ||
194 | This is a point release over the previous 2.XX version, containing bug | |
195 | fixes but no new features. | |
196 | ||
197 | Our thanks go out to all of the binutils contributors, past and | |
198 | present, for helping to make this release possible. | |
98ab9e96 NC |
199 | |
200 | Here is a list of the bugs that have been fixed: | |
201 | xx | |
202 | xx | |
203 | xx | |
204 | xx | |
78b2179a NC |
205 | -------------------------------------------------------------------------- |
206 | ||
207 | \f | |
219d1afa | 208 | Copyright (C) 2017-2018 Free Software Foundation, Inc. |
78b2179a NC |
209 | |
210 | Copying and distribution of this file, with or without modification, | |
211 | are permitted in any medium without royalty provided the copyright | |
212 | notice and this notice are preserved. |