Repository navigation
Conversation
Co-authored-by: Isaac <no-reply@databricks.com>
…elpers Co-authored-by: Isaac <no-reply@databricks.com>
…ath at preflight Co-authored-by: Isaac <no-reply@databricks.com>
Co-authored-by: Isaac <no-reply@databricks.com>
This was referenced Oct 12, 2026
Collaborator
Integration test reportCommit: 59068cb
Top 6 slowest tests (at least 2 minutes):
|
rugpanov
force-pushed
the
uv-workspace-setup-local-3
branch
from
October 12, 2026 15:41
127fdbb to
0936065
Compare
rugpanov
marked this pull request as ready for review
October 12, 2026 15:42
Co-authored-by: Isaac <no-reply@databricks.com>
Co-authored-by: Isaac <no-reply@databricks.com>
…e root Co-authored-by: Isaac <no-reply@databricks.com>
Co-authored-by: Isaac <no-reply@databricks.com>
Co-authored-by: Isaac <no-reply@databricks.com>
Co-authored-by: Isaac <no-reply@databricks.com>
Co-authored-by: Isaac <no-reply@databricks.com>
…mber Co-authored-by: Isaac <no-reply@databricks.com>
Co-authored-by: Isaac <no-reply@databricks.com>
uv prints the root in the on-disk letter case, while the shell keeps the case the user typed, so a name comparison treated a standalone project on a case-insensitive file system as a member of itself. Co-authored-by: Isaac <no-reply@databricks.com>
…root Removing a stale managed block from a member now keeps its [tool.uv] header when user keys follow the block. A workspace root that defines [tool.uv] with dotted keys fails the merge instead of getting a second [tool.uv] table. Co-authored-by: Isaac <no-reply@databricks.com>
- Warn when the root pins are replaced, also when the user wrote them. - Report diskMutated from both pyproject writes; name the workspace root in root write errors. - Fix the Windows activate hint for a relative venv path. - Say in the help that uv sync removes packages only other members need. - Rename SkipToolUv to ConstraintsAtWorkspaceRoot and set it with the other merge options; test WorkspaceRoot; tidy tests and acceptance scripts. Co-authored-by: Isaac <no-reply@databricks.com>
- Count the venv path levels from the symlink-resolved project folder, so a symlink that changes the folder depth reports the venv uv uses. - Reject a root that defines [tool.uv] with quoted or inline keys too. - Warn about replaced root pins only when the file had constraint pins, not when a comment names the key. - Remove unmarked constraint pins that an older run left in a member. - Run uv workspace dir through runUvOutput; label the root region in the dry-run plan; correct the greenfield comments; extend the help text. Co-authored-by: Isaac <no-reply@databricks.com>
The line-based merge matches only the plain [tool.uv] spelling, so a root that spells it differently could get a table or key defined twice. The merged root must now parse as TOML. An empty managed block no longer counts as pins to replace, and the member acceptance test re-runs in text mode. Co-authored-by: Isaac <no-reply@databricks.com>
…nk lines The dry-run plan now names the workspace root file only when the run would change it. Removing a header-less managed block from a member keeps the user's blank line before it, and an empty constraint-dependencies list no longer counts as pins to replace. Co-authored-by: Isaac <no-reply@databricks.com>
In this CLI, "workspace" usually means a Databricks workspace. The new fields are uvWorkspaceRoot, uvWorkspaceBackupPath, plan.wouldWriteUvWorkspace, and plan.wouldBackupUvWorkspace, and the text output says "uv workspace root". Co-authored-by: Isaac <no-reply@databricks.com>
…the names - An interrupt while uv workspace dir runs no longer falls back to the standalone behavior: with cached constraints, that run went on to rewrite the member pyproject.toml before it reported E_CANCELED. - Rename the warning to W_UV_WORKSPACE_CONSTRAINTS_REPLACED and the Go fields to match the uv-prefixed JSON names. Co-authored-by: Isaac <no-reply@databricks.com>
uv sync puts the project environment at UV_PROJECT_ENVIRONMENT when set: an absolute path as is, a relative one against the workspace root or the project root. The pip seed, the validate probe, and venvPath now use that folder. Co-authored-by: Isaac <no-reply@databricks.com>
Co-authored-by: Isaac <no-reply@databricks.com>
- Join a relative value to the symlink-resolved root, so .. climbs the real folders as in uv. - Report an absolute value as is; a relative path cannot cross drives. A Windows rooted path keeps the drive of the root, as in uv. - Quote an activate hint path that holds a space. - Clear the variable from the host shell in unit and acceptance tests; one table test; share the integration test setup. Co-authored-by: Isaac <no-reply@databricks.com>
…e hint - Do not clean the value lexically: uv follows a symlink in it before it applies "..". Drop only a trailing separator. - Quote the Unix activate hint with shellquote.BashArg, so shell characters such as $ stay literal. - Report a failed folder resolution as E_NOT_WRITABLE, not a usage error. - Add an acceptance test for a member with UV_PROJECT_ENVIRONMENT and a Windows-only rooted-path case. Co-authored-by: Isaac <no-reply@databricks.com>
- Clean the value with filepath like the rest of the venv paths; keep the join to the symlink-resolved root. This drops the trailing-separator trim, which also removed a valid backslash on Unix. - Fix the Windows rooted-path test expectation (it includes the drive). - Quote the cmd.exe hint for its special characters; prefix ./ for a path that starts with a dash. - Document that venvPath can be absolute; fix stale comments. Co-authored-by: Isaac <no-reply@databricks.com>
On Windows uv joins a relative value to the working folder as given, without resolving symlinks, so the CLI does too. Narrow the cmd.exe quoting comment and replace a sentinel in the table test with a function. Co-authored-by: Isaac <no-reply@databricks.com>
Co-authored-by: Isaac <no-reply@databricks.com>
uv uses a value such as C:envs\x as is, so the CLI does too, not joined to the root. The table test now passes each subtest its own t. Co-authored-by: Isaac <no-reply@databricks.com>
rugpanov
force-pushed
the
uv-workspace-setup-local-3
branch
from
October 12, 2026 16:18
0936065 to
59068cb
Compare
This branch has not been deployed
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.
Stack (merge in this order):
Changes
When
UV_PROJECT_ENVIRONMENTis set,databricks environments setup-localuses that environment, asuv syncdoes:venvPathreports it as is. A relative path cannot cross drives on Windows.\envs\xkeeps the drive of the root.venvPathuse this folder.shellquote.BashArgon Unix, with./before a leading dash, and double quotes for cmd.exe.Why
uv syncputs the project environment atUV_PROJECT_ENVIRONMENT. The command always used.venv, so the pip seed and the validate step looked at a folder that uv did not create, and the run failed. After #7018, a member that a user set up with this variable also failed.Tests
..through a symlinked project, a trailing slash, an absolute value, and a Windows rooted value (Windows only).$, a leading dash, and cmd.exe special characters.UV_PROJECT_ENVIRONMENT="custom env".DATABRICKS_LOCALENV_TEST_PROVISION).Reviewer notes
Changelog Previewcheck fails because this PR's diff againstmainalso has the Support uv workspace members in environments setup-local #7018 fragment. It passes after Support uv workspace members in environments setup-local #7018 merges.Known limitations
venvPathis absolute whenUV_PROJECT_ENVIRONMENTis absolute. A consumer must resolve it (for examplepath.resolve), not join it...(for examplelink/../env), uv follows the symlink first, so the folders can differ.UV_PROJECT_ENVIRONMENTfolder is writable. If it is not,uv syncfails after thepyproject.tomlfiles are written (the backups exist).& "…"), and quotes do not stop%VAR%expansion.This pull request and its description were written by Isaac.