feat(installer): prefer npm next lane #688

Merged
jason.woltje merged 1 commits from feat/installer-next-fast-npm into next 2026-06-25 07:14:25 +00:00
Owner

Summary

  • make installer --next fast-by-default using Gitea npm @next dist-tags for CLI and gateway
  • pin exact resolved @next versions and require matching next. suffixes
  • preserve explicit --ref/MOSAIC_REF and --dev source lanes, with source fallback on registry/install failure
  • update install-lane docs and add installer next-lane harness

Refs #462

Verification

  • bash -n tools/install.sh
  • bash -n tools/install-next-lane.test.sh
  • pnpm run test:installer
  • pnpm format:check
  • pnpm typecheck
  • pnpm lint
  • pnpm build
  • real temp-prefix tools/install.sh --cli --next --yes --no-auto-launch
  • Codex code review: approve
  • Codex security review: no issues
## Summary - make installer --next fast-by-default using Gitea npm @next dist-tags for CLI and gateway - pin exact resolved @next versions and require matching next.<pipeline> suffixes - preserve explicit --ref/MOSAIC_REF and --dev source lanes, with source fallback on registry/install failure - update install-lane docs and add installer next-lane harness Refs #462 ## Verification - bash -n tools/install.sh - bash -n tools/install-next-lane.test.sh - pnpm run test:installer - pnpm format:check - pnpm typecheck - pnpm lint - pnpm build - real temp-prefix tools/install.sh --cli --next --yes --no-auto-launch - Codex code review: approve - Codex security review: no issues
jason.woltje added 1 commit 2026-06-25 06:36:52 +00:00
feat(installer): prefer npm next lane
Some checks failed
ci/woodpecker/push/ci Pipeline was canceled
ci/woodpecker/pr/ci Pipeline was successful
2fd7cfc356
Author
Owner

REVIEW-OF-RECORD — APPROVE (#688, head 2fd7cfc356). I reviewed the installer --next fast-npm lane and found no blockers.

Fast @next behavior: --next with no explicit ref resolves both Gitea npm dist-tags from https://git.mosaicstack.dev/api/packages/mosaicstack/npm/, requires matching numeric next.<pipeline> suffixes, and installs exact resolved versions rather than mutable @next. Live registry verification resolves @mosaicstack/mosaic@next=0.0.49-next.1633 and @mosaicstack/gateway@next=0.0.7-next.1633; a real temp-prefix install installed exactly those two versions.

Fallback/precedence: registry unavailability, mismatched suffixes, or install failure returns nonzero from the fast path and falls back to the existing source build at next; --next does not hard-fail solely on registry/dist-tag/install issues. Explicit --ref and MOSAIC_REF force the source lane and skip @next lookup, while pure --dev remains source-build behavior. The installer harness covers exact-version fast install, gateway install failure source fallback, explicit-ref precedence, and mismatched suffix warning.

Docs: user guide, framework defaults README, and design note now describe the three lanes accurately: stable npm @latest, prerelease fast npm @next with source fallback, and contributor/source build via --dev/--ref.

Reviewer verification on head 2fd7cfc3: bash -n tools/install.sh pass; bash -n tools/install-next-lane.test.sh pass; pnpm run test:installer pass; live registry check pass; real temp-prefix tools/install.sh --cli --next --yes --no-auto-launch pass with exact CLI/gateway versions; pnpm format:check pass; pnpm typecheck pass (41/41); pnpm lint pass (23/23); pnpm build pass (23/23). PR CI reported green on pipeline 1635. APPROVE.

REVIEW-OF-RECORD — APPROVE (#688, head 2fd7cfc3567f92ef6e2bf373fe643fd447469d44). I reviewed the installer --next fast-npm lane and found no blockers. Fast @next behavior: --next with no explicit ref resolves both Gitea npm dist-tags from `https://git.mosaicstack.dev/api/packages/mosaicstack/npm/`, requires matching numeric `next.<pipeline>` suffixes, and installs exact resolved versions rather than mutable `@next`. Live registry verification resolves `@mosaicstack/mosaic@next=0.0.49-next.1633` and `@mosaicstack/gateway@next=0.0.7-next.1633`; a real temp-prefix install installed exactly those two versions. Fallback/precedence: registry unavailability, mismatched suffixes, or install failure returns nonzero from the fast path and falls back to the existing source build at `next`; --next does not hard-fail solely on registry/dist-tag/install issues. Explicit `--ref` and `MOSAIC_REF` force the source lane and skip @next lookup, while pure `--dev` remains source-build behavior. The installer harness covers exact-version fast install, gateway install failure source fallback, explicit-ref precedence, and mismatched suffix warning. Docs: user guide, framework defaults README, and design note now describe the three lanes accurately: stable npm @latest, prerelease fast npm @next with source fallback, and contributor/source build via --dev/--ref. Reviewer verification on head 2fd7cfc3: `bash -n tools/install.sh` pass; `bash -n tools/install-next-lane.test.sh` pass; `pnpm run test:installer` pass; live registry check pass; real temp-prefix `tools/install.sh --cli --next --yes --no-auto-launch` pass with exact CLI/gateway versions; `pnpm format:check` pass; `pnpm typecheck` pass (41/41); `pnpm lint` pass (23/23); `pnpm build` pass (23/23). PR CI reported green on pipeline 1635. APPROVE.
jason.woltje merged commit 940ae3cc41 into next 2026-06-25 07:14:25 +00:00
jason.woltje deleted branch feat/installer-next-fast-npm 2026-06-25 07:14:25 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: mosaicstack/stack#688