mirror of
https://github.com/software-mansion/argent.git
synced 2026-09-14 19:27:14 +08:00
e42308106c
## Summary - Adds `.github/workflows/publish-next.yml`, a manual `workflow_dispatch` workflow that publishes `@swmansion/argent` to npm under the `next` dist-tag so users can opt into prereleases via `npm install @swmansion/argent@next` without affecting `latest`. - Mirrors the existing `publish.yml` (same checkout / native binaries download / build / smoke checks); the only functional differences are `npm publish --tag next` and a pre-publish guard that fails fast unless `packages/argent/package.json` has a SemVer prerelease version (contains `-`, e.g. `0.6.0-next.0`). ## Why `npm publish` defaults to the `latest` dist-tag even for prerelease SemVer versions. Without an explicit `--tag next`, a published `0.6.0-next.0` would be served to anyone running `npm install @swmansion/argent`. This workflow makes prerelease publishing safe and explicit. ## Usage 1. On a release branch, bump `packages/argent/package.json` to e.g. `0.6.0-next.0` and tag `v0.6.0-next.0` (the existing `release.yml` will create a GitHub Release). 2. Run **Actions → Publish prerelease to npm (next) → Run workflow** with `ref: v0.6.0-next.0`. 3. Verify with `npm dist-tag ls @swmansion/argent` — `latest` is unchanged, `next` points at the new prerelease. ## Test plan - [ ] Dry-run the workflow against a prerelease tag and confirm `npm pack --dry-run` succeeds and the publish step runs `--tag next`. - [ ] After a real prerelease publish, confirm `npm view @swmansion/argent dist-tags` shows `next: <version>` and `latest` is untouched. - [ ] Sanity check the guard: trigger against a non-prerelease ref (e.g. `v0.5.3`) and confirm the workflow fails at the "Verify package version is a prerelease" step before running `npm publish`.