Contributing to Releases
We use changesets to manage version bumps and release notes for our NPM packages and Docker images (ENSIndexer, ENSAdmin, and ENSRainbow).
Adding a Changeset to Your PR
Section titled “Adding a Changeset to Your PR”When you open a PR with feature or bug fix changes, you’ll need to include a changeset file that documents your changes:
- Run
changesetorpnpm changesetin the repository root - Select the packages/apps your changes affect using the interactive prompt
- Choose whether your changes are “major” (breaking changes), “minor” (features), or “patch” (bug fixes).
- Write a clear description of your changes - this will appear in the release notes
The changesets/bot will automatically comment on your PR to either remind you to add a changeset or confirm the version changes that will happen when your PR is merged.
Important notes:
- Changesets are only required for user-facing changes (features, bug fixes)
- You don’t need a changeset for documentation changes or internal refactoring
- All our packages use “fixed” versioning - they all share the same version number regardless of which package triggered the version bump
Upon a New Release
Section titled “Upon a New Release”Upon the publishing of a new release, your change will be included in the produced packages/images and your contributions will be referenced in the GitHub Release notes.
Publishing Release Candidates (RC) of packages to NPM
Section titled “Publishing Release Candidates (RC) of packages to NPM”Publishing release candidates (RCs) of packages to NPM supports apps outside of the ENSNode monorepo to make use of prerelease packages for testing new ENSNode versions before making a full ENSNode release. Package RCs are published to NPM with the rc dist-tag:
- Ensure your changesets are committed to
main - Navigate to Actions > Release NPM RC
- Click “Run workflow” and select the
mainbranch - RC packages are published to NPM with the
rctag (e.g.,1.0.0-rc.0) - Install RCs with:
npm install @ensnode/package-name@rc
Important notes:
- NPM Package RC versions are ephemeral - they don’t create commits or modify the repository
- Each workflow run increments the RC version (rc.0, rc.1, rc.2, etc.)
- Docker images are NOT built for RCs
- No GitHub releases or tags are created for RCs
- The
mainbranch remains unchanged with regular versions