Skip to content

air: suggest a working --output-dir when convert-to-dabs code is outside the bundle - #7640

Draft
dimk0 wants to merge 2 commits into
databricks:mainfrom
dimk0:air-convert-to-dabs-outside-bundle
Draft

dimk0 wants to merge 2 commits into
databricks:mainfrom
dimk0:air-convert-to-dabs-outside-bundle

Conversation

@dimk0

@dimk0 dimk0 commented Nov 15, 2026

Copy link
Copy Markdown
Member

Changes

  • air convert-to-dabs: when code_source.root_path resolves outside the bundle directory, the error names the resolved code directory and, for working-tree snapshots, the --output-dir that converts the workload (the code directory's parent). It no longer suggests setting sync.paths in databricks.yml.
  • Git-pinned snapshots still get only "move the code inside the bundle directory", matching the rule for the bundle-root case in air: explain root_path and default retries in convert-to-dabs #7579.

Why

The getting-started Ray recipes in the AI Runtime cookbook snapshot their parent directory (root_path: ..) to include a shared bootstrap. Running convert-to-dabs workload.yaml from the recipe directory failed with advice to set sync.paths in a databricks.yml that the command had not written, and the generated bundle only syncs generated_artifacts while the tgz artifact packages code inside the bundle anyway. The conversion works with --output-dir ../.., which no message mentioned.

Tests

  • TestConvertToDabsCodeOutsideBundleSuggestsOutputDir reproduces the Ray layout: the error names --output-dir <parent> and not sync.paths, and converting with that directory succeeds with the expected artifact include.
  • TestConvertToDabsGitPinOutsideBundleDoesNotSuggestOutputDir checks git-pinned snapshots get no --output-dir hint.
  • The first test fails without the change; TestConvertToDabsRejectsCodeOutsideBundle passes unchanged. go test ./cmd/air/... and go test ./acceptance -run TestAccept/air pass; golangci-lint run ./cmd/air/... reports no issues.

This pull request and its description were written by Isaac.

dimk0 and others added 2 commits November 14, 2026 23:49
…ide the bundle

When code_source.root_path resolved outside the bundle directory, for example
the getting-started Ray recipes that snapshot their parent directory with
root_path: .., convert-to-dabs suggested setting sync.paths in a databricks.yml
that it had not written. The error now names the resolved code directory and,
for working-tree snapshots, the --output-dir value that converts the workload.

Co-authored-by: Isaac <[email protected]>
Co-authored-by: Isaac <[email protected]>
@github-actions github-actions Bot added the AIR Databricks AI Runtime CLI label Nov 15, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Thanks for the contribution! This pull request was opened from a fork.

If you're a member of the Databricks organization, please request access to the cli-contrib team and open your pull request from a branch in this repository instead of a fork — fork PRs don't run integration tests automatically and have reduced CI access.

If you're an external contributor, no action is needed; a maintainer will review your pull request.

@github-actions

Copy link
Copy Markdown
Contributor

An authorized user can trigger integration tests manually by following the instructions below:

Trigger:
go/deco-tests-run/cli

Inputs:

  • PR number: 7640
  • Commit SHA: 54a6caddabc2ac1e7459b924b200c262632366ba

Checks will be approved automatically on success.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

AIR Databricks AI Runtime CLI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant