| Subversion Tarball Release Procedure |
| ==================================== |
| |
| 1. Tweak trunk/CHANGES to contain all the latest changes. Commit. |
| |
| 2. Bump the version numbers in svn_version.h and CHANGES. Commit. |
| |
| 3. Create the release branch for building the release: |
| |
| a. Create the branch |
| |
| svn cp -rHEAD -m"Create release-X.YY.Z branch" \ |
| http://svn.collab.net/repos/svn/trunk \ |
| http://svn.collab.net/repos/svn/branches/release-X.YY.Z |
| |
| (Note that only the release manager commits to the branch; |
| everyone else continues working on trunk, and the release |
| manager ports changes across only if absolutely necessary.) |
| |
| b. Check out a working copy of the branch |
| |
| svn co http://svn.collab.net/repos/svn/branches/release-X.YY.Z |
| |
| or |
| |
| svn switch http://svn.collab.net/repos/svn/branches/release-X.YY.Z |
| |
| if you have an existing working copy |
| |
| c. Make sure your release branch wc has the following packages |
| extracted into the root of the wc tree: |
| |
| apr (see INSTALL, section I) |
| apr-util (see INSTALL, section I) |
| neon (see INSTALL, section I) |
| DocBook Tools (see doc/book/README) |
| |
| *ALL* of these are needed to build Subversion. |
| |
| To install apr/apr-util, see INSTALL, section I.1. |
| |
| To install neon, see INSTALL, section I.5. |
| |
| To configure/install Apache (httpd-2.X.YY), see INSTALL, |
| section I.7 and section III. If you maintain a separate |
| build/release area, and don't want to over-write an |
| existing/working installation of Apache, you may want to use |
| --prefix=/usr/local/apache2 to install a parallel instance of |
| Apache. |
| |
| To make sure httpd.conf is properly set up for DAV access, see |
| subversion/tests/clients/cmdline/README. |
| |
| Also, see sections 'Building the Latest Source under Unix' and |
| 'BUILDING A SUBVERSION SERVER' in the INSTALL file. for more |
| detailed build information. |
| |
| d. Run './autogen.sh && ./configure' so the docs can get built in |
| the branch tree (in step 4, dist.sh will move the built docs |
| into the release sandbox). |
| |
| 4. Run './dist.sh [ARGS ...]' (see dist.sh for details about ARGS) |
| Watch dist.sh's output to make sure everything goes smoothly; when |
| it's done, you'll have 'subversion-X.YY.Z.tar.gz' in the cwd. |
| |
| 5. Test the tarball: |
| a) tar zxvf subversion-X.YY.Z.tar.gz; cd subversion-X.YY.Z |
| b) ./configure |
| |
| See INSTALL, section III.B for detailed instructions |
| on configuring/building Subversion. |
| |
| If you installed Apache in some place other than the default, as |
| mentioned above, you will need to use the same |
| --prefix=/usr/local/apache2 option as used to configure Apache. |
| |
| You may also want to use --enable-mod-activation, which will |
| automatically enable the required Subversion modules in the |
| Apache config file. |
| |
| c) make |
| d) make check |
| e) make install (this activates mod_dav) |
| f) make davcheck |
| |
| For this, start up Apache after having configured according to |
| the directions in subversion/tests/clients/cmdline/README. |
| |
| Make sure, that if you maintain a development installation of |
| apache, that you check the config file and update it for the |
| new release area where you're testing the tar-ball. |
| |
| g) make svncheck |
| |
| For this step, start up svnserve with these args: |
| |
| $ subversion/svnserve/svnserve -d -r \ |
| `pwd`/subversion/tests/clients/cmdline |
| |
| -d tells svnserve to run as a daemon |
| -r tells svnserve to use the following directory as the |
| logical file system root directory. |
| |
| After svnserve is running as a daemon 'make svncheck' should run |
| |
| h) Then test that you can check out the subversion repository |
| with this environment: |
| |
| subversion/clients/cmdline/svn co \ |
| http://svn.collab.net/repos/svn/trunk |
| |
| 7. Post tarball to the "File sharing" section of the tigris.org web |
| site <http://subversion.tigris.org/servlets/ProjectDownloadList>: |
| |
| The ability to upload a public, automatically approved tarball |
| requires the "Project Document - Approve" permission, which is a |
| standard part of the "Download Manager" or "Content Developer" |
| roles. If you don't have this access, make sure you |
| 'Request a New Role' from the tigris web site. |
| |
| Once Download Manager status has been granted: |
| |
| a. Log into http://subversion.tigris.org |
| b. Click on the 'file sharing' link (left frame at the top) |
| c. Click on the 'Source tarballs' link (main frame) |
| d. Click on the 'Add a file' link (top, main frame, under 'File Sharing') |
| e. Fill in the following fields: |
| |
| Name: subversion-X.YY.Z.tar.gz (replace X.YY.Z with the release number) |
| Status: Stable |
| Description: Subversion release X.YY.Z (MD5: <md5sum of tarball>) |
| Contents: (select 'Attachment', hit Browse or enter path to tarball) |
| |
| f. Click Submit |
| |
| To get the MD5 checksum for the tarball, make sure you have the |
| md5sum command installed and from the release branch wc, run: |
| |
| md5sum subversion-X.YY.Z.tar.gz |
| |
| There will be a single line of 2 fields returned looking something like: |
| |
| $ md5sum subversion-0.25.tar.gz |
| a018220d5c790161bc712ccb7d0f1b38 subversion-0.25.tar.gz |
| |
| The 32 character alpha-numeric string on the left is the checksum. |
| Use this in the Description field, and also mention it in the |
| Announcement e-mail explained below. |
| |
| 8. Move branch into the tags directory in the repository. |
| |
| svn mv http://svn.collab.net/repos/svn/branches/release-X.YY.Z \ |
| http://svn.collab.net/repos/svn/tags/X.YY.Z \ |
| -m"Moved Release X.YY.Z branch to tags/" |
| |
| Now that the release is public, no more changes can happen on that |
| branch. If we discover problems with the release, then we make a |
| new branch (with the minor version number incremented), apply |
| fixes, and go through the release process again. |
| |
| 9. Update www/project_status.html on trunk. |
| |
| a. Edit the www/project_status.html file appropriately in /trunk *NOT* |
| in the release branch and commit. |
| |
| If you used 'svn switch' in 3b above, you can simply 'switch' back |
| to /trunk using: |
| |
| svn switch http://svn.collab.net/repos/svn/trunk |
| |
| then edit the www/project_status.html file appropriately and commit. |
| |
| b. Go to http://svn.collab.net and click on the "Update the |
| live web site" link. Click 'Publish' then visit |
| http://subversion.tigris.org/project_status.html to make sure |
| the changes are there. You may have to hit 'Reload' if this |
| page was previously visited, and therefore cached by your |
| browser. |
| |
| 10. Post news item <http://subversion.tigris.org/servlets/ProjectNewsAdd>, |
| and send an announcement to dev and announce lists. |
| |
| 11. If necessary, post newest versions of docs to web sites. |
| |
| 12. [OPTIONAL] Upgrade svn.collab.net to head, then repeat step 5e. |
| Someone with administrative access should do this, usually not the |
| release manager. |