Suppress /Workspace prefix diff for experiment names in direct deployment#4627
Merged
shreyas-goenka merged 2 commits intomainfrom Mar 13, 2026
Merged
Suppress /Workspace prefix diff for experiment names in direct deployment#4627shreyas-goenka merged 2 commits intomainfrom
shreyas-goenka merged 2 commits intomainfrom
Conversation
Collaborator
|
Commit: ccb2482
31 interesting tests: 12 flaky, 7 SKIP, 7 RECOVERED, 5 FAIL
Top 50 slowest tests (at least 2 minutes):
|
andrewnester
reviewed
Mar 3, 2026
Contributor
andrewnester
left a comment
There was a problem hiding this comment.
I'm not entirely sure that TF behaviour is correct; we should have all workspace paths prefixed with /Workspace. Can this be fixed in the TF provider instead?
Contributor
Author
|
The backend always strips the |
Contributor
|
Another option, less drastic and future proof (in case backend stops stripping) is to implement OverrideChangeDesc that compares strings with stripped prefix. |
denik
approved these changes
Mar 13, 2026
The direct deployment engine was sending experiment names with the /Workspace prefix to the API, while the Terraform provider strips it. This caused divergent behavior between the two engines. Fixes #4285 Co-Authored-By: Claude Opus 4.6 <[email protected]>
d3d4f80 to
9d4c607
Compare
406e431 to
2e6fb16
Compare
denik
reviewed
Mar 13, 2026
|
|
||
| trace $CLI experiments get-experiment ${EXPERIMENT_ID} | jq '{name: .experiment.name, lifecycle_stage: .experiment.lifecycle_stage}' > out.get.$DATABRICKS_BUNDLE_ENGINE.json | ||
| # Plan should show no changes with /Workspace/Users/... path in config | ||
| trace $CLI bundle plan |
Contributor
There was a problem hiding this comment.
can we record change from json change?
Use OverrideChangeDesc to normalize the /Workspace prefix on experiment names instead of stripping it in apply_presets, matching the Terraform provider's experimentNameSuppressDiff behavior. Add acceptance test coverage for both /Workspace/Users/... and /Users/... path forms. Co-authored-by: Isaac
2e6fb16 to
ccb2482
Compare
Collaborator
|
Commit: 96d017a
43 interesting tests: 23 RECOVERED, 13 FAIL, 5 flaky, 1 KNOWN, 1 SKIP
Top 50 slowest tests (at least 2 minutes):
|
Contributor
|
Could you add NEXT_CHANGELOG entry? |
shreyas-goenka
added a commit
that referenced
this pull request
Mar 16, 2026
rauchy
pushed a commit
that referenced
this pull request
Mar 17, 2026
…ment (#4627) ## Summary - Use `OverrideChangeDesc` to suppress the `/Workspace` prefix diff on experiment names, matching the Terraform provider's `experimentNameSuppressDiff` behavior - Fix test server `ExperimentUpdate` to strip `/Workspace` prefix, matching cloud behavior - Add acceptance test coverage for both `/Workspace/Users/...` and `/Users/...` path forms - Resolves #4285 #4324 ## Why? The backend always strips the `/Workspace` prefix from experiment names, so remote returns `/Users/...` while the config has `/Workspace/Users/...`. Instead of mutating the config value (stripping the prefix in `ApplyPresets`), we suppress the diff during change detection via `OverrideChangeDesc` — the same approach the Terraform provider uses with its [`experimentNameSuppressDiff`](https://github.com/databricks/terraform-provider-databricks/blob/8945a7b2328659b1fc976d04e32457305860131f/mlflow/resource_mlflow_experiment.go#L13) function. Without this fix you get a persistent drift: ``` "name": { "action": "update", "old": "/Workspace/Users/[email protected]/test-experiment-bundle", "new": "/Workspace/Users/[email protected]/test-experiment-bundle", "remote": "/Users/[email protected]/test-experiment-bundle" }, ``` ## Test plan - [x] Acceptance test `bundle/deployment/bind/experiment` verifies plan shows 0 changes with `/Workspace/Users/...` path - [x] Same test verifies plan shows 0 changes with `/Users/...` path (without `/Workspace` prefix) - [x] `bundle/resources/experiments/basic` acceptance test still passes 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 4.6 <[email protected]>
rauchy
pushed a commit
that referenced
this pull request
Mar 17, 2026
deco-sdk-tagging bot
added a commit
that referenced
this pull request
Mar 18, 2026
## Release v0.295.0 ### Notable Changes * Databricks Asset Bundles have been renamed to Declarative Automation Bundles (DABs). This is a non-breaking change; no code or configuration modifications are required. See the [FAQ](https://docs.databricks.com/aws/en/dev-tools/bundles/faqs#why-was-databricks-asset-bundles-renamed-to-declarative-automation-bundles). * Add `bundle.engine` config setting to select the deployment engine (`terraform` or [`direct`](https://docs.databricks.com/aws/en/dev-tools/bundles/direct)). The `bundle.engine` setting takes precedence over the `DATABRICKS_BUNDLE_ENGINE` environment variable. When the configured engine doesn't match existing deployment state, a warning is issued and the existing engine is used ([#4749](#4749), [#4782](#4782)) ### CLI * Add `databricks auth switch` command for setting the default profile ([#4651](#4651)) * Add positional argument support to `auth logout` ([#4744](#4744)) * Strip trailing slash from host in `auth login`, `auth token`, and `configure` commands ([#4633](#4633)) ### Bundles * Standardize `personal_schemas` enum across bundle templates ([#4401](#4401)) * engine/direct: Fix permanent drift on experiment name field ([#4627](#4627)) * engine/direct: Fix permissions state path to match input config schema ([#4703](#4703)) * Add default project name and success message to default-scala template ([#4661](#4661)) * Skip enum validation for unresolved variable references ([#4752](#4752)) * engine/direct: Support references to/from grants ([#4774](#4774))
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
OverrideChangeDescto suppress the/Workspaceprefix diff on experiment names, matching the Terraform provider'sexperimentNameSuppressDiffbehaviorExperimentUpdateto strip/Workspaceprefix, matching cloud behavior/Workspace/Users/...and/Users/...path forms:q :Q erge remote-tracking branch 'origin' into fix-fuse-generate #4324
Why?
The backend always strips the
/Workspaceprefix from experiment names, so remote returns/Users/...while the config has/Workspace/Users/.... Instead of mutating the config value (stripping the prefix inApplyPresets), we suppress the diff during change detection viaOverrideChangeDesc— the same approach the Terraform provider uses with itsexperimentNameSuppressDifffunction.Without this fix you get a persistent drift:
Test plan
bundle/deployment/bind/experimentverifies plan shows 0 changes with/Workspace/Users/...path/Users/...path (without/Workspaceprefix)bundle/resources/experiments/basicacceptance test still passes🤖 Generated with Claude Code