Skip to content

Checkout project v1 - #1546

Merged
josephjclark merged 4 commits into
checkout-project-yaml-rebasefrom
checkout-project-v1
Sep 11, 2026
Merged

Checkout project v1#1546
josephjclark merged 4 commits into
checkout-project-yaml-rebasefrom
checkout-project-v1

Conversation

@josephjclark

Copy link
Copy Markdown
Collaborator

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-state used to serialize a statefile as as v1 spec file. This was pretty horrible really.

This PR splits that logic out in to to-app-spec and from-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!):

  • I have used Claude Code
  • I have used another model
  • I have not used AI

You can read more details in our
Responsible AI Policy

josephjclark and others added 2 commits September 11, 2026 15:48
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>
@github-project-automation github-project-automation Bot moved this to New Issues in Core Sep 11, 2026
@josephjclark

Copy link
Copy Markdown
Collaborator Author

Well it seems to work :)

@josephjclark
josephjclark merged commit 46ba85f into checkout-project-yaml-rebase Sep 11, 2026
6 of 10 checks passed
@github-project-automation github-project-automation Bot moved this from New Issues to Done in Core Sep 11, 2026
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants