Skip to content

Commit 797f01c

Browse files
authored
Merge branch 'main' into postgres-cleanup
2 parents 34eff8c + e7f024f commit 797f01c

File tree

557 files changed

+12181
-4133
lines changed

Some content is hidden

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

557 files changed

+12181
-4133
lines changed

.claude/settings.json

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
{
2+
"permissions": {
3+
"allow": [
4+
"Bash(make lint:*)",
5+
"Bash(make lintfull:*)",
6+
"Bash(make fmt:*)",
7+
"Bash(make test:*)",
8+
"Bash(make checks:*)",
9+
"Bash(make build:*)",
10+
"Bash(make cover:*)",
11+
"Bash(make schema:*)",
12+
"Bash(make docs:*)",
13+
"Bash(make test-update:*)",
14+
"Bash(make test-update-templates:*)",
15+
"Bash(make ws:*)",
16+
"Bash(go test:*)",
17+
"Bash(go build:*)",
18+
"Bash(go vet:*)",
19+
"Bash(ruff format:*)",
20+
"Bash(git fetch:*)",
21+
"Bash(git add:*)",
22+
"Bash(git commit:*)",
23+
"Bash(git status:*)",
24+
"Bash(git diff:*)",
25+
"Bash(git log:*)",
26+
"Bash(git stash:*)",
27+
"Bash(git checkout:*)",
28+
"Bash(git rebase:*)",
29+
"Bash(git mv:*)",
30+
"Bash(git rm:*)",
31+
"Bash(gh pr create:*)",
32+
"Bash(gh pr view:*)",
33+
"Bash(gh pr checks:*)",
34+
"Bash(gh pr list:*)",
35+
"WebSearch"
36+
]
37+
}
38+
}

.codegen/_openapi_sha

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2d7aaedaf5d20f82b17cc1de48543b88e609f464
1+
69a174b6c47c5e1039a5f14271440c10e33998ce

.github/workflows/tagging.yml

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,31 @@
22
name: tagging
33

44
on:
5+
# Manual dispatch.
56
workflow_dispatch:
6-
# Enable for automatic tagging
7-
#schedule:
8-
# - cron: '0 0 * * TUE'
7+
# No inputs are required for the manual dispatch.
8+
9+
# Runs at 8:00 UTC on Tuesday, Wednesday, and Thursday. To enable automated
10+
# tagging for a repository, simply add it to the if block of the tag job.
11+
schedule:
12+
- cron: '0 8 * * TUE,WED,THU'
913

1014
# Ensure that only a single instance of the workflow is running at a time.
1115
concurrency:
1216
group: "tagging"
1317

1418
jobs:
1519
tag:
20+
# Only run the tag job if the trigger is manual (workflow_dispatch) or
21+
# the repository has been approved for automated releases.
22+
#
23+
# To disable release for a repository, simply exclude it from the if
24+
# condition.
25+
if: >-
26+
github.event_name == 'workflow_dispatch' ||
27+
github.repository == 'databricks/databricks-sdk-go' ||
28+
github.repository == 'databricks/databricks-sdk-py' ||
29+
github.repository == 'databricks/databricks-sdk-java'
1630
environment: "release-is"
1731
runs-on:
1832
group: databricks-deco-testing-runner-group

.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-02-05 13:18:41+0000"
2+
"timestamp": "2026-02-12 09:31:35+0000"
33
}

AGENTS.md

Lines changed: 50 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,9 @@ Use modern idiomatic Golang features (version 1.24+). Specifically:
9494
- Use for-range for integer iteration where possible. Instead of for i:=0; i < X; i++ {} you must write for i := range X{}.
9595
- Use builtin min() and max() where possible (works on any type and any number of values).
9696
- Do not capture the for-range variable, since go 1.22 a new copy of the variable is created for each loop iteration.
97+
- Use empty struct types for context keys: `type myKeyType struct{}` (not `int`).
98+
- Define magic strings as named constants at the top of the file.
99+
- When integrating external tools or detecting environment variables, include source reference URLs as comments so they can be traced later.
97100

