Skip to content

feat(nevermore-cli): pin and promote base place versions in deploy config#734

Merged
Quenty merged 2 commits into
mainfrom
users/quenty/deploy-version-pin
Jul 17, 2026
Merged

feat(nevermore-cli): pin and promote base place versions in deploy config#734
Quenty merged 2 commits into
mainfrom
users/quenty/deploy-version-pin

Conversation

@Quenty

@Quenty Quenty commented Jul 17, 2026

Copy link
Copy Markdown
Owner

Deploys that use a basePlace previously always pulled the latest published version of that place, so a broken Studio edit to a base place would ship on the next deploy even when the code hadn't changed. You can now pin a base place to a specific version in deploy.nevermore.json (add "version" inside basePlace), and deploys download exactly that version; omitting it keeps the old latest-pull behavior, so existing configs are unaffected.

Two new commands manage the pins: nevermore deploy version upgrade [target] bumps every basePlace to its current latest published version (via the Open Cloud Assets API, reusing the legacy-asset:manage scope), and nevermore deploy version promote <from> <to> copies the pins from one target onto another (e.g. production-demo to production), matching places by base place id so content lines up even when targets name their places differently. Both print an old to new table, gate writes behind --dryrun and a confirmation prompt, and were verified end-to-end against the egg-hunt-2026 config.

📦 Published PR as canary version: Canary Versions

✨ Test out this PR locally via:

npm install @quenty/nevermore-cli@4.38.0-canary.734.29546444548.0
# or 
yarn add @quenty/nevermore-cli@4.38.0-canary.734.29546444548.0

Quenty added 2 commits July 16, 2026 17:54
Deploys that use a basePlace always downloaded the latest published
version of that place, so a broken Studio edit to a base place shipped on
the next deploy even when the code hadn't changed.

Add an optional basePlace.version pin to deploy.nevermore.json. When set,
the deploy downloads exactly that version instead of the latest, making
deploys reproducible. Omitting it keeps the previous latest-pull behavior,
so existing configs are unaffected.

Add `nevermore deploy version upgrade [target]` to bump the pins: it
resolves each basePlace's current latest published version via the Open
Cloud Assets API (reusing the legacy-asset:manage scope), prints an
old -> new table, and writes the new versions back to the config after a
confirmation prompt. Supports --dryrun and --yes, and scopes to a single
target when named. Base places shared across targets are resolved once.
…n targets

Promoting a validated build usually means shipping the exact base-place
versions a demo/staging target was verified against, not re-pinning to
whatever is newest.

Add `nevermore deploy version promote <from> <to>`, which copies basePlace
version pins from one target onto another (e.g. production-demo ->
production). Places are matched by base place id rather than name, so the
same source content lines up even when targets name their places
differently. Destination places with no matching pin are left untouched
and reported, and an inconsistent source (one base place pinned to two
versions) is rejected. It's a pure edit of deploy.nevermore.json with no
network calls, gated behind the same --dryrun / confirmation flow as
`version upgrade`.
@github-actions

github-actions Bot commented Jul 17, 2026

Copy link
Copy Markdown

Deploy Results

ℹ️ No changed packages with deploy targets were discovered for this PR. · View logs

Test Results

ℹ️ No changed packages with test targets were discovered for this PR. · View logs

@Quenty Quenty added the canary This makes auto-it add a canary to the PR label Jul 17, 2026
@Quenty
Quenty merged commit 2f265c4 into main Jul 17, 2026
11 checks passed
@Quenty

Quenty commented Jul 17, 2026

Copy link
Copy Markdown
Owner Author

🚀 PR was released in @quenty/nevermore-cli@4.38.0 🚀

@Quenty Quenty added the released This issue/pull request has been released. label Jul 17, 2026
@Quenty
Quenty deleted the users/quenty/deploy-version-pin branch July 17, 2026 01:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

canary This makes auto-it add a canary to the PR released This issue/pull request has been released.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant