docs: Release Guidelines (#306)
* This adds a guide on how to do releases Signed-off-by: Lucas Holmquist <lholmqui@redhat.com>
This commit is contained in:
parent
f3cc2b429b
commit
08bf15d161
|
@ -0,0 +1,62 @@
|
||||||
|
# Module Release Guidelines
|
||||||
|
|
||||||
|
## Create a Proposal Issue
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
For example:
|
||||||
|
|
||||||
|
```
|
||||||
|
git log v3.0.1..upstream/master --oneline
|
||||||
|
```
|
||||||
|
|
||||||
|
This will output all the commits from the 3.0.1 tag to the latest commits in the remote upstream/master branch.
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
### Get Consensus
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
## Create and Publish the release
|
||||||
|
|
||||||
|
Once consensus has been reached on the proposal it is time to create the release and publish it to npm.
|
||||||
|
|
||||||
|
### Create the Release
|
||||||
|
|
||||||
|
Creating the release is as simple as running the release script:
|
||||||
|
|
||||||
|
```
|
||||||
|
npm run release
|
||||||
|
```
|
||||||
|
|
||||||
|
This will update the CHANGELOG.md and create a new tag based on the version. This can then be pushed upstream by doing:
|
||||||
|
|
||||||
|
```
|
||||||
|
git push upstream master --follow-tags
|
||||||
|
```
|
||||||
|
|
||||||
|
### Create the release on GitHub
|
||||||
|
|
||||||
|
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)
|
||||||
|
|
||||||
|
* Tag Version should be the tag that was just created
|
||||||
|
* The release title should be something like "VERSION Release"
|
||||||
|
* And the Changelog entries for the current release should be copied/pasted into the comments
|
||||||
|
|
||||||
|
|
||||||
|
### Publish to npm
|
||||||
|
|
||||||
|
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:
|
||||||
|
|
||||||
|
```
|
||||||
|
npm publish
|
||||||
|
```
|
||||||
|
|
||||||
|
## Close the Issue
|
||||||
|
|
||||||
|
Once the release has been completed, the issue can be closed.
|
Loading…
Reference in New Issue