Contributing to @sigrea/react
May 17, 2026 · View on GitHub
Thank you for contributing! This project uses a PR-based workflow with required CI checks.
Requirements
Node.js >= 24 and pnpm >= 10. TypeScript strict mode, Biome for formatting, Vitest for tests.
Scripts
pnpm typecheck — run TypeScript checks
pnpm test — run unit tests
pnpm build — build the library via unbuild
pnpm format — check formatting (no writes)
pnpm format:fix — apply formatting
pnpm -s cicheck — run test, typecheck, build, smoke, and format checks
Commit Convention
Conventional Commits are required. Examples: feat: ..., fix(scope): ..., docs: ....
The main branch uses squash merges, so the PR title becomes the final commit message.
Changelog Entries
Changelogen reads Conventional Commits directly, so please keep commit messages descriptive. Any user-facing change (features, fixes, deprecations, breaking updates) should have a clear feat, fix, or similar commit. Non-user-facing changes can use chore, test, etc. For PRs that squash multiple commits, summarize the user impact in the PR description so release managers can double-check the changelog entry.
Pull Requests
Ensure the following before requesting review:
pnpm -s cicheck passes and the PR title follows Conventional Commits.
Release Workflow
This repository uses changelogen to update CHANGELOG.md and create the release commit plus tag. Releases use an explicit version so maintainers do not depend on an inferred bump.
- Ensure
mainis up to date and clean. Runmise run notesif you want to preview the generated notes without touching the tree. - Run
SIGREA_RELEASE_VERSION=x.y.z mise run release_version. This runspnpm -s cicheck, updates the changelog, amends the release commit if formatting changes are needed, and creates the annotatedvX.Y.Ztag. - Push the commit and tag together with
mise run push_release. The task usesgit push origin main --follow-tags. - Tag pushes trigger
.github/workflows/publish.yml. The job runs on thereleaseenvironment, installs dependencies, runspnpm -s cicheck, publishes to npm with OIDC trusted publishing, and then syncs the GitHub Release body withpnpm exec changelogen gh release.
If the publish workflow fails, fix the root cause and re-run the job from the GitHub Actions UI. Avoid creating a new tag unless you intend to cut a new release. If you must roll back, delete the tag locally and remotely, revert the release commit, and start over from step 1.