Skip to content

Commit 2dea019

Browse files
authored
Merge branch 'main' into new-workspace-parameter
2 parents f1cbbd1 + aaebbe8 commit 2dea019

453 files changed

Lines changed: 10904 additions & 1674 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.

.codegen/_openapi_sha

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
a499dda0f7802e37868d3f3076f62639165475d8
1+
0555d6a59265799ed8ea12f355eee662e739430d

.gitattributes

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ cmd/workspace/apps-settings/apps-settings.go linguist-generated=true
5454
cmd/workspace/apps/apps.go linguist-generated=true
5555
cmd/workspace/artifact-allowlists/artifact-allowlists.go linguist-generated=true
5656
cmd/workspace/automatic-cluster-update/automatic-cluster-update.go linguist-generated=true
57+
cmd/workspace/bundle/bundle.go linguist-generated=true
5758
cmd/workspace/catalogs/catalogs.go linguist-generated=true
5859
cmd/workspace/clean-room-asset-revisions/clean-room-asset-revisions.go linguist-generated=true
5960
cmd/workspace/clean-room-assets/clean-room-assets.go linguist-generated=true

.github/actions/setup-build-environment/action.yml

Lines changed: 46 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,55 @@ runs:
1515
- name: Setup JFrog
1616
uses: ./.github/actions/setup-jfrog
1717

18-
- name: Create cache identifier
19-
run: echo "${{ inputs.cache-key }}" > cache.txt
20-
shell: bash
21-
22-
- name: Setup Go
18+
- id: setup-go
19+
name: Setup Go
2320
uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0
2421
with:
2522
go-version-file: go.mod
26-
cache-dependency-path: |
27-
go.sum
28-
cache.txt
23+
# Disable setup-go's built-in cache; the steps below manage the
24+
# cache so that only push-to-main runs save it. PR / merge_group /
25+
# schedule saves are scoped to refs no other run can read, and
26+
# they evict main's caches from the 10 GB GHA cache quota via LRU.
27+
#
28+
# See: https://docs.github.com/en/actions/reference/workflows-and-actions/dependency-caching
29+
cache: false
30+
31+
- name: Resolve Go cache paths
32+
id: go-paths
33+
shell: bash
34+
run: |
35+
echo "build=$(go env GOCACHE)" >> "$GITHUB_OUTPUT"
36+
echo "mod=$(go env GOMODCACHE)" >> "$GITHUB_OUTPUT"
37+
38+
# On runs against main (push + the scheduled wipe-and-repopulate
39+
# cron added in #2092): restore now, save at job end via the
40+
# unified action's post-step (which fires at the calling job's
41+
# end, even when invoked from a composite).
42+
- name: Restore and save Go cache (main)
43+
if: github.ref == 'refs/heads/main'
44+
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
45+
with:
46+
path: |
47+
${{ steps.go-paths.outputs.mod }}
48+
${{ steps.go-paths.outputs.build }}
49+
key: setup-go-${{ inputs.cache-key }}-${{ runner.os }}-go${{ steps.setup-go.outputs.go-version }}-${{ hashFiles('go.sum') }}
50+
restore-keys: |
51+
setup-go-${{ inputs.cache-key }}-${{ runner.os }}-go${{ steps.setup-go.outputs.go-version }}-
52+
53+
# On every other ref (PR / merge_group): restore only. Prefix
54+
# fallback via restore-keys means runs whose go.sum differs from
55+
# main still restore main's most recent cache and rebuild only
56+
# the delta.
57+
- name: Restore Go cache (non-main)
58+
if: github.ref != 'refs/heads/main'
59+
uses: actions/cache/restore@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
60+
with:
61+
path: |
62+
${{ steps.go-paths.outputs.mod }}
63+
${{ steps.go-paths.outputs.build }}
64+
key: setup-go-${{ inputs.cache-key }}-${{ runner.os }}-go${{ steps.setup-go.outputs.go-version }}-${{ hashFiles('go.sum') }}
65+
restore-keys: |
66+
setup-go-${{ inputs.cache-key }}-${{ runner.os }}-go${{ steps.setup-go.outputs.go-version }}-
2967
3068
- name: Setup Python
3169
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0

.github/workflows/push.yml

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ on:
1414
branches:
1515
- main
1616
schedule:
17-
- cron: '0 0,12 * * *' # Runs at 00:00 and 12:00 UTC daily
17+
- cron: '0 0 * * *' # Runs at 00:00 UTC daily
1818

1919
env:
2020
GOTESTSUM_FORMAT: github-actions
@@ -137,22 +137,11 @@ jobs:
137137
with:
138138
cache-key: test-${{ matrix.deployment }}
139139

140-
- name: Run tests without coverage
141-
# We run tests without coverage on PR, merge_group, and schedule because we don't make use of coverage information
142-
# and would like to run the tests as fast as possible. We run it on schedule as well, because that is what
143-
# populates the cache and cache may include test results.
144-
if: ${{ github.event_name == 'pull_request' || github.event_name == 'merge_group' || github.event_name == 'schedule' }}
140+
- name: Run tests
145141
env:
146142
ENVFILTER: DATABRICKS_BUNDLE_ENGINE=${{ matrix.deployment }}
147143
run: go tool -modfile=tools/task/go.mod task test
148144

149-
- name: Run tests with coverage
150-
# Only run 'task cover' on push to main to make sure it does not get broken.
151-
if: ${{ github.event_name == 'push' }}
152-
env:
153-
ENVFILTER: DATABRICKS_BUNDLE_ENGINE=${{ matrix.deployment }}
154-
run: go tool -modfile=tools/task/go.mod task cover
155-
156145
- name: Upload gotestsum JSON output
157146
# Always upload so we can inspect timing even if tests fail.
158147
if: ${{ always() }}

.golangci.yaml

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,8 @@ linters:
9999
msg: Use errors.Is(err, fs.ErrPermission) instead.
100100
- pattern: 'sync\.Once\b($|[^FV])'
101101
msg: Use sync.OnceFunc, sync.OnceValue, or sync.OnceValues instead.
102+
- pattern: 'errors\.As\b'
103+
msg: 'Use errors.AsType[T](err) for type-safe error unwrapping (Go 1.26+).'
102104
analyze-types: true
103105
copyloopvar:
104106
check-alias: true
@@ -156,9 +158,6 @@ linters:
156158
enable-all: true
157159
disable:
158160
- require-error # good check, but we have too many assert.(No)?Errorf? so excluding for now
159-
- empty
160-
- len
161-
- equal-values
162161
- encoded-compare # Always replaces Equal() with JSONEq, but sometimes exact string match is wanted for JSON
163162
exhaustive:
164163
default-signifies-exhaustive: true
@@ -180,10 +179,6 @@ linters:
180179
path: "_test\\.go$"
181180
linters:
182181
- forbidigo
183-
# TODO: remove these exceptions by moving the dependency out of experimental/.
184-
- path: cmd/apps/init.go
185-
linters:
186-
- depguard
187182
issues:
188183
max-issues-per-linter: 1000
189184
max-same-issues: 1000

.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-05-21 08:07:33+0000"
2+
"timestamp": "2026-05-27 14:58:58+0000"
33
}

CHANGELOG.md

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

