5 This documents what is
done to create a gerbv release. The releases now
6 are
done by branching the sources
, fixing up the release version number
7 in the branch and
then tagging the release branch sources. The motivation
8 for a branch rather than a tag is to
make it easier to deal with setting
9 the release version number
in the documentation
, distfile
, and the
12 Note that the gyrations with maintainer-clean and another build are to
13 be sure that all the correct versions numbers end up
in the files.
15 After following the steps below
,
16 upload the
'gerbv-$VERSION.tar.gz' file to the sourceforge
file release system
19 NOTE
: Due to the way that the regression tests work they will usually fail
20 when run on a different machine
(different CPU
type for example
) than what
21 the
test suite golden files were generated on. To
let the rest of
'distcheck'
24 setenv GERBV_MAGIC_TEST_SKIP
yes
28 GERBV_MAGIC_TEST_SKIP
=yes
29 export GERBV_MAGIC_TEST_SKIP
31 To
make a gerbv release
do the following
:
33 =) Review the BUGS
file and
make sure it is up to
date.
35 =) # make sure it builds and makes distfiles ok:
37 .
/configure
--enable-maintainer-mode --disable-update-desktop-database
38 gmake maintainer-clean
40 .
/configure
--disable-update-desktop-database
43 =) commit and push any changes
which were needed to fix
'distcheck' problems.
44 Of course
if the changes aren
't related then they should be committed in
50 =) Read the section in src/Makefile.am about the shared library versioning
51 and make sure we have done the right thing. Check in src/Makefile.am
52 if needed. This is critical. The version *will* change with every release
53 if *any* changes have been made to the sources for libgerbv. src/Makefile.am
54 has specific rules for how the versioning works.
56 =) if there were any new developers added then update the
59 =) update the ChangeLog with 'git2cl
'.
60 ./utils/git2cl -O > ChangeLog
62 =) update the NEWS file with some sort of release notes.
63 I typically try to condense what I see in ChangeLog
64 You can find the number of commits with something like
66 awk '/^
2008-11-28/ {print
"Changes: " c
; exit} /^
20[01][0-9]/ {c
++}' ChangeLog
68 Commit and push NEWS and ChangeLog:
70 git commit NEWS ChangeLog
73 =) if this is a major release, then tag and branch:
75 1. Create the release branch and push to the remote repository
77 git push origin gerbv-2-5
79 2. On the trunk, update configure.ac to update the version.
80 The rules for versioning is that we append uppercase
81 letters to the branch version.
83 For example 2.5A after creating the gerbv-2-5 branch
86 git commit configure.ac
89 3. On the release branch, update configure.ac to update the
90 version. On a new branch, add a 0RC1 to the teeny number.
93 git checkout gerbv-2-5
95 git commit configure.ac
98 NOTE: if you are not going to do a release candidate step,
99 then skip this push and directly put in the release
102 3a.Ask users to test the branch.
104 4. When the release branch is ready to go, update configure.ac to
105 set the final release version. The first version from a
106 branch has 0 for the teeny version. For example, 2.5.0.
108 git checkout gerbv-2-5
110 git commit configure.ac
112 git commit -a # after we expunge all generate files from git, we can skip this one
115 Next tag the release.
117 git tag -a gerbv-2-5-RELEASE
120 Update the version on the branch to 2.5.1RC1
121 git checkout gerbv-2-5
123 git commit configure.ac
126 Update to the tagged released sources and build tarballs
127 git checkout gerbv-2-5-RELEASE
129 ./configure --enable-maintainer-mode --disable-update-desktop-database
130 gmake maintainer-clean
132 ./configure --disable-update-desktop-database
135 If teeny version bumps are made for a bug fix, then the tag name
136 should be gerbv-2-5-PATCH001 for gerbv-2.5.1,
137 gerbv-2-5-PATCH002 for gerbv-2.5.2, etc.
141 openssl md5 gerbv-2.5.0.tar.gz > gerbv-2.5.0.cksum
142 openssl rmd160 gerbv-2.5.0.tar.gz >> gerbv-2.5.0.cksum
143 openssl sha1 gerbv-2.5.0.tar.gz >> gerbv-2.5.0.cksum
145 6. Create a new file release for the package "gerbv" with a release name of
146 "gerbv-2.5.0" (for gerbv-2.5.0). Do this by logging into www.sourceforge.net
147 and then navigating to
149 https://sourceforge.net/projects/gerbv (you must be logged in to sourceforge)
151 Upload the .tar.gz, .cksum, and if you built one, the windows installer.
153 Once you have completed the file uploads return to the edit releases page, check
154 the radio buttons next to the uploaded files and click the "Add Files..." button.
156 In the "Step 3: Edit Files in this Release" section, set the following:
158 .tar.gz - any / source .gz
159 .cksum - Platform Independent / Other Source File
160 .exe - i386 / .exe (32-bit Windows)
162 You will have to click "update" for each file as you go.
164 In the "Step 4: Email Release Notice" section, check the "I'm sure
"
165 radio button and click the "Send Notice
" button.
167 7. Have a project admin go to the Admin->File Releases page and then
168 follow the "Create
/Edit Download page
" to change the default download
169 file to the new release.
171 8. Return to your regularly scheduled trunk development
175 =) if this is a patch release (2.5.1 for example), then simply
176 make desired changes to the branch:
178 git checkout gerbv-2-5
181 git tag -a gerbv-2-5-PATCH001