Changeset 80730
- Timestamp:
- 07/16/11 08:05:53 (4 years ago)
- File:
-
- 1 edited
-
trunk/base/portmgr/ReleaseProcess (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/base/portmgr/ReleaseProcess
r79583 r80730 32 32 === Create a Release Branch === 33 33 34 For each major release (i.e. 1. 5.x, 1.6.x, etc.) an appropriate branch is created with a34 For each major release (i.e. 1.9.x, 2.0.x, etc.) an appropriate branch is created with a 35 35 consistent name. To do this, two things are required: 36 36 37 37 * Choose the svn revision from which to create the branch, most likely based off trunk. 38 * Create the branch (e.g. release_ 1_6) through the svn "copy" command for history preservation,38 * Create the branch (e.g. release_2_0) through the svn "copy" command for history preservation, 39 39 first creating the needed branch directory to preserve the required directory structure 40 40 (the 'base' directory level *needs* to exist in each release branch, otherwise selfupdate breaks): 41 41 42 svn mkdir -m "commit-message" https://svn.macports.org/repository/macports/branches/release_ 1_642 svn mkdir -m "commit-message" https://svn.macports.org/repository/macports/branches/release_2_0 43 43 svn cp [-r<rev>] -m "commit-message" https://svn.macports.org/repository/macports/trunk/base \ 44 https://svn.macports.org/repository/macports/branches/release_ 1_644 https://svn.macports.org/repository/macports/branches/release_2_0 45 45 46 46 The actual release, alpha or beta releases, release candidates, and any point releases will all … … 82 82 Tagging conventions: 83 83 84 * release_1_6_0-rc1 (release candidate 1 for release 1.6.0) 85 * release_1_6_0 (tagged release 1.6.0) 86 * release_1_6_0-archive (tagged release 1.6.0 -- complete archive) 87 * release_1_6_1 (1.6.1 release) 84 * release_2_0_0-beta2 (beta 2 for release 2.0.0) 85 * release_2_0_0-rc1 (release candidate 1 for release 2.0.0) 86 * release_2_0_0 (tagged release 2.0.0) 87 * release_2_0_0-archive (tagged release 2.0.0 -- complete archive) 88 * release_2_0_1 (2.0.1 release) 88 89 89 90 We first tag the branched base directory to make up the final release: 90 91 91 svn cp -m "commit-message" https://svn.macports.org/repository/macports/branches/release_ 1_6\92 https://svn.macports.org/repository/macports/tags/release_ 1_6_092 svn cp -m "commit-message" https://svn.macports.org/repository/macports/branches/release_2_0 \ 93 https://svn.macports.org/repository/macports/tags/release_2_0_0 93 94 94 95 Although only the base subdirectory is branched and tagged for a given major release, we also create a 95 96 separate tag for the entire tree (base sources and full ports tree) at the time the final release tag is 96 created (only for major releases, 1.x.0), in order to provide a stake in the ground that specifies a set97 created (only for major releases, x.y.0), in order to provide a stake in the ground that specifies a set 97 98 of ports intended to work with that release. Note that this tag incorporates the entire svn trunk directory 98 99 at the revision number at which the final release was tagged. … … 102 103 tag URL. For instance: 103 104 104 svn co [-r<rev>] https://svn.macports.org/repository/macports/trunk release_ 1.6.0-archive105 cd release_ 1.6.0-archive/base106 svn switch https://svn.macports.org/repository/macports/tags/release_ 1_6_0/base107 108 And finally we tag the entire directory as release_ 1_6_0-archive:105 svn co [-r<rev>] https://svn.macports.org/repository/macports/trunk release_2.0.0-archive 106 cd release_2.0.0-archive/base 107 svn switch https://svn.macports.org/repository/macports/tags/release_2_0_0/base 108 109 And finally we tag the entire directory as release_2_0_0-archive: 109 110 110 111 cd ../../ 111 svn cp -m "commit-message" release_ 1.6.0-archive https://svn.macports.org/repository/macports/tags/release_1_6_0-archive112 svn cp -m "commit-message" release_2.0.0-archive https://svn.macports.org/repository/macports/tags/release_2_0_0-archive 112 113 113 114 … … 117 118 for a particular release. They are named with the following naming convention: 118 119 119 MacPorts- 1.6.0.tar.{bz2,gz} (base directory only, corresponding to tag release_1_6_0)120 MacPorts- 1.6.0-archive.tar.{bz2,gz} (complete archives corresponding to tag release_1_6_0-archive)120 MacPorts-2.0.0.tar.{bz2,gz} (base directory only, corresponding to tag release_2_0_0) 121 MacPorts-2.0.0-archive.tar.{bz2,gz} (complete archives corresponding to tag release_2_0_0-archive) 121 122 122 123 The following commands issued to the top level Makefile will generate all the tarballs and checksums: 123 124 124 make ARC=yes DISTVER= 1.6.0 distfromsvn125 make ARC=yes DISTVER=2.0.0 distfromsvn 125 126 126 127 Note that if you omit the "ARC=yes" flag at the start of the make call then the full archive tarballs will not be produced. … … 132 133 for each of the files: 133 134 134 MacPorts- 1.6.0.chk.txt135 MacPorts-2.0.0.chk.txt 135 136 (We should have a way to sign these checksums, and have the signer's keys posted somewhere. 136 137 Security experts in the project, would you be interested in leading this effort? Eric? Mark? Anyone else?) … … 140 141 141 142 The dmg is a Mac OS X disk image that contains a standalone installer, configured in the usual way, for major 142 MacPorts releases ( 1.x.0), named in a consistent fashion and incorporating the OS version for which it143 MacPorts releases (x.y.0), named in a consistent fashion and incorporating the OS version for which it 143 144 was built. 144 145 145 MacPorts-1.6.0-10.4-Tiger.dmg 146 MacPorts-1.6.0-10.5-Leopard.dmg 146 MacPorts-2.0.0-10.5-Leopard.dmg 147 MacPorts-2.0.0-10.6-SnowLeopard.dmg 148 MacPorts-2.0.0-10.7-Lion.dmg 147 149 148 150 To create a disk image, use the MacPorts port. The Portfile will need to be updated to incorporate the … … 157 159 158 160 cd work 159 mv MacPorts- 1.6.0.dmg MacPorts-1.6.0-10.5-Leopard.dmg160 for dmg in MacPorts- 1.6.0-*.dmg; do for type in -md5 -sha1 -ripemd160 -sha256; do openssl dgst $type $dmg; done >> MacPorts-1.6.0.chk.txt; done161 mv MacPorts-2.0.0.dmg MacPorts-2.0.0-10.6-SnowLeopard.dmg 162 for dmg in MacPorts-2.0.0-*.dmg; do for type in -md5 -sha1 -ripemd160 -sha256; do openssl dgst $type $dmg; done >> MacPorts-2.0.0.chk.txt; done 161 163 162 164 These new products, along with the new checksums, also have to be posted to the appropriate … … 208 210 === Update trunk's version for next release === 209 211 Once trunk is to be used for development of the next major version, increase its version information to 210 indicate it's moved past the release version by setting the patch-level version to 99, e.g. , 1.8.99 (in212 indicate it's moved past the release version by setting the patch-level version to 99, e.g. 2.0.99 (in 211 213 trunk/base/config/macports_version). 212 214
Note: See TracChangeset
for help on using the changeset viewer.

