Skip to content

Update Databricks CLI to v1.21.0 - #2255

Open
eng-dev-ecosystem-bot wants to merge 1 commit into
mainfrom
update-cli-v1.21.0
Open

eng-dev-ecosystem-bot wants to merge 1 commit into
mainfrom
update-cli-v1.21.0

Conversation

@eng-dev-ecosystem-bot

Copy link
Copy Markdown
Collaborator

Update Databricks CLI to v1.21.0

@github-actions

Copy link
Copy Markdown
Contributor

If integration tests don't run automatically, an authorized user can run them manually by following the instructions below:

Trigger:
go/deco-tests-run/vscode

Inputs:

  • PR number: 2255
  • Commit SHA: 3f9f23a756acff6fa20046a8b7a73425c5a3a022

Checks will be approved automatically on success.

@rugpanov

Copy link
Copy Markdown
Contributor

Executive summary — Databricks CLI v1.20.0 → v1.21.0

The GitHub release body for v1.21.0 is empty. This summary uses the CHANGELOG.md at tag v1.21.0.

CLI

  • databricks environments setup-local supports uv workspace members. For a member it uses the shared .venv at the workspace root and writes the constraint pins to the root pyproject.toml. (#7018)
  • databricks environments setup-local uses UV_PROJECT_ENVIRONMENT when it is set, the same way uv sync does. (#7026)
  • pipelines history accepts pipeline IDs, and pipelines show shows a hint for previewing more rows. (#6995)

AI Runtime

  • The air run preflight validation now makes one 5-second attempt. If the service is unavailable, the run continues. (#6994)

Bundles

  • Reliability: bundle deploy, bundle sync and sync now retry these failures instead of stopping:
    • File, library, state and metadata uploads that fail with a 5xx or 408. (#7014)
    • workspace/get-status calls that fail with a 5xx, a 408 or an HTTP/2 REFUSED_STREAM. (#7044)
  • Throughput: File uploads now use the multipart POST /api/2.0/workspace/import endpoint, which has a higher rate limit. The old endpoint was the deprecated workspace-files/import-file. (#6149)
  • Safety fix: bundle deployment bind no longer binds silently when it cannot read the deployment state. Before, this could take over a resource that the bundle already managed. (#6331)
  • experimental.immutable_folder fixes:
    • It now works with mode: development targets. (#7027)
    • It now works with experimental.deployment_history and with top-level permissions. (#7001)
  • Job paths:
    • Relative .env paths in environment_variables[].spec.files are translated to their deployed workspace locations. (#6985)
    • project_environment paths now resolve relative to the YAML file that defines them. (#6983)
  • Diagnostics: Diagnostic paths now quote map keys that are not identifiers, for example resources.jobs['${var.env}_job']. (#6980)
  • Templates: Bundle templates no longer include CLAUDE.md, because AGENTS.md covers it. (#7000)

Dependency updates

  • Go toolchain 1.26.9. (#6996)
  • Go SDK 0.188.0. (#7038)

What could be integrated into the VS Code extension experience

Items are ranked by value for effort. Every claim was checked against packages/databricks-vscode/src on main.

1. uv workspace members in Python setup — the code is already merged; this bump turns it on (no new work)

The extension already handles the new setup-local result shape from #7018. That code arrived in #2253 (faa6f58). With CLI v1.20.0 the CLI never returns these fields, so the code does nothing. With v1.21.0 it starts to run.

  • Result model: PythonSetupResult.ts:123-136 documents venvPath as relative to the project, for example ../../.venv for a member. The same lines declare uvWorkspaceRoot and uvWorkspaceBackupPath.
  • Path resolution: PythonSetupEnvironmentSetup.ts:618 calls resolveVenvDir, defined at PythonSetupEnvironmentSetup.ts:745-756. A venvPath that starts with .. resolves from the symlink-resolved project folder, as the CLI does.
  • User message: setupSummary.ts:24-26 says "the shared uv workspace venv … is selected". setupSummary.ts:84-116 points at the root pyproject.toml and its backup when uvWorkspaceRoot is set.
  • Follow-up: fix(python-setup): recover a uv workspace member from a constraint conflict #2254 is still open. It handles recovery when a member has a constraint conflict. Its recovery buttons already appear in PythonSetupEnvironmentSetup.ts:554 and :760. Merge it after this bump.
  • Suggested check before merge: Run "Set up Python environment" on one member of a uv-workspace monorepo with one bundle per member. Confirm that the selected interpreter is the .venv at the root.

2. UV_PROJECT_ENVIRONMENT support — transparent (no action)

The extension passes the whole ambient environment to setup-local and adds its Databricks auth vars last. See extension.ts:1259-1279 and the comment at CliWrapper.ts:1139-1142. A UV_PROJECT_ENVIRONMENT that the user sets therefore reaches the CLI with no change.

An absolute venvPath is already used as it is (PythonSetupEnvironmentSetup.ts:749-751). The variable must be in the VS Code process environment, not only in an integrated terminal. This is how VS Code works, not a gap in the extension.

3. Deploy and sync retries, and the new upload endpoint — transparent (users get fewer flaky failures)

The extension runs these commands:

  • bundle deploy at CliWrapper.ts:1206-1214
  • bundle sync --watch --output json at CliWrapper.ts:688-692
  • bundle sync at CliWrapper.ts:1287-1289

#7014, #7044 and #6149 all work inside those commands. The extension needs no change.

I did not find any retry logic in the extension for these commands. So there is no cleanup to do.

4. Pipelines history / show changes — no-op

The extension does not call databricks pipelines show or pipelines history. It reads pipeline updates and events from the SDK directly:

  • client.pipelines.listUpdates at BundlePipelinesManager.ts:331
  • listPipelineEvents at BundlePipelinesManager.ts:369 and PipelineRunStatus.ts:132
  • getUpdate at PipelineRunStatus.ts:101 and :152

Moving these calls onto the CLI would be net-new work with no clear benefit.

5. Diagnostic path quoting (#6980) — no-op

The PR changes only diag.Diagnostic.Paths. The extension does not parse CLI diagnostic paths. bundle deploy and bundle sync output goes to the log view as text.

The resource explorer finds source locations from the separate --include-locations map (CliWrapper.ts:1073). It looks up locations.locations["resources.<key>"] at SourceLocationUtils.ts:18. #6980 does not touch that map.

6. Remaining bundle fixes — no-op for the extension

  • Template CLAUDE.md removal (#7000): BundleInitWizard.ts:199-203 sends bundle init to a terminal. Nothing in src/bundle refers to CLAUDE.md or AGENTS.md.
  • bundle deployment bind fix (#6331): The extension has no bind or unbind command.
  • Other bundle items: These are experimental.immutable_folder (#7027, #7001), job .env path translation (#6985) and project_environment resolution (#6983). Nothing in src refers to these fields, and the generated src/bundle/BundleSchema.ts does not model them. The CLI applies them during deploy.
  • AI Runtime (#6994) and dependency updates: The extension does not call databricks air. The Go toolchain and SDK bumps affect only the CLI binary.

Bump checklist: After pulling, run yarn workspace databricks run package:cli:fetch. bin/ is gitignored, so a stale v1.20.0 binary would make the uv-workspace code in item 1 look broken.

🤖 Auto-generated executive summary of the CLI v1.20.0 → v1.21.0 changelog. Integration notes are opportunities, not commitments — verify before acting.

This branch was successfully deployed

1 active deployment
test-trigger-is — 3f9f23a7 Deployed Oct 14, 2026 by eng-dev-ecosystem-bot via Trigger Tests #2374
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.

2 participants