|
5 | 5 | > [!NOTE]
|
6 | 6 | > This information is for [project owners](../GOVERNANCE.md#roles-and-responsibilities).
|
7 | 7 |
|
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: |
9 | 9 |
|
10 | 10 | 1. Determine if it should be a major, minor, or patch release.
|
11 | 11 |
|
12 | 12 | A major version is required for releases when:
|
13 | 13 |
|
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. |
16 | 16 |
|
17 | 17 | A minor version is required for releases that contain only additions, such as new feature or new properties on existing types.
|
18 | 18 |
|
19 | 19 | Patch versions are required for releases that contain only routine data changes, such as updates to `compat_features` arrays or `support` objects.
|
20 | 20 |
|
21 |
| - Changes to `data.schema.json` often indicates a major or minor version is required. |
22 | 21 | The "[major version required][major-version]" and "[minor version required][minor-version]" labels should be used to support this decision.
|
23 | 22 |
|
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). |
31 | 24 |
|
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. |
33 | 28 |
|
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. |
37 | 56 |
|
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). |
41 | 57 | 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.
|
42 | 58 |
|
| 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 | +
|
43 | 61 | [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
|
44 | 62 | [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
|
45 | 63 |
|
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 |
| - |
48 | 64 | ## `@next` releases
|
49 | 65 |
|
50 | 66 | 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