Skip to content

Bump databricks-sdk-go to v0.136.0#5298

Closed
shreyas-goenka wants to merge 8 commits into
databricks:mainfrom
shreyas-goenka:shreyas-goenka/bump-sdk-v0.136.0
Closed

Bump databricks-sdk-go to v0.136.0#5298
shreyas-goenka wants to merge 8 commits into
databricks:mainfrom
shreyas-goenka:shreyas-goenka/bump-sdk-v0.136.0

Conversation

@shreyas-goenka
Copy link
Copy Markdown
Contributor

@shreyas-goenka shreyas-goenka commented May 21, 2026

Why

Pulls in four releases of the Go SDK (v0.133 through v0.136).

Changes

Before: CLI pinned databricks-sdk-go at v0.132.0 and OpenAPI spec at SHA a499dda0.
Now: Pinned at v0.136.0 / OpenAPI SHA 0555d6a5.

Most of the diff is regenerated output from ./task generate (CLI command stubs, JSON schema, bundle docs, Python bindings, acceptance goldens). Notable in this batch:

  • New cmd/workspace/bundle/ — the auto-generated databricks bundle workspace commands fronting the DMS service (CreateDeployment, CreateVersion, CreateResource, CreateOperation, Heartbeat, CompleteVersion, etc.). The interface is currently marked Deprecated in the SDK; this is a generator artifact, not a real deprecation.
  • Refreshed pydabs models for new SDK types (pipelines.Transformer*, pipelines.JsonTransformerOptions, pipelines.KafkaOptions, jobs.PythonOperatorTask*).

Hand-written changes:

  • CurrentUser.Me signature: v0.136 changed it from Me(ctx) to Me(ctx, iam.MeRequest{}). Updated 14 production callsites (cmd/auth, cmd/apps, cmd/psql, cmd/sync, bundle/config/mutator, libs/template, libs/sync, libs/databrickscfg/cfgpickers, experimental/postgres, experimental/ssh/internal/{client,keys,workspace}, integration/internal/acc, acceptance/internal/prepare_server.go, acceptance/dbr_test.go) plus 3 mocked test expectations in cmd/auth/describe_test.go (Me(mock.Anything) -> Me(mock.Anything, mock.Anything)).
SDK v0.132 -> v0.136 changelog summary
  • v0.133: WorkspaceAssignmentDetails methods on a.AccountIamV2 / w.WorkspaceIamV2. jobs.PythonOperatorTask on RunTask/SubmitTask/Task. pipelines.ConnectorOptions.KafkaOptions. Several Postgres / settings additions. [Breaking] ml.ListFeaturesRequest argument order changes; postgres.RequestedResource.UnspecifiedResourceName removed.
  • v0.134: Jobs PipelineParams / PipelineTask gained FullRefreshSelection, RefreshFlowSelection, RefreshSelection, ResetCheckpointSelection. settingsv2.Setting gained OperationalEmailCustomRecipient fields.
  • v0.135: Added bundle package and w.Bundle workspace-level service. ml.AuthConfig.MtlsConfig.
  • v0.136: Postgres UndeleteBranch + branch delete/purge plumbing. iam.MeRequest.{Attributes,ExcludedAttributes} (the CurrentUser.Me signature change). [Breaking] bundle.Operation.{ActionType,ResourceId} and bundle.Version.CliVersion made required. [Breaking] marketplace.ListListingsRequest.Tags retyped to ListingTag. [Breaking] ClustersAPI.Events pagination shape changed (genkit absorbed this).

Test plan

  • go build ./...
  • go vet ./...
  • go test ./internal/build ./bundle/internal/schema ./bundle/direct/dresources ./bundle/config/resources ./libs/template ./bundle/config/mutator
  • TestConsistentDatabricksSdkVersion confirms SDK version and OpenAPI SHA match
  • Pydabs codegen tests (8 passed)
  • CI on this PR

## Why

Pulls in four releases of the Go SDK (v0.133 through v0.136). The
headline addition is the new `bundle` service package, which exposes
the Deployment Metadata Service (DMS) APIs (Deployments, Versions,
Resources, Operations, Locks) used by the CLI's upcoming server-managed
state work. Several other workspace-level service additions also
surface as new CLI subcommands.

## Changes

**Before:** CLI pinned `databricks-sdk-go` at `v0.132.0` and OpenAPI
spec at SHA `a499dda0`.
**Now:** Pinned at `v0.136.0` / OpenAPI SHA `0555d6a5`.

Most of the diff is regenerated output from `./task generate` (CLI
command stubs, JSON schema, bundle docs, Python bindings, acceptance
goldens). Notable in this batch:

- New `cmd/workspace/bundle/` — the auto-generated `databricks bundle`
  workspace commands fronting the DMS service (CreateDeployment,
  CreateVersion, CreateResource, CreateOperation, Heartbeat,
  CompleteVersion, etc.). The interface is marked as `Deprecated` in
  the SDK; this is a generator artifact, not a real deprecation.
- New / refreshed pydabs models for new SDK types
  (`pipelines.Transformer*`, `pipelines.JsonTransformerOptions`,
  `pipelines.KafkaOptions`, `jobs.PythonOperatorTask*`).

Hand-written changes:

- **`CurrentUser.Me` signature:** v0.136 changed it from `Me(ctx)` to
  `Me(ctx, iam.MeRequest{})`. Updated 14 production callsites
  (`cmd/auth`, `cmd/apps`, `cmd/psql`, `cmd/sync`, `bundle/config/mutator`,
  `libs/template`, `libs/sync`, `libs/databrickscfg/cfgpickers`,
  `experimental/postgres`, `experimental/ssh/internal/{client,keys,workspace}`,
  `integration/internal/acc`, `acceptance/internal/prepare_server.go`,
  `acceptance/dbr_test.go`), 3 mocked test expectations in
  `cmd/auth/describe_test.go` (`Me(mock.Anything)` -> `Me(mock.Anything, mock.Anything)`).

`bundle/direct/dresources/{apitypes,resources}.generated.yml` are
unchanged from main: the field-behavior annotations they depend on come
from the published OpenAPI CDN, which this branch could not be
regenerated from in the build environment. The pre-bump versions
already cover the new fields (`apps.App.url`,
`apps.App.thumbnail_url`), so no manual edits to `resources.yml`
were needed.

## Test plan

- [x] `go build ./...`
- [x] `go vet ./...`
- [x] `go test ./internal/build ./bundle/internal/schema ./bundle/direct/dresources ./bundle/config/resources ./libs/template ./bundle/config/mutator`
- [x] `TestConsistentDatabricksSdkVersion` confirms SDK version and OpenAPI SHA match
- [x] Pydabs codegen tests (8 passed, run via `uv run --offline`)
- [ ] CI on this PR

Co-authored-by: Isaac
…y file modes

The SDK v0.135 added a workspace-level `bundle` service (DMS) whose
auto-generated cobra command at `cmd/workspace/bundle/bundle.go` uses
`Use: "bundle"` — the same name as the existing DAB `bundle` command
tree (`cmd/bundle`). Registering both as top-level subcommands of `cli`
clobbered the DAB tree's help output, so e.g. `databricks bundle debug
refschema --help` printed the DMS service description and the DMS
subcommand list instead of the refschema help.

Filter the workspace `bundle` command out of the registration loop in
`cmd/cmd.go`. The DMS endpoints remain reachable via `databricks api`
calls. A follow-up PR will resurface these commands under proper DAB
sub-groups (`databricks bundle deployments`, `versions`, `resources`,
`operations`).

Also restore file modes for `.github/workflows/tagging.yml` and
`internal/genkit/tagging.py` (genkit's post-processing inadvertently
flipped both to 0755; main has them at 0644), and update the
`acceptance/bundle/refschema/{output.txt,out.fields.txt}` goldens that
were corrupted in the previous commit by the same bundle namespace
collision (refschema --help now prints its own help; out.fields.txt now
contains the actual field dump that the previous run never produced).

Co-authored-by: Isaac
Comment thread cmd/cmd.go
// with the DAB `bundle` command tree (cmd/bundle). Registering both
// here clobbers the DAB tree's help output. Skip the generated one;
// callers still have `databricks api ...` for the DMS endpoints.
if cmd.Name() == "bundle" {
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I'll fix this in a followup PR - adding overrides to integrate the generated commands with the manually maintained bundle command tree.


name_template = codegen.get("dependency_name_template", "")
dep_patterns = codegen.get("dependency_pattern", {})
if not name_template or not dep_patterns:
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

we do not set these in .codegen.json so this change is a no-op for the CLI.

@@ -443,6 +443,18 @@ def get_previous_tag_info(package: Package) -> Optional[TagInfo]:
return TagInfo(package=package, version=version, content=latest_release)
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

overall changes in this file are no-op for the CLI.

@shreyas-goenka shreyas-goenka marked this pull request as ready for review May 21, 2026 13:15
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 21, 2026

Approval status: pending

/acceptance/bundle/ - needs approval

Files: acceptance/bundle/refschema/out.fields.txt
Suggested: @pietern
Also eligible: @denik, @andrewnester, @anton-107, @janniklasrose, @lennartkats-db

/bundle/ - needs approval

10 files changed
Suggested: @pietern
Also eligible: @denik, @andrewnester, @anton-107, @janniklasrose, @lennartkats-db

/cmd/apps/ - needs approval

Files: cmd/apps/import.go, cmd/apps/run_local.go
Suggested: @pkosiec
Also eligible: @jamesbroadhead, @MarioCadenas, @arsenyinfo, @fjakobs, @Shridhad, @atilafassina, @keugenek, @igrekun, @pffigueiredo, @ditadi, @calvarjorge

/cmd/auth/ - needs approval

Files: cmd/auth/describe.go, cmd/auth/describe_test.go, cmd/auth/profiles.go
Suggested: @simonfaltum
Also eligible: @parthban-db, @tanmay-db, @mihaimitrea-db, @rauchy, @tejaskochar-db, @renaudhartert-db, @hectorcast-db, @Divyansh-db, @chrisst

/cmd/psql/ - needs approval

Files: cmd/psql/psql_autoscaling.go, cmd/psql/psql_provisioned.go
Suggested: @simonfaltum
Also eligible: @parthban-db, @tanmay-db, @mihaimitrea-db, @rauchy, @tejaskochar-db, @renaudhartert-db, @hectorcast-db, @Divyansh-db, @chrisst

/cmd/sync/ - needs approval

Files: cmd/sync/completion.go
Suggested: @simonfaltum
Also eligible: @parthban-db, @tanmay-db, @mihaimitrea-db, @rauchy, @tejaskochar-db, @renaudhartert-db, @hectorcast-db, @Divyansh-db, @chrisst

/integration/ - needs approval

4 files changed
Suggested: @simonfaltum
Also eligible: @parthban-db, @tanmay-db, @mihaimitrea-db, @rauchy, @tejaskochar-db, @renaudhartert-db, @hectorcast-db, @Divyansh-db, @chrisst

/internal/ - needs approval

Files: internal/genkit/tagging.py, internal/genkit/tagging.py.lock
Suggested: @simonfaltum
Also eligible: @parthban-db, @tanmay-db, @mihaimitrea-db, @rauchy, @tejaskochar-db, @renaudhartert-db, @hectorcast-db, @Divyansh-db, @chrisst

/libs/databrickscfg/ - needs approval

Files: libs/databrickscfg/cfgpickers/clusters.go, libs/databrickscfg/cfgpickers/clusters_test.go
Suggested: @simonfaltum
Also eligible: @parthban-db, @tanmay-db, @mihaimitrea-db, @rauchy, @tejaskochar-db, @renaudhartert-db, @hectorcast-db, @Divyansh-db, @chrisst

/libs/sync/ - needs approval

Files: libs/sync/path.go
Suggested: @simonfaltum
Also eligible: @parthban-db, @tanmay-db, @mihaimitrea-db, @rauchy, @tejaskochar-db, @renaudhartert-db, @hectorcast-db, @Divyansh-db, @chrisst

/libs/template/ - needs approval

Files: libs/template/helpers.go
Suggested: @pietern
Also eligible: @denik, @andrewnester, @anton-107, @janniklasrose, @lennartkats-db

General files (require maintainer)

56 files changed
Based on git history:

  • @simonfaltum -- recent work in ./, python/databricks/bundles/pipelines/_models/, python/databricks/bundles/jobs/_models/

Any maintainer (@andrewnester, @anton-107, @denik, @pietern, @simonfaltum, @renaudhartert-db) can approve all areas.
See OWNERS for ownership rules.

…dk-v0.136.0

# Conflicts:
#	NEXT_CHANGELOG.md
SDK v0.136 added new fields to two request structs that the direct
engine constructs: jobs.GetJobRequest.IncludeTriggerState (v0.136) and
postgres.DeleteBranchRequest.{Purge,ForceSendFields} (v0.136). The
exhaustruct linter requires explicit initialization of every field, so
zero-value them out.

No behavior change: both fields default to their zero values.

Co-authored-by: Isaac
Four small fixes for tests that detect SDK-bump-driven changes:

- `libs/databrickscfg/cfgpickers/clusters_test.go`: the SDK's
  `CurrentUser.Me(ctx, iam.MeRequest{})` now hits
  `/api/2.0/preview/scim/v2/Me?` with a trailing `?` (the URL builder
  appends one for the empty query-param shape, even when both fields
  are zero-valued). The two `qa.HTTPFixture` stubs were matching the
  pre-bump path; update them to include the trailing `?`.

- `libs/structs/structwalk/walktype_test.go`: bump the upper bounds on
  the reflective field-count tests (jobs.JobSettings now 605, was 533
  pre-bump; config.Root now 5651, was 5213) and refresh the comments.
  The lower bounds are unchanged.

- `acceptance/cmd/account/account-help/output.txt`: the `endpoints`
  service moved from Beta to Public Preview in the SDK launch-stage
  metadata.

- `acceptance/help/output.txt`: vector-search-endpoints description
  rewording ("vector search indexes" -> "AI Search indexes") and a new
  `temporary-volume-credentials` row in the Unity Catalog group, both
  from SDK v0.136 service additions.

Co-authored-by: Isaac
name = "certifi"
version = "2026.2.25"
source = { registry = "https://pypi-proxy.dev.databricks.com/simple/" }
source = { registry = "https://pypi-proxy.cloud.databricks.com/simple/" }
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

This looks unusual?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Good catch -- reverted to main in c91a11f. The previous run picked a different pypi-proxy host (cloud vs dev) because of how uv resolved deps in this codegen env; this file shouldn't drift across an SDK bump.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Correction on my earlier reply -- I checked against the Go SDK's own tagging.py.lock across versions and the dev -> cloud registry switch is expected: v0.132.0 was on pypi-proxy.dev.databricks.com, v0.136.0 and SDK main are on pypi-proxy.cloud.databricks.com. So the original codegen output was correct -- I re-restored it in dd1c304.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Sorry - the previous comments was posed by claude - not me.

This is also present in the Go SDK so I think it's that the taggging.py.lock file generated generally:
https://github.com/databricks/databricks-sdk-go/blob/main/tagging.py.lock

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

this PR makes the changes universe side: https://github.com/databricks-eng/universe/pull/1931627/changes

Two CI-cleanup nits flagged on PR databricks#5298:

- `cmd/workspace/bundle/bundle.go`: the genkit-generated cobra command
  set contains a few lines that ended with two trailing spaces inside
  multi-line backtick strings; the whitespace validator strips them.
  Run it once and commit the result.

- `internal/genkit/tagging.py.lock`: the previous codegen run picked a
  different pypi-proxy host (`pypi-proxy.cloud.databricks.com`) than
  main's lock (`pypi-proxy.dev.databricks.com`) -- artifact of where uv
  resolved deps in the bump-time env. Revert to main; this file
  shouldn't drift across an SDK bump.

Co-authored-by: Isaac
I jumped the gun reverting this in c91a11f. Verified against the Go
SDK's own tagging.py.lock across versions:

  v0.132.0 -> pypi-proxy.dev.databricks.com
  v0.136.0 -> pypi-proxy.cloud.databricks.com  (and SDK main today)

So the registry URL migration from dev -> cloud is exactly what genkit
ships across this SDK version range. The codegen run for the bump
picked it up correctly the first time.

Co-authored-by: Isaac
…dk-v0.136.0

# Conflicts:
#	NEXT_CHANGELOG.md
@github-actions
Copy link
Copy Markdown
Contributor

An authorized user can trigger integration tests manually by following the instructions below:

Trigger:
go/deco-tests-run/cli

Inputs:

  • PR number: 5298
  • Commit SHA: f5428a1b021b2a62f2ef02da9abdbe32b26dfa52

Checks will be approved automatically on success.

@shreyas-goenka
Copy link
Copy Markdown
Contributor Author

Closing in favor of #5311 (same commits, but on an upstream branch so CI's JFrog-OIDC handshake works -- forks don't get id-token: write from GitHub Actions). Continuing review on #5311.

@shreyas-goenka
Copy link
Copy Markdown
Contributor Author

shreyas-goenka commented May 22, 2026

reoped as a direct branch on the repo.

TanishqDatabricks pushed a commit to TanishqDatabricks/cli that referenced this pull request May 22, 2026
## Why

Pulls in four releases of the Go SDK (v0.133 through v0.136). 

## Changes

**Before:** CLI pinned `databricks-sdk-go` at `v0.132.0` and OpenAPI
spec at SHA `a499dda0`.
**Now:** Pinned at `v0.136.0` / OpenAPI SHA `0555d6a5`.

Most of the diff is regenerated output from `./task generate` (CLI
command stubs, JSON schema, bundle docs, Python bindings, acceptance
goldens). Notable in this batch:

- **New `cmd/workspace/bundle/`** — the auto-generated `databricks
bundle` workspace commands fronting the DMS service (`CreateDeployment`,
`CreateVersion`, `CreateResource`, `CreateOperation`, `Heartbeat`,
`CompleteVersion`, etc.). The interface is currently marked `Deprecated`
in the SDK; this is a generator artifact, not a real deprecation.
- Refreshed pydabs models for new SDK types (`pipelines.Transformer*`,
`pipelines.JsonTransformerOptions`, `pipelines.KafkaOptions`,
`jobs.PythonOperatorTask*`).

Hand-written changes:

- **`CurrentUser.Me` signature:** v0.136 changed it from `Me(ctx)` to
`Me(ctx, iam.MeRequest{})`. Updated 14 production callsites (`cmd/auth`,
`cmd/apps`, `cmd/psql`, `cmd/sync`, `bundle/config/mutator`,
`libs/template`, `libs/sync`, `libs/databrickscfg/cfgpickers`,
`experimental/postgres`,
`experimental/ssh/internal/{client,keys,workspace}`,
`integration/internal/acc`, `acceptance/internal/prepare_server.go`,
`acceptance/dbr_test.go`) plus 3 mocked test expectations in
`cmd/auth/describe_test.go` (`Me(mock.Anything)` -> `Me(mock.Anything,
mock.Anything)`).

<details><summary>SDK v0.132 -> v0.136 changelog summary</summary>

- **v0.133:** WorkspaceAssignmentDetails methods on `a.AccountIamV2` /
`w.WorkspaceIamV2`. `jobs.PythonOperatorTask` on
`RunTask`/`SubmitTask`/`Task`.
`pipelines.ConnectorOptions.KafkaOptions`. Several Postgres / settings
additions. [Breaking] `ml.ListFeaturesRequest` argument order changes;
`postgres.RequestedResource.UnspecifiedResourceName` removed.
- **v0.134:** Jobs `PipelineParams` / `PipelineTask` gained
`FullRefreshSelection`, `RefreshFlowSelection`, `RefreshSelection`,
`ResetCheckpointSelection`. `settingsv2.Setting` gained
`OperationalEmailCustomRecipient` fields.
- **v0.135:** **Added `bundle` package** and `w.Bundle` workspace-level
service. `ml.AuthConfig.MtlsConfig`.
- **v0.136:** Postgres `UndeleteBranch` + branch delete/purge plumbing.
`iam.MeRequest.{Attributes,ExcludedAttributes}` (the `CurrentUser.Me`
signature change). [Breaking] `bundle.Operation.{ActionType,ResourceId}`
and `bundle.Version.CliVersion` made required. [Breaking]
`marketplace.ListListingsRequest.Tags` retyped to `ListingTag`.
[Breaking] `ClustersAPI.Events` pagination shape changed (genkit
absorbed this).

</details>

## Test plan

- [x] `go build ./...`
- [x] `go vet ./...`
- [x] `go test ./internal/build ./bundle/internal/schema
./bundle/direct/dresources ./bundle/config/resources ./libs/template
./bundle/config/mutator`
- [x] `TestConsistentDatabricksSdkVersion` confirms SDK version and
OpenAPI SHA match
- [x] Pydabs codegen tests (8 passed)
- [ ] CI on this PR

---

Replaces databricks#5298 -- moved branch from my fork to upstream so the
JFrog/OIDC token exchange in the test setup works (`id-token: write` is
denied to fork PRs by GitHub Actions).
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