Changes between Version 6 and Version 7 of ImprovingPractices
- Timestamp:
- Aug 22, 2007, 3:34:26 PM (15 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
ImprovingPractices
v6 v7 52 52 == Repository Organization == 53 53 54 ==== ''Release tree'' ====55 [#Release-ready release-ready] tree to which libraries are copied after release-ready. ''We may decide to make this tree read-only except for the release management team.''56 57 The URL for the release tree is [source:/release http://svn.boost.org/svn/boost/release]58 59 ==== ''Release tags'' ====60 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.61 62 The URLs for release candidates are in the form [source:/release/Version_1_35_0_RC1 http://svn.boost.org/svn/boost/release/Version_1_35_0_RC1]63 64 The URLs for final releases are in the form [source:/release/Version_1_35_0 http://svn.boost.org/svn/boost/release/Version_1_35_0]65 66 54 ==== ''Main trunk'' ==== 67 55 The main development and test location. … … 78 66 The URL for development branches is [source:/branches/branch-name http://svn.boost.org/svn/boost/branches/branch-name] 79 67 68 ==== ''Release queue'' ==== 69 Location where a library is merged by its developers when an update for the library is [#Release-ready release-ready]. 70 71 The URL for the release queue is http://svn.boost.org/svn/boost/release/queue 72 73 ==== ''Release tags'' ==== 74 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 76 The URLs for release candidates are in the form [source:/release/RC_1_35_0_n http://svn.boost.org/svn/boost/release/RC_1_35_0_n] 77 78 The URLs for final releases are in the form [source:/release/1_35_0 http://svn.boost.org/svn/boost/release/1_35_0] 79 80 80 == Development Cycle == 81 81 82 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. 83 83 84 === Copying from main trunk to release tree ===84 === Merging from main trunk to release queue === 85 85 86 Only when a library update is tested and stable on trunk, and is fully [#Release-ready release-ready], is it copied into the [#Release-tree release tree]. (This copy operation is performing what in CVS would be called tagging.) 86 When a library update is tested and stable on the trunk, and is fully [#Release-ready release-ready], it is merged by its developers into the release queue. 87 87 88 ''Details of when copies into the release tree are acceptable and who actually does the copy are yet to be worked out. One possibility is to allow any developer to copy into the release tree at any time except immediately before a release.'' 88 Detailed procedure for developers: 89 90 * Verify that the library meets all release criteria. '''Important:''' Libraries must not be merged into the release queue until they are already known to be fully [#Release-ready release-ready]. 91 92 * TortoiseSVN: 93 * Start in a working copy of https://svn.boost.org/svn/boost/release/queue. 94 * Select the directory and/or files to be merged. 95 * Right-click selection for context menu, and TortoiseSVN > Merge... 96 * From: https://svn.boost.org/svn/boost/release/queue/... 97 * From: Head revision 98 * To: '''Uncheck''' the Use "From:" URL checkbox. 99 * To: https://svn.boost.org/svn/boost/trunk/... 100 * To: Head revision 101 * Click "Dry run" button to be sure setup is correct. 102 * Click "Merge". (Note that this modifies your working copy, not the repository.) 103 * Inspect resulting working copy for correctness. 104 * Commit working copy changes. 105 106 * '''Watch test results closely; Revert if merge causes any problems whatsoever!''' 89 107 90 108 === Special case: Prerequisite libraries === … … 102 120 == Testing == 103 121 104 Both trunk and release testing go on continuously, independent of when releases actually occur. Testers never have to change the repository URLs they test against.122 Both trunk and release queue testing go on continuously, independent of when releases actually occur. Testers never have to change the repository URLs they test against. 105 123 106 124 === Trunk testing === … … 108 126 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. 109 127 110 === Release testing ===128 === Release queue testing === 111 129 112 In theory, it should not be necessary to test the [#Releasetree release tree]at all, since everything merged into it should already be known to be [#Release-ready release-ready].130 In theory, it should not be necessary to test the release queue at all, since everything merged into it should already be known to be [#Release-ready release-ready]. 113 131 114 In practice, the release criteria platform/compiler combinations at the minimum should be tested on the release tree. A single reliable test runner for each release criteria platform/compiler combination should be sufficient.132 In practice, the release criteria platform/compiler combinations at the minimum should be tested on the release queue. A single reliable test runner for each release criteria platform/compiler combination should be sufficient. 115 133 116 134 == Acknowledgments ==