-
Notifications
You must be signed in to change notification settings - Fork 89
Releasing
beta releases are scheduled for the end of each sprint, and occasionally between a sprint.
To release a new version of Calcite Components you must:
-
Be a member of the @esri organization on npm.
-
Be a member of the admin team for Calcite Components.
-
Make sure you have a remote named
originpointing to Esri/calcite-components. -
Ensure you have set up an access token (see below)
-
Run
npm run release:prepare. This script will:- Create a build
- Run all the tests
- Update the package version
- Create a changelog entry for the current release
- Create a commit and tag it -
⚠️ Note if you need to make changes after this step, make sure to amend the commit (git commit --amend) and recreate the tag (git tag --force <version>)
-
Run
npm run release:publish. This script will:- Push the release tag to the repo
- Publish to NPM
- Publish to GitHub (including source and package)
-
Run
npm run release:docsto update the docs. This script will:- Create the component doc
- Create the storybook build
- Push all doc content to the
gh-pagesbranch
Note: this script can be run anytime the docs need to be updated
-
Lastly, release the output targets following these steps
In order for the release script to work, you'll need to generate an access token with GitHub and export it into your shell environment as GH_RELEASE_GITHUB_API_TOKEN. First, generate a token, then copy that token and add it to your bash_profile (~/.bash_profile on Mac):
export GH_RELEASE_GITHUB_API_TOKEN=PASTE_TOKEN_HERE
You may need to start a new terminal window to apply the profile changes.
We deploy the docs with storybook deployer.
- Make sure your changes have landed in
master - Use
npm run release:docsto build the docs and deploy to gh-pages
next releases are useful for testing incoming changes between releases. They are deployed by Travis CI and happen if changes between tagged releases (beta or next) have 'deployable' commits. A deployable commit is:
- a commit of type
featorfix - a commit type that introduces a breaking change
In order to enable next releases, the $NEXT_RELEASE_ENABLED Travis CI Environment variable needs to be a truthy value on https://app.travis-ci.com/github/Esri/calcite-components. This variable enables the deploy phase after each successful build. When enabled, each deploy phase will run a script that runs to determine whether there are deployable commits after the last release. If this is the case, a calcite-components production build will be created, tagged and committed then pushed to the repository and then deployed to NPM.
-
Make sure travis is installed with gem or Homebrew
-
gem install travisorbrew install travis
-
-
Login to travis
- Create a personal access token on GitHub.
travis login --pro -g <github token>
-
Encrypt the webhook url
travis encrypt --pro <Webhook URL>
-
Copy secured variable
secure: "<generated key>"
-
Update
.travis.ymlfile- it should look like:
notifications:
webhooks:
secure: "<generated key>"- Monorepo
- Global Config
- Coding Conventions
- Testing Conventions
- Patching Packages
- Deprecation Guidance
- Continuous Integration
- GitHub Secrets
- Troubleshoot Build Errors
- Tips and Tricks
- NPM FAQ
- Issue Verification
- Wiki Conventions
- Styling Conventions
- CSS Transitions
- Restricting User Input
- ItemHidden Property
- What Happens When You Scale Vector-Based Icons
- Internationalization
- Introduction
- Getting Started
- Naming Schema
- Semantic Tokens
- Component Tokens
- Web Platform
- Build
- Documentation
- Testing
- Contributing