* prevent duplicate objects from being selected
[geda-gerbv.git] / README-release.txt
blobb6338737a77c0f0275f390d9491374d368a4702d
1 #!/bin/sh
3 # $Id$
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
11 about dialog box.
13 Note that the gyrations with maintainerclean 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 To make a gerbv release do the following:
22 =) Review the BUGS file and make sure it is up to date.
24 =) # make sure it builds and makes distfiles ok:
25 ./autogen.sh
26 ./configure --enable-maintainer-mode
27 gmake maintainerclean
28 ./autogen.sh
29 ./configure
30 gmake distcheck
32 =) cvs ci
34 =) Read the section in src/Makefile.am about the shared library versioning
35 and make sure we have done the right thing. Check in src/Makefile.am
36 if needed. This is critical. The version *will* change with every release
37 if *any* changes have been made to the sources for libgerbv. src/Makefile.am
38 has specific rules for how the versioning works.
40 =) update the NEWS file with some sort of release notes.
41 Check in changes
43 =) update the ChangeLog with 'cvs2cl.pl'. Check in changes.
44 ./utils/cvs2cl.pl -U ./utils/umap
46 =) if this is a major release, then tag and branch:
48 1. Tag the base of the release branch
49 cvs tag gerbv-2-0-base
51 2. Create the release branch
52 cvs tag -R -b -r gerbv-2-0-base gerbv-2-0
54 3. On the trunk, update configure.ac to update the version
55 for example 2.1a after creating the gerbv-2-0 branch
56 cvs update -PdA
57 vi configure.ac
58 cvs ci configure.ac
60 4. On the release branch, update configure.ac to update the version
61 for example 2.0rc1. Now pre-release snapshots can be made.
62 cvs update -PdA -r gerbv-2-0
63 vi configure.ac
64 cvs ci configure.ac
66 5. If desired tag and create a release candidate:
67 cvs update -PdA -r gerbv-2-0
68 cvs tag -R -r gerbv-2-0 gerbv-2-0-RC1
69 cvs update -PdA -r gerbv-2-0-RC1
70 ./autogen.sh
71 ./configure --enable-maintainer-mode
72 gmake maintainerclean
73 ./autogen.sh
74 ./configure
75 gmake distcheck
77 6. When the release branch is ready to go, update configure.ac to
78 set the final release version. Then tag the release.
79 cvs update -PdA -r gerbv-2-0
80 vi configure.ac
81 cvs ci configure.ac
82 cvs tag -R -r gerbv-2-0 gerbv-2-0-RELEASE
83 cvs update -PdA -r gerbv-2-0-RELEASE
84 ./autogen.sh
85 ./configure --enable-maintainer-mode
86 gmake maintainerclean
87 ./autogen.sh
88 ./configure
89 gmake distcheck
91 If teeny version bumps are made for a bug fix, then the tag name
92 should be something like gerbv-2-0-PATCH001 for gerbv-2.0.1
94 7. Create checksums
96 openssl md5 gerbv-2.0.0.tar.gz > gerbv-2.0.0.cksum
97 openssl rmd160 gerbv-2.0.0.tar.gz >> gerbv-2.0.0.cksum
98 openssl sha1 gerbv-2.0.0.tar.gz >> gerbv-2.0.0.cksum
100 8. Upload the .tar.gz, and .cksum files to
101 ftp://upload.sourceforge.net/incoming/
103 9. Create a new file release for gerbv with a release name of
104 "gerbv-2.0.0" (for gerbv-2.0.0).
106 For file types:
107 .tar.gz - any / source .gz
108 .cksum - Platform Independent / Other Source File
110 10. Return to your regularly scheduled trunk development
111 cvs update -PdA
113 =) if this is a patch release, then simply make desired changes to the branch, and
114 cvs ci
115 cvs tag -R -r gerbv-2-0 gerbv-2-0-PATCH001
116 ./autogen.sh
117 ./configure --enable-maintainer-mode
118 gmake maintainerclean
119 ./autogen.sh
120 ./configure
121 gmake distcheck