Puppet: System Administration Automated

Support

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.