3+
## Release v1.1.0 (2026-05-27)
4+
5+
### Bundles
6+
* The error reported when a direct-only resource (catalogs, external locations, vector search endpoints) is used with the terraform engine now also suggests setting `bundle.engine: direct` in `databricks.yml`, in addition to the `DATABRICKS_BUNDLE_ENGINE` environment variable ([#5295](https://github.com/databricks/cli/pull/5295)).
7+
8+
* Added `vector_search_indexes` as a bundle resource (direct engine only). Supports UC grants and prompts for confirmation on recreate or delete since both are destructive ([#5123](https://github.com/databricks/cli/pull/5123)).
9+
10+
### Dependency updates
11+
12+
* Bump Go toolchain to 1.26.3 ([#5302](https://github.com/databricks/cli/pull/5302)).
13+
* Bump `github.com/databricks/databricks-sdk-go` from v0.132.0 to v0.136.0.
14+
15+
316
## Release v1.0.0 (2026-05-21)
417

518
### Notable Changes

NEXT_CHANGELOG.md

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

3-
## Release v1.1.0
3+
## Release v1.2.0
44

55
### Notable Changes
66

77
### CLI
8+
* `experimental open` now opens every DABs resource type that has a workspace URL, picking up `catalogs`, `schemas`, `volumes`, `database_instances`, `database_catalogs`, `synced_database_tables`, `postgres_catalogs`, `postgres_synced_tables`, `quality_monitors`, `vector_search_endpoints`, and `vector_search_indexes` ([#5346](https://github.com/databricks/cli/pull/5346)).
89

910
### Bundles
11+
* Retry transient HTTP 504 Gateway Timeout errors in direct deployment engine ([#5349](https://github.com/databricks/cli/pull/5349)).
12+
13+
### Dependency updates

README.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22

33
[![build](https://github.com/databricks/cli/workflows/build/badge.svg?branch=main)](https://github.com/databricks/cli/actions?query=workflow%3Abuild+branch%3Amain)
44

5-
This project is in Public Preview.
6-
75
Documentation is available at https://docs.databricks.com/dev-tools/cli/databricks-cli.html.
86

97
## Installation

Taskfile.yml

Lines changed: 15 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -84,22 +84,23 @@ tasks:
8484

8585
# `golangci-lint run` typechecks, so it stops at go.mod boundaries. We have
8686
# one task per Go module; `lint-go` composes them to cover the whole repo.
87-
# Children run in parallel — each uses its own TMPDIR (set inline on the
88-
# golangci-lint command below) to avoid the shared /tmp lock that serializes
89-
# concurrent golangci-lint invocations. This matters in two scenarios:
90-
# 1. siblings of `lint-go` running in parallel on subprojects here, and
91-
# 2. `lint-go` invocations in sibling worktrees running at the same time.
92-
# The TMPDIR must live under the repo but NOT equal {{.ROOT_DIR}} itself
93-
# (the Go toolchain refuses a go.mod inside os.TempDir, which would break
94-
# golangci-lint's typechecker).
87+
#
88+
# Flags on every invocation:
89+
# --allow-parallel-runners — by default golangci-lint takes a system-wide
90+
# lock and refuses to start if another copy is already running. This
91+
# flag opts out so parallel runs (e.g. `lint-go`'s three sub-lints, or
92+
# two worktrees linting at once) don't block each other.
93+
# -j=4 — cap analyzer concurrency; higher values use more CPU without
94+
# reducing wall time on this codebase.
95+
#
96+
# Cross-worktree concurrency relies on content-addressable cache keys added
97+
# in golangci-lint v2.12.0; keep the binary at v2.12.0+ in tools/go.mod.
9598
lint-go:
9699
desc: Lint Go files across all modules (root, tools, codegen)
97100
deps: ['lint-go-root', 'lint-go-tools', 'lint-go-codegen']
98101

99102
lint-go-root:
100103
desc: Lint Go files in the root module
101-
vars:
102-
TMPDIR: '{{.ROOT_DIR}}/.tmp/golangci-lint-root'
103104
sources: &ROOT_LINT_SOURCES
104105
- "**/*.go"
105106
- exclude: tools/**
@@ -109,48 +110,36 @@ tasks:
109110
- go.sum
110111
- "{{.EMBED_SOURCES}}"
111112
cmds:
112-
- cmd: mkdir -p "{{.TMPDIR}}"
113-
silent: true
114-
- TMPDIR="{{.TMPDIR}}" {{.GO_TOOL}} golangci-lint run ./...
113+
- "{{.GO_TOOL}} golangci-lint run --allow-parallel-runners -j=4 ./..."
115114

116115
lint-go-tools:
117116
desc: Lint Go files in tools/ module
118117
dir: tools
119-
vars:
120-
TMPDIR: '{{.ROOT_DIR}}/.tmp/golangci-lint-tools'
121118
sources:
122119
- "**/*.go"
123120
- '{{.ROOT_DIR}}/.golangci.yaml'
124121
- go.mod
125122
- go.sum
126123
cmds:
127-
- cmd: mkdir -p "{{.TMPDIR}}"
128-
silent: true
129124
# gocritic is disabled because root's ruleguard rules path is cwd-relative
130125
# and cannot be resolved from this nested module.
131-
- TMPDIR="{{.TMPDIR}}" {{.GO_TOOL}} golangci-lint run --disable gocritic ./...
126+
- "{{.GO_TOOL}} golangci-lint run --allow-parallel-runners -j=4 --disable gocritic ./..."
132127

133128
lint-go-codegen:
134129
desc: Lint Go files in bundle/internal/tf/codegen module
135130
dir: bundle/internal/tf/codegen
136-
vars:
137-
TMPDIR: '{{.ROOT_DIR}}/.tmp/golangci-lint-codegen'
138131
sources:
139132
- "**/*.go"
140133
- '{{.ROOT_DIR}}/.golangci.yaml'
141134
- go.mod
142135
- go.sum
143136
cmds:
144-
- cmd: mkdir -p "{{.TMPDIR}}"
145-
silent: true
146137
# gocritic is disabled because root's ruleguard rules path is cwd-relative
147138
# and cannot be resolved from this nested module.
148-
- TMPDIR="{{.TMPDIR}}" {{.GO_TOOL}} golangci-lint run --disable gocritic ./...
139+
- "{{.GO_TOOL}} golangci-lint run --allow-parallel-runners -j=4 --disable gocritic ./..."
149140

150141
lint-q-go-root:
151142
desc: Lint changed Go files in root module (diff vs main, with --fix). Does not check tools/ or bundle/internal/tf/codegen — use `lint` for full coverage.
152-
vars:
153-
TMPDIR: '{{.ROOT_DIR}}/.tmp/golangci-lint-root'
154143
sources:
155144
- "**/*.go"
156145
- exclude: tools/**
@@ -162,9 +151,7 @@ tasks:
162151
- "{{.EMBED_SOURCES}}"
163152
- "**/testdata/**"
164153
cmds:
165-
- cmd: mkdir -p "{{.TMPDIR}}"
166-
silent: true
167-
- TMPDIR="{{.TMPDIR}}" ./tools/lintdiff.py {{.GO_TOOL}} golangci-lint run --fix
154+
- "./tools/lintdiff.py {{.GO_TOOL}} golangci-lint run --allow-parallel-runners -j=4 --fix"
168155

169156
# --- Formatting ---
170157

0 commit comments

Comments
 (0)