AIR CLI Integration: Scaffold experimental AIR CLI command package#5564
AIR CLI Integration: Scaffold experimental AIR CLI command package#5564riddhibhagwat-db wants to merge 2 commits into
Conversation
Waiting for approvalBased on git history, these people are best suited to review:
Eligible reviewers: Suggestions based on git history. See OWNERS for ownership rules. |
Integration test reportCommit: 059bd61
24 interesting tests: 15 SKIP, 7 KNOWN, 2 flaky
Top 28 slowest tests (at least 2 minutes):
|
simonfaltum
left a comment
There was a problem hiding this comment.
Thanks for the scaffold. The Go code itself is in good shape and the acceptance setup follows the existing patterns (the EnvMatrix override and the committed out.test.toml are exactly right). Requesting changes for three things:
- The
tools/list_embeds.pychange needs to come out, see the inline comment. It's unrelated to this PR and the stated rationale doesn't match the repo. - Package location should follow the established experimental layout (
experimental/air/cmd), see the inline comment. - The description needs fixing: it says 7 stub subcommands but lists and implements 6 (your own Tests section says six). Also drop the
list_embeds.pybullet together with that change.
Two questions:
- Which Python
airCLI source/version were the flags mapped from? Please link it in the description; flag parity isn't verifiable from this repo. - Was a seventh subcommand intentionally dropped, or is "7" a typo?
The remaining inline comments (test assertion, help case, --retry help text, cancel args, test.toml defaults) are all quick fixes.
0474207 to
3ff5a77
Compare
3ff5a77 to
30d284d
Compare
30d284d to
d8652c2
Compare
d8652c2 to
8462709
Compare
8462709 to
80144e6
Compare
80144e6 to
d96e64f
Compare
Add the experimental `air` command group as the Go port surface for the Python `air` CLI. Every subcommand (run, status, list, logs, cancel, register-image) is registered as a stub that returns a not-implemented error; the real implementations land in later milestones. The package lives under experimental/air/cmd (imported as aircmd), matching the layout of the other experimental features (aitools, genie, postgres); cmd/experimental/ keeps only the dispatcher. TEST_PACKAGES in Taskfile.yml gains ./experimental/air/... so the unit tests keep running after the move. Includes unit tests for the command-tree wiring and the not-implemented stubs, plus an acceptance test exercising the stubs end-to-end. Co-authored-by: Isaac
d96e64f to
6c80f23
Compare
|
Thanks for the review, I have made the changes and updated the branch with the changes. Regarding your questions:
Yes, the seventh subcommand in the original air CLI is the One more thing I updated: the latest name for the |
Rename the run-details subcommand from `status` to `get`, matching the Python air CLI's current `air get run` naming (it replaced `get status`). Renames the file, constructor, command name, and updates the stub/help/unimplemented tests and goldens accordingly. Co-authored-by: Isaac


Changes
cmd/experimental/air/package containing an air parent command plus 7 stub subcommands: run, status, list, logs, cancel, register-imageWhy
The AI runtime CLI ships today as a separately installed Python wheel with its own auth, output, and packaging. Folding it into the main Go CLI gives users one databricks install with consistent profiles, authentication, and -o json output, and removes a parallel toolchain to maintain. Landing the package scaffold first lets the individual commands be ported in small, reviewable PRs (status is next) instead of one large drop. Every stub is wired and navigable, so the command tree and registration are reviewable now without functional code.
Tests
test with:
go test ./cmd/experimental/air/...go test ./acceptance -run 'TestAccept/experimental/air'