Skip to content

Pin CLI 1.22 skills to v0.2.32 - #7159

Merged
simonfaltum merged 4 commits into
mainfrom
simonfaltum/fix-cli-122-skills-compat
Oct 22, 2026
Merged

simonfaltum merged 4 commits into
mainfrom
simonfaltum/fix-cli-122-skills-compat

Conversation

@simonfaltum

Copy link
Copy Markdown
Member

Changes

Pin CLI 1.22.0+ to the current latest skills release, 0.2.32. Adjust existing tests to support the pin.

Why

After #7069, aitools list and plugin installs fail when the unauthenticated GitHub latest-release lookup fails. The VS Code CLI bump reproduces resolve latest skills release: HTTP 403 fetching latest skills release on Linux and Windows.

This remote manifest change mitigates the failure for released CLI 1.22.0 once its compatibility cache refreshes (one-hour TTL). Keep 1.22.0 pinned when restoring latest tracking for a fixed CLI release.

Tests

go test ./libs/clicompat/... ./libs/aitools/installer/...

This PR was written by Codex.

Signed-off-by: simonfaltum <simon.faltum@databricks.com>
Signed-off-by: simonfaltum <simon.faltum@databricks.com>
Signed-off-by: simonfaltum <simon.faltum@databricks.com>
@eng-dev-ecosystem-bot

eng-dev-ecosystem-bot commented Oct 22, 2026 •

Copy link
Copy Markdown
Collaborator

Integration test report

Commit: 0a7abef

Run: 39769604527

Env ✅​pass 🙈​skip Time
✅​ aws linux-2core-8gb 281 15 4:17
✅​ aws-windows-latest-4core-16gb 283 13 3:18
✅​ azure linux-2core-8gb 280 15 4:48
✅​ azure-windows-latest-4core-16gb 282 13 3:01
✅​ gcp linux-2core-8gb 281 15 4:08
✅​ gcp-windows-latest-4core-16gb 283 13 3:07
Top 4 slowest tests (at least 2 minutes):
duration env testname
2:57 gcp-windows-latest-4core-16gb TestAccept
2:53 azure-windows-latest-4core-16gb TestAccept
2:52 aws-windows-latest-4core-16gb TestAccept
2:13 azure linux-2core-8gb TestAccept

@denik denik left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please add changelog entry.

@simonfaltum
simonfaltum added this pull request to the merge queue Oct 22, 2026
@simonfaltum
simonfaltum removed this pull request from the merge queue due to a manual request Oct 22, 2026
Signed-off-by: simonfaltum <simon.faltum@databricks.com>
@simonfaltum
simonfaltum enabled auto-merge October 22, 2026 11:17
@simonfaltum
simonfaltum added this pull request to the merge queue Oct 22, 2026
Merged via the queue into main with commit 66fce77 Oct 22, 2026
29 checks passed
@simonfaltum
simonfaltum deleted the simonfaltum/fix-cli-122-skills-compat branch October 22, 2026 11:49
deco-sdk-tagging Bot added a commit that referenced this pull request Oct 22, 2026
## Release v1.22.1

