Skip to content

Commit 4a91c66

Browse files
authored
Update versioning section
Included feedback from korvin
1 parent 51f92d3 commit 4a91c66

File tree

1 file changed

+25
-12
lines changed

1 file changed

+25
-12
lines changed

meta.md

Lines changed: 25 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -59,22 +59,35 @@ also not change anything stipulated in PSR-1 and PSR-12.
5959

6060
## 4. Versioning
6161

62-
New releases of this PER are assigned version numbers in keeping with [semantic versioning](https://semver.org/). Semantic versioning is well defined when applied to software releases but has no common definition in other contexts. This PER applies the following meanings:
62+
New releases of this PER are assigned version numbers in keeping with [semantic versioning](https://semver.org/).
63+
Semantic versioning is well defined when applied to software releases but has no common definition in other contexts.
64+
This PER applies the following meanings:
6365

6466
* **Patch** versions may contain:
65-
* Any changes that do not alter the underlying requirements of the PER, such as fixing typos, adding clarifications or other modifications with no compatibility impact.
67+
* Any changes that do not alter the underlying requirements of this PER, such as fixing typos, adding clarifications or
68+
other modifications with no compatibility impact.
6669
* **Minor** versions may additionally:
67-
* Add new `MAY` or `OPTIONAL` requirements.
68-
* Add any new requirements for PHP syntax previously unspecified in this PER.
69-
* Remove `MUST NOT`, `SHALL NOT`, `SHOULD NOT` or `NOT RECOMMENDED` requirements.
70+
* Add new requirements for PHP syntax previously unspecified in this PER.
71+
* Add, remove or alter requirements in a way that is both contravariant or more permissive for individual authors and
72+
backwards compatible for existing projects accepting contributions.
7073
* **Major** versions may additionally:
71-
* Add any new requirements.
72-
* Remove any requirements.
73-
* Meaningfully alter any requirements.
74-
75-
Projects are expected to pin their own coding style guidelines to a major version of this PER, allowing for regular upgrades to minor and patch releases as they are published. When performing such upgrades, it is intended that no change to existing code is required to maintain compliance with all requirements and recommendations of the PER. This ensures new code contributions processed by an automatic formatter follow (or disregard) recommendations consistently with the existing code.
76-
77-
Please note this backwards compatibility promise does not extend to projects that use new PHP syntax yet to be specified in this PER. In this circumstance, a minor version may introduce new requirements that conflict with syntax usage in existing code.
74+
* Add, remove or alter any requirements.
75+
76+
Projects are expected to pin their own coding style guidelines to a major version of this PER, allowing for regular
77+
upgrades to minor and patch releases as they are published. When performing such upgrades, it is intended that no change
78+
to existing code is required to maintain compliance with all requirements and recommendations of this PER. This ensures
79+
new code contributions processed by an automatic formatter follow (or disregard) recommendations consistently with the
80+
existing code.
81+
82+
Please note this backwards compatibility promise does not extend to projects that use new PHP syntax yet to be specified
83+
in this PER. In this circumstance, a minor version may introduce new requirements that conflict with syntax usage in
84+
existing code.
85+
86+
It is ultimately determined whether a meaningful change may be included in a minor release on a case-by-case basis by
87+
consensus. The addition of `MAY` or `OPTIONAL` requirements or the removal of requirements with non-optional RFC 2119
88+
keywords will not always meet the criteria for minor release. For example, specifying that projects may use tabs instead
89+
of spaces for indentation creates a new implicit requirement that projects must use one style consistently; this new
90+
burden on projects to reformat incoming contributions to their chosen style defines the change as major.
7891

7992
## 5. Approaches
8093

0 commit comments

Comments
 (0)