Release channels
The public install path uses npm latest.
npm install @crup/react-timer-hook@latest
Stable releases are cut from main. Prerelease builds can still be published from next for testing, but the docs and README should point users at latest once stable publishing is enabled.
Stable release stages
The Release workflow is intentionally split into visible jobs:
| Stage | What it gates |
|---|---|
| Plan release | Confirms the workflow is running on main, validates the publish gate, and resolves the release version. |
| Verify source | Runs typecheck, tests, package build, docs build, README check, size report, and pack dry run. |
| Publish npm latest | Sets the stable version, blocks duplicate publishes, builds the final package, and publishes to npm latest. |
| Create GitHub release | Creates a vX.Y.Z GitHub release for the exact main commit. |
Stable release inputs
| Input | Type | Use |
|---|---|---|
confirm_stable_release | Dropdown | Choose publish-stable to unlock npm latest. Leave locked to block publishing. |
version_bump | Dropdown | Choose patch, minor, major, or manual. patch is the normal OSS default. |
stable_version | Text | Only used when version_bump is manual. |
The first stable version resolves to 0.0.1 because the prerelease line already used the 0.0.1 base.
After a stable version exists, patch resolves the next patch automatically. For example, if npm latest is 0.0.1, the next patch release resolves to 0.0.2.
Use this rule of thumb:
| Change type | Release action |
|---|---|
| Documentation, CI-only, internal chore | Usually do not publish a stable npm release. Merge to main only. |
| Backward-compatible bug fix | Publish a patch release. |
| Backward-compatible feature | Publish a minor release. |
| Breaking API change | Publish a major release. |
Recommended flow
- Merge feature work into
next. - Test a prerelease from
nextwhen needed. - Open and merge
nextintomain. - Run
Releasemanually onmain.
For the first stable release, use:
confirm_stable_release=publish-stable
version_bump=patch
stable_version=0.0.1
The stable_version field can keep its default value when version_bump is patch, minor, or major; it is ignored unless the strategy is manual.