|
1 |
| -# Releasing |
2 |
| - |
3 |
| -There are two parts to making a release. First, prepare the release, then make the release. |
4 |
| - |
5 |
| -## Preparing a release |
6 |
| - |
7 |
| -Anyone with permission to push to the `main` branch can prepare a release. |
8 |
| -To make these steps easier, you can use the [`changelog`](https://github.com/cucumber/changelog) tool. |
9 |
| - |
10 |
| -1. Make sure the CI badges in `README.md` indicate passing |
11 |
| -1. Decide what the next version number should be |
12 |
| - * Look at `CHANGELOG.md` to see what has changed since the last relesase |
13 |
| - * Use [semver](https://semver.org/) to pick a version for the next release. |
14 |
| - ``` |
15 |
| - read $next_release |
16 |
| - ``` |
17 |
| -1. Modify the changelog: |
18 |
| - ``` |
19 |
| - changelog release $next_release -o CHANGELOG.md |
20 |
| - # You may have to manually fix the links at the bottom due to a bug in the changelog command |
21 |
| - ``` |
22 |
| - * If you don't have `changelog` installed, do it manually: |
23 |
| - * Under `[Unreleased]` at the top, add a new `[${version}] - ${YYYY-mm-dd}` header |
24 |
| - * Add a new `[${version}]` link at the bottom |
25 |
| - * Update the `[Unreleased]` link at the bottom |
26 |
| -1. Update the version numbers in package descriptors: |
27 |
| - * `go/go.mod` (only if the major version has changed) |
28 |
| - * `java/pom.xml` (keep the `-SNAPSHOT` suffix) |
29 |
| - * `javascript/package.json` |
30 |
| - * `ruby/VERSION` |
31 |
| -1. Commit and push |
32 |
| - ``` |
33 |
| - git add . |
34 |
| - git commit -m "Release $next_release" |
35 |
| - git push |
36 |
| - ``` |
37 |
| -
|
38 |
| -### Making a release |
39 |
| -
|
40 |
| -Only people with permission to push to `release/*` branches can make releases. |
41 |
| -
|
42 |
| -1. Push to a new `release/*` branch to trigger the [`release-*` workflows](https://github.com/cucumber/cucumber-expressions/actions) |
43 |
| - ``` |
44 |
| - git push origin main:release/v$next_release |
45 |
| - ``` |
46 |
| -1. Wait until the `release-*` workflows in GitHub Actions have passed |
47 |
| -1. Rerun individual workflows if they fail |
48 |
| -1. Consider announcing the release on Slack/Twitter/Blog |
| 1 | +See [.github/RELEASING](https://github.com/cucumber/.github/blob/main/RELEASING.md). |
0 commit comments