index.rst 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. ====================
  2. SaltStack Git Policy
  3. ====================
  4. The SaltStack team follows a git policy to maintain stability and consistency
  5. with the repository.
  6. The git policy has been developed to encourage contributions and make contributing
  7. to Salt as easy as possible. Code contributors to SaltStack projects DO NOT NEED
  8. TO READ THIS DOCUMENT, because all contributions come into SaltStack via a single
  9. gateway to make it as easy as possible for contributors to give us code.
  10. The primary rule of git management in SaltStack is to make life easy on
  11. contributors and developers to send in code. Simplicity is always a goal!
  12. New Code Entry
  13. ==============
  14. All new SaltStack code should be submitted against either the ``develop`` branch
  15. or a point release branch, depending on the nature of the submission. Please see
  16. the :ref:`Which Salt Branch? <which-salt-branch>` section of Salt's
  17. :ref:`Contributing <contributing>` documentation or the Release Branching
  18. section below for more information.
  19. Release Branching
  20. =================
  21. SaltStack maintains two types of releases, ``Feature Releases`` and
  22. ``Point Releases`` (also commonly referred to as ``Bugfix Releases``. A
  23. feature release is managed by incrementing the first or second release point
  24. number, so 2015.5.5 -> 2015.8.0 signifies a feature release
  25. and 2015.8.0 -> 2015.8.1 signifies a point release.
  26. Feature Release Branching
  27. -------------------------
  28. Each feature release is maintained in a dedicated git branch derived from the
  29. last applicable release commit on develop. All file changes relevant to the
  30. feature release will be completed in the develop branch prior to the creation
  31. of the feature release branch. The feature release branch will be named after
  32. the relevant numbers to the feature release, which constitute the first two
  33. numbers. This means that the release branch for the 2015.8.0 series is named
  34. 2015.8.
  35. A feature release branch is created with the following command:
  36. .. code-block:: bash
  37. # git checkout -b 2015.8 # From the develop branch
  38. # git push origin 2015.8
  39. Point Releases
  40. --------------
  41. Each point release is derived from its parent release branch. Constructing point
  42. releases is a critical aspect of Salt development and is managed by members of
  43. the core development team. Point releases comprise bug and security fixes. Bug
  44. fixes can be made against a point release branch in one of two ways: the bug
  45. fix can be submitted directly against the point release branch, or an attempt
  46. can be made to back-port the fix to the point release branch.
  47. Bug fixes should be made against the earliest supported release branch on which
  48. the bug is present. The Salt development team regularly merges older point
  49. release branches forward into newer point release branches. That way, the bug
  50. fixes that are submitted to older release branches can cascade up through all
  51. related release branches.
  52. For more information, please see the :ref:`Which Salt Branch? <which-salt-branch>`
  53. section of Salt's :ref:`Contributing <contributing>` documentation.
  54. Generally point releases are made every 2 months or if there is a security fix
  55. they can be made sooner.
  56. The point release is designated by branching (ex 2019.2.1) and then tagging (v2019.2.1)
  57. from that newly created release branch when its determined the release is stable.
  58. From the tag point a new source tarball is generated and published to PyPI,
  59. and a release announcement is made.