Uh oh!
There was an error while loading. Please reload this page.
Suppress /Workspace prefix diff for experiment names in direct deployment - #4627
Conversation
Commit: ccb2482
31 interesting tests: 12 flaky, 7 SKIP, 7 RECOVERED, 5 FAIL
Top 50 slowest tests (at least 2 minutes):
|
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?
shreyas-goenka
commented
Mar 3, 2026
The backend always strips the |
denik
commented
Mar 3, 2026
Another option, less drastic and future proof (in case backend stops stripping) is to implement OverrideChangeDesc that compares strings with stripped prefix. |
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 <noreply@anthropic.com>
d3d4f80 to
9d4c607Compare406e431 to
2e6fb16Compare| 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 |
There was a problem hiding this comment.
can we record change from json change?
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
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
ccb2482CompareUh oh!
There was an error while loading. Please reload this page.
eng-dev-ecosystem-bot
commented
Mar 13, 2026
Commit: 96d017a
43 interesting tests: 23 RECOVERED, 13 FAIL, 5 flaky, 1 KNOWN, 1 SKIP
Top 50 slowest tests (at least 2 minutes):
|
denik
commented
Mar 16, 2026
Could you add NEXT_CHANGELOG entry? |
…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/shreyas.goenka@databricks.com/test-experiment-bundle", "new": "/Workspace/Users/shreyas.goenka@databricks.com/test-experiment-bundle", "remote": "/Users/shreyas.goenka@databricks.com/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 <noreply@anthropic.com>
## 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))
…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/shreyas.goenka@databricks.com/test-experiment-bundle", "new": "/Workspace/Users/shreyas.goenka@databricks.com/test-experiment-bundle", "remote": "/Users/shreyas.goenka@databricks.com/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 <noreply@anthropic.com>
## 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))
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