Changes between Version 4 and Version 5 of Guidelines/MaintenanceGuidelines
- Timestamp:
- Nov 23, 2008, 12:54:15 AM (14 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Guidelines/MaintenanceGuidelines
v4 v5 152 152 = Documentation = 153 153 154 == Tag Boost library with specific library version [author] == 154 == Tag Boost library with specific library version [author] == #version 155 155 Tagging each library release with a version, is the better way to signal to the user of possible incompatibilities. 156 156 … … 163 163 * '''1.0.0''' Initial release on 1.25 164 164 165 == Create a Feature Request ticket for each deprecated/suppressed/modified/new feature [author, user] ==165 == Feature Request for each deprecated/suppressed/modified/new feature [author, user] == #feature_request 166 166 Each modification should be tracked with a ticket on the track system. 167 167 168 == Release note and track system traceability [author] == 168 == Release note and track system traceability [author] == #release_note 169 169 The release note should include 170 170 * the list of all the bug tickets that have been solved … … 184 184 185 185 186 187 == Include a diff file showing the modification respect to the previous release [author, RM] == 186 == Include a diff file respect to the previous release [author, RM] == #diff_file 188 187 This file is the explicit report of all the changes in the library. It could be used by the Boost community to inspect that every change has been correctly documented (see inspections bellow). 189 188 190 == Trac ticket => test cases association [author] ==189 == Trac ticket and test cases association [author] == #ticket_test_case_map 191 190 192 191 Each feature request or bug should have associated at least a test case. A table showing this association will help to check that each feature,bug is has the expected test coverage. … … 196 195 197 196 197 == Inter dependency table [author] == #dependency 198 198 199 199 200 = Codding = 200 == Do not use using sentences [user] == 201 == Do not use using sentences [user] ==#dont_using 201 202 As seen before the use of using sentences in user code is one of the source of user code breaking, so it will be safer to use instead namespace synonyms and prefix each symbol with them. 202 203 … … 221 222 222 223 223 == Do not delete files prematurely [author] == #d elete_files224 == Do not delete files prematurely [author] == #dont_delete_files 224 225 225 226 Before deleting a file "file.hpp" deprecate it and let the user modify its code during some versions (e.g. until 1_40). Replace it by … … 236 237 It will be up to the user to define the macros BOOST_WARMS_DEPRECEATED and BOOST_WARMS_DEPRECEATED_ON_1_40 when the user wants to be warmed for deprecated features on Boost or on the Boost version 1.40 respectively. 237 238 238 == Do not delete namespaces prematurely [author] == 239 == Do not delete namespaces prematurely [author] == #dont_delete_cpp_symbols 239 240 Use the using sentence to import from the new namespace to the old one. 240 241 241 == Do not delete classes/functions/variables prematurely [author] == #delete_cpp_symbols242 == Do not delete classes/functions/variables prematurely [author] == #dont_delete_cpp_symbols 242 243 Instead of delete a class or a public/protected function/variable on the next version protect its declaration by any of the DONT_INCLUDE_DEPRECATED macros. 243 244 … … 286 287 }}} 287 288 288 289 == Do not modify functions prototypes prematurely [author] == 289 == Do not modify functions prototypes prematurely [author] == #dont_modify_prototypes 290 290 Instead of modifying an existing function prototype, do as you were deleted it and added the new one. As both prototypes should cohabit during some releases, check if this overloading could cause user code breaks. 291 291 292 == Remove the deprecated features on a given release [author] == 292 == Remove the deprecated features on a given release [author] == #deprecated_removal 293 293 Once the deprecated period is expired the author should remove them. 294 294 295 295 = Test and Inspections = 296 296 297 == Regression Test and track system traceability == 297 == Regression Test and track system traceability == #ticket_test_case 298 298 A bug ticket should be associated to one or several test cases, either the test cases exists already and we are in face of a regression for some toolset, or a new toolset is considered, or a new test case is needed to reproduce the bug and the modification solve the problem. 299 299 * State clearly which test cases reproduce the bug it they exists [user] 300 300 * Propose a new test case reproducing the bug otherwise [user] 301 301 302 == Preserve the test from the preceding versions as much as possible [author] ==302 == Preserve the test from the preceding versions [author] == #old_tests 303 303 The test from the preceding versions should not be changed when the author modifies its library. These not changed tests are a probe of compatibility with the preceding version. When these test must be changed they indicate a breaking user code issue. So instead of changing them add new ones stating explicitly on which version they were included. Old tests that should fail can be moved to the compile_fail or run_fail tests on the Jamfile. 304 304 … … 306 306 307 307 = Release Management = 308 == Announce new features on a library [author] == 308 == Announce new features on a library [author] == #announce 309 309 It would be great if the author announce to the Boost mailing lists the new features just before committing in the release branch. This will let the time to the Boost community to inspect the modifications introduced. 310 310 311 == Inspect announced modifications match the real ones [author, user, RM] ==311 == Inspect announced modifications [author, user, RM] == #review 312 312 The use of the diff file will help to inspect that the modifications introduced have been correctly included on the documentation and a good test coverage has been done. This will result in a non official mini-review of the library. 313 313 314 314 315 = Author guidelines = 316 ||Kind||Guideline|| 317 ||Documentation||[wiki:Guidelines/MaintenanceGuidelines#versionTag Boost library with specific library version ]|| 318 ||Documentation||[wiki:Guidelines/MaintenanceGuidelines#feature_request Feature Request for each deprecated/suppressed/modified/new feature]|| 319 ||Documentation||[wiki:Guidelines/MaintenanceGuidelines#release_note Release note and track system traceability]|| 320 ||Documentation||[wiki:Guidelines/MaintenanceGuidelines#diff_file Include a diff file respect to the previous release ]|| 321 ||Documentation||[wiki:Guidelines/MaintenanceGuidelines#ticket_test_case_map Trac ticket and test cases association]|| 322 ||Code||[wiki:Guidelines/MaintenanceGuidelines#dont_using Do not use using sentences in test programs]|| 323 ||Code||[wiki:Guidelines/MaintenanceGuidelines#dont_delete_files Do not delete files prematurely ]|| 324 ||Code||[wiki:Guidelines/MaintenanceGuidelines#deprecated_removal Remove the deprecated features on a given release]|| 325 ||Code||[wiki:Guidelines/MaintenanceGuidelines#dont_delete_cpp_symbols Do not delete classes/functions/variables prematurely]|| 326 ||Code||[wiki:Guidelines/MaintenanceGuidelines#dont_modify_prototypes Do not modify functions prototypes prematurely]|| 327 ||Test||[wiki:Guidelines/MaintenanceGuidelines#ticket_test_case Regression Test and track system traceability]|| 328 ||Test||[wiki:Guidelines/MaintenanceGuidelines#old_tests Preserve the test from the preceding versions]|| 329 ||Release Management||[wiki:Guidelines/MaintenanceGuidelines#announceAnnounce new features on a library]|| 330 ||Release Management||[wiki:Guidelines/MaintenanceGuidelines#review Inspect announced modifications]|| 331 332 = User guidelines = 333 ||Documentation||[wiki:Guidelines/MaintenanceGuidelines#feature_request Feature Request for each deprecated/suppressed/modified/new feature]|| 334 ||Code||[wiki:Guidelines/MaintenanceGuidelines#dont_using Do not use using sentences]|| 335 ||Test||[wiki:Guidelines/MaintenanceGuidelines#ticket_test_case Regression Test and track system traceability]|| 336 ||Release Management||[wiki:Guidelines/MaintenanceGuidelines#review Inspect announced modifications].|| 337 338 = Release manager guidelines = 339 ||Documentation||[wiki:Guidelines/MaintenanceGuidelines#author Announce new features on a library]|| 340 ||Release Management||[wiki:Guidelines/MaintenanceGuidelines#review Inspect announced modifications].|| 341