6 This documents what is
done to create a gerbv release. The releases now
7 are
done by branching the sources
, fixing up the release version number
8 in the branch and
then tagging the release branch sources. The motivation
9 for a branch rather than a tag is to
make it easier to deal with setting
10 the release version number
in the documentation
, distfile
, and the
13 Note that the gyrations with maintainer-clean and another build are to
14 be sure that all the correct versions numbers end up
in the files.
16 After following the steps below
,
17 upload the
'gerbv-$VERSION.tar.gz' file to the sourceforge
file release system
20 NOTE
: Due to the way that the regression tests work they will usually fail
21 when run on a different machine
(different CPU
type for example
) than what
22 the
test suite golden files were generated on. To
let the rest of
'distcheck'
25 setenv GERBV_MAGIC_TEST_SKIP
yes
29 GERBV_MAGIC_TEST_SKIP
=yes
30 export GERBV_MAGIC_TEST_SKIP
32 To
make a gerbv release
do the following
:
34 =) Review the BUGS
file and
make sure it is up to
date.
36 =) # make sure it builds and makes distfiles ok:
38 .
/configure
--enable-maintainer-mode --disable-update-desktop-database
39 gmake maintainer-clean
41 .
/configure
--disable-update-desktop-database
44 =) commit and push any changes
which were needed to fix
'distcheck' problems.
45 Of course
if the changes aren
't related then they should be committed in
51 =) Read the section in src/Makefile.am about the shared library versioning
52 and make sure we have done the right thing. Check in src/Makefile.am
53 if needed. This is critical. The version *will* change with every release
54 if *any* changes have been made to the sources for libgerbv. src/Makefile.am
55 has specific rules for how the versioning works.
57 =) if there were any new developers added then update the
60 =) update the ChangeLog with 'git2cl
'.
61 ./utils/git2cl -O > ChangeLog
63 =) update the NEWS file with some sort of release notes.
64 I typically try to condense what I see in ChangeLog
65 You can find the number of commits with something like
67 awk '/^
2008-11-28/ {print
"Changes: " c
; exit} /^
20[01][0-9]/ {c
++}' ChangeLog
69 Commit and push NEWS and ChangeLog:
71 git commit NEWS ChangeLog
74 =) if this is a major release, then tag and branch:
76 1. Create the release branch and push to the remote repository
78 git push origin gerbv-2-4
80 2. On the trunk, update configure.ac to update the version.
81 The rules for versioning is that we append uppercase
82 letters to the branch version.
84 For example 2.4A after creating the gerbv-2-4 branch
87 git commit configure.ac
90 3. On the release branch, update configure.ac to update the
91 version. On a new branch, add a 0RC1 to the teeny number.
94 git checkout gerbv-2-4
96 git commit configure.ac
99 NOTE: if you are not going to do a release candidate step,
100 then skip this push and directly put in the release
103 3a.Ask users to test the branch.
105 4. When the release branch is ready to go, update configure.ac to
106 set the final release version. The first version from a
107 branch has 0 for the teeny version. For example, 2.4.0.
109 git checkout gerbv-2-4
111 git commit configure.ac
113 git commit -a # after we expunge all generate files from git, we can skip this one
116 Next tag the release.
118 git tag -a gerbv-2-4-RELEASE
121 Update the version on the branch to 2.4.1RC1
122 git checkout gerbv-2-4
124 git commit configure.ac
127 Update to the tagged released sources and build tarballs
128 git checkout gerbv-2-4-RELEASE
130 ./configure --enable-maintainer-mode --disable-update-desktop-database
131 gmake maintainer-clean
133 ./configure --disable-update-desktop-database
136 If teeny version bumps are made for a bug fix, then the tag name
137 should be gerbv-2-4-PATCH001 for gerbv-2.4.1,
138 gerbv-2-4-PATCH002 for gerbv-2.4.2, etc.
142 openssl md5 gerbv-2.4.0.tar.gz > gerbv-2.4.0.cksum
143 openssl rmd160 gerbv-2.4.0.tar.gz >> gerbv-2.4.0.cksum
144 openssl sha1 gerbv-2.4.0.tar.gz >> gerbv-2.4.0.cksum
146 6. Create a new file release for the package "gerbv" with a release name of
147 "gerbv-2.4.0" (for gerbv-2.4.0). Do this by logging into www.sourceforge.net
148 and then navigating to
150 https://sourceforge.net/projects/gerbv (you must be logged in to sourceforge)
152 Upload the .tar.gz, .cksum, and if you built one, the windows installer.
154 Once you have completed the file uploads return to the edit releases page, check
155 the radio buttons next to the uploaded files and click the "Add Files..." button.
157 In the "Step 3: Edit Files in this Release" section, set the following:
159 .tar.gz - any / source .gz
160 .cksum - Platform Independent / Other Source File
161 .exe - i386 / .exe (32-bit Windows)
163 You will have to click "update" for each file as you go.
165 In the "Step 4: Email Release Notice" section, check the "I'm sure
"
166 radio button and click the "Send Notice
" button.
168 7. Have a project admin go to the Admin->File Releases page and then
169 follow the "Create
/Edit Download page
" to change the default download
170 file to the new release.
172 8. Return to your regularly scheduled trunk development
176 =) if this is a patch release (2.4.1 for example), then simply
177 make desired changes to the branch:
179 git checkout gerbv-2-4
182 git tag -a gerbv-2-4-PATCH001