@@ -55,7 +55,7 @@ be followed:
5555There are three categories of project membership:
5656
57571 . ** Member.** This is anyone who participates in the group's activities in any
58- of our communication channels (email, github issues/PRs, meetings, etc.). No
58+ of our communication channels (email, GitHub issues/PRs, meetings, etc.). No
5959 formal registration process is needed.
6060
61612 . ** Voting Member.** See the [ Voting] ( #voting ) section below for more
@@ -66,7 +66,7 @@ There are three categories of project membership:
6666
67673 . ** Admin.** Admins are Members of the group but have the ability to perform
6868 administrative actions on behalf of the group. For example, manage the
69- website, github repos and moderate the meetings. Their actions should be done
69+ website, GitHub repos and moderate the meetings. Their actions should be done
7070 with the knowledge and consent of the group. They also have the ability to
7171 merge/close PRs, but only per the group's approval. See the
7272 [ OWNERS] ( ../OWNERS ) file for the current list of Admins.
@@ -165,6 +165,12 @@ The specifications produced will adhere to the following:
165165 that the "minor" version number will always be zero and the ` specversion `
166166 string will always be of the form ` X.0 ` .
167167
168+ - Each release will have both a tag and a branch. The tag will be kept
169+ up-to-date with the tip of the branch. The purpose of having a branch is to
170+ support very minor fixes (typos, clarifications) which amend a release in
171+ place. The purpose of having a tag is to support GitHub releases, which can
172+ act as a notification channel for interested users.
173+
168174Note that these rules do not apply to unversioned documents, such as the
169175[ documented extensions] ( ../cloudevents/extensions/README.md ) .
170176
@@ -175,13 +181,6 @@ To create a new release:
175181 creation of a new release will be the reminder to do this check. If any
176182 changes are needed then PRs will be created and reviewed by the group.
177183
178- - For the most part we try to only use a single branch ("main") for our work.
179- Git branches will be used as a way to snapshot/tag releases. While we hope
180- to not push new commits to these branches, in practice, it is possible that
181- changes to a release might be needed without "picking up" other changes that
182- might have been commited to "main". Creating the branch during the release
183- process will makes this easier to manage should the need should arise.
184-
185184- Determine the new release version string. It should be of the form:
186185 ` <subject>/vX.Y.Z ` , e.g. ` cloudevents/v1.0.4 ` or ` subscriptions/v1.0.0 ` .
187186
@@ -191,34 +190,35 @@ To create a new release:
191190 - Merge the PR.
192191 - Initiate a final review/test of the release.
193192
194- - A "release candidate" tag will be created with the new release version
195- string but with a suffix of ` -rc# ` (release candidate). This will indicate
196- that the authors believe it is ready for final review/testing. This will be
197- true for updates to existing specifications and for new specifications.
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.
198197
199198- When review/testing is completed, create a PR (for the "main" branch") that:
200- - Modifies the repo's files to use the new version string (w/o ` -rc# ` ) as
201- appropriate.
199+ - Modifies the repo's files to use the new version string (without ` -rc# ` )
200+ as appropriate. .
202201 - Update [ RELEASES.md] ( RELEASES.md ) to mention the new release, and
203202 reference the yet-to-be-created release tag.
204203 - Update the appropriate ` */RELEASE_NOTES.md ` file with the changes
205204 for the release. The list can be generated via:
206- ` git log --pretty=format:%s main...v0.1 | grep -v "Merge pull" `
207- by replacing "v0.1" with the name of the previous release. Or, use github's
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
208208 [ new release] ( https://github.com/cloudevents/spec/releases/new ) process
209- to generate the list w/o actually creating the release yet.
209+ to generate the list without actually creating the release yet.
210210
211211- Merge the PR.
212212 - Note that the link checker should fail since any references to the new
213213 release tag will not be valid yet. This is expected.
214214
215215- Create a new branch with the same name as the new release version string
216216 appended with ` -branch ` (e.g. ` <subject>/vX.Y.Z-branch ` ).
217- - Use Github to create a
217+ - Use GitHub to create a
218218 [ new release] ( https://github.com/cloudevents/spec/releases/new ) .
219219 During that process, create a new tag with the new release version
220- string (e.g. ` <subject>/vX.Y.Z ` ) w/o any suffix.
221- - Rerun the github CI actions from the previous PR and the "main" branch as
220+ string (e.g. ` <subject>/vX.Y.Z ` ) without any suffix.
221+ - Rerun the GitHub CI actions from the previous PR and the "main" branch as
222222 they should all pass now; as a sanity check.
223223
224224- Create an "announcement" highlighting the key features of the new release
@@ -230,16 +230,20 @@ To create a new release:
230230
231231- If an update to a release is needed, create a PR for the appropriate
232232 branches (including "main"), and merge when ready. For any release that's
233- updated, you'll need to move the tag for that release to point to the HEAD
234- of that branch. We'll eventually setup a Github action to automatically do
233+ updated, you'll need to move the tag for that release to point to the head
234+ of that branch. We'll eventually setup a GitHub action to automatically do
235235 it but for now you can do it via the CLI:
236- - ` git pull ` to make sure you have all latest branches and tags
237- - ` git tag -d vX.Y.Z ` to delete the old tag for the release
238- - ` git tag vX.Y.Z vX.Y.Z-branch ` to create a new tag for the HEAD of the
239- release branch
240- - ` git push REMOTE vX.Y.Z -f ` to force the tag to updated in the github repo
236+ - ` 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
239+ the head of the release branch
240+ - ` git push REMOTE <subject>/vX.Y.Z -f ` to force the tag to updated in the
241+ GitHub repo, where ` REMOTE ` is replaced with the git "remote" name that
242+ you have defined that references the GitHub repo
241243
242244## Additional Information
243245
244246- We adhere to the CNCF's
245- [ Code of Conduct] ( https://github.com/cncf/foundation/blob/master/code-of-conduct.md ) guidelines
247+ [ Code of
248+ Conduct] ( https://github.com/cncf/foundation/blob/master/code-of-conduct.md )
249+ guidelines
0 commit comments