Skip to content

Latest commit

 

History

History
52 lines (30 loc) · 3.11 KB

RELEASE.md

File metadata and controls

52 lines (30 loc) · 3.11 KB

Release system

v4

As of v4, the ArcGIS REST JS packages are released automatically via Semantic Release.

Note: Any new packages added are published at v1.0.0 instead of 4.0.0.

Deploy Token

The current deploy token is stored as a repository secret named gh_token, which is a GitHub personal access token. The user who generated that token must have the Allow specified actors to bypass required pull requests setting (see repo settings > Branches > main) set so that Semantic Release can commit on their behalf.

v3

The release process has been entirely automated, but it is not perfect, so it requires some attentive human oversight.

The command below bumps the version in each individual package.json file and parses all npm run c invoked commit messages since the last release to update the changelog.

npm run release:prepare

Sometimes this step fails due to errors while parsing commit messages. See these inline comments for how to modify the script and re-run the changelog generation script.

Afterwards, you can display a diff to give you a sense of what will be committed to master when you actually publish.

Note: Lerna only bumps the versions of packages that have changes or depends on packages that have changes. Not all packages will be bumped. This is expected.

npm run release:review

IMPORTANT

Before publishing, you will likely need to make a few changes manually.

First, lerna does not manage peerDependencies. We have to update them ourselves as needed. For example, if you've added a feature to a package (i.e. bumping minor) and you've also updated other packages w/in the monorepo to use that feature, you will need to manually update the peerDependencies of those other packages. Note that if you add features but they are not used w/in the monorepo, then you should not have to update any peerDependencies.

Second, you will likely need to manually update the CHANGELOG.md b/c the system to automates this is far from perfect. For example:

  • It is very rare that anyone uses npm run c, so it is very likely that you will have to manually add changelog entries for whatever has changed since the last release
  • Often the Unreleased section appears below the current release. So please move it to the top.

After you've made these changes, run git add . to stage it, and proceed.

The last command increments the version in the root package.json, pushes the new tag to GitHub and publishes a release of each individual package on npm.

NOTE: If you are using MFA at Github, have your personal access token handy because you will be prompted for your github username and password and you should proved your access token as the password. It is best to have this handy ahead of time and pay attention because there the process can timeout if you do not privide your credentials fast enough.

npm run release:publish