Skip to content

Commit bb2ad89

Browse files
authored
Publishing docs: update steps for new release workflow (#2196)
This documents the new workflow added in #2191
1 parent 7d2df86 commit bb2ad89

File tree

1 file changed

+36
-20
lines changed

1 file changed

+36
-20
lines changed

docs/publishing.md

Lines changed: 36 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -5,46 +5,62 @@
55
> [!NOTE]
66
> This information is for [project owners](../GOVERNANCE.md#roles-and-responsibilities).
77
8-
These are the steps to publish a regular release on NPM and as a GitHub release:
8+
These are the steps to publish a regular release on npm and as a GitHub release:
99

1010
1. Determine if it should be a major, minor, or patch release.
1111

1212
A major version is required for releases when:
1313

14-
- Previously valid references are invalid (for example, a group ID is renamed or a feature ID is removed)
15-
- Types have incompatibly narrowed, widened, or otherwise changed (for example, a string value now accepts an array of strings or an ID has become a URL)
14+
- Previously valid references are invalid (for example, a group ID is renamed or a feature ID is removed).
15+
- Types have incompatibly narrowed, widened, or otherwise changed (for example, a string value now accepts an array of strings or an ID has become a URL). Changes to `data.schema.json` often indicates a major or minor version is required.
1616

1717
A minor version is required for releases that contain only additions, such as new feature or new properties on existing types.
1818

1919
Patch versions are required for releases that contain only routine data changes, such as updates to `compat_features` arrays or `support` objects.
2020

21-
Changes to `data.schema.json` often indicates a major or minor version is required.
2221
The "[major version required][major-version]" and "[minor version required][minor-version]" labels should be used to support this decision.
2322

24-
1. Update `packages/web-features/package.json` and `packages/web-features/package-lock.json` in a PR and get review.
25-
1. Merge the PR and draft a new release at https://github.com/web-platform-dx/web-features/releases/new.
26-
1. Fill in the tag name `vX.Y.Z` manually as both the tag and release title.
27-
1. For minor releases, add a `## What's New` section to the top of the release notes, before all other sections.
28-
1. For major releases, add a `## Breaking Changes` section to the top of the release notes, before all other sections.
29-
1. Click **Generate release notes**.
30-
1. In the release description, find unescaped `<` characters and make sure that HTML elements are enclosed with backticks.
23+
1. Trigger the [Prepare web-features release workflow](https://github.com/web-platform-dx/web-features/actions/workflows/prepare_release.yml).
3124

32-
This regular expression can help:
25+
1. Click the **Run workflow** dropdown.
26+
1. Choose the semver level.
27+
1. Click the **Run workflow** button.
3328

34-
```regex
35-
/ (?<!`)<(.*?)> /
36-
```
29+
When the workflow finishes, your review is requested on a new release pull request.
30+
31+
1. Review the PR.
32+
33+
1. Close and reopen the relase PR, to allow the tests to run.
34+
1. Review and approve the changes.
35+
1. When you're ready to complete the remaining steps, merge the PR.
36+
37+
1. Create the GitHub release.
38+
39+
1. Go to https://github.com/web-platform-dx/web-features/releases/new to start a new draft release.
40+
1. Fill in the tag name `vX.Y.Z` manually as both the tag and release title.
41+
1. For minor releases, add a `## What's New` section to the top of the release notes, before all other sections.
42+
1. For major releases, add a `## Breaking Changes` section to the top of the release notes, before all other sections.
43+
1. Click **Generate release notes**.
44+
1. In the release description, find unescaped `<` characters and make sure that HTML elements are enclosed with backticks.
45+
46+
This regular expression can help:
47+
48+
```regex
49+
/ (?<!`)<(.*?)> /
50+
```
51+
52+
1. Remove all lines from Dependabot.
53+
1. Click **Publish release**.
54+
55+
Publishing the GitHub release creates the tag. This triggers the [Publish web-features GitHub Actions workflows](https://github.com/web-platform-dx/web-features/blob/main/.github/workflows/publish_web-features.yml), uploads GitHub release artifacts and publishes the package to npm.
3756
38-
1. Remove all lines from Dependabot.
39-
1. Publish the GitHub release.
40-
1. (*Optional*) If this release contained schema changes, notify highly-visible donwstream consumers, such as Can I Use (@Fryd), MDN (@LeoMcA), or webstatus.dev (@jcscottiii).
4157
1. Remove the "[major version required][major-version]" and "[minor version required][minor-version]" labels from any pull requests that were included in the release.
4258
59+
1. (*Optional*) If this release contained schema changes, notify highly-visible donwstream consumers, such as Can I Use (@Fryd), MDN (@LeoMcA), or webstatus.dev (@jcscottiii).
60+
4361
[major-version]: https://github.com/web-platform-dx/web-features/pulls?q=is%3Apr+is%3Amerged+label%3A%22major+version+required%22+sort%3Aupdated-desc
4462
[minor-version]: https://github.com/web-platform-dx/web-features/pulls?q=is%3Apr+is%3Amerged+label%3A%22minor+version+required%22+sort%3Aupdated-desc
4563
46-
Publishing the GitHub release creates the tag. This triggers the [Publish web-features GitHub Actions workflows](https://github.com/web-platform-dx/web-features/blob/main/.github/workflows/publish_web-features.yml), uploads GitHub release artifacts and publishes the package to NPM.
47-
4864
## `@next` releases
4965
5066
The [Publish web-features@next GitHub Actions workflows](https://github.com/web-platform-dx/web-features/blob/main/.github/workflows/publish_next_web-features.yml) automatically publish pre-releases on push to the main branch using the `next` [npm dist tag](https://docs.npmjs.com/adding-dist-tags-to-packages).

0 commit comments

Comments
 (0)