Skip to main content

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:

StageWhat it gates
Plan releaseConfirms the workflow is running on main, validates the publish gate, and resolves the release version.
Verify sourceRuns typecheck, tests, package build, docs build, README check, size report, and pack dry run.
Publish npm latestSets the stable version, blocks duplicate publishes, builds the final package, and publishes to npm latest.
Create GitHub releaseCreates a vX.Y.Z GitHub release for the exact main commit.

Stable release inputs

InputTypeUse
confirm_stable_releaseDropdownChoose publish-stable to unlock npm latest. Leave locked to block publishing.
version_bumpDropdownChoose patch, minor, major, or manual. patch is the normal OSS default.
stable_versionTextOnly 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 typeRelease action
Documentation, CI-only, internal choreUsually do not publish a stable npm release. Merge to main only.
Backward-compatible bug fixPublish a patch release.
Backward-compatible featurePublish a minor release.
Breaking API changePublish a major release.
  1. Merge feature work into next.
  2. Test a prerelease from next when needed.
  3. Open and merge next into main.
  4. Run Release manually on main.

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.