-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Reject --editable
flag on non-directory requirements
#10994
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
f4157d7
to
1634c65
Compare
crates/uv/tests/it/edit.rs
Outdated
@@ -2187,7 +2218,7 @@ fn add_workspace_editable() -> Result<()> { | |||
|
|||
let child1 = context.temp_dir.join("child1"); | |||
let mut add_cmd = context.add(); | |||
add_cmd.arg("child2").arg("--editable").current_dir(&child1); | |||
add_cmd.arg("child2").current_dir(&child1); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a workspace member, passing --editable
is just ignored. Should we not error here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think if an option is redundant then it makes sense not to error, right?
This change is because we error here now?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah. I mean it's a bit weird. --editable
and --no-editable
are flags on uv sync
for workspaces, but they have no effect here. It's not a persistent setting.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We could error if they pass --no-editable
, because it won't have the intended effect.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can't workspace members have editable = true/false
in their source definition?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nevermind, that's not the case. Yeah I'd expect an error on --no-editable
.
crates/uv-workspace/src/pyproject.rs
Outdated
@@ -1312,6 +1312,8 @@ pub enum SourceError { | |||
UnusedTag(String, String), | |||
#[error("`{0}` did not resolve to a Git repository, but a Git reference (`--branch {1}`) was provided.")] | |||
UnusedBranch(String, String), | |||
#[error("`{0}` did not resolve to a local directory, but the `--editable` flag was provided.")] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this should also say something like "Editable installs can only be used with local directories"? It's not entirely obvious.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Changed.
1634c65
to
7f398ae
Compare
7f398ae
to
605b468
Compare
605b468
to
5014429
Compare
This MR contains the following updates: | Package | Update | Change | |---|---|---| | [astral-sh/uv](https://github.com/astral-sh/uv) | patch | `0.5.24` -> `0.5.25` | MR created with the help of [el-capitano/tools/renovate-bot](https://gitlab.com/el-capitano/tools/renovate-bot). **Proposed changes to behavior should be submitted there as MRs.** --- ### Release Notes <details> <summary>astral-sh/uv (astral-sh/uv)</summary> ### [`v0.5.25`](https://github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0525) [Compare Source](astral-sh/uv@0.5.24...0.5.25) ##### Enhancements - Allow installation of manylinux wheels on loongarch64 ([#​10927](astral-sh/uv#10927)) - Allow optional `=` for editables in `requirements.txt` ([#​10954](astral-sh/uv#10954)) - Add Windows aarch64 to the release binaries ([#​10885](astral-sh/uv#10885)) ##### Bug fixes - Use spec-compliant (`128+n`) exit codes for `uv run` and `uv tool run` on Unix ([#​10781](astral-sh/uv#10781)) - Fix best-interpreter lookups when there is an invalid interpreter in the `PATH` ([#​11030](astral-sh/uv#11030)) - Guard against concurrent cache writes on Windows ([#​11007](astral-sh/uv#11007)) - Prioritize package preferences with greater package versions ([#​10963](astral-sh/uv#10963)) - Reject `--editable` flag on non-directory requirements ([#​10994](astral-sh/uv#10994)) - Respect `--no-sources` for `uv pip install` workspace discovery ([#​11003](astral-sh/uv#11003)) - Set `JEMALLOC_SYS_WITH_LG_PAGE=16` in ARM Docker builds ([#​10943](astral-sh/uv#10943)) - Update `riscv64` Python downloads to allow install on `riscv64gc` ([#​10937](astral-sh/uv#10937)) - Fix file persist retries on Windows ([#​11008](astral-sh/uv#11008)) - Fix incorrect error message when specifying `tool.uv.sources.(package).workspace` with other options ([#​11013](astral-sh/uv#11013)) - Improve SIGINT handling in `uv run` ([#​11009](astral-sh/uv#11009)) ##### Documentation - Add `SECURITY` policy ([#​11035](astral-sh/uv#11035)) - Add `Requires-Python` upper bound behavior to the docs ([#​10964](astral-sh/uv#10964)) - Add a troubleshooting section and reproducible example guide ([#​10947](astral-sh/uv#10947)) - Add documentation for `uv add -r` ([#​10926](astral-sh/uv#10926)) - Amend `requires-python` rules in resolver documentation ([#​10993](astral-sh/uv#10993)) - Reference workspaces in `--no-sources` documentation ([#​10995](astral-sh/uv#10995)) - Update documentation for activating virtual environments in different shell ([#​11000](astral-sh/uv#11000)) - Add Docker SHA pinning tip ([#​10955](astral-sh/uv#10955)) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this MR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box --- This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xMzcuMiIsInVwZGF0ZWRJblZlciI6IjM5LjEzNy4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJSZW5vdmF0ZSBCb3QiXX0=-->
* main: (22 commits) fix async windows file persist retries (astral-sh#11008) Respect `--no-sources` for `uv pip install` workspace discovery (astral-sh#11003) Remove unnecessary distribution clone (astral-sh#11004) Properly format test publish error (astral-sh#11001) Reject `--editable` flag on non-directory requirements (astral-sh#10994) Add a troubleshooting section and reproducible example guide (astral-sh#10947) Update documentation for activating virtual environments in different shell (astral-sh#11000) Improve publish test script resilience (astral-sh#10984) Update `compile_enumerate_no_versions ` snapshot (astral-sh#10998) Reference workspaces in `--no-sources` documentation (astral-sh#10995) [docs/integration/docker] add sha pinning tip (astral-sh#10955) Update name of "Build binary" job to highlight that these are the "release" binaries (astral-sh#10990) Use install action for cargo shear (astral-sh#10983) Update Rust crate rustix to v0.38.44 (astral-sh#10974) Update Rust crate fs-err to v3.1.0 (astral-sh#10976) Update pre-commit hook astral-sh/ruff-pre-commit to v0.9.3 (astral-sh#10975) Update Rust crate rkyv to v0.8.10 (astral-sh#10973) Update Rust crate jiff to v0.1.27 (astral-sh#10972) Update Rust crate insta to v1.42.1 (astral-sh#10971) Update Rust crate clap to v4.5.27 (astral-sh#10970) ...
Summary
Closes #10992.