version_numbers.rst 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. :orphan:
  2. .. _version-numbers:
  3. ===============
  4. Version Numbers
  5. ===============
  6. Salt uses a date based system for version numbers. Version numbers are in the
  7. format ``YYYY.MM.R``. The year (``YYYY``) and month (``MM``) reflect when the
  8. release was created. The bugfix release number (``R``) increments within that
  9. feature release.
  10. .. note::
  11. Prior to the ``2014.1.0`` release, the typical semantic versioning was
  12. still being used. Because of the rolling nature of the project, this did not
  13. make sense. The ``0.17`` release was the last of that style.
  14. Code Names
  15. ----------
  16. To distinguish future releases from the current release, code names are used.
  17. The periodic table is used to derive the next codename. The first release in
  18. the date based system was code named ``Hydrogen``, each subsequent release will
  19. go to the next `atomic number <https://en.wikipedia.org/wiki/List_of_elements>`.
  20. Assigned codenames:
  21. - Hydrogen: ``2014.1.0``
  22. - Helium: ``2014.7.0``
  23. - Lithium: ``2015.5.0``
  24. - Beryllium: ``2015.8.0``
  25. - Boron: ``2016.3.0``
  26. - Carbon: ``2016.11.0``
  27. - Nitrogen: ``2017.7.0``
  28. - Oxygen: ``2018.3.0``
  29. - Fluorine: ``TBD``
  30. - Neon: ``TBD``
  31. - Sodium: ``TBD``
  32. Example
  33. -------
  34. An example might help clarify how this all works.
  35. It is the year ``2020`` and the current code name is ``Iodine``. A release is ready
  36. to be cut and the month is ``June``. This would make the new release number
  37. ``2020.6.0``. After three bug fix releases, the release number would be
  38. ``2020.6.3``.
  39. After the release is cut, new features would be worked on under the ``Xenon``
  40. code name and the process repeats itself.
  41. Version numbers, Git and salt --version
  42. ---------------------------------------
  43. The salt version, for programmers, is based on `git describe` and presented to end-users with `salt --version`.
  44. Example arguments for `git checkout`:
  45. +------------+----------------------------------------------------------------------------+
  46. | Argument | Comment |
  47. +============+============================================================================+
  48. | develop | **Develop branch** Actively developed new features |
  49. +------------+----------------------------------------------------------------------------+
  50. | 2016.11 | **Release branch** Actively developed bug-fixes for 2016.11.* releases |
  51. +------------+----------------------------------------------------------------------------+
  52. | v2016.11 | Tag signaling the commit that the 2016.11.* releases are based on. |
  53. +------------+----------------------------------------------------------------------------+
  54. | v2016.11.1 | Tag signaling the commit that the 2016.11.1 release is based on. |
  55. +------------+----------------------------------------------------------------------------+
  56. Further reading on `release branch and develop branch
  57. <https://docs.saltstack.com/en/latest/topics/development/contributing.html#which-salt-branch>`_.
  58. Influence of the `git checkout` argument on `git describe`:
  59. +------------+----------------------------+-----------------------------------------------+
  60. | Checkout | Describe | Comment |
  61. +============+============================+===============================================+
  62. | v2016.11 | v2016.11 | (tag is fixed point in time) |
  63. +------------+----------------------------+-----------------------------------------------+
  64. | 2016.11 | v2016.11.1-220-g9a1550d | Commit of most recent tag in 2016.11 |
  65. +------------+----------------------------+-----------------------------------------------+
  66. | v2016.11.1 | 2016.11.1 | (tag is fixed point in time) |
  67. +------------+----------------------------+-----------------------------------------------+
  68. | develop | v2016.11.1-1741-g10d5dec | Commit of most recent tag in develop |
  69. +------------+----------------------------+-----------------------------------------------+
  70. Some details of v2016.11.1-220-g9a1550d (from `git describe` after `git checkout 2016.11`):
  71. +---------------+-------------------------------------------------------------------------+
  72. | Part | Comment |
  73. +===============+=========================================================================+
  74. |v2016.11.1 | git describe finds the most recent tag on the 2016.11 branch |
  75. +---------------+-------------------------------------------------------------------------+
  76. |220 | Commits on top of the most recent tag, relative to your local git fetch |
  77. +---------------+-------------------------------------------------------------------------+
  78. |gf2eb3dc | 'g' + git SHA ("abbreviated name") of the most recent commit |
  79. +---------------+-------------------------------------------------------------------------+