VERSIONS 3.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. Branch and version strategy
  2. ===========================
  3. Versions
  4. ========
  5. Version numbers take the form MAJOR.MINOR.POINT_SEQUENCE
  6. The MAJOR version will change only with a significant architectural change.
  7. The MINOR version number changes when new features are introduced.
  8. The POINT version number changes when bugs are fixed.
  9. The SEQUENCE number is changed when a new candidate package is created during
  10. closedown testing.
  11. Versions that have been closed down, tested, and passed as suitable for general
  12. release are given even MINOR and POINT numbers. Odd numbers are reserved for
  13. builds for testing purposes only.
  14. In addition to the version number there is a MATURITY string that may be found
  15. in the version string. The maturities in use include:
  16. <none> - a stable build
  17. closedown - gathering bugfixes for a new POINT release
  18. rc - a release candidate.
  19. beta - a beta release
  20. betarc - a release candidate for a beta release
  21. trunk - a system built from the master branch (the 'bleeding edge')
  22. *_debug - Any of the above suffixed by _debug if built with debug enabled
  23. Branches
  24. ========
  25. The master branch contains the latest accepted code. Code in the master branch
  26. should normally be fully functional, but may not yet have gone through rigorous
  27. testing or be considered production-ready. If you want to build a system in order
  28. to experiment with extending the code, or to test new features that have not yet
  29. been included in a stable build, then you should build the master branch.
  30. The stable branch points to the current version of the system that has been
  31. through the full closedown testing cycle and is considered production-ready. If
  32. you want to build a local version of a stable build - perhaps to install on a
  33. distro for which a pre-packaged binary is not available, then you should build
  34. the stable branch. Note that stable is rebased when a new MAJOR or MINOR version
  35. number release is published.
  36. Branches with names starting candidate- contain code that is being prepared for
  37. release as a stable version. Individual release candidates will be tagged along these
  38. branches.
  39. When preparing a patch or a GitHub pull request, a new git branch should be created
  40. based on the appropriate target - if the change is to go into the 5.2.2 build, then
  41. base it on candidate-5.2.2, for example. All changes that are accepted into a candidate
  42. branch are normally upmerged to any later unreleased candidate branches, and to master,
  43. without requiring separate pull requests. Pull requests against master will go in the
  44. next major release version.
  45. Tags
  46. ====
  47. Tags corresponding to the release versions will be applied to points on the
  48. candidate- branch where binary releases have been built and published.
  49. Rules for major, minor and point releases
  50. =========================================
  51. It should always be safe to upgrade a system to the latest point release with matching
  52. major and minor version. If upgrading to a new major or minor version, users should always
  53. use the latest available point release. It is important to observe the following rules:
  54. 1. Sequence number increases on a gold release are for build errors and regressions only.
  55. A new sequence release should be considered as rendering earlier sequence releases invalid
  56. and unsupported.
  57. 2. NEVER include new functionality in point releases - only bug fixes
  58. 3. If a bug fix introduces incompatibilities that might break existing ECL code, or
  59. require it to be recompiled, it should be held until the next minor release.
  60. 4. Any bug fix that is included in a gold release for a give major.minor version must
  61. also be available (if relevant) in a gold release of all later released major.minor versions.