4 This documents what is
done to create a pcb release. The releases now
5 are
done by branching the sources
, fixing up the release version number
6 in the branch and
then tagging the release branch sources. The motivation
7 for a branch rather than a tag is to
make it easier to deal with setting
8 the snapshot version number
in the documentation
, distfile
, and the
11 NOTE
: Use the DISTCHECK_CONFIGURE_FLAGS to be able to run the distcheck
12 target with lesstif as the built gui with
13 DISTCHECK_CONFIGURE_FLAGS
="--with-gui=lesstif" if you want to also verify
14 that distcheck works with the lesstif HID.
16 FIXME
-- we need to build where we explicitly add all the
export HID
's
17 and where we explicitly build with each of the gui HID's
(including
18 batch). This is needed to catch the
case of missing src
/hid
/*/hid.conf
21 After following the steps below
,
22 upload the
'pcb-$VERSION.tar.gz' file to the sourceforge
file release system
25 To
make a pcb release
do the following
:
27 =) Make sure you have up to
date sources
29 git rebase origin
/master
31 # note, you could also create a new local branch with
32 # git checkout -b do_release_from_here origin/master but need to make
33 # sure we still get the correct branch and tag on the main server eventually
35 =) # make sure it makes distfiles ok: (have to build before doing distcheck so
36 pcb gets built so it can create some of the images
in the doc directory
)
38 # clean up, and build with the GTK HID
41 .
/configure
--disable-update-desktop-database --disable-update-mime-database
45 # check the build with lesstif HID. The /usr/pkg parts should be replaced with
46 # whatever flags (if any) are needed to find lesstif on your system.
47 setenv DISTCHECK_CONFIGURE_FLAGS
'--with-gui=lesstif CPPFLAGS=-I/usr/pkg/include CFLAGS=-I/usr/pkg/include LDFLAGS="-L/usr/pkg/lib -R/usr/pkg/lib"'
50 # check the build with the batch HID
51 setenv DISTCHECK_CONFIGURE_FLAGS
'--with-gui=batch'
53 unsetenv DISTCHECK_CONFIGURE_FLAGS
55 =) commit and push any changes
which were needed to fix
'distcheck' problems.
56 Of course
if the changes aren
't related then they should be committed in
62 =) update the ChangeLog with '.
/utils
/git2cl
-O > ChangeLog
'
64 =) update the NEWS file with some sort of release notes
65 summary. 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.
70 git commit NEWS ChangeLog
73 =) if this is a major release, then branch:
75 1. Create the release branch and push to the remove
76 git branch pcb-20091103
77 git push origin pcb-20091103
79 3. FIX_ME [fix up this step. what shall we do with the version
80 on the trunk? We are about to run out of letters!]
81 On the trunk, update configure.ac to update the version
82 for example 1.99x after releasing 1.99w
85 git commit configure.ac
88 4. On the release branch, update configure.ac to update the version
89 for example 20091103_ALPHA. Now pre-release snapshots can be made.
90 git checkout pcb-20091103
92 5. If desired tag an alpha release:
93 git checkout pcb-20091103
95 git tag -a pcb-20091103-ALPHA
96 git checkout pcb-20091103-ALPHA
97 ./autogen.sh && ./configure --enable-maintainer-mode \
98 --disable-update-desktop-database \
99 --disable-update-mime-database && \
100 gmake && gmake distcheck
102 6. When the release branch is ready to go, update configure.ac to
103 set the final release version. Then tag the release.
104 git checkout pcb-20091103
106 git commit configure.ac
108 git commit -a # after we expunge all generate files from git, we can skip this one
110 git tag -a pcb-20091103-RELEASE
112 git checkout pcb-20091103-RELEASE
113 ./autogen.sh && ./configure --enable-maintainer-mode \
114 --disable-update-desktop-database \
115 --disable-update-mime-database && \
116 gmake clean && gmake && gmake distcheck
120 openssl sha1 pcb-20091103.tar.gz > pcb-20091103.cksum
121 openssl md5 pcb-20091103.tar.gz >> pcb-20091103.cksum
122 openssl rmd160 pcb-20091103.tar.gz >> pcb-20091103.cksum
123 echo "File size (bytes):" >> pcb-20091103.cksum
124 wc -c pcb-20091103.tar.gz >> pcb-20091103.cksum
126 8. Create a new file release for pcb with a release name of
127 "pcb-20091103" (for pcb-20091103).
129 https://sourceforge.net/projects/pcb (you must be logged in to sourceforge)
132 Click "Project Admin->File Manager".
133 Left click on "pcb" to expand it.
134 Right click on "pcb" and choose "New folder". Use "pcb-20091103" as the name.
135 Copy out the section from NEWS which are the release notes for this release.
136 Place the into a file called pcb-20091103.txt.
138 Right click on "pcb-20091103" and choose "Uploads here".
139 Click "Upload File" and upload the .tar.gz, .txt and .cksum files.
141 Left click on pcb-20091103.txt and check the "Release notes" box and
144 Left click on pcb-20091103.tar.gz to bring up a form to edit the file
145 details. Change the label to "source code release". Check all the platforms
146 except for windows. Select the release notes file and click "Save".
148 Left click on pcb-20091103.cksum to bring up a form to edit the file
149 details. Change the label to "checksum file", select the release notes file,
152 =) return to your regularly scheduled trunk development
155 =) if this is a patch release, then simply make desired changes to the branch, and
156 git checkout pcb-20091103
160 git tag -a pcb-20091103-PATCH001
163 =) gmake distclean ; ./autogen.sh &&./configure && gmake distcheck
165 =) Update the web pages. In particular, update news.shtml and index.shtml
166 and then rebuild the corresponding .html files.