Set version for 20091103 release
[geda-pcb/pcjc2.git] / README.snapshots
blob83aee616e42c40f5a23a2b00c03e40e140d3f661
1 #!/bin/sh
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
9 about dialog box.
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
19 files.
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
28 git fetch
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
39 gmake distclean
40 ./autogen.sh
41 ./configure --disable-update-desktop-database --disable-update-mime-database
42 gmake
43 gmake distcheck
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"'
48 gmake distcheck
50 # check the build with the batch HID
51 setenv DISTCHECK_CONFIGURE_FLAGS '--with-gui=batch'
52 gmake distcheck
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
57 multiple commits.
59 git commit <files>
60 git push <files>
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
71 git push
73 =) if this is a major release, then branch:
75 1. Create the release branch
76 git branch pcb-20091103
78 3. FIX_ME [fix up this step. what shall we do with the version
79 on the trunk? We are about to run out of letters!]
80 On the trunk, update configure.ac to update the version
81 for example 1.99x after releasing 1.99w
82 git checkout master
83 vi configure.ac
84 git commit configure.ac
85 git push
87 4. On the release branch, update configure.ac to update the version
88 for example 20091103_ALPHA. Now pre-release snapshots can be made.
89 git checkout pcb-20091103
91 5. If desired tag an alpha release:
92 git checkout pcb-20091103
93 ./autogen.sh
94 git tag -a pcb-20091103-ALPHA
95 git checkout pcb-20091103-ALPHA
96 ./autogen.sh && ./configure --enable-maintainer-mode \
97 --disable-update-desktop-database \
98 --disable-update-mime-database && \
99 gmake && gmake distcheck
101 6. When the release branch is ready to go, update configure.ac to
102 set the final release version. Then tag the release.
103 git checkout pcb-20091103
104 vi configure.ac
105 git commit configure.ac
106 ./autogen.sh
107 git commit -a # after we expunge all generate files from git, we can skip this one
108 git push
109 git tag -a pcb-20091103-RELEASE
110 git push --tags
111 git checkout pcb-20091103-RELEASE
112 ./autogen.sh && ./configure --enable-maintainer-mode \
113 --disable-update-desktop-database \
114 --disable-update-mime-database && \
115 gmake clean && gmake && gmake distcheck
117 7. Create checksums
119 openssl sha1 pcb-20091103.tar.gz > pcb-20091103.cksum
120 openssl md5 pcb-20091103.tar.gz >> pcb-20091103.cksum
121 openssl rmd160 pcb-20091103.tar.gz >> pcb-20091103.cksum
122 echo "File size (bytes):" >> pcb-20091103.cksum
123 wc -c pcb-20091103.tar.gz >> pcb-20091103.cksum
125 8. Create a new file release for pcb with a release name of
126 "pcb-20091103" (for pcb-20091103).
128 https://sourceforge.net/projects/pcb (you must be logged in to sourceforge)
130 Pick Admin->File Releases
132 Next to the "gerbv" package, click "Add Release"
134 In the "Step 1: Edit Existing Release" section, paste in the section of the NEWS
135 for this version. Check the "Preserve my pre-formatted text" radio button and click
136 "Submit/Refresh".
138 In the "Step 2: Add Files To This Release" section follow the "upload new files" link
139 and then in the next page the "Web Upload" link. You will have to log in to
140 sourceforge again.
142 Upload the .tar.gz, .cksum, and if you built one, the windows installer.
144 Once you have completed the file uploads return to the edit releases page, check
145 the radio buttons next to the uploaded files and click the "Add Files..." button.
147 In the "Step 3: Edit Files in this Release" section, set the following:
148 For file types:
149 .tar.gz - any / source .gz
150 .cksum - Platform Independent / Other Source File
151 .exe - i386 / .exe (32-bit Windows)
153 You will have to click "update" for each file as you go.
155 In the "Step 4: Email Release Notice" section, check the "I'm sure"
156 radio button and click the "Send Notice" button.
158 9. Have a project admin go to the Admin->File Releases page and then
159 follow the "Create/Edit Download page" to change the default download
160 file to the new release.
162 10. Return to your regularly scheduled trunk development
163 git checkout master
165 =) if this is a patch release, then simply make desired changes to the branch, and
166 git checkout pcb-20091103
167 # make changes
168 ./autogen.sh
169 git commit
170 git tag -a pcb-20091103-PATCH001
171 git push
173 =) gmake distclean ; ./autogen.sh &&./configure && gmake distcheck