Checkout project v1 - #1546
Merged
Merged
Conversation
A v1 spec (as exported from the app) has no uuids and cross-references everything by key, so fromAppState's uuid matching silently mangled it: credentials were dropped and every edge collapsed onto the first job. Convert it to the v2 spec shape instead and let the v2 parser take it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Collaborator
Author
|
Well it seems to work :) |
josephjclark
merged commit Sep 11, 2026
46ba85f
into
checkout-project-yaml-rebase
6 of 10 checks passed
josephjclark
added a commit
that referenced
this pull request
Sep 11, 2026
* cli: start ensuring that v2 spec files can be converted to state Several things wrong * project: fix serialisation issue * fixes * remove stray debug console.log calls Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * little refactor * better logging * test: assert credential linkage and edge structure for new-from-spec deploy Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * add test of scenario 1 * Fix an issue where --name is ignored when loading a project from file * ensure cross deployment works from yaml * fix aliases for new projects * fix the alias fix for new projects from checkout * typing * ensure that projects loaded from state files can be loaded statelessly * changeset * fix test * attempt to fix a deploy to an existing project (#1542) * attempt to fix a deploy to an existing project * fix an issue where the wrong alias gets updated * Checkout project v1 (#1546) * support deploying from a v1 spec yaml A v1 spec (as exported from the app) has no uuids and cross-references everything by key, so fromAppState's uuid matching silently mangled it: credentials were dropped and every edge collapsed onto the first job. Convert it to the v2 spec shape instead and let the v2 parser take it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> * create to/from-app-spec serializers * tidy * new tests --------- Co-authored-by: Claude Opus 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Short Description
This PR adds CLI support to deploy a v1 project.
The base PR adds support for project v2 only, on the assumption that the app is standardising on exporting projects in the v2 style.
But that assumption doesn't work: production still uses v1 formats. So it's probably worth adding this support in, otherwise the feature is kind of usable for one of its major use-cases
Implementation Details
This is a bigger PR than I expected because it makes a change that was probably inevitable.
At the moment, there's a buch of condition logic in
to-app-stateused to serialize a statefile as as v1 spec file. This was pretty horrible really.This PR splits that logic out in to
to-app-specandfrom-app-spec.That's how we support the 1 file on deploy: we load a v1 spec as a Project, and then simply deploy it with the regular means.
AI Usage
Please disclose whether you've used AI anywhere in this PR (it's cool, we just
want to know!):
You can read more details in our
Responsible AI Policy