98101
### Configuration Patterns
99102
- Bundle config uses `dyn.Value` for dynamic typing
@@ -147,6 +150,8 @@ Notice that:
147150
When writing tests, please don't include an explanation in each
148151
test case in your responses. I am just interested in the tests.
149152

153+
Use table-driven tests when testing multiple similar cases (e.g., different inputs producing different outputs). Reviewers prefer this pattern over repeating near-identical test functions.
154+
150155
### Acceptance Tests
151156

152157
- Located in `acceptance/` with nested directory structure.
@@ -176,6 +181,7 @@ test case in your responses. I am just interested in the tests.
176181
- `diff.py DIR1 DIR2` or `diff.py FILE1 FILE2` — recursive diff with test replacements applied.
177182
- `print_state.py [-t TARGET] [--backup]` — print deployment state (terraform or direct).
178183
- `edit_resource.py TYPE ID < script.py` — fetch resource by ID, execute Python on it (resource in `r`), then update it. TYPE is `jobs` or `pipelines`.
184+
- `gron.py` — flatten JSON into greppable discrete assignments (simpler than `jq` for searching JSON).
179185
- `jq` is also available for JSON processing.
180186

181187
**Update workflow**: Run `make test-update` to regenerate outputs. Then run `make fmt` and `make lint` — if these modify files in `acceptance/`, there's an issue in source files. Fix the source, regenerate, and verify lint/fmt pass cleanly.
@@ -206,6 +212,8 @@ import "github.com/databricks/cli/libs/cmdio"
206212
cmdio.LogString(ctx, "...")
207213
```
208214

215+
Always output file path with forward slashes, even on Windows, so that acceptance test output is stable between OSes. Use filepath.ToSlash for this.
216+
209217
# Specific File Guides
210218

211219
## databricks_template_schema.json
@@ -279,7 +287,47 @@ Notice that:
279287

280288
# Development Tips
281289

282-
- Run `make checks fmt lint` before committing
283290
- Use `make test-update` to regenerate acceptance test outputs after changes
284291
- The CLI binary supports both `databricks` and `pipelines` command modes based on executable name
285-
- Resource definitions in `bundle/config/resources/` are auto-generated from OpenAPI specs
292+
- Comments should explain "why", not "what" — reviewers consistently reject comments that merely restate the code
293+
294+
# Pre-PR Checklist
295+
296+
Before submitting a PR, run these commands to match what CI checks. CI uses the **full** variants (not the diff-only wrappers), so `make lint` alone is insufficient.
297+
298+
```bash
299+
# 1. Formatting and checks (CI runs fmtfull, not fmt)
300+
make fmtfull
301+
make checks
302+
303+
# 2. Linting (CI runs full golangci-lint, not the diff-only wrapper)
304+
make lintfull
305+
306+
# 3. Tests (CI runs with both deployment engines)
307+
make test
308+
309+
# 4. If you changed bundle config structs or schema-related code:
310+
make schema
311+
312+
# 5. If you changed files in python/:
313+
cd python && make codegen && make test && make lint && make docs
314+
315+
# 6. If you changed experimental/aitools or experimental/ssh:
316+
make test-exp-aitools # only if aitools code changed
317+
make test-exp-ssh # only if ssh code changed
318+
```
319+
320+
321+
# Common Mistakes
322+
323+
- Do NOT add dependencies without checking license compatibility.
324+
- Do NOT use `os.Exit()` outside of `main.go`.
325+
- Do NOT remove or skip failing tests to fix CI — fix the underlying issue.
326+
- Do NOT leave debug print statements (`fmt.Println`, `log.Printf` for debugging) in committed code — always scrub before committing.
327+
328+
# Error Handling
329+
330+
- Wrap errors with context: `fmt.Errorf("failed to deploy %s: %w", name, err)`
331+
- Use `logdiag.LogDiag` / `logdiag.LogError` for logging diagnostics.
332+
- Return early on errors; avoid deeply nested if-else chains.
333+
- Use `diag.Errorf` / `diag.Warningf` to create diagnostics with severity.

CHANGELOG.md

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

3+
## Release v0.288.0 (2026-02-12)
4+
5+
### Bundles
6+
7+
* Add support for task-level `compute` configuration with hardware accelerators (GPU_1xA10, GPU_8xH100) ([#4457](https://github.com/databricks/cli/pull/4457))
8+
9+
### Dependency updates
10+
* Upgrade Go SDK to 0.104.0 and Terraform provider to 1.105.0 ([#4457](https://github.com/databricks/cli/pull/4457))
11+
12+
313
## Release v0.287.0 (2026-02-05)
414

515
### CLI

Makefile

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ generate-out-test-toml:
9393

9494
# Updates acceptance test output (integration tests, requires access)
9595
test-update-aws:
96-
deco env run -i -n aws-prod-ucws -- go test ./acceptance -run ^TestAccept$$ -update -timeout=1h -skiplocal -v
96+
deco env run -i -n aws-prod-ucws -- env DATABRICKS_TEST_SKIPLOCAL=1 go test ./acceptance -run ^TestAccept$$ -update -timeout=1h -v
9797

9898
test-update-all: test-update test-update-aws
9999

@@ -145,7 +145,16 @@ integration:
145145
$(INTEGRATION)
146146

147147
integration-short:
148-
VERBOSE_TEST=1 $(INTEGRATION) -short
148+
DATABRICKS_TEST_SKIPLOCAL=1 VERBOSE_TEST=1 $(INTEGRATION) -short
149+
150+
dbr-integration:
151+
DBR_ENABLED=true go test -v -timeout 4h -run TestDbrAcceptance$$ ./acceptance
152+
153+
# DBR acceptance tests - run on Databricks Runtime using serverless compute
154+
# These require deco env run for authentication
155+
# Set DBR_TEST_VERBOSE=1 for detailed output (e.g., DBR_TEST_VERBOSE=1 make dbr-test)
156+
dbr-test:
157+
deco env run -i -n aws-prod-ucws -- make dbr-integration
149158

150159
generate-validation:
151160
go run ./bundle/internal/validation/.
@@ -172,6 +181,8 @@ generate:
172181
cd $(UNIVERSE_DIR) && bazel build //openapi/genkit
173182
@echo "Generating CLI code..."
174183
$(GENKIT_BINARY) update-sdk
184+
@echo "Updating direct engine config..."
185+
make generate-direct
175186

176187
.codegen/openapi.json: .codegen/_openapi_sha
177188
wget -O $@.tmp "https://openapi.dev.databricks.com/$$(cat $<)/specs/all-internal.json" && mv $@.tmp $@ && touch $@

NEXT_CHANGELOG.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
# NEXT CHANGELOG
22

3-
## Release v0.288.0
4-
5-
### Notable Changes
6-
7-
### CLI
3+
## Release v0.289.0
84

95
### Bundles
6+
* Added support for UC external locations (direct mode only) ([#4484](https://github.com/databricks/cli/pull/4484))
7+
* Log artifact build output in debug mode ([#4208](https://github.com/databricks/cli/pull/4208))
8+
* Fix bundle init not working in Azure Government ([#4286](https://github.com/databricks/cli/pull/4286))
9+
* engine/direct: Replace server_side_default with more precise backend_default rule in bundle plan ([#4490](https://github.com/databricks/cli/pull/4490))
1010

1111
### Dependency updates
12-
13-
### API Changes
12+
* Upgrade Go SDK to v0.106.0 (([#4486](https://github.com/databricks/cli/pull/4486)))
13+
* Upgrade Terraform provider to v1.106.0 (([#4542](https://github.com/databricks/cli/pull/4542)))

0 commit comments

Comments
 (0)