Skip to content

Upgrade Go SDK to v0.110.0#4545

Closed
simonfaltum wants to merge 8 commits intomainfrom
simonfaltum/upgrade-sdk-v0.109.0
Closed

Upgrade Go SDK to v0.110.0#4545
simonfaltum wants to merge 8 commits intomainfrom
simonfaltum/upgrade-sdk-v0.109.0

Conversation

@simonfaltum
Copy link
Member

@simonfaltum simonfaltum commented Feb 19, 2026

Changes

  1. Upgrade github.com/databricks/databricks-sdk-go from v0.106.0 to v0.110.0.
  2. Regenerate SDK-derived code using the canonical make generate flow (genkit update-sdk + post-generate steps).
  3. Update .codegen/_openapi_sha to match the OpenAPI SHA used by SDK v0.110.0.
  4. Regenerate schema artifacts (annotations*.yml, bundle/schema/jsonschema.json, and bundle/schema/jsonschema_for_docs.json) for new SDK/OpenAPI fields.
  5. Include generated CLI command/binding updates (including new account endpoints and API doc text updates from generated commands).
  6. Apply minimal post-generate fixes needed for CI:
    • Add knownMissingInRemoteType entries for flattened postgres_projects fields (budget_policy_id, custom_tags).
    • Keep output-only external-location effective_* field explicit but empty in state/update payload mappings.
    • Add targeted //nolint:staticcheck comments for legacy Quality Monitors API usage.
  7. Update generated artifacts consumed by CI:
    • acceptance/bundle/refschema/out.fields.txt
    • Python bundle codegen outputs for new jobs.SparseCheckout model.

Why

Keep CLI generated assets and typed resource mappings in sync with the upgraded SDK/OpenAPI version so schema/build/lint/acceptance/codegen checks pass.

Terraform alignment note

The CLI currently pins Terraform provider v1.106.0, which depends on databricks-sdk-go v0.106.0.
The latest released provider (v1.107.0) depends on databricks-sdk-go v0.108.0.
So exact Terraform/CLI SDK alignment to v0.110.0 is not available yet via a released provider and will be done in a follow-up bump.

Tests

  • make generate
  • ./tools/golangci-lint run
  • go test ./internal/build ./bundle/internal/schema ./bundle/direct/dresources ./bundle/config/resources -count=1
  • go test ./acceptance -run '^TestAccept/bundle/refschema$' -update -timeout=30m (2 passes)
  • go test ./acceptance -run '^TestAccept/bundle/refschema$' -timeout=30m
  • pushd python && make codegen && popd

Update the CLI dependency and checksums so this branch validates
against the latest SDK release.

Co-authored-by: Cursor <cursoragent@cursor.com>
@eng-dev-ecosystem-bot
Copy link
Collaborator

eng-dev-ecosystem-bot commented Feb 19, 2026

Commit: 2dca3db

Run: 22179785493

Env 💚​RECOVERED 🙈​SKIP ✅​pass 🙈​skip Time
💚​ aws linux 8 7 268 763 6:37
💚​ aws windows 8 7 270 761 5:46
💚​ aws-ucws linux 8 7 364 679 8:08
💚​ aws-ucws windows 8 7 366 677 5:44
💚​ azure linux 2 9 271 761 5:53
💚​ azure windows 2 9 273 759 4:35
💚​ azure-ucws linux 2 9 369 675 8:07
💚​ azure-ucws windows 2 9 371 673 5:53
💚​ gcp linux 2 9 267 764 5:26
💚​ gcp windows 2 9 269 762 5:13
15 interesting tests: 8 RECOVERED, 7 SKIP
Test Name aws linux aws windows aws-ucws linux aws-ucws windows azure linux azure windows azure-ucws linux azure-ucws windows gcp linux gcp windows
💚​ TestAccept 💚​R 💚​R 💚​R 💚​R 💚​R 💚​R 💚​R 💚​R 💚​R 💚​R
🙈​ TestAccept/bundle/resources/permissions 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S
💚​ TestAccept/bundle/resources/permissions/jobs/destroy_without_mgmtperms/with_permissions 💚​R 💚​R 💚​R 💚​R 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S
💚​ TestAccept/bundle/resources/permissions/jobs/destroy_without_mgmtperms/with_permissions/DATABRICKS_BUNDLE_ENGINE=direct 💚​R 💚​R 💚​R 💚​R
💚​ TestAccept/bundle/resources/permissions/jobs/destroy_without_mgmtperms/with_permissions/DATABRICKS_BUNDLE_ENGINE=terraform 💚​R 💚​R 💚​R 💚​R
💚​ TestAccept/bundle/resources/permissions/jobs/destroy_without_mgmtperms/without_permissions 💚​R 💚​R 💚​R 💚​R 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S
💚​ TestAccept/bundle/resources/permissions/jobs/destroy_without_mgmtperms/without_permissions/DATABRICKS_BUNDLE_ENGINE=direct 💚​R 💚​R 💚​R 💚​R
💚​ TestAccept/bundle/resources/permissions/jobs/destroy_without_mgmtperms/without_permissions/DATABRICKS_BUNDLE_ENGINE=terraform 💚​R 💚​R 💚​R 💚​R
🙈​ TestAccept/bundle/resources/postgres_branches/basic 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S
🙈​ TestAccept/bundle/resources/postgres_branches/recreate 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S
🙈​ TestAccept/bundle/resources/postgres_branches/update_protected 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S
🙈​ TestAccept/bundle/resources/postgres_branches/without_branch_id 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S
🙈​ TestAccept/bundle/resources/postgres_endpoints/recreate 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S
🙈​ TestAccept/bundle/resources/synced_database_tables/basic 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S
💚​ TestAccept/ssh/connection 💚​R 💚​R 💚​R 💚​R 💚​R 💚​R 💚​R 💚​R 💚​R 💚​R
Top 20 slowest tests (at least 2 minutes):
duration env testname
3:17 aws-ucws linux TestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=terraform
3:14 gcp linux TestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=terraform
3:12 gcp linux TestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=direct
3:07 gcp windows TestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=terraform
3:07 gcp windows TestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=direct
3:01 aws-ucws linux TestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=direct
2:59 aws windows TestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=terraform
2:54 aws-ucws windows TestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=terraform
2:53 azure windows TestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=terraform
2:49 aws linux TestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=direct
2:47 aws linux TestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=terraform
2:44 aws-ucws windows TestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=direct
2:39 aws windows TestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=direct
2:36 azure-ucws windows TestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=direct
2:19 azure-ucws linux TestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=direct
2:16 azure-ucws linux TestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=terraform
2:15 azure-ucws windows TestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=terraform
2:12 azure linux TestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=terraform
2:09 azure windows TestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=direct
2:07 azure linux TestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=direct

@simonfaltum simonfaltum marked this pull request as ready for review February 19, 2026 08:57
Move the CLI SDK dependency from v0.109.0 to v0.110.0 and refresh
module checksums accordingly.

Co-authored-by: Cursor <cursoragent@cursor.com>
@simonfaltum simonfaltum changed the title Upgrade Go SDK to v0.109.0 Upgrade Go SDK to v0.110.0 Feb 19, 2026
Update the OpenAPI SHA and regenerate schema annotations/jsonschema for
new SDK fields, and extend postgres direct-resource known remote gaps
for newly added flattened project fields.

Co-authored-by: Cursor <cursoragent@cursor.com>
Address new SDK field/lint fallout by updating external location and
postgres project struct literals, suppressing legacy quality monitor
API deprecation warnings, and syncing acceptance refschema and Python
bundle codegen outputs.

Co-authored-by: Cursor <cursoragent@cursor.com>
}

func (s *QualityMonitor) Exists(ctx context.Context, w *databricks.WorkspaceClient, id string) (bool, error) {
//nolint:staticcheck // Bundle resource still uses legacy QualityMonitors API until direct migration is complete.
Copy link
Contributor

Choose a reason for hiding this comment

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

What is broken?

Copy link
Member Author

Choose a reason for hiding this comment

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

In SDK v0.110.0, the catalog.QualityMonitors.* methods were marked deprecated in Go doc comments and staticcheck treats calls to deprecated APIs as SA1019

seems like the code here still calls those methods (e.g. Get/Create/Update/Delete) because it hasn’t been migrated to the newer Data Quality API path yet

effectively after the SDK bump, CI started failing on lint even though runtime behavior remained the same

Copy link
Contributor

Choose a reason for hiding this comment

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

cc @andrewnester

This should be empty, I think?

"Effective" fields are output only, so shouldn't be passed in the update payload.

Copy link
Contributor

Choose a reason for hiding this comment

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

Yes, correct, we should leave them empty

Copy link
Member Author

@simonfaltum simonfaltum Feb 19, 2026

Choose a reason for hiding this comment

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

SDK v0.110.0 added EffectiveEnableFileEvents to both catalog.CreateExternalLocation and catalog.UpdateExternalLocation

Our exhaustruct lint requires every field in struct literals to be explicitly set, so adding it was the fastest way to make lint pass

But idk if because we reuse CreateExternalLocation as state, setting this output-only field from remote (info.EffectiveEnableFileEvents) can flow into update config later

Copy link
Contributor

Choose a reason for hiding this comment

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

I suspect you ran generation with the private version of the spec, not the public one.

Copy link
Member Author

@simonfaltum simonfaltum Feb 19, 2026

Choose a reason for hiding this comment

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

I did make .codegen/openapi.json and DATABRICKS_OPENAPI_SPEC=.codegen/openapi.json make schema

Not sure if that is wrong?

simonfaltum and others added 3 commits February 19, 2026 13:08
Revert the prior manual regeneration path and regenerate from the canonical
`make generate` flow for SDK v0.110.0, then apply minimal follow-up fixes for
lint/schema/refschema parity and generated Python artifacts.

Co-authored-by: Cursor <cursoragent@cursor.com>
@simonfaltum simonfaltum requested a review from a team as a code owner February 19, 2026 12:17
@simonfaltum
Copy link
Member Author

Closing this SDK bump PR as it will not be merged.

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.

5 participants

Comments