Description
I wanted to clearly define what "major" "minor" and "patch" mean in the context of this PER and how we will handle versioning for v1.0.0 and after. This is an important thing to nail down because we only need core committee approval for major versions.
To make this easier to follow, let's split the available requirement keywords into two groups:
- "MUST"s:
MUST
,REQUIRED
orSHALL
- "SHOULD"s:
SHOULD
,RECOMMEND
,MAY
, orOPTIONAL
- Major: Altered/added/removed
MUST
s for already covered syntax and altered/removedSHOULD
s - Minor: Added
SHOULD
s and addedMUST
s for new syntax - Patch: Any small changes to text like typos, clarifications, and anything else that does not effect compatibility with any requirements
There are times when SHOULD
s can be modified or even removed in backwards compatible ways and in those cases we may opt for a minor release rather than a major release, erring on the side of a major release (and therefore a core committee vote) whenever appropriate. This is all up for discussion so if folks have any disagreements please add comments here.
With all of that said version 1.0.0 will be effectively a "patch" change from PSR-12, all changes are done to align names and descriptions with this PER and no requirements have been altered/added/removed.