Proposal: Puppet Versioning
Proposed: that we adopt a well-delineated standard for versioning.
Please feel free to add other proposed versioning schemes should a better one occur to you.
With respect to the first two proposals below, I feel that it is important that each changeset have an official name for the purposes of reference. This is especially important when referring to distinct builds in Git which have no easily-discerned official differentiating characteristic. Of course, it is also of great importance that the community understand what each release comprises and how to adapt to the new release.
Scheme A: MAJOR.MINOR.RELEASE-BUILD (0.22.4-12)
Major
- Any revision which:
- adds major functionality
Minor
- Any revision which:
- adds minor functionality evident to the user
- adds major functionality not evident to the user
Release
- Any revision which:
- adds/removes/modifies parameters
- deprecates parameters or syntax, or
- changes file formats
Build
Every change committed to Git has a unique ID.
Scheme B: MAJOR.MINOR.RELEASE (0.22.4)
Major
- Any revision which:
- adds major functionality
Minor
- Any revision which:
- adds minor functionality evident to the user
- adds major functionality not evident to the user
- adds/removes/modifies parameters
- deprecates parameters or syntax, or
- changes file formats
Release
Every change committed to Git increments the release number.