~svn/ubuntu/raring/subversion/ppa

« back to all changes in this revision

Viewing changes to notes/releases.txt

  • Committer: Bazaar Package Importer
  • Author(s): Adam Conrad
  • Date: 2005-12-05 01:26:14 UTC
  • mfrom: (1.1.2 upstream)
  • Revision ID: james.westby@ubuntu.com-20051205012614-qom4xfypgtsqc2xq
Tags: 1.2.3dfsg1-3ubuntu1
Merge with the final Debian release of 1.2.3dfsg1-3, bringing in
fixes to the clean target, better documentation of the libdb4.3
upgrade and build fixes to work with swig1.3_1.3.27.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
                Subversion Tarball Release Procedure
 
2
                ====================================
 
3
 
 
4
1. When starting a new major or minor line create a release branch
 
5
   from the "golden" revision number (otherwise skip to step 3):
 
6
 
 
7
   svn cp -rHEAD -m"Create release X.Y.Z branch" \
 
8
      https://svn.collab.net/repos/svn/trunk \
 
9
      https://svn.collab.net/repos/svn/branches/X.Y.x
 
10
 
 
11
   All release of the X.Y line will come out of this branch.
 
12
   Changes from trunk will be merged based upon compatibility
 
13
   rules and voting as explained in HACKING.
 
14
 
 
15
2. Bump the version numbers in svn_version.h on trunk.
 
16
 
 
17
    Note that this should be the next major/minor line we plan on doing.
 
18
    E.G. if you're making the 1.1.x branch then the svn_version.h in trunk
 
19
    should reflect 1.2.0.
 
20
 
 
21
    You'll commit this change along with the change in step 3. 
 
22
 
 
23
3. Tweak trunk to have a new CHANGES section.
 
24
 
 
25
   a) Begin a new section at the top of the CHANGES file with:
 
26
 
 
27
      Version X.Y.Z (released XX Month 200X, from branches/X.Y.Z)
 
28
      http://svn.collab.net/repos/svn/tags/X.Y.Z
 
29
 
 
30
   b) Commit.
 
31
 
 
32
4. Create a working copy (wc) from the release branch:
 
33
 
 
34
   $ svn co https://svn.collab.net/repos/svn/branches/X.Y.Z
 
35
 
 
36
5. Merge fixes and changes from trunk. 
 
37
 
 
38
   Only very important bugfixes are allowed to merge from the trunk to
 
39
   the release branch. A decision of a merge happends in the STATUS 
 
40
   file as documented in HACKING. 
 
41
 
 
42
   In the following example, we pretends to merge revision 7868 into
 
43
   the release branch:
 
44
 
 
45
   a) cd to your branch release working copy and run:
 
46
 
 
47
     $ svn merge -r7867:7868 https://svn.collab.net/repos/svn/trunk
 
48
 
 
49
   b) Commit the changes:
 
50
 
 
51
      $ svn ci -m "Merge r7868 into the 0.34.0 branch"
 
52
 
 
53
   c) cd to your wc for https://svn.collab.net/repos/svn/trunk and add
 
54
      a note under User-visible changes or Developer-visible changes. 
 
55
 
 
56
         * fixed: Java bindings compilation.
 
57
 
 
58
      Differentiate between client-side and server-side changes by,
 
59
      say, putting them in separate sections.  (We don't currently
 
60
      have an example of this, but we intend to do it for future
 
61
      CHANGES entries.)
 
62
 
 
63
      Note: CHANGES is maintained on the trunk because future releases should
 
64
      have past releases CHANGES entries.  It will be merged onto the branch
 
65
      just before a release.
 
66
 
 
67
   d) Commit
 
68
 
 
69
6. It's release time, so cd to the release branch's working copy.
 
70
 
 
71
   Make sure your release branch wc has the following packages
 
72
   extracted into the root of the wc tree:
 
73
 
 
74
   apr           (see INSTALL, section I)
 
75
   apr-util      (see INSTALL, section I)
 
76
   neon          (see INSTALL, section I)
 
77
 
 
78
   To install apr/apr-util, see INSTALL, section I.1.
 
79
 
 
80
   To install neon, see INSTALL, section I.5.
 
81
 
 
82
   To configure/install Apache (httpd-2.X.YY), see INSTALL,
 
83
   section I.7 and section III.  If you maintain a separate
 
84
   build/release area, and don't want to over-write an
 
85
   existing/working installation of Apache, you may want to use
 
