Skip to content

[VPEX][6b] local-env: address #5832 follow-up review comments - #5936

Merged
rugpanov merged 4 commits into
mainfrom
dbconnect/06b-followups
Jul 16, 2026
Merged

[VPEX][6b] local-env: address #5832 follow-up review comments#5936
rugpanov merged 4 commits into
mainfrom
dbconnect/06b-followups

Conversation

@rugpanov

Copy link
Copy Markdown
Contributor

Follow-up refinements from the #5832 review (all were left as non-blocking there and deferred with a "will address in a follow-up" reply). The local-env command remains hidden until #5835, so there is no user-visible changelog entry.

Changes

  • uv install consent (libs/localenv/uv.go) — EnsureAvailable no longer runs the remote uv installer (curl … | sh / irm … | iex) silently. It now requires consent: a truthy DATABRICKS_LOCALENV_AUTO_INSTALL_UV opt-in for non-interactive runs (CI/IDE), or an interactive y/N prompt via cmdio.AskYesOrNo. A non-interactive run without the opt-in returns an actionable error instead of downloading and executing an installer. (The --debug log of the exact installer command from [VPEX][6/8] Add local-env uv backend and hidden CLI command #5832 is kept.)
  • serverless job version (cmd/localenv/compute.go) — GetJobSparkVersion now reads Environments[0].Spec.EnvironmentVersion, so a serverless --job resolves to its actual serverless-vN instead of always defaulting to v4. Empty still falls back to v4.
  • double bundle load (cmd/localenv/sync.go) — skip bundleTarget when an explicit --cluster/--serverless/--job flag is set. ResolveTarget only consults the bundle as a fallback, so the second TryConfigureBundle load (and its re-printed load-time diagnostics) was wasted for the explicit-flag case.
  • robust Validate parse (libs/localenv/uv.go) — the uv run probe now prints PYVER: / DBCVER: sentinels and parses by prefix instead of line position, so a stray stdout line from uv doesn't shift the parse.
  • cleanup (libs/localenv/uv.go) — fold single-caller newUvManager into NewUvManager; collapse the triplicated resolveIndexURL + conditional WithEnv into one runUv helper (the conditional stays so an already-set UV_INDEX_URL isn't clobbered).

Tests

Adds unit tests for the install consent gate (TestConfirmUvInstall) and the sentinel parse (TestLineWithPrefix). Full libs/localenv suite passes, including under a CI-like environment with UV_INDEX_URL/PIP_INDEX_URL set.

This pull request and its description were written by Isaac.

Follow-ups deferred from the #5832 review, now that the command has landed
(still hidden until #5835):
- uv install consent (libs/localenv/uv.go): EnsureAvailable no longer runs the
remote uv installer silently. It now requires consent — a truthy
DATABRICKS_LOCALENV_AUTO_INSTALL_UV opt-in for non-interactive runs, or an
interactive y/N prompt (cmdio.AskYesOrNo). A non-interactive run without the
opt-in returns an actionable error instead of downloading and executing an
installer. The --debug log of the installer command (from #5832) is kept.
- serverless job version (cmd/localenv/compute.go): GetJobSparkVersion now reads
Environments[0].Spec.EnvironmentVersion so a serverless --job resolves to its
actual serverless-vN instead of always defaulting to v4. Empty falls back to v4.
- double bundle load (cmd/localenv/sync.go): skip bundleTarget entirely when an
explicit --cluster/--serverless/--job flag is set. ResolveTarget only consults
the bundle as a fallback, so the second TryConfigureBundle load (and its
re-printed load-time diagnostics) was wasted for the explicit-flag case.
- robust Validate parse (libs/localenv/uv.go): the uv-run probe now prints
PYVER:/DBCVER: sentinels and parses by prefix instead of line position, so a
stray stdout line from uv does not shift the parse.
- cleanup (libs/localenv/uv.go): fold single-caller newUvManager into
NewUvManager; collapse the triplicated resolveIndexURL + conditional WithEnv
into one runUv helper (the conditional stays so an already-set UV_INDEX_URL is
not clobbered).
Adds unit tests for the install consent gate and the sentinel parse.
Co-authored-by: Isaac
…ions
Two correctness findings from the review of the follow-up changes:
- confirmUvInstall could panic: EnsureAvailable is a library entry point
reachable with a context that has no cmdio (e.g. a Pipeline built with
context.Background()), where cmdio.IsPromptSupported panics. Guard with
cmdio.HasIO and treat a missing cmdio as non-interactive (decline).
- GetJobSparkVersion used only Environments[0] for serverless jobs. A job
whose environments pin differing environment_version values (or a
pinned-vs-unpinned mix) has no single correct target, so refuse and ask for
--serverless, mirroring the existing job-cluster divergence check.
Adds a test asserting confirmUvInstall declines (no panic) with no cmdio.
Co-authored-by: Isaac
Range over strings.SplitSeq instead of strings.Split: the seq variant
iterates without allocating the intermediate slice, clearing the
golangci-lint modernize/stringsseq finding.
Co-authored-by: Isaac

@anton-107anton-107 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Reviewed the serverless-version passthrough, the runUv refactor, the confirmUvInstall consent gate (including the HasIO panic guard), and the lineWithPrefix parse — all correct, and the unit tests cover the new pieces well. Approving.

Two follow-ups, neither blocking:

1. Question on the deprecated client field vs the divergence guard.environmentVersion() reads only Spec.EnvironmentVersion. The SDK's compute.Environment also carries the deprecated Client field ("Use environment_version instead"), and interestingly the acceptance fixture in #5833 (job-ambiguous-compute) writes the environment as spec: {"client": "3"}. I confirmed the behavior with a quick test:

environmentVersion(client=2) = ""
environmentVersion(client=3) = "" // equal → divergence guard does NOT fire
single client=3 → environmentVersion="" → ResolveTarget falls back to v4

So if a serverless job pins its version via client rather than environment_version, two things happen: (a) it silently resolves to serverless-v4 regardless of the real version, and (b) a job whose environments pin differentclient values (2 vs 3) both map to "", compare equal, and slip past the new "refuse rather than guess" guard — the exact case the guard exists to catch.

Does the Jobs GET response ever return spec.client populated while environment_version is empty? If the backend normalizes the deprecated field into environment_version on read, this is a non-issue and worth a one-line comment noting client is deliberately ignored because the API always populates environment_version. If it can return client only, I'd fall back to Client (normalized) when EnvironmentVersion is empty, or flag/refuse a client-pinned environment — so the guard observes whatever field actually carries the pin. (base_environment is ignored the same way.)

2. The new serverless-from-job path has no test coverage. The headline change here — deriving serverless-vN from a job's environment_version, plus the differing-version rejection — isn't exercised at the unit level (target_test.go only stubs isServerless=false; cmd/localenv has no _test.go) or in #5833's acceptance suite (its three job scenarios are classic-single, classic-mismatch, and both-present, which short-circuits before the version code). A regression reverting serverless jobs to always-v4, or dropping the guard, would ship green.

Could we add (here or in a follow-up) a serverless --job acceptance scenario with:

  • one environment carrying environment_version (e.g. "3"), asserting it resolves to envKey serverless/serverless-v3 (plus a variant with no version to exercise the v4 fallback); and
  • two environments with differing environment_version, asserting the new differing environment_version; pass --serverless explicitly error.

That would also let the job-ambiguous-compute fixture switch from the deprecated client field to environment_version, so it reflects the field the code actually reads.

Minor nit: the consent prompt in confirmUvInstall hardcodes the install.sh URL, but installUv runs install.ps1 on Windows — worth selecting by runtime.GOOS (or wording it generically) since the whole point of the prompt is transparency about what will run.

…pt, tests
Follow-ups from the #5936 review (all non-blocking):
- environmentVersion now falls back to the deprecated Spec.Client field when
Spec.EnvironmentVersion is empty. client is the predecessor of
environment_version and some jobs still pin via it; reading both means the v4
fallback and the differing-version guard observe whichever field carries the
pin, instead of treating a client-pinned job as unversioned (which would
silently resolve to v4 and let two differing client values slip past the
guard). base_environment stays ignored — it is a path/ID, not a version. The
divergence error message is now field-agnostic ("differing versions").
- confirmUvInstall's prompt now names the OS-specific installer URL via a shared
uvInstallerURL helper (install.ps1 on Windows, install.sh elsewhere), which
installUv also uses, so the prompt is transparent about what actually runs.
- Tests: environmentVersion field precedence (compute_test.go) and serverless
--job version resolution + v4 fallback (target_test.go).
The end-to-end differing-versions rejection through GetJobSparkVersion is best
exercised as an acceptance scenario alongside the job fixtures in #5833; noted
on the PR.
Co-authored-by: Isaac
@rugpanov

Copy link
Copy Markdown
ContributorAuthor

Thanks — addressed in 3e2d456.

1. client vs the divergence guard. Rather than depend on whether the Jobs GET normalizes the deprecated field, environmentVersion() now falls back to Spec.Client when Spec.EnvironmentVersion is empty. So a client-pinned job resolves to its real serverless-vN, and two environments pinning differing client values now compare unequal and trip the guard — the case it exists for. base_environment stays ignored (path/ID, not a version). The divergence error is now field-agnostic ("differing versions").

2. Test coverage. Added unit tests here:

  • environmentVersion field precedence — environment_version, client fallback, environment_version wins over client, base_environment ignored (cmd/localenv/compute_test.go).
  • serverless --job resolution to serverless/serverless-v3 and the empty→v4 fallback (libs/localenv/target_test.go).

The end-to-end differing-versions rejection through GetJobSparkVersion needs the fake Jobs API, so it fits best as an acceptance scenario next to the job fixtures in #5833. I'll add it there and switch job-ambiguous-compute from spec.client to environment_version so the fixture reflects the field the code reads.

Nit. The consent prompt now names the OS-specific installer URL (install.ps1 on Windows, install.sh elsewhere) via a shared uvInstallerURL helper that installUv also uses, so the prompt matches what actually runs.

@eng-dev-ecosystem-bot

Copy link
Copy Markdown
Collaborator

Integration test report

Commit: 3e2d456

Run: 29489487107

Env💚​RECOVERED🙈​SKIP✅​pass🙈​skipTime
💚​aws linux4422711054:55
💚​aws windows4422911036:43
💚​aws-ucws linux4431610216:44
💚​aws-ucws windows4431810198:30
💚​azure linux4422711044:40
💚​azure windows4422911026:41
💚​azure-ucws linux4431810186:49
💚​azure-ucws windows4432010168:17
💚​gcp linux4422611064:32
💚​gcp windows4422811047:00
8 interesting tests: 4 RECOVERED, 4 SKIP
Test Nameaws linuxaws windowsaws-ucws linuxaws-ucws windowsazure linuxazure windowsazure-ucws linuxazure-ucws windowsgcp linuxgcp windows
💚​TestAccept💚​R💚​R💚​R💚​R💚​R💚​R💚​R💚​R💚​R💚​R
🙈​TestAccept/bundle/invariant/no_drift🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S
🙈​TestAccept/bundle/resources/vector_search_endpoints/drift/recreated_same_name🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S
🙈​TestAccept/bundle/resources/vector_search_indexes/recreate/embedding_dimension🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S
🙈​TestAccept/ssh/connection🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S
💚​TestFetchRepositoryInfoAPI_FromRepo💚​R💚​R💚​R💚​R💚​R💚​R💚​R💚​R💚​R💚​R
💚​TestFetchRepositoryInfoAPI_FromRepo/root💚​R💚​R💚​R💚​R💚​R💚​R💚​R💚​R💚​R💚​R
💚​TestFetchRepositoryInfoAPI_FromRepo/subdir💚​R💚​R💚​R💚​R💚​R💚​R💚​R💚​R💚​R💚​R
Top 10 slowest tests (at least 2 minutes):
durationenvtestname
6:37aws-ucws windowsTestAccept
6:32gcp windowsTestAccept
6:18aws windowsTestAccept
6:18azure-ucws windowsTestAccept
6:17azure windowsTestAccept
2:58gcp linuxTestAccept
2:57aws linuxTestAccept
2:55azure linuxTestAccept
2:50aws-ucws linuxTestAccept
2:49azure-ucws linuxTestAccept

@rugpanov
rugpanov added this pull request to the merge queueJul 16, 2026
Merged via the queue into main with commit 8e7ad0eJul 16, 2026
23 checks passed
@rugpanov
rugpanov deleted the dbconnect/06b-followups branch July 16, 2026 11:26
rugpanov added a commit that referenced this pull request Jul 16, 2026
Covers the serverless-from-job path added in #5936, per the review
suggestion on #5833 (the fixtures live here):
- job-serverless-check: a serverless job that pins environment_version
resolves to that serverless-vN (v3), not the v4 default.
- job-serverless-version-mismatch: a job whose serverless environments
declare differing versions is rejected with a disambiguation error.
Co-authored-by: Isaac
@eng-dev-ecosystem-bot

Copy link
Copy Markdown
Collaborator

Integration test report

Commit: 8e7ad0e

Run: 29494435962

Env❌​FAIL🟨​KNOWN🔄​flaky💚​RECOVERED🙈​SKIP✅​pass🙈​skipTime
❌​aws linux6134520103442:37
🔄​aws windows444479104756:42
💚​aws-ucws linux621003843156:38
🔄​aws-ucws windows462941861164:56
💚​azure linux44520103543:18
❌​azure windows2134475104862:44
🔄​azure-ucws linux352896878145:39
💚​azure-ucws windows62840896148:16
💚​gcp linux44511104045:20
💚​gcp windows44468105358:18
19 interesting tests: 8 FAIL, 5 RECOVERED, 3 flaky, 2 SKIP, 1 KNOWN
Test Nameaws linuxaws windowsaws-ucws linuxaws-ucws windowsazure linuxazure windowsazure-ucws linuxazure-ucws windowsgcp linuxgcp windows
🟨​TestAccept🟨​K💚​R💚​R💚​R💚​R🟨​K🔄​f💚​R💚​R💚​R
💚​TestAccept/bundle/invariant/no_drift🙈​S🙈​S💚​R💚​R🙈​S🙈​S💚​R💚​R🙈​S🙈​S
❌​TestAccept/bundle/resources/dashboards/change-name✅​p✅​p✅​p🔄​f✅​p❌​F🔄​f✅​p✅​p✅​p
❌​TestAccept/bundle/resources/dashboards/change-name/DATABRICKS_BUNDLE_ENGINE=direct✅​p✅​p✅​p✅​p✅​p❌​F🔄​f✅​p✅​p✅​p
🔄​TestAccept/bundle/resources/dashboards/change-name/DATABRICKS_BUNDLE_ENGINE=terraform✅​p✅​p✅​p🔄​f✅​p✅​p✅​p✅​p✅​p✅​p
🔄​TestAccept/bundle/resources/grants/schemas/change_privilege🙈​s🙈​s✅​p🔄​f🙈​s🙈​s✅​p✅​p🙈​s🙈​s
🔄​TestAccept/bundle/resources/grants/schemas/change_privilege/DATABRICKS_BUNDLE_ENGINE=direct✅​p🔄​f✅​p✅​p
❌​TestAccept/bundle/resources/permissions/jobs/destroy_without_mgmtperms/with_permissions❌​F✅​p✅​p✅​p🙈​s🙈​s🙈​s🙈​s🙈​s🙈​s
❌​TestAccept/bundle/resources/permissions/jobs/destroy_without_mgmtperms/with_permissions/DATABRICKS_BUNDLE_ENGINE=direct❌​F🔄​f✅​p✅​p
❌​TestAccept/bundle/resources/permissions/jobs/destroy_without_mgmtperms/with_permissions/DATABRICKS_BUNDLE_ENGINE=terraform❌​F🔄​f✅​p✅​p
❌​TestAccept/bundle/resources/permissions/jobs/destroy_without_mgmtperms/without_permissions❌​F✅​p✅​p✅​p🙈​s🙈​s🙈​s🙈​s🙈​s🙈​s
❌​TestAccept/bundle/resources/permissions/jobs/destroy_without_mgmtperms/without_permissions/DATABRICKS_BUNDLE_ENGINE=direct❌​F🔄​f✅​p✅​p
❌​TestAccept/bundle/resources/permissions/jobs/destroy_without_mgmtperms/without_permissions/DATABRICKS_BUNDLE_ENGINE=terraform❌​F🔄​f✅​p✅​p
💚​TestAccept/bundle/resources/vector_search_endpoints/drift/recreated_same_name🙈​S🙈​S💚​R💚​R🙈​S🙈​S💚​R💚​R🙈​S🙈​S
🙈​TestAccept/bundle/resources/vector_search_indexes/recreate/embedding_dimension🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S
🙈​TestAccept/ssh/connection🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S🙈​S
💚​TestFetchRepositoryInfoAPI_FromRepo💚​R💚​R💚​R💚​R💚​R💚​R💚​R💚​R💚​R💚​R
💚​TestFetchRepositoryInfoAPI_FromRepo/root💚​R💚​R💚​R💚​R💚​R💚​R💚​R💚​R💚​R💚​R
💚​TestFetchRepositoryInfoAPI_FromRepo/subdir💚​R💚​R💚​R💚​R💚​R💚​R💚​R💚​R💚​R💚​R
Top 50 slowest tests (at least 2 minutes):
durationenvtestname
14:21azure-ucws linuxTestAccept/bundle/config-remote-sync/multiple_resources/DATABRICKS_BUNDLE_ENGINE=terraform
12:33gcp linuxTestAccept/bundle/resources/apps/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
11:44gcp windowsTestAccept/bundle/resources/apps/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
11:15azure-ucws windowsTestAccept/bundle/resources/apps/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
11:11gcp windowsTestAccept/bundle/resources/clusters/deploy/local_ssd_count/DATABRICKS_BUNDLE_ENGINE=direct
10:04azure-ucws windowsTestAccept/bundle/resources/clusters/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
9:48aws-ucws windowsTestAccept/bundle/resources/clusters/lifecycle-started-toggle/DATABRICKS_BUNDLE_ENGINE=direct
9:40azure-ucws linuxTestAccept/bundle/resources/apps/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
9:10aws linuxTestAccept/bundle/resources/apps/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
8:45aws-ucws linuxTestAccept/bundle/config-remote-sync/multiple_resources/DATABRICKS_BUNDLE_ENGINE=terraform
8:37aws-ucws windowsTestAccept/bundle/resources/apps/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
8:33azure-ucws linuxTestAccept/bundle/resources/clusters/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
8:31gcp windowsTestAccept
8:24azure windowsTestAccept/bundle/resources/apps/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
8:19aws-ucws linuxTestAccept/bundle/resources/apps/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
8:11azure windowsTestAccept/bundle/deploy/spark-jar-task/DATABRICKS_BUNDLE_ENGINE=direct
8:02gcp windowsTestAccept/bundle/resources/clusters/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
8:00azure windowsTestAccept/bundle/deploy/spark-jar-task/DATABRICKS_BUNDLE_ENGINE=terraform
7:51aws windowsTestAccept/bundle/resources/apps/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
7:31azure linuxTestAccept/bundle/resources/apps/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
7:28aws-ucws linuxTestAccept/bundle/resources/clusters/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
7:19aws-ucws windowsTestAccept/bundle/resources/clusters/deploy/update-after-create/DATABRICKS_BUNDLE_ENGINE=terraform
7:16aws-ucws windowsTestAccept/bundle/resources/clusters/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
7:00gcp linuxTestAccept/bundle/resources/clusters/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
6:58gcp linuxTestAccept/bundle/resources/clusters/deploy/simple/DATABRICKS_BUNDLE_ENGINE=direct
6:54gcp linuxTestAccept/bundle/resources/clusters/deploy/local_ssd_count/DATABRICKS_BUNDLE_ENGINE=direct
6:35azure windowsTestAccept/bundle/resources/clusters/deploy/update-after-create/DATABRICKS_BUNDLE_ENGINE=terraform
6:20azure-ucws windowsTestAccept
6:11aws-ucws linuxTestAccept/bundle/config-remote-sync/multiple_resources/DATABRICKS_BUNDLE_ENGINE=direct
6:01aws linuxTestAccept/bundle/resources/clusters/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
5:55aws windowsTestAccept/bundle/resources/clusters/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
5:54azure-ucws windowsTestAccept/bundle/resources/clusters/lifecycle-started-toggle/DATABRICKS_BUNDLE_ENGINE=direct
5:50aws-ucws linuxTestAccept/bundle/resources/clusters/lifecycle-started-toggle/DATABRICKS_BUNDLE_ENGINE=direct
5:36azure windowsTestAccept/bundle/resources/clusters/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
5:32aws-ucws linuxTestAccept/bundle/deploy/spark-jar-task/DATABRICKS_BUNDLE_ENGINE=terraform
5:31azure-ucws windowsTestAccept/bundle/resources/apps/lifecycle-started-omitted/DATABRICKS_BUNDLE_ENGINE=direct
5:30gcp linuxTestAccept/bundle/resources/apps/lifecycle-started-omitted/DATABRICKS_BUNDLE_ENGINE=direct
5:21azure linuxTestAccept/bundle/resources/clusters/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
5:20aws linuxTestAccept/bundle/deploy/spark-jar-task/DATABRICKS_BUNDLE_ENGINE=terraform
5:13azure linuxTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=direct
5:04azure-ucws windowsTestAccept/bundle/deploy/spark-jar-task/DATABRICKS_BUNDLE_ENGINE=direct
4:59azure-ucws linuxTestAccept/bundle/deploy/spark-jar-task/DATABRICKS_BUNDLE_ENGINE=terraform
4:56azure-ucws linuxTestAccept/bundle/config-remote-sync/multiple_resources/DATABRICKS_BUNDLE_ENGINE=direct
4:56gcp linuxTestAccept/bundle/deploy/spark-jar-task/DATABRICKS_BUNDLE_ENGINE=terraform
4:52gcp linuxTestAccept/bundle/resources/clusters/lifecycle-started-toggle/DATABRICKS_BUNDLE_ENGINE=direct
4:45gcp windowsTestAccept/bundle/resources/clusters/lifecycle-started-toggle/DATABRICKS_BUNDLE_ENGINE=direct
4:44aws-ucws linuxTestAccept/bundle/deploy/spark-jar-task/DATABRICKS_BUNDLE_ENGINE=direct
4:42azure linuxTestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=terraform
4:42gcp windowsTestAccept/bundle/resources/apps/lifecycle-started-toggle/DATABRICKS_BUNDLE_ENGINE=direct
4:42azure-ucws linuxTestAccept/bundle/resources/clusters/lifecycle-started-toggle/DATABRICKS_BUNDLE_ENGINE=direct

Sign up for freeto 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.

3 participants

@rugpanov@eng-dev-ecosystem-bot@anton-107