grafana / grafana/faro-react-native-sdk

Migrate release flow to release-please

Open
#36 0 comments 0 reactions 0 assignees View on GitHub
github-actions
Dominant language
TypeScript
Stars
9
Forks
4
Avg merge
1d 18h
Merged PRs (30d)
9

Description

## Context

The current release process documented in [CONTRIBUTING.md](https://github.com/grafana/faro-react-native-sdk/blob/main/CONTRIBUTING.md#release-process) 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.yml` → `lerna 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](https://github.com/googleapis/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`](https://github.com/grafana/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

- release-please docs: https://github.com/googleapis/release-please
- Sibling project: https://github.com/grafana/faro-web-sdk

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.