86
   --prefix=/usr/local/apache2 to install a parallel instance of
 
87
   Apache.
 
88
 
 
89
   To make sure httpd.conf is properly set up for DAV access, see
 
90
   subversion/tests/clients/cmdline/README.
 
91
 
 
92
   You should also have libtool-1.5.10 and autoconf-2.59 installed
 
93
   from source.   It is important that you do not use distribution
 
94
   shipped versions of this software as they are often patched in
 
95
   ways that are not portable.
 
96
 
 
97
   Also, see sections 'Building the Latest Source under Unix' and
 
98
   'BUILDING A SUBVERSION SERVER' in the INSTALL file. for more
 
99
   detailed build information.
 
100
 
 
101
   When building the Windows .zip release be sure to use the apr files
 
102
   from the .zip packaging of Apache.  Additionally you'll want to 
 
103
   also include the apr-iconv directory from right next to apr-util in
 
104
   the Apache zip file.  See INSTALL, section I.1, for details.
 
105
 
 
106
7. Merge CHANGES into the release branch. Do it the same way as described in
 
107
   section 4 in this document when merging fixes to the release branch.
 
108
 
 
109
8. Build the tarballs and zip file
 
110
 
 
111
   a) Run './dist.sh -v X.Y.Z -r 1234 -pr branches/X.Y.Z'
 
112
 
 
113
     Watch dist.sh's output to make sure everything goes smoothly; when
 
114
     it's done, you'll have 'subversion-X.Y.Z.tar.gz' and 
 
115
     'subversion-X.Y.Z.tar.bz2' in the cwd.
 
116
 
 
117
   b) Be sure to replace the apr, apr-util and apr-iconv dirs with the 
 
118
      ones from the .zip packaging of Apache, before building the .zip,
 
119
      as mentioned above in 6.
 
120
 
 
121
   c) Run './dist.sh -v X.Y.Z -r 1234 -pr branches/X.Y.Z -zip'
 
122
 
 
123
     Again watch dist.sh's output to make sure everything goes smoothly;
 
124
     when it's done, you'll have 'subversion-X.Y.Z.zip' in the cwd.
 
125
 
 
126
9. Test one or both of the tarballs:
 
127
     a) tar zxvf subversion-X.Y.Z.tar.gz;  cd subversion-X.Y.Z
 
128
     b) ./configure
 
129
 
 
130
         See INSTALL, section III.B for detailed instructions
 
131
         on configuring/building Subversion.
 
132
 
 
133
         If you installed Apache in some place other than the default, as
 
134
         mentioned above, you will need to use the same
 
135
         --prefix=/usr/local/apache2 option as used to configure Apache.
 
136
 
 
137
         You may also want to use --enable-mod-activation, which will
 
138
         automatically enable the required Subversion modules in the
 
139
         Apache config file.
 
140
 
 
141
     c) make
 
142
     d) make check
 
143
     e) make install (this activates mod_dav)
 
144
     f) make davcheck
 
145
 
 
146
        For this, start up Apache after having configured according to
 
147
        the directions in subversion/tests/clients/cmdline/README.
 
148
 
 
149
        Make sure, that if you maintain a development installation of
 
150
        apache, that you check the config file and update it for the
 
151
        new release area where you're testing the tar-ball.
 
152
 
 
153
        (Unless you rename the tree which gets extracted from the
 
154
        tarball to match what's in httpd.conf, you will need to edit
 
155
        httpd.conf)
 
156
 
 
157
     g) make svncheck
 
158
 
 
159
        First, start up svnserve with these args:
 
160
 
 
161
         $ subversion/svnserve/svnserve -d -r \
 
162
           `pwd`/subversion/tests/clients/cmdline
 
163
 
 
164
        -d tells svnserve to run as a daemon
 
165
        -r tells svnserve to use the following directory as the
 
166
           logical file system root directory.
 
167
 
 
168
        After svnserve is running as a daemon 'make svncheck' should run
 
169
 
 
170
     h) Then test that you can check out the subversion repository
 
171
        with this environment:
 
172
 
 
173
         subversion/clients/cmdline/svn co \
 
174
                        https://svn.collab.net/repos/svn/trunk
 
175
 
 
176
     i) Verify that the perl and python swig bindings at least compile.
 
177
        If you can't do this, then have another developer verify.
 
178
 
 
179
         (see bindings/swig/INSTALL for details)
 
180
 
 
181
         Ensure that ./configure detected a suitable version of swig,
 
