Packages shared across the Recidiviz web platform.
This is a multi-package repository. The individual packages (found in packages/*
) have their own README files with more detailed information about their use.
All npm packages should be scoped to the @recidiviz
organization.
Packages are versioned independently of one another and have separate dependencies. Dependencies are managed with yarn
. For convenience, a postinstall script will install dependencies for all packages when you run yarn install
in the root package.
The release process is semi-automated and relies on Github Actions. When you are ready to release a package, you should perform the following steps:
- Increment the version number in the
package.json
, following semantic versioning conventions. Update the CHANGELOG.md for the package you are updating. - Open a pull request to update the
package.json
, - Once that pull request is merged, create a Github Release on
main
for that package. Include a changelog in the body of the Release. The tag for this release must follow the naming convention[package]@[version-number]
, wherepackage
matches the name of the package's directory (e.g.,eslint-config
forpackages/eslint-config
). The version number should also match the version bump you just merged. - When that release is created, the package matching the tagged name will be published to npm by a Github Action.