Skip to content

Commit cf37301

Browse files
Merge branch 'main' into suppress-gh-deployed
2 parents bc847cd + 3b9fe15 commit cf37301

391 files changed

Lines changed: 15170 additions & 906 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.agent/rules/testing.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,28 @@ trace print_requests
186186

187187
**RULE: Route noisy or non-deterministic command output to `LOG.<name>` instead of `output.txt` or `/dev/null`.** `LOG.*` files are visible under `go test -v` but excluded from the diff — see `acceptance/selftest/log/`. Use `&> LOG.<name>` to capture both streams (then `contains.py` to assert invariants like `'!panic' '!internal error'`), or `2>>LOG.<name>` for cleanup-step stderr you'd otherwise drop to `/dev/null`.
188188

189+
**RULE: When a test prints an API GET/read response into `output.txt`, project it to an allow-list of the fields the test asserts — never dump the full payload or strip a deny-list of volatile fields with `jq 'del(...)'`.** The backend keeps adding response fields, and cloud tests run against the real API, so a full payload (or a `del` that only removes today's volatile fields) breaks the golden every time the response grows — even for fields the test does not care about. Instead define a `<resource>_fields()` helper in the resource directory's `script.prepare` that `jq`-selects the fields you assert, and pipe the response through it. Precedent: `acceptance/bundle/resources/postgres_*/script.prepare`.
190+
191+
GOOD:
192+
193+
```bash
194+
# in script.prepare
195+
branch_fields() {
196+
jq '{branch_id, name, parent, status: (.status | {branch_id, default, is_protected})}'
197+
}
198+
# in script
199+
trace $CLI postgres get-branch "$name" | branch_fields
200+
```
201+
202+
BAD:
203+
204+
```bash
205+
trace $CLI postgres get-branch "$name" | jq 'del(.create_time, .update_time)'
206+
trace $CLI postgres get-branch "$name" # full payload straight into output.txt
207+
```
208+
209+
For a field that appears on some responses but not others (e.g. a provenance field absent on a default resource), append `| with_entries(select(.value != null))` to the projected object so the optional field is dropped rather than emitted as `null`.
210+
189211
### Test server
190212

191213
Acceptance tests run against an in-process fake of the Databricks API in `libs/testserver/` (`FakeWorkspace` and the per-service handler files). The fake keeps real in-memory state and returns the same errors the backend does: 404 on a missing parent, 409 on a duplicate create, 400 on a missing required field, and so on. `test.toml` can also stub a single route with a canned response:

.github/workflows/push.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -262,9 +262,9 @@ jobs:
262262
with:
263263
cache-key: test-exp-ssh
264264

265-
# The proxy tests exercise a real OpenSSH server, which the runner image
266-
# ships only the client half of. Install it on Linux (the OS the sshd
267-
# test is gated to); other platforms skip that test.
265+
# The ssh acceptance test drives a real sshd behind the tunnel; the runner
266+
# ships only the client. Install it on Linux (the OS the test is gated to);
267+
# elsewhere and in the general test job it skips via SKIP_TEST.
268268
- name: Install OpenSSH server
269269
if: runner.os == 'Linux'
270270
run: sudo apt-get update && sudo apt-get install -y openssh-server

.nextchanges/bundles/5877.md

Lines changed: 0 additions & 1 deletion
This file was deleted.

.nextchanges/bundles/bundle-init-git-clone-url.md

Lines changed: 0 additions & 1 deletion
This file was deleted.

.nextchanges/bundles/bundle-init-unsupported-protocol.md

Lines changed: 0 additions & 1 deletion
This file was deleted.

.nextchanges/version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.8.0
1+
1.9.0

.release_metadata.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
"timestamp": "2026-07-09 10:51:45+0000"
2+
"timestamp": "2026-07-15 14:31:34+0000"
33
}

CHANGELOG.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,26 @@
11
# Version changelog
22

3+
## Release v1.8.0 (2026-07-15)
4+
5+
### Notable Changes
6+
7+
* Auto-migrate a bundle from terraform to the direct engine when `bundle.engine` is `"direct"` (or `DATABRICKS_BUNDLE_ENGINE=direct`) and the post-deploy dry-run migration is clean; a warning is emitted if the dry-run surfaces errors or warnings so the automatic migration is skipped.
8+
9+
### CLI
10+
11+
* experimental `ssh connect`: bare `python`/`pip` in an interactive session now resolve to the environment interpreter (`$DATABRICKS_VIRTUAL_ENV`) instead of the system or cluster-libraries interpreter, so packages installed in the environment are importable without extra setup. The interactive shell is now non-login (`bash -i`) and the server seeds a `~/.bashrc` snippet that re-prepends the environment's bin directory to `PATH` ([#5888](https://github.com/databricks/cli/pull/5888)).
12+
* When Claude Code runs the CLI without the Databricks AI tooling installed, the CLI now prints a one-line recommendation on stderr to run `databricks aitools install`. The recommendation is shown at most once per hour per Claude session, and never for human callers or `aitools` commands.
13+
* Fixed `databricks auth describe` misattributing a profile selected via `DATABRICKS_CONFIG_PROFILE` as `(from bundle)` when run inside a bundle root ([#5904](https://github.com/databricks/cli/pull/5904)).
14+
15+
### Bundles
16+
17+
* `bundle generate` now warns when the generated configuration file is not matched by any pattern in the `include` section of `databricks.yml` ([#5868](https://github.com/databricks/cli/pull/5868)).
18+
* direct: Match UC Auto Upgrade managed property defaults with a wildcard pattern instead of enumerating each key ([#5877](https://github.com/databricks/cli/pull/5877)).
19+
* Recognize `ssh://` template URLs in `databricks bundle init` ([#5891](https://github.com/databricks/cli/pull/5891)).
20+
* `databricks bundle init` now reports an actionable error when given a template URL with an unsupported protocol (`http://`, `git://`, `ftp://`, `ftps://`) instead of failing with a confusing "not a bundle template" message ([#5902](https://github.com/databricks/cli/pull/5902)).
21+
* Added an `env:` section to `scripts.<name>` for declaring environment variables that may reference `${bundle.*}`, `${workspace.*}`, and `${var.*}` ([#4179](https://github.com/databricks/cli/issues/4179), [#5299](https://github.com/databricks/cli/pull/5299)).
22+
23+
324
## Release v1.7.0 (2026-07-09)
425

526
### CLI

NEXT_CHANGELOG.md

Lines changed: 0 additions & 17 deletions
This file was deleted.
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
#!/bin/bash
2+
echo "hello from AI Runtime"

0 commit comments

Comments
 (0)