[22055] users/jberry/mediawiki_archive/releaseprocess.txt

source_changes at macosforge.org source_changes at macosforge.org
Thu Feb 15 21:43:06 PST 2007


Revision: 22055
          http://trac.macosforge.org/projects/macports/changeset/22055
Author:   jberry at macports.org
Date:     2007-02-15 21:43:06 -0800 (Thu, 15 Feb 2007)

Log Message:
-----------
The latest releaseprocess document from the opendarwin mediawiki, near as I can tel.

Extract from the mw_text table after following mw_page to mw_revision and finally to mw_text.

Added Paths:
-----------
    users/jberry/mediawiki_archive/releaseprocess.txt

Added: users/jberry/mediawiki_archive/releaseprocess.txt
===================================================================
--- users/jberry/mediawiki_archive/releaseprocess.txt	                        (rev 0)
+++ users/jberry/mediawiki_archive/releaseprocess.txt	2007-02-16 05:43:06 UTC (rev 22055)
@@ -0,0 +1,140 @@
+== DarwinPorts Release Process ==
+
+This page documents the evolving DarwinPorts release process.
+
+== Goals of a Release ==
+
+There are several goals in the release process:
+
+* Make a specific version of DarwinPorts available to users
+* Archive the materials (code, documentation, etc) that compose the release.
+* Replicatability: Enable the release to be regenerated
+* Consistency: codify naming, network locations, etc, for released components.
+* Ensure that the user base and public is notified of the release.
+
+== Steps to a Release ==
+
+The following steps to a release are documented in more detail below:
+
+# Create a cvs branch to carry the release
+# Prepare the code for release
+# Tag the release
+# Create release products: tarball and dmg
+# Post release products
+# Make release version available through self-update
+# Notify public of the release
+
+=== Create a Release Branch ===
+
+For each major release (i.e. 1.0, 1.1, 1.2) a release branch is created, with a consistent name. To do this, two things are required:
+
+# Tag the branch point (for instance: release_1_1-bp)
+# Create the branch (release_1_1)
+
+ cvs tag "release_1_1-bp"
+ cvs tag -b "release_1_1"
+
+The actual release, alpha or beta releases, release candidates, and any point releases will all live, and be tagged, on this branch.
+
+Only the base subdirectory, not the dports subdirectory, is branched for a given release.
+
+=== Prepare the code for Release ===
+
+In preparation for a release, several things should be completed within the code:
+
+# Update the file base/ChangeLog to reflect changes in the release.
+# Update the file base/config/dp_version with the target release number. Note that this is a floating point number that corresponds to the release number; it should correspond roughly to the release number where possible. Release 1.3.1, for instance, would be represented by the floating point number 1.31. The version number in dp_version is displayed by the port command as the version of darwinports, and is used by the selfupdate command to determine whether a newer version of code is available.
+# Make sure that these, and any other changes or bug fixes as necessary, are made on and/or merged into the release branch. If you've made changes to ChangeLog only on the release branch, those changes should be merged to HEAD as well.
+
+=== Tag the Release ===
+
+Once the release is ready, it must be tagged so that the release components may be fetched in the future, to ensure replicatability.
+
+Generally, a release candidate is first tagged and built. When and if it is approved as the actual release, an additional tag is created that names the same sources.
+
+Tagging conventions:
+
+* release_1_1_0-rc1 (release candidate 1 for release 1.1)
+* release_1_1_0 (tagged release 1.1)
+* release_1_1_0-archive (tagged release 1.1 -- complete archive)
+* release_1_1_1 (1.1.1 release)
+
+Although only the base subdirectory is branched and tagged for a given release, we also create a seperate tag for the entire tree at the time a release tag is created, in order to provide a stake in the ground that specifies a set of ports intended to work with that release. Note that this tag incorporates the entire cvs directory at HEAD, but the base directory at the point at the point of release.
+
+Such a composite directory may be created by checking out HEAD of the entire directory, and then updating the base directory to the appropriate branch. For instance:
+
+ cvs -d :ext:yourlogin at cvs.opendarwin.org:/Volumes/src/cvs/od co -d dp-release11 darwinports
+ cd dp-release11/base
+ cvs update -r release_1_1
+
+We tag the entire directory as: release_1_1_0-archive
+
+ cvs tag release_1_1_0-archive
+
+And we tag the base directory for the release
+
+ cd base; cvs tag release_1_1_0
+
+=== Create & Post Release Tarballs ===
+
+The release tarballs are tar.bz2 and tar.gz archives of the  base directory only and of the entire CVS tree for a particular release. They are named with the following naming convention:
+
+ DarwinPorts-1.1.tar.{bz2,gz} (base directory only, corresponding to tag release_1_1_0)
+ DarwinPorts-1.1-archive.tar.{bz2,gz} (complete archives corresponding to tag release_1_1_0-archive)
+
+The following commands issued to the top level Makefile will generate the archives and checksums:
+
+ make DISTVER=1.1 DISTTAG=release_1_1_0 distfromcvs
+
+(note that DISTTAG is generated from DISTVER automatically. But our naming convention drops the last .0 in the DISTNAME, so for x.y.0 releases, you want to specify these distinctly, as above).
+
+These tarballs are posted at http://www.darwinports.org/downloads. This directory corresponds to sampson.opendarwin.org:/Library/WebServer/Documents/projects/darwinports/downloads, and is available via sftp.
+
+Additionally, a file is created, and posted in the same location, that contains md5, sha1, and rmd160 checksums for each of the files:
+
+ DarwinPorts-1.1.chk.txt
+
+(We should have a way to sign these checksums, and have the signer's keys posted somewhere...)
+
+=== Create Release Disk Image(s) ===
+
+The dmg is a Mac OS X disk image that contains a standalone installer for the release.
+
+The dmg is named in a consistent fashion, which incorporates the OS version for which the dmg was built.
+
+ DarwinPorts-1.1-10.3.dmg
+ DarwinPorts-1.1-10.4.dmg
+
+To create the disk image, use the darwinports port; the Portfile will need to be updated to incorporate the proper release version and the release tarballs will need to be already uploaded to the downloads section of the site (wherefrom the sources are fetched by the darwinports port to build the dmg for the release).
+
+ port dmg darwinports
+
+Name the dmg appropriately, and generate checksums, which will need to be added to the checksum file:
+
+ cd work
+ mv DarwinPorts-1.1.dmg DarwinPorts-1.1-10.4.dmg
+ for type in -md5 -sha1 -ripemd160; do openssl dgst $type DarwinPorts-1.1.dmg; done
+
+These new products, along with the new checksums file, also have to be posted to the downloads seciton of the DarwinPorts site.
+
+=== Make the Release Available through Self-Update ===
+
+In order to make the release version available through selfupdate the base/config/RELEASE_TAG file in cvs HEAD needs to be updated with the tag of  the release to distrubute. This file is read by the cron job that makes the code available via rsync. See base/portmgr/dprsyncup.
+
+=== Notify the Public of the Release ===
+
+Once the release has been posted, notification of the release should be sent/posted to the following places:
+
+* The darwinports at opendarwin.org mailing list
+* The [http://www.darwinports.org/getdp/ getdp] and [http://www.darwinports.org/ main] sites (the "$dp_version" variable in the includes/common.inc file for the main English site --www/includes/common.inc-- and each localization has to be updated with the release version)
+* News section of the [http://www.darwinports.org/ main] site
+* The darwinports wiki (updating the "Current DarwinPorts release" line on the [[DarwinPorts|main]] page)
+* Apple's [http://www.apple.com/downloads/macosx/unix_open_source/darwinports.html Mac OS X software download page] (submitter: mww@)
+* [http://freshmeat.net/projects/darwinports/ Freshmeat] (submitter: mww@)
+* [http://www.versiontracker.com/dyn/moreinfo/macosx/26679 VersionTracker] (submitter: mij@)
+* (Where else? -- MacUpdate?)
+
+== Additional Release Resources ==
+
+* Landon Fuller's [http://www.opendarwin.org/pipermail/darwinports/2005-May/026055.html release process] suggestions
+* A good primer on [http://www.psc.edu/~semke/cvs_branches.html cvs branching and tagging] |             |        0 |               |               |              0 | utf-8     |                   | 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/macports-changes/attachments/20070215/8d9a72d5/attachment.html


More information about the macports-changes mailing list