Skip to content

Commit e5b7df4

Browse files
committed
more review edits
Signed-off-by: Doug Davis <[email protected]>
1 parent 6749e1f commit e5b7df4

File tree

1 file changed

+56
-43
lines changed

1 file changed

+56
-43
lines changed

docs/GOVERNANCE.md

Lines changed: 56 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -147,15 +147,18 @@ If a vote is taken, the follow rules will be followed:
147147

148148
## Release Process and Versioning
149149

150+
### Versioning
151+
150152
The specifications produced will adhere to the following:
151153

152-
- The versioning scheme used will follow [semver](https://semver.org/).
154+
- The versioning scheme will follow [semver](https://semver.org/) for the
155+
version number part of the version string.
153156

154-
- Specifications will be grouped into logical units and released at the same
155-
time, with the same version number. This is true regardless of whether each
156-
individual document actually changed during the release cycle. The
157-
determination of the number of groups, and which document belongs in a group,
158-
can change over time.
157+
- Specifications will be grouped into logical units, with all documents in a
158+
group released at the same time, with the same version number. This is true
159+
regardless of whether each individual document actually changed during the
160+
release cycle. The determination of the number of groups, and which document
161+
belongs in a group, can change over time.
159162

160163
- Since changing the CloudEvents `specversion` string could have a significant
161164
impact on implementations, all non-breaking changes will be made as
@@ -171,53 +174,63 @@ The specifications produced will adhere to the following:
171174
place. The purpose of having a tag is to support GitHub releases, which can
172175
act as a notification channel for interested users.
173176

177+
- Naming will adhere to the following pattern:
178+
- Release Name: `[email protected]`
179+
- Release Candidate Tag Name: `[email protected]#`
180+
- Release Branch Name: `[email protected]`
181+
- Release Tag Name: `[email protected]`
182+
174183
Note that these rules do not apply to unversioned documents, such as the
175184
[documented extensions](../cloudevents/extensions/README.md).
176185

177-
To create a new release:
186+
### Creating A New Release
178187

179188
- Periodically the group will examine the list of extensions to determine
180189
if any action should be taken (e.g. removed due to it being stale). The
181190
creation of a new release will be the reminder to do this check. If any
182191
changes are needed then PRs will be created and reviewed by the group.
183192

184193
- Determine the new release version string. It should be of the form:
185-
`<subject>/vX.Y.Z`, e.g. `cloudevents/v1.0.4` or `subscriptions/v1.0.0`.
186-
187-
- Create a PR (for the "main" branch") that:
188-
- Modifies the repo's files to use the new version string appended with
189-
`-rc#` as appropriate. Make sure to remove all `-wip` suffixes as needed.
194+
195+
196+
- Before a new release is finalized, a "release candidate" (rc) should be
197+
created that identifies the versions of files in the repository that are to
198+
be reviewed. The process for a RC is as follows:
199+
- Create a PR (for the "main" branch") that modifies the appropriate files
200+
to use the new version string appended with `-rc#`. Make sure to remove
201+
all `-wip` suffixes as needed.
202+
- Review and merge the PR. Note that this review is not really meant for
203+
checking the functionality of the specs, rather is it intended to verify
204+
the version string renaming was done properly.
205+
- Create a Github tag pointing to the commit on the "main" branch after the
206+
PR is merged, using the release version string suffixed with `-rc#`.
207+
- Initiate a final review/test of the release, pointing reviwers to the tag.
208+
209+
- When review/testing is completed, update all of the version string references
210+
to no longer use the `-rc#` suffix:
211+
- Create a PR with the following changes:
212+
- Modify the repo's files to use the new version string (without `-rc#`)
213+
as appropriate..
214+
- Update [RELEASES.md](RELEASES.md) to mention the new release, and
215+
reference the yet-to-be-created release tag.
216+
- Update the appropriate `*/RELEASE_NOTES.md` file with the changes
217+
for the release. The list can be generated via:
218+
`git log --pretty=format:%s [email protected] | grep -v "Merge pull"`
219+
by replacing "[email protected]" with the name of the previous release.
220+
Or, use GitHub's
221+
[new release](https://github.com/cloudevents/spec/releases/new) process
222+
to generate the list without actually creating the release yet.
190223
- Merge the PR.
191-
- Initiate a final review/test of the release.
192-
193-
- Create A "release candidate" with the new release version string but with a
194-
suffix of `-rc#` (release candidate). This will indicate that the authors
195-
believe it is ready for final review/testing. This will be true for updates
196-
to existing specifications and for new specifications.
197-
198-
- When review/testing is completed, create a PR (for the "main" branch") that:
199-
- Modifies the repo's files to use the new version string (without `-rc#`)
200-
as appropriate..
201-
- Update [RELEASES.md](RELEASES.md) to mention the new release, and
202-
reference the yet-to-be-created release tag.
203-
- Update the appropriate `*/RELEASE_NOTES.md` file with the changes
204-
for the release. The list can be generated via:
205-
`git log --pretty=format:%s main...cloudevents/v1.0.3 | grep -v "Merge pull"`
206-
by replacing "cloudevents/v1.0.3" with the name of the previous release.
207-
Or, use GitHub's
208-
[new release](https://github.com/cloudevents/spec/releases/new) process
209-
to generate the list without actually creating the release yet.
210-
211-
- Merge the PR.
212-
- Note that the link checker should fail since any references to the new
213-
release tag will not be valid yet. This is expected.
214-
215-
- Create a new branch with the same name as the new release version string
216-
appended with `-branch` (e.g. `<subject>/vX.Y.Z-branch`).
224+
- Note that the link checker should fail since any references to the new
225+
release tag will not be valid yet. This is expected.
226+
227+
- Create the Github release and tag for the new release:
217228
- Use GitHub to create a
218229
[new release](https://github.com/cloudevents/spec/releases/new).
219-
During that process, create a new tag with the new release version
220-
string (e.g. `<subject>/vX.Y.Z`) without any suffix.
230+
During that process, create a new tag with the new release version string
231+
in the format `[email protected]`.
232+
- Create a new branch with the new release version string in the format
233+
221234
- Rerun the GitHub CI actions from the previous PR and the "main" branch as
222235
they should all pass now; as a sanity check.
223236

@@ -234,10 +247,10 @@ To create a new release:
234247
of that branch. We'll eventually setup a GitHub action to automatically do
235248
it but for now you can do it via the CLI:
236249
- `git pull --tags` to make sure you have all latest branches and tags
237-
- `git tag -d <subject>/vX.Y.Z` to delete the old tag for the release
238-
- `git tag <subject>/vX.Y.Z <subject>/vX.Y.Z-branch` to create a new tag for
250+
- `git tag -d SUBJECT@vX.Y.Z` to delete the old tag for the release
251+
- `git tag SUBJECT@vX.Y.Z SUBJECT@vX.Y.Z-branch` to create a new tag for
239252
the head of the release branch
240-
- `git push REMOTE <subject>/vX.Y.Z -f` to force the tag to updated in the
253+
- `git push REMOTE SUBJECT@vX.Y.Z -f` to force the tag to updated in the
241254
GitHub repo, where `REMOTE` is replaced with the git "remote" name that
242255
you have defined that references the GitHub repo
243256

0 commit comments

Comments
 (0)