### CLI

 * Fix GitHub API rate limit errors in `aitools list` and plugin installs by pinning skills to `0.2.32`. ([#7159](#7159))
dhakad22klx pushed a commit to dhakad22klx/cli that referenced this pull request Oct 24, 2026
## Changes

- Add acceptance tests for `databricks aitools list` in
`acceptance/cmd/aitools/list/`:
- `explicit-ref`: `DATABRICKS_SKILLS_REF` is set. The CLI fetches only
the skills manifest.
- `pinned`: the compat entry pins `0.2.32`. The CLI does not call the
latest-release API.
- `latest`: the compat entry is `latest`, and the API returns `v0.2.33`.
The CLI lists the skills from that release.
- `latest-lookup-fails`: the compat entry is `latest`, and the API
returns 403. The command fails with `resolve latest skills release: HTTP
403 fetching latest skills release`.
- The skills latest-release lookup now reads
`DATABRICKS_CLI_GITHUB_API_URL`, the existing override from
`libs/versioncheck`. `versioncheck.GitHubAPIURL` is now exported, and
both lookups use it. `versioncheck` already owns this variable, so the
helper stays there. The helper now also removes a trailing `/`.
- The `-run` pattern of `test-exp-aitools` now uses top-level
alternation and includes `cmd/aitools`.
`TestAccept/(apps|experimental/aitools)` selected only `apps`, because
`go test` does not split on a `/` inside parentheses. So a change in
`libs/aitools` now runs the new tests, and the 10 `experimental/aitools`
acceptance tests also run in this target now. The `sources` do not
change: a change in `acceptance/cmd/aitools` still runs `task test`,
which includes Windows.

## Why

No acceptance test ran `aitools list`. The aitools acceptance tests set
`DATABRICKS_SKILLS_REF`, so they never used the compat manifest or the
latest-release lookup. Because of this, the CLI tests did not find the
1.22.0 regression from databricks#7069. The VS Code unit tests found it in
databricks/databricks-vscode#2269, and databricks#7159 mitigates it.

The `latest-lookup-fails` output records the current behavior. When
`aitools list` gets an embedded fallback, the test must change, and the
diff shows the new behavior.

Each test copies a committed `compat-manifest.json` into
`DATABRICKS_CACHE_DIR`. So the result does not depend on the embedded or
the remote compat manifest. `test.toml` also sets
`DATABRICKS_SKILLS_REF`, `DATABRICKS_FORCE_EMBEDDED_COMPAT`, and
`DATABRICKS_CACHE_ENABLED`, so values from the shell do not change the
result.

## Tests

- `go test ./acceptance -run
'TestAccept/apps|TestAccept/cmd/aitools|TestAccept/experimental/aitools'`:
all pass, also with `DATABRICKS_SKILLS_REF=main` and `CLAUDE_CONFIG_DIR`
set in the shell.
- `go test ./libs/versioncheck/... ./libs/aitools/... ./cmd/aitools/...
./cmd/version/... ./libs/clicompat/...`, with the new `TestGitHubAPIURL`
(default, override, and trailing `/`).
- `golangci-lint` on the changed packages: 0 issues.

## Known limitations

- The tests cover only `aitools list`. Plugin installs use the same
lookup and have no acceptance test.
- The JSON output keeps only `release`, `skills`, and `summary`, because
agent detection depends on the binaries on `PATH`.
- `test-exp-aitools` has no Windows runner. So a PR that changes only
`libs/aitools` or `cmd/aitools` runs the new tests on Linux and macOS
only.
- `DATABRICKS_CLI_GITHUB_API_URL` now also redirects the skills lookup.
A mirror that has only `databricks/cli` releases makes `aitools list`
fail.

This pull request and its description were written by Isaac.

---------

Co-authored-by: Isaac <no-reply@databricks.com>
deco-sdk-tagging Bot added a commit that referenced this pull request Oct 29, 2026
## Release v1.23.0

### CLI

 * Fix GitHub API rate limit errors in `aitools list` and plugin installs by pinning skills to `0.2.32`. ([#7159](#7159))
 * `databricks ssh connect` now makes `claude` and `codex` available on dedicated clusters. ([#7190](#7190))
 * `databricks ssh connect` on serverless now makes `claude` and `codex` available in IDE sessions (`--ide`) and to non-interactive commands (e.g. `databricks ssh connect -- 'claude -p "..."'`). ([#7123](#7123))

### AI Runtime

 * Add workload support for the GPU_1xRTX6000 accelerator type in enabled workspaces. ([#7214](#7214))
 * Show only the accelerator types available in the current workspace in `databricks air run -h config.compute`. ([#6993](#6993))

### Bundles

 * Fixed `bundle validate` failing with "expected a map to index" when a job `schedule`, `trigger` or `continuous` is a reference to a whole block, such as `${resources.jobs.base.schedule}`. ([#7225](#7225))
 * Added `lifecycle.depends_on` to order resources without referencing their fields. ([#7120](#7120))
 * Immutable-folder deploys now refuse to deploy onto a snapshot that was modified outside the bundle (break glass); `bundle deploy --force` moves the deployment to a fresh snapshot. ([#6774](#6774))
 * Fix `--include-locations` failing when a resource is missing a required field. ([#7185](#7185))
 * Removed spurious "required field is not set" warnings for a field whose value is a reference to a whole block, such as `schedule: ${resources.jobs.base.schedule}`. ([#7226](#7226))
 * Revert bundle file uploads to the legacy `/workspace-files/import-file` endpoint, rolling back [#6149](#6149) and [#7034](#7034) released in [v1.21.0](https://github.com/databricks/cli/releases/tag/v1.21.0). This fixes notebooks being uploaded as plain files and deployments failing (for example SQL notebooks in [#7216](#7216)). A remote file or notebook whose type differs from the local one is now deleted and replaced instead of blocking the deploy. ([#7218](#7218))
 * Support selecting resources for deletion with `bundle deploy --select`. ([#7023](#7023))
 * Add the `workspace.sync_mode` setting with the values `overwrite` (default), `in-place`, and `immutable`. It replaces `presets.source_linked_deployment` (use `in-place`) and `experimental.immutable_folder` (use `immutable`), which are now deprecated and emit a warning. ([#7183](#7183))

### Dependency Updates

 * Bump dependencies with known vulnerabilities. ([#7213](#7213))
 * Update the Go SDK to [v0.190.0](https://github.com/databricks/databricks-sdk-go/releases/tag/v0.190.0). ([#7155](#7155))
 * Update the Go SDK to [v0.191.0](https://github.com/databricks/databricks-sdk-go/releases/tag/v0.191.0). ([#7211](#7211))
 * Bump Node.js downloaded by the `ssh` agent shim from v24.21.0 to v24.22.2. ([#7246](#7246))
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.

4 participants