Skip to content

Commit ae1c93d

Browse files
authored
Enhance CONTRIBUTING.md with change control details (#3336)
* Enhance CONTRIBUTING.md with change control details Added detailed change control and release process guidelines. * Fix spelling issue in CONTRIBUTING.md
1 parent 0a8e38f commit ae1c93d

File tree

1 file changed

+55
-38
lines changed

1 file changed

+55
-38
lines changed

CONTRIBUTING.md

Lines changed: 55 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -34,15 +34,65 @@ ASVS releases follow the pattern "Major.Minor.Patch" and the numbers provide inf
3434

3535
The above specifically relates to the requirements in the ASVS. Changes to surrounding text and other content such as the appendices will not be considered to be a breaking change.
3636

37-
## How can I help?
37+
### Change control
38+
39+
In order to make it easier to track changes made on the bleeding edge version of ASVS and prepare new releases, we will follow the following conventions.
40+
41+
We will make changes on the bleeding edge branch which would be acceptable for minor and patch releases however we will add tags which make clear whether the type of change is breaking or not for a patch. We will not currently make changes that would not be acceptable for a minor release. This basically means no new sections and not requirement moving.
42+
43+
Tags will start with either:
44+
45+
* `M` - The change is acceptable for a major release
46+
* `I` - The change is acceptable for a minor release
47+
* `P` - The change is acceptable for a patch release
48+
49+
The following tags will be used, their meaning should be should be clear and they will be added to the start of the requirement description.
50+
51+
* Patch tags:
52+
* `[P:WEAKENED]`
53+
* `[P:DELETED]`
54+
* `[P:WORDING]`
55+
* Minor tags:
56+
* `[I:ADDED]`
57+
* `[I:STRENGTHENED]`
58+
* `[I:TRANSFORMED]` (This means the meaning has been entirely changed)
59+
* `[I:MERGED_TO x.y.z ]` (ID defines where the requirement has gone)
60+
* `[I:MERGED_FROM x.y.z, x.y.w]` (IDs define which requirements have been merged into the current one)
61+
* `[I:SPLIT_TO x.y.z, x.y.w]` (IDs define where the requirement has been split to)
62+
* `[I:SPLIT_FROM x.y.z]` (This is like an addition except that the ID defines where the requirement has been split from)
63+
* Major tags (not to be used until we are not going to make any more minor or patch releases before a major release):
64+
* `[M:MOVED_FROM x.y.z]` (ID defines where the requirement has come from)
65+
* `[M:MOVED_TO x.y.z]` (ID defines where the requirement has gone)
66+
67+
### Release process
68+
69+
#### Patch release
3870

39-
We would be glad to receive feedback to help us to further enhance the ASVS. Note however that having had intensive efforts to get out the recent release, there may be some delays in responses. Be assured that all issues will eventually be reviewed.
71+
When a patch release comes along, we do the following:
4072

41-
At this stage, we are most likely to immediately accept changes to surrounding text and other content such as the appendices which is not considered a breaking change for release purposes.
73+
* Create a branch for the patch release
74+
* Reverse all requirement changes in the patch branch which are not acceptable for a patch based on the tag on the requirement (guided by tags).
75+
* Manually review the changes which are being reversed out to see if we want to cherry pick some non-breaking changes that were within a requirement which also has breaking changes.
76+
* Remove all tagging from the patch branch and bring the tag details into a separate file representing the changes in this release to act as release notes.
77+
* Remove tags from requirements in the bleeding edge branch for changes that went into the patch branch. Tags should be relative to the previous release.
4278

43-
The next ASVS release is likely to be a "patch" release containing changes which are considered "non-breaking". This means that requirements may be removed (for example, if they are duplicates or outdated) or made less stringent, but an application that complied with the previous release will comply with the patch release as well. We are open to integrating changes that satisfy this definition although we need to decide on a tracking mechanism, which may also lead to a delay.
79+
#### Minor release
4480

45-
If you feel there are other important changes but they would be considered breaking for a patch release, you are welcome to open an issue but please note that the issue may not be progressed until we are considering a new minor or major release, for which there is currently no fixed timeline.
81+
When a minor release comes along, we do the following:
82+
83+
* Create a branch for the minor release
84+
* Remove all tagging from the minor release branch and bring the tag details into a separate file representing the changes in this release to act as release notes.
85+
* Remove tags from requirements in the bleeding edge branch. Tags should be relative to the previous release.
86+
87+
#### Major release
88+
89+
This will be more complicated and will be defined when we get there.
90+
91+
## How can I help?
92+
93+
We would be glad to receive feedback to help us to further enhance the ASVS. Whilst there may be some delays in responses, be assured that all issues will eventually be reviewed.
94+
95+
We are most likely to immediately accept changes to surrounding text and other content such as the appendices which is not considered a breaking change for release purposes but we will also start integrating changes that would require a patch or minor release. For major changes such as moves, you are welcome to open an issue but please note that the issue may not be progressed until we are considering a new major release, for which there is currently no fixed timeline.
4696

4797
## Additional Details for Helping
4898

@@ -62,39 +112,6 @@ The mappings in the [mappings folder](https://github.com/OWASP/ASVS/tree/master/
62112

63113
If you are comfortable that your query has not been previously discussed, you can open an issue. Please try and include the ASVS requirement number and text you are talking about in the issue to save having to jump back and forth and please carry out all discussion in the associated issue and not in a PR discussion.
64114

65-
<!-- COMMENTING OUT FOR FUTURE USE
66-
67-
* Mapping from v4.0.3 to v5.0.0:
68-
* <https://github.com/OWASP/ASVS/blob/master/5.0/mappings/mapping_v4.0.3_to_v5.0.0.yml> - mapping file
69-
* <https://asvs.dev/mapping_v4.0.3_to_v5.0.0.html> - formatted output
70-
* Mapping from v5.0.0 to v4.0.3:
71-
* <https://github.com/OWASP/ASVS/blob/master/5.0/mappings/mapping_v5.0.0_to_v4.0.3.yml> - mapping file
72-
* <https://asvs.dev/mapping_v5.0.0_to_v4.0.3.html> - formatted output
73-
74-
Tags in new (v5.0.0) mapping file:
75-
76-
* `ADDED` - new requirement
77-
* `MOVED FROM x.y.z` - reference to the requirement number from v4.0.3. Must have a matching `MOVE TO` tag in the old mapping file.
78-
* `GRAMMAR` - indicates that there are grammar or language corrections in the moved requirement, which don't change the requirement's meaning.
79-
* `MODIFIED` - indicates that the meaning of the moved requirement was changed (more than just a language or grammar change).
80-
* `SPLIT FROM x.y.z` - the v4.0.3 requirement was split to multiple requirements in v5.0.0. Must have a matching `SPLIT TO` in the old mapping file.
81-
* `MERGED FROM x.y.z` - the v4.0.3 requirement has been merged with another requirement for v5.0.0. Must have a matching `MERGED TO` tag in the old mapping file.
82-
* `COVERS x.y.z` - the v5.0.0 requirement covers the content of this v4.0.3 requirement. Must have a matching `COVERED BY x.y.z` tag in the old mapping file.
83-
84-
Tags in old (v4.0.3) mapping file:
85-
86-
* `DELETED` - the v4.0.3 requirement is deleted in the new version, with a reason.
87-
* `DELETED, NOT IN SCOPE` - requirement has been decided to be out of the redefined scope of ASVS.
88-
* `DELETED, INCORRECT` - requirement was invalid or provided inadvisable advice.
89-
* `DELETED, NOT PRACTICAL` - the requirement was not practical (enough) to implement in reality.
90-
* `DELETED, INSUFFICIENT IMPACT` - the requirement provided insufficient benefit to be worthwhile.
91-
* `DELETED, MERGED TO x.y.z` - the requirement was merged to another requirement for v5.0.0. Must have a matching `MERGED FROM` tag in the new mapping file.
92-
* `DELETED, COVERED BY x.y.z` - the requirement was a duplicate of or is covered by another requirement in v5.0.0. Must have a matching `COVERS` tag in the new mapping file.
93-
* `MOVED TO x.y.z` - reference to the requirement number from v5.0.0. Must have a matching `MOVED FROM` tag in the new version
94-
* `SPLIT TO x.y.z, i.j.k` - the v4.0.3 requirement is divided into multiple requirements in v5.0.0. Must have matching `SPLIT FROM` tags in the new mapping file.
95-
96-
-->
97-
98115
## Translations
99116

100117
We are now keen to receive translations for v5.0.0 of ASVS!

0 commit comments

Comments
 (0)