Skip to content

Migrate release flow to release-please #36

Description

@robert-northmind

Context

The current release process documented in CONTRIBUTING.md uses yarn bump:version (= lerna version), which:

  1. Bumps versions in all package.json files.
  2. Commits, tags, and pushes directly to main in one shot.
  3. The tag push triggers .github/workflows/release.ymllerna publish from-package to npm.

This worked for v1.0.0 (2026-04-15) but an org-level ruleset added 2026-04-27 ("Public repo required PRs") now blocks direct pushes to main. Every change must go through a PR with at least one review approval. Tag pushes are not blocked, but the version-bump commit can no longer be pushed to main directly.

For v1.1.0 we are using a manual workaround: branch + lerna version --no-git-tag-version + PR + merge + tag main HEAD locally + push tag. This works but is error-prone and adds friction.

Proposal

Migrate to release-please:

  • Conventional commits (which we already follow per CONTRIBUTING.md) drive the version bump.
  • A bot maintains an automated "chore(release): X.Y.Z" PR with version bumps and CHANGELOG entries.
  • Merging that PR creates the tag and triggers npm publish.
  • No direct pushes to main — fully compatible with the ruleset.

This aligns with the faro-web-sdk sibling project, which is also migrating to release-please.

Acceptance criteria

  • Add release-please-config.json and .release-please-manifest.json configured for the monorepo packages (packages/react-native, packages/react-native-tracing).
  • Add a release-please GitHub Actions workflow that maintains the release PR.
  • Verify release.yml (npm publish on tag push) still works with release-please-created tags. Adjust if needed.
  • Update the "Release Process" section in CONTRIBUTING.md.
  • Remove or deprecate the bump:version script in the root package.json.
  • Smoke-test with a patch release.

References

Metadata

Metadata

Assignees

No one assigned

    Fields

    No fields configured for Enhancement.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions