Skip to content

Commit 08bf15d

Browse files
authored
docs: Release Guidelines (cloudevents#306)
* This adds a guide on how to do releases Signed-off-by: Lucas Holmquist <lholmqui@redhat.com>
1 parent f3cc2b4 commit 08bf15d

File tree

1 file changed

+62
-0
lines changed

1 file changed

+62
-0
lines changed

Diff for: RELEASE_GUIDELINES.md

+62
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
# Module Release Guidelines
2+
3+
## Create a Proposal Issue
4+
5+
To prepare for a new release, create a [new issue](https://github.com/cloudevents/sdk-javascript/issues/new?assignees=&labels=&template=feature-request.md&title=) where the title of the issue cleary reflects the version to be released.
6+
7+
For example: "Proposal for 3.2.0 release", or something similar. If you are not sure which version is the next version to be released, you can run `npm run release -- --dry-run` to find out what the next version will be.
8+
9+
The body of the issue should be the commits that will be part of the release. This can be easily accomplished by running a git log command with a defined **range**. This range should start at the most recent version tag and end at the latest commit in the master branch.
10+
11+
For example:
12+
13+
```
14+
git log v3.0.1..upstream/master --oneline
15+
```
16+
17+
This will output all the commits from the 3.0.1 tag to the latest commits in the remote upstream/master branch.
18+
19+
This output should be pasted into the issue as normal text. This will allow Github to magically turn all commit hashes and PR/Issues numbers to links.
20+
21+
### Get Consensus
22+
23+
Before a release can be finalized, other maintainers should give a +1 or a thumbs up or some other identifying mark that they are good with the changes.
24+
25+
## Create and Publish the release
26+
27+
Once consensus has been reached on the proposal it is time to create the release and publish it to npm.
28+
29+
### Create the Release
30+
31+
Creating the release is as simple as running the release script:
32+
33+
```
34+
npm run release
35+
```
36+
37+
This will update the CHANGELOG.md and create a new tag based on the version. This can then be pushed upstream by doing:
38+
39+
```
40+
git push upstream master --follow-tags
41+
```
42+
43+
### Create the release on GitHub
44+
45+
Once the release tag has been created and pushed up to Github, we should draft a new release using the Github UI, which is [located here](https://github.com/cloudevents/sdk-javascript/releases/new)
46+
47+
* Tag Version should be the tag that was just created
48+
* The release title should be something like "VERSION Release"
49+
* And the Changelog entries for the current release should be copied/pasted into the comments
50+
51+
52+
### Publish to npm
53+
54+
Once the new version has been created, we need to push it to npm. Assuming you have all the rights to do so, just run:
55+
56+
```
57+
npm publish
58+
```
59+
60+
## Close the Issue
61+
62+
Once the release has been completed, the issue can be closed.

0 commit comments

Comments
 (0)