Skip to content

Contributing to Releases

We use changesets to manage version bumps and release notes for our NPM packages and Docker images (ENSIndexer, ENSAdmin, and ENSRainbow).

When you open a PR with feature or bug fix changes, you’ll need to include a changeset file that documents your changes:

  1. Run changeset or pnpm changeset in the repository root
  2. Select the packages/apps your changes affect using the interactive prompt
  3. Choose whether your changes are “major” (breaking changes), “minor” (features), or “patch” (bug fixes).
  4. 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 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:

  1. Ensure your changesets are committed to main
  2. Navigate to Actions > Release NPM RC
  3. Click “Run workflow” and select the main branch
  4. RC packages are published to NPM with the rc tag (e.g., 1.0.0-rc.0)
  5. 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 main branch remains unchanged with regular versions