Changes between Version 8 and Version 9 of ImprovingPractices
- Timestamp:
- Aug 23, 2007, 11:41:53 AM (15 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
ImprovingPractices
v8 v9 13 13 * Timely Boost releases on a predictable schedule, with no possibility that problems with a few libraries can delay a release of Boost as a whole. 14 14 15 * The next [#Release-ready release-ready] Boost code available from the Subversion repository at all times, including both fixes and new libraries added subsequent to the last official release. Users of this version should not have to wait for a formal release, and should not have torun the risk of instability associated with purely developmental branches.15 * The upcoming release available from the Subversion repository at all times, [#Release-ready release-ready] and including both fixes and new libraries added subsequent to the last official release. Users of this version should not have to wait for a formal release, and should not run the risk of instability associated with purely developmental branches. 16 16 17 17 * Release preparation does not require super-human effort by the release manager, developers, or testers. … … 52 52 == Repository Organization == 53 53 54 ==== ''Main trunk'' ==== 54 Overview: 55 56 {{{ 57 //svn.boost.org/svn/boost/trunk/ (boost-root) 58 branches/ (branch-name) / (content) 59 tags/ (tag-name / (content) 60 release/trunk/ (boost-root) 61 tags/ (tag-name / (boost-root) 62 }}} 63 64 ==== ''Main trunk'' ==== 55 65 The main development and test location. 56 66 … … 61 71 The URL for the main trunk is [source:/trunk http://svn.boost.org/svn/boost/trunk] 62 72 63 73 ==== ''Development branches'' ==== 64 74 Location for speculative/experimental/future work on an individual library or set of libraries. 65 75 66 The URL for development branches is !http://svn.boost.org/svn/boost/branches/branch-name76 The URL for development branches is in the form !http://svn.boost.org/svn/boost/branches/branch-name 67 77 68 ==== ''Next'' ==== 69 The tree that will become the next release of Boost. This is where a library is merged by its developers when an update for the library is [#Release-ready release-ready]. 78 ==== ''Release tree'' ==== 70 79 71 The URL for next is http://svn.boost.org/svn/boost/release/next 80 The release tree is the domain of the release manager. The release manager sets the policies for when and by whom updated libraries can be merged into the release trunk, and may set locks and permissions on the release tree to enforce those policies. The policies will vary at different points of time during the release cycle. 81 82 ===== ''Release trunk'' ===== 83 The boost-root that will become the next release of Boost. This is where a library is merged when an update for the library is [#Release-ready release-ready]. 72 84 73 ==== ''Release tags'' ==== 85 The URL for the release trunk is http://svn.boost.org/svn/boost/release/trunk 86 87 ===== ''Release tags'' ===== 74 88 These are copies of the the Release tree made by the release manager, identifying the basis for generating tarballs and such. There are two forms; one for release candidates, another for final releases. 75 89 76 The URLs for release candidates are in the form !http://svn.boost.org/svn/boost/release/ RC_1_35_0_n90 The URLs for release candidates are in the form !http://svn.boost.org/svn/boost/release/tags/RC_1_35_0_n 77 91 78 The URLs for final releases are in the form !http://svn.boost.org/svn/boost/release/ 1_35_092 The URLs for final releases are in the form !http://svn.boost.org/svn/boost/release/tags/1_35_0 79 93 80 94 == Development Cycle == 81 95 82 Developers can ensure a [#Stable stable] development environment by checking out [source:/release http://svn.boost.org/svn/boost/release] as their working copy, and then [http://svnbook.red-bean.com/en/1.1/ch04s05.html switching] only the library they are working with to [source:/trunk http://svn.boost.org/svn/boost/trunk] or a library specific development branch.96 Developers can ensure a [#Stable stable] development environment by checking out [source:/release/trunk http://svn.boost.org/svn/boost/release/trunk] as their working copy, and then [http://svnbook.red-bean.com/en/1.1/ch04s05.html switching] only the library they are working with to [source:/trunk http://svn.boost.org/svn/boost/trunk] or a library specific development branch. 83 97 84 === Merging from trunk to next===98 === Merging from development trunk to release trunk === 85 99 86 When the next version of a library has been tested and is stable on the trunk, and is fully [#Release-ready release-ready], it is merged next by its developers.100 When the next version of a library has been tested and is stable on the main trunk, and is fully [#Release-ready release-ready], it is merged into the release trunk. 87 101 88 Detailed procedure for developers:102 Detailed procedure for merging: 89 103 90 * Verify that the library meets all release criteria. '''Important:''' Libraries must not be merged into nextuntil they are already known to be fully [#Release-ready release-ready].104 * Verify that the library meets all release criteria. '''Important:''' Libraries must not be merged into the release trunk until they are already known to be fully [#Release-ready release-ready]. 91 105 92 106 * TortoiseSVN: 93 * Start with a working copy of https://svn.boost.org/svn/boost/release/ next.107 * Start with a working copy of https://svn.boost.org/svn/boost/release/trunk. 94 108 * Select the directory and/or files to be merged. 95 109 * Right-click selection for context menu, and TortoiseSVN > Merge... 96 * From: https://svn.boost.org/svn/boost/release/ next/...110 * From: https://svn.boost.org/svn/boost/release/trunk/... 97 111 * From: Head revision 98 112 * To: '''Uncheck''' the Use "From:" URL checkbox. … … 120 134 == Testing == 121 135 122 Both trunk and next testing go on continuously, independent of when releases actually occur. Testers never have to change the repository URLs they test against.136 Both development trunk and trunk testing go on continuously, if needed, independent of when releases actually occur. Testers never have to change the repository URLs they test against. 123 137 124 138 === Trunk testing === … … 126 140 The [#Maintrunk main trunk] is where most testing resources should be concentrated, since these tests are what tell developers that their library works on all tested platforms and tell the release management team that it is OK to merge a library into the release tree. 127 141 128 === Release nexttesting ===142 === Release trunk testing === 129 143 130 In theory, it should not be necessary to test nextat all, since everything merged into it should already be known to be [#Release-ready release-ready].144 In theory, it should not be necessary to test the release trunk at all, since everything merged into it should already be known to be [#Release-ready release-ready]. 131 145 132 In practice, the release criteria platform/compiler combinations at the minimum should be tested on next. A single reliable test runner for each release criteria platform/compiler combination should be sufficient. 146 In practice, the release criteria platform/compiler combinations at the minimum should be tested on the release trunk. A single reliable test runner for each release criteria platform/compiler combination may be sufficient, but that's up to the release manager to decide. 147 148 == Role of the Release Manager == 149 150 The release manager has the responsability of generating a timely high-quality release. 151 152 The release manager has the authority to make all critical decisions about releases, including setting release criteria, release cycle timing, revisions of problem libraries to prior versions, and all other release related decisions. 133 153 134 154 == Acknowledgments == … … 142 162 Discussion during [http://www.boostcon.com BoostCon 2007] between Beman Dawes, Thomas Witt, Troy Straszheim, Dave Abrahams, Eric Niebler, and Doug Gregor shaped this proposal. 143 163 144 Comments and corrections to this page were contributed by Stefan Seefeld, Peter Dimov, ...164 Comments and corrections to this page were contributed by Stefan Seefeld, Peter Dimov, Rene Rivera, Robert Ramey, Michael Caisse, Nicola Musatti, ... 145 165 146 166 ----