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
Rulesets prohibit pushing commits on `main` without a PR. This means that running `npm version` within `main` actually
creates more work. Further, the release workflow requires CI to have passed on the tagged commit, but it's triggered
when the tag is pushed.
Simplify by triggering on pushes to `main`, when that commit has a release tag. We can then create a PR for a release
branch, push the tag commit, and trigger the release when merging the commit into `main`. This still has to happen
locally since we must include the tagged commit.
Copy file name to clipboardExpand all lines: maintaining.md
+7-7Lines changed: 7 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -43,22 +43,22 @@ Speaking of, using newer TypeScript features could be considered a breaking chan
43
43
44
44
## Release process
45
45
46
-
1. In the `main` branch, use `npm version` with the correct increment.
47
-
1. Push the resulting tag (`git push --tags`).
48
-
1. Wait for minimal CI checks to pass and push the `main` branch.
49
-
1. Wait for full CI run to complete on the tag.
50
-
1. The *Release* workflow will automatically run and publish to npm with provenance. It will also create a draft GitHub release.
46
+
1. Create a release branch, then use `npm version` with the correct increment.
47
+
1. Push the resulting tag (`git push --tags`) and create a pull request from the branch.
48
+
1. Wait for full CI checks to pass on the pull request.
49
+
1. Locally, merge the release branch into `main` using `git merge --ff-only`.
50
+
1. Push `main`.
51
+
1. The *Release* workflow will automatically run when the tagged commit is pushed to `main` and publish to npm with provenance. It will also create a draft GitHub release.
51
52
1. Review and publish the [draft GitHub release](https://github.com/avajs/ava/releases).
52
53
53
54
The *Release* workflow includes several safety checks:
54
55
55
56
- Validates the tag version matches `package.json`
56
-
- Verifies the tagged commit is included in the `main` branch
57
57
- Confirms CI has passed for the commit
58
58
59
59
### Manual Release
60
60
61
-
If CI fails for the tag and you're confident this is not due to a fault in the release, you can manually trigger the *Release* workflow:
61
+
If CI fails and you're confident this is not due to a fault in the release, or if there are multiple tags pointing to the same commit, you can manually trigger the *Release* workflow:
62
62
63
63
1. Go to the [*Release* workflow](https://github.com/avajs/ava/actions/workflows/release.yml)
0 commit comments