You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
It has been out of date since we switched to using release-please
for our release automation.
Fixes: cloudevents#474
Signed-off-by: Lance Ball <lball@redhat.com>
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.
5
+
This project uses [`release-please-action`](https://github.com/google-github-actions/release-please-action)
6
+
to manage CHANGELOG.md and automate our releases. It does so by parsing the git history, looking for
7
+
[Conventional Commit](https://www.conventionalcommits.org/en/v1.0.0/) messages, and creating release PRs.
6
8
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 main branch.
10
-
11
-
For example:
12
-
13
-
```
14
-
git log v3.0.1..upstream/main --oneline
15
-
```
16
-
17
-
This will output all the commits from the 3.0.1 tag to the latest commits in the remote upstream/main 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 main --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
9
+
For example: https://github.com/cloudevents/sdk-javascript/pull/475
50
10
11
+
Each time a commit lands on `main`, the workflow updates the pull request to include the commit message
12
+
in CHANGELOG.md, and bump the version in package.json. When you are ready to create a new release, simply
13
+
land the pull request. This will result in a release commit, updating CHANGELOG.md and package.json, a version
14
+
tag is created on that commit SHA, and a release is drafted in github.com.
51
15
52
16
### Publish to npm
53
17
@@ -56,7 +20,3 @@ Once the new version has been created, we need to push it to npm. Assuming you
56
20
```
57
21
npm publish
58
22
```
59
-
60
-
## Close the Issue
61
-
62
-
Once the release has been completed, the issue can be closed.
0 commit comments