Skip to content

fix: sync with elide project export, falling back to elide manifest - #18

Merged
Sam Gammon (sgammon) merged 1 commit into
mainfrom
fix/project-export
Oct 13, 2026
Merged

Sam Gammon (sgammon) merged 1 commit into
mainfrom
fix/project-export

Conversation

@sgammon

@sgammon Sam Gammon (sgammon) commented Oct 12, 2026 •

Copy link
Copy Markdown
Member

What

Sync reads the project model with elide project export, falling back to elide manifest when the CLI does not have the export command.

Why

Elide 1.6.0 removed elide manifest (elide manifest: removed; use `elide project export` instead, exit 2), so sync failed on 1.6.0 with elide manifest failed (exit 2). elide project export prints the same JSON.

How

ElideCli.manifest() runs elide project export [-f …] first. If it fails with exit 2 and unrecognized subcommand on stderr (how Elide 1.5.x answers, see below), it reruns as elide manifest [-f …]. Any other failure is reported as before. The export attempt's stderr is held back and replayed unless the fallback runs, so older Elide does not leave a usage error in the output channel. Docs, the walkthrough and the untrusted-workspace description now name elide project export.

Verification

Real binaries on samples/ktjvm and four tools/demos/fixtures projects from the Elide repo (jvm-test, project-build, test, install):

Elide elide project export elide manifest
1.6.0-rc.2 (1.6.0+865db8f07d) exit 0, JSON exit 2, elide manifest: removed; use `elide project export` instead
1.6.0+00c7bd2a2 (pre-rc.2 build) exit 0, JSON exit 2, elide manifest: removed; use `elide project export` instead
1.5.4+20260921 exit 2, error: unrecognized subcommand 'export' + usage exit 0, JSON
1.5.0+20260902 exit 2, error: unrecognized subcommand 'export' + usage exit 0, JSON

project export on both 1.6 builds and manifest on 1.5.4 print byte-identical output (cmp) on all five projects.

  • bun run build, bun run --filter elide typecheck, bun run test (130 pass), bun run --filter elide package.
  • New unit tests in packages/core/test/elide.test.ts use stand-in CLIs with the exit codes and stderr of the real 1.6 and 1.5 binaries: export on 1.6, fallback on 1.5 with the usage error hidden, and an unrelated export failure that is reported without a fallback. The workspace fake CLI now answers project export the way 1.6 does.
  • buildProjectModels (the full sync: version, manifest, install, classpath, JDK) against samples/ktjvm with 1.6.0-rc.2, 1.6.0+00c7bd2a2 and 1.5.4 all produce ktjvm-sample.main/ktjvm-sample.test with no warnings.

Closes #15

Elide 1.6.0 removed `elide manifest`; `elide project export` prints the same JSON. Sync now calls
`project export` and falls back to `manifest` when the CLI rejects the subcommand as unrecognized
(exit 2), which is how Elide 1.5.x answers.

Signed-off-by: Sam Gammon <sam@elide.dev>
@sgammon
Sam Gammon (sgammon) merged commit 409a569 into main Oct 13, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Sync fails on Elide 1.6.0: elide manifest no longer exists

1 participant