-
Notifications
You must be signed in to change notification settings - Fork 0
/
README.snapshots
166 lines (129 loc) · 6.04 KB
/
README.snapshots
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
#!/bin/sh
#
This documents what is done to create a pcb release. The releases now
are done by branching the sources, fixing up the release version number
in the branch and then tagging the release branch sources. The motivation
for a branch rather than a tag is to make it easier to deal with setting
the snapshot version number in the documentation, distfile, and the
about dialog box.
NOTE: Use the DISTCHECK_CONFIGURE_FLAGS to be able to run the distcheck
target with lesstif as the built gui with
DISTCHECK_CONFIGURE_FLAGS="--with-gui=lesstif" if you want to also verify
that distcheck works with the lesstif HID.
FIXME -- we need to build where we explicitly add all the export HID's
and where we explicitly build with each of the gui HID's (including
batch). This is needed to catch the case of missing src/hid/*/hid.conf
files.
After following the steps below,
upload the 'pcb-$VERSION.tar.gz' file to the sourceforge file release system
To make a pcb release do the following:
=) Make sure you have up to date sources
git fetch
git rebase origin/master
# note, you could also create a new local branch with
# git checkout -b do_release_from_here origin/master but need to make
# sure we still get the correct branch and tag on the main server eventually
=) # make sure it makes distfiles ok: (have to build before doing distcheck so
pcb gets built so it can create some of the images in the doc directory)
# clean up, and build with the GTK HID
gmake distclean
./autogen.sh
./configure --disable-update-desktop-database --disable-update-mime-database
gmake
gmake distcheck
# check the build with lesstif HID. The /usr/pkg parts should be replaced with
# whatever flags (if any) are needed to find lesstif on your system.
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"'
gmake distcheck
# check the build with the batch HID
setenv DISTCHECK_CONFIGURE_FLAGS '--with-gui=batch'
gmake distcheck
unsetenv DISTCHECK_CONFIGURE_FLAGS
=) commit and push any changes which were needed to fix 'distcheck' problems.
Of course if the changes aren't related then they should be committed in
multiple commits.
git commit <files>
git push <files>
=) update the ChangeLog with './utils/git2cl -O > ChangeLog'
=) update the NEWS file with some sort of release notes
summary. You can find the number of commits with something like
awk '/^2008-11-28/ {print "Changes: " c ; exit} /^20[01][0-9]/ {c++}' ChangeLog
Commit and push NEWS and ChangeLog.
git commit NEWS ChangeLog
git push
=) if this is a major release, then branch:
1. Create the release branch and push to the remove
git branch pcb-20091103
git push origin pcb-20091103
3. FIX_ME [fix up this step. what shall we do with the version
on the trunk? We are about to run out of letters!]
On the trunk, update configure.ac to update the version
for example 1.99x after releasing 1.99w
git checkout master
vi configure.ac
git commit configure.ac
git push
4. On the release branch, update configure.ac to update the version
for example 20091103_ALPHA. Now pre-release snapshots can be made.
git checkout pcb-20091103
5. If desired tag an alpha release:
git checkout pcb-20091103
./autogen.sh
git tag -a pcb-20091103-ALPHA
git checkout pcb-20091103-ALPHA
./autogen.sh && ./configure --enable-maintainer-mode \
--disable-update-desktop-database \
--disable-update-mime-database && \
gmake && gmake distcheck
6. When the release branch is ready to go, update configure.ac to
set the final release version. Then tag the release.
git checkout pcb-20091103
vi configure.ac
git commit configure.ac
./autogen.sh
git commit -a # after we expunge all generate files from git, we can skip this one
git push
git tag -a pcb-20091103-RELEASE
git push --tags
git checkout pcb-20091103-RELEASE
./autogen.sh && ./configure --enable-maintainer-mode \
--disable-update-desktop-database \
--disable-update-mime-database && \
gmake clean && gmake && gmake distcheck
7. Create checksums
openssl sha1 pcb-20091103.tar.gz > pcb-20091103.cksum
openssl md5 pcb-20091103.tar.gz >> pcb-20091103.cksum
openssl rmd160 pcb-20091103.tar.gz >> pcb-20091103.cksum
echo "File size (bytes):" >> pcb-20091103.cksum
wc -c pcb-20091103.tar.gz >> pcb-20091103.cksum
8. Create a new file release for pcb with a release name of
"pcb-20091103" (for pcb-20091103).
https://sourceforge.net/projects/pcb (you must be logged in to sourceforge)
Click "Develop".
Click "Project Admin->File Manager".
Left click on "pcb" to expand it.
Right click on "pcb" and choose "New folder". Use "pcb-20091103" as the name.
Copy out the section from NEWS which are the release notes for this release.
Place the into a file called pcb-20091103.txt.
Right click on "pcb-20091103" and choose "Uploads here".
Click "Upload File" and upload the .tar.gz, .txt and .cksum files.
Left click on pcb-20091103.txt and check the "Release notes" box and
click "Save".
Left click on pcb-20091103.tar.gz to bring up a form to edit the file
details. Change the label to "source code release". Check all the platforms
except for windows. Select the release notes file and click "Save".
Left click on pcb-20091103.cksum to bring up a form to edit the file
details. Change the label to "checksum file", select the release notes file,
and click "Save".
=) return to your regularly scheduled trunk development
git checkout master
=) if this is a patch release, then simply make desired changes to the branch, and
git checkout pcb-20091103
# make changes
./autogen.sh
git commit
git tag -a pcb-20091103-PATCH001
git push
=) gmake distclean ; ./autogen.sh &&./configure && gmake distcheck
=) Update the web pages. In particular, update news.shtml and index.shtml
and then rebuild the corresponding .html files.