182
         perl, and python.  Then:
 
183
 
 
184
            make swig-py
 
185
            sudo make install-swig-py
 
186
 
 
187
            make swig-pl
 
188
            make check-swig-pl
 
189
            sudo make install-swig-pl
 
190
 
 
191
     j) Verify that the javahl bindings at least compile.
 
192
        If you can't do this, then have another developer verify.
 
193
 
 
194
         (see bindings/java/javahl/README for details)
 
195
 
 
196
        Ensure that ./configure detected a suitable jdk, and then
 
197
        possibly re-run with '--enable-javahl' and '--with-jdk=':
 
198
              
 
199
            make javahl
 
200
            sudo make install-javahl
 
201
            make check-javahl
 
202
 
 
203
10. Use GPG to sign release. 
 
204
 
 
205
    gpg -b --armor subversion-X.Y.Z.tar.gz
 
206
    gpg -b --armor subversion-X.Y.Z.tar.bz2
 
207
    gpg -b --armor subversion-X.Y.Z.zip
 
208
 
 
209
11. Upload the tarballs to http://subversion.tigris.org/tarballs/.
 
210
 
 
211
    The RM will be given details on how to do this via private channels.
 
212
 
 
213
12. Link to the tarballs from the Downloads page:
 
214
 
 
215
      http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=260
 
216
 
 
217
    Here's how:
 
218
 
 
219
     a. Log into http://subversion.tigris.org/
 
220
     b. Click on the 'Downloads link (left frame at the top)
 
221
     c. Click on the 'Source tarballs' link (main frame)
 
222
     d. Click on the 'Add a file' link (top, main frame, under 'File Sharing')
 
223
     e. Fill in the following fields:
 
224
 
 
225
       Name: subversion-X.Y.Z.tar.gz (replace X.Y.Z with the release number)
 
226
       Status: Stable
 
227
       Description: Subversion release X.Y.Z (MD5: <md5sum of tarball>)
 
228
       Contents: (choose 'Link', then enter
 
229
           http://subversion.tigris.org/tarballs/subversion-X.Y.Z.tar.gz)
 
230
 
 
231
    f. Click Submit
 
232
 
 
233
12. Create the tag with the svn_version.h that reflects the final release.
 
234
    You do this by updating your working copy to the release revision, 1234 in
 
235
    the example below.  Run svnversion to verify that you do not have a mixed
 
236
    working copy or modified working copy, i.e. svnversion outputs only the
 
237
    release revision (not 1234:1235 or 1234M).  Then place the svn_version.h.dist
 
238
    file in place in the working copy and copy from the working copy to the tag
 
239
    URL.  
 
240
 
 
241
    For example:
 
242
      
 
243
      svn up -r 1234
 
244
      svnversion .
 
245
      cp svn_version.h.dist subversion/include/svn_version.h
 
246
      svn cp -m "Tagging release X.Y.Z with svn_version.h matching tarball" \
 
247
          . https://svn.collab.net/repos/svn/tags/X.Y.Z
 
248
 
 
249
    Note: Please always make a tag, even for release candidates.
 
250
 
 
251
13. Bump the svn_version.h for the original branch.
 
252
 
 
253
    Modify subversion/include/svn_version.h
 
254
    If you just did 1.0.2 then svn_version.h should have the proper
 
255
    values for 1.0.3 and so on. 
 
256
 
 
257
14. Update the website.
 
258
 
 
259
   a) Edit the www/project_status.html file appropriately in /trunk *NOT*
 
260
      in the release branch and commit. Remember edit a search term at the
 
261
      end of release's issue link. 
 
262
 
 
263
      If you used 'svn switch' in 3b above, you can simply 'switch' back
 
264
      to /trunk using:
 
265
 
 
266
         svn switch https://svn.collab.net/repos/svn/trunk
 
267
 
 
268
      then edit the www/project_status.html file appropriately.
 
269
 
 
270
   b) Update the best available version at the top of www/project_packages.html
 
271
 
 
272
   c) Commit the modifications.
 
273
 
 
274
15. Post news item <http://subversion.tigris.org/servlets/ProjectNewsAdd>,
 
275
    and send an announcement to dev@, users@, and announce@ lists.
 
276
    Remember to include the URL and MD5 checksum in the announcement.
 
277
 
 
278
    Also notify freshmeat of the new release.
 
279
 
 
280
16. Someone with administrative access should upgrade svn.collab.net
 
281
    to head.  (This is not usually the release manager.)