Skip to content

Support Apple container CLI 1.5.0 - #28

Merged
joeshirey merged 1 commit into
mainfrom
js/container-1.5.0
Sep 30, 2026
Merged

joeshirey merged 1 commit into
mainfrom
js/container-1.5.0

Conversation

@joeshirey

Copy link
Copy Markdown
Owner

Adds support for container 1.5.0 and keeps 1.4.1 supported.

What changed

  • Fixtures: Added sanitized JSON captured from the 1.5.0 CLI under src/test/fixtures/container-1.5.0/, covering system status, containers, stats, images, machines, volumes, networks, and builder.
  • Tests: The frontend compatibility test finds every container-* fixture set and runs once per set. The stats, builder, system-status, and recreation tests now check both 1.4.1 and 1.5.0.
  • Live smoke test: Renamed live_1_4_1_smoke to live_smoke. It accepts any version in SUPPORTED_VERSIONS.
  • Docs: Renamed docs/container-1.4.1.md to docs/container-1.5.0.md and added a 1.5.0 section. Updated the README and the CI comment.

Findings

  • The app code didn't need changes. For the resources the app reads, the JSON from 1.5.0 has the same key structure as 1.4.1.
  • The only breaking CLI change in 1.5.0 removes container k8s start. The app doesn't use Kubernetes.
  • Unknown commands still exit nonzero (exit code 64 in 1.5.0), so the error path works as before.
  • image ls lists every platform variant. The app still shows the arm64 size.
  • The upstream problem where the first machine run after machine create fails is still present in 1.5.0. I reproduced Operation not supported by device. The smoke test's workaround stays.

Validation

Run on Apple silicon, macOS 27.0, container 1.5.0, after rebasing onto current main (Vitest 5):

  • npm test: 303 passed
  • npm run build, cargo fmt --check, cargo clippy -D warnings, cargo build: pass
  • cargo test: 117 passed, with 1 test ignored (the live smoke test)
  • cargo test --test cli_compatibility live_smoke -- --ignored: passed against 1.5.0, and no acd-smoke- resources were left behind

Not tested: the system status not-running and unregistered paths. Testing them would mean stopping the local container service.

Capture 1.5.0 JSON fixtures and run the frontend and Rust fixture tests
against both 1.4.1 and 1.5.0. The JSON shapes the app reads are
unchanged, so no app code changes were needed. The live smoke test now
accepts any supported version and passed against 1.5.0. The machine
initialization workaround is still required in 1.5.0.
@joeshirey
joeshirey merged commit 96ed999 into main Sep 30, 2026
1 check passed
@joeshirey
joeshirey deleted the js/container-1.5.0 branch September 30, 2026 23:16
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.

1 participant