-
Notifications
You must be signed in to change notification settings - Fork 228
chore: release docs update plus auto publish docs site #5436
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 4 commits
85ce1c7
d3a635f
b387076
2d77aaf
61ef6ca
2daf45f
e48f461
670b9eb
108faf0
fc46d68
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -23,4 +23,4 @@ jobs: | |
include_drafts: false | ||
limit: 50 | ||
exclude_labels: blocked,wip | ||
include_labels: in-review,ready-for-merge | ||
include_labels: ready-for-review,ready-for-merge | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. this is the label we use in swc repo, @castastrophe let me know if I'm misunderstanding the word label here :) There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. nit There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yeah, that makes sense to me. That utility will auto-rebase PRs with either of those labels present. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Honestly the utility can be a bit aggressive when used so I generally suggest a separate flag for it like "auto-update" to make sure you're opting into it specifically. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @castastrophe should we change the label and update our PR docs to include a section about updating base? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. would love to better understand what you mean when you say "aggressive", maybe we sync in slack or huddle? |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,36 +1,131 @@ | ||
<!-- omit from toc --> | ||
|
||
# Releasing a new version of Spectrum Web Components | ||
|
||
Users with permissions in the `@spectrum-web-components` organization on NPM can follow the following steps to create and publish a new version. | ||
Users with permissions in the `@spectrum-web-components` organization on NPM can follow these steps to create and publish a new version. | ||
|
||
- [Prerequisites](#prerequisites) | ||
- [Main successfully builds](#main-successfully-builds) | ||
- [The correct version of Node is installed](#the-correct-version-of-node-is-installed) | ||
- [Using Node Version Manager](#using-node-version-manager) | ||
- [Manually checking](#manually-checking) | ||
- [Troubleshooting](#troubleshooting) | ||
- [Github Token is set up](#github-token-is-set-up) | ||
- [Generate a Github token](#generate-a-github-token) | ||
- [Logged in to NPM](#logged-in-to-npm) | ||
- [NPM 2FA authenticator app](#npm-2fa-authenticator-app) | ||
- [Releasing to NPM — the good stuff](#releasing-to-npm--the-good-stuff) | ||
- [Troubleshooting](#troubleshooting-1) | ||
- [Publishing the documentation site manually](#publishing-the-documentation-site-manually) | ||
- [From GitHub](#from-github) | ||
- [From the terminal](#from-the-terminal) | ||
- [References](#references) | ||
|
||
## Prerequisites | ||
|
||
### Main successfully builds | ||
|
||
1. Merge all pull requests to be included in the release, and wait for the `main` branch to show that it has completed the required Circle CI jobs. | ||
1. Check [Circle Ci build for `main`](https://app.circleci.com/pipelines/github/adobe/spectrum-web-components?branch=main) shows a `success` status | ||
1. If it failed, click `rerun` dropdown and select `rerun from failed`. | ||
2. If it continues to fail, investigate further until you can successfully get the `main` branch building. | ||
caseyisonit marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
--- | ||
|
||
### The correct version of Node is installed | ||
|
||
This is important to confirm before next step because differing node versions will cause build issues. | ||
|
||
#### Using Node Version Manager | ||
|
||
1. Run `nvm use` (assumes a Node Version Manager install), and confirm you’re on an operable version of Node. | ||
|
||
#### Manually checking | ||
|
||
1. Run `node --version` to see what version you have installed | ||
2. Check `.nvmrc` for node version requirements. | ||
3. If the versions don't match, run `node install [version]` | ||
|
||
#### Troubleshooting | ||
|
||
- If you need to install the correct yarn version and have issues with `yarn` command not being recognized, run `corepack enabled`. | ||
- Yarn 4 uses corepack and needs to be enabled to access the commands | ||
|
||
--- | ||
|
||
### Github Token is set up | ||
|
||
1. Check you have a GitHub token set up, run `echo $GITHUB_TOKEN` | ||
caseyisonit marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
#### Generate a Github token | ||
|
||
1. If you do not have one, set it up in [Github settings > Developer settings > Personal access tokens](https://github.com/settings/personal-access-tokens) | ||
1. Create a classic token | ||
- Note: SWC changeset release token | ||
- Set the expiration to a year or less | ||
- Scopes: | ||
- `repo (all)` | ||
- `read:user` | ||
2. Add generated token to `~/.zshrc` with `export GITHUB_TOKEN='token'` | ||
- Make sure there isn't another export with the same name | ||
3. Close your terminal to reset your profile, open terminal back up | ||
|
||
--- | ||
|
||
### Logged in to NPM | ||
|
||
1. Run `npm whoami` ensure that you are logged in with the user account for the public NPM registry | ||
1. If not logged in, run `npm login` to sign in to your account | ||
|
||
--- | ||
|
||
### NPM 2FA authenticator app | ||
|
||
1. Go to `Account Settings` on NPM | ||
2. Click `Modify 2FA` in the Two-Factor Authentication section | ||
3. Follow the instructions to configure the authenticator app (i.e. Google Authenticator) of your choice | ||
1. Should be able generate a 6-digit password that updates regularly | ||
|
||
--- | ||
|
||
## Releasing to NPM — the good stuff | ||
|
||
1. Run `git checkout main && git fetch && git pull && git clean -dfX` to ensure you are working with the latest code | ||
2. Run `yarn install && yarn build` to install all dependencies and build the pre-processed assets for publication. | ||
1. Confirm no files were updated or modified | ||
3. Scan the version summary for any unexpected changes | ||
1. In your IDE search `': major` , `': minor`, `': patch` , based on the results in the order of this search list, the highest level takes precedence | ||
1. exclude files: `.changeset/README.md` | ||
4. Open your authenticator app to have it ready | ||
5. Run`yarn changeset-publish` | ||
6. Enter the one-time password from your authenticator for NPM. | ||
1. Wait for a fresh password; a stale timer might cause issues. | ||
7. After the SWC packages are released, the React Wrapper packages will be generated. | ||
1. This multi-phase approach ensures that the wrapped packages share the same version as the standard packages. | ||
8. Enter a new one-time password from your authenticator for NPM. | ||
9. The `yarn changeset-publish` command will automatically commit the changes to main with a commit message of `chore: release new versions #publish` | ||
1. The docs site will publish automatically if the `#publish` string is included in the commit message and the check suite runs successfully. | ||
10. Confirm the build on `main` passes | ||
|
||
### Troubleshooting | ||
|
||
- If publishing fails with an error: | ||
- Check the [list of tags](https://github.com/adobe/spectrum-web-components/tags) to see if new tags have been released for your publishing attempt. | ||
- If they were, run `yarn changeset-publish` again. | ||
|
||
1. Merge all pull requests to be included in the release and wait for the `main` branch to show that it has completed the required CI jobs. | ||
2. `git checkout main && git fetch && git pull && git clean -dfX` | ||
3. Run `nvm use` assumes a Node Version Manager install, and confirm your on an operable version of Node. | ||
4. `yarn install && yarn build` to install all dependencies and build the pre-processed assets for publication. | ||
5. `npm whoami` ensure that you are logged in with the user account for the public NPM registry | ||
6. `yarn changeset-publish` | ||
7. Scan the version summary for any unexpected changes. | ||
- Changes to the _major_ versions number are likely to point to undesired version numbers. | ||
- Changes to the _minor_ or _feature_ version number should be confirmed as correct against the changes that have been made since the last release. | ||
8. `Y` to confirm. | ||
9. Enter one time password for npm. | ||
10. After the SWC packages are released, the React Wrapper packages will be generated. This multi-phase approach ensure that the wrapped packages share the same version as the standard packages. | ||
11. Scan the version summary for any unexpected changes. | ||
- The versions _should_ be the same as those that just we applied to their matched SWC packages. | ||
- Changes to the _major_ versions number are likely to point to undesired version numbers. | ||
- Changes to the _minor_ or _feature_ version number should be confirmed as correct against the changes that have been made since the last release. | ||
12. `Y` to confirm. | ||
13. Enter a new one time password for npm. | ||
--- | ||
|
||
The docs site will publish automatically if the `#publish` string is included in the commit message and the check suite runs successfully. | ||
## Publishing the documentation site manually | ||
|
||
If publishing fails with an error, check the [list of tags](https://github.com/adobe/spectrum-web-components/tags) to see if new tags have been released for your publishing attempt. If they were, run `yarn changeset-publish` again. | ||
### From GitHub | ||
|
||
## Publishing the docs site manually | ||
1. Navigate to SWC's [Actions](https://github.com/adobe/spectrum-web-components/actions) and click the `Site publish` workflow. | ||
2. At the top of the table, click the `Run workflow` dropdown — Use workflow from `main` branch, and click the `run workflow` button. | ||
|
||
Navigate to SWC's [Actions](https://github.com/adobe/spectrum-web-components/actions) and click the `Build & publish site` link under the _Workflows_ heading. | ||
### From the terminal | ||
|
||
At the top of the table you will see a `Run workflow` dropdown; click that and run it from the `main` branch. | ||
1. If you have the [GitHub CLI](https://cli.github.com) installed, you can alternatively run `gh workflow run publish.yml --ref main` from the command line. | ||
|
||
[Running manual workflows](https://docs.github.com/en/actions/managing-workflow-runs/manually-running-a-workflow), GitHub documentation | ||
### References | ||
|
||
If you have the [GitHub CLI](https://cli.github.com) installed, you can alternatively run `gh workflow run publish.yml --ref main` from the command line. | ||
1. [Running manual workflows](https://docs.github.com/en/actions/managing-workflow-runs/manually-running-a-workflow), GitHub documentation |
Uh oh!
There was an error while loading. Please reload this page.