Reject --editable flag on non-directory requirements#10994
Reject --editable flag on non-directory requirements#10994charliermarsh merged 1 commit intomainfrom
--editable flag on non-directory requirements#10994Conversation
f4157d7 to
1634c65
Compare
crates/uv/tests/it/edit.rs
Outdated
| 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.
This is a workspace member, passing --editable is just ignored. Should we not error here?
There was a problem hiding this comment.
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.
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.
We could error if they pass --no-editable, because it won't have the intended effect.
There was a problem hiding this comment.
Can't workspace members have editable = true/false in their source definition?
There was a problem hiding this comment.
Nevermind, that's not the case. Yeah I'd expect an error on --no-editable.
crates/uv-workspace/src/pyproject.rs
Outdated
| 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.
I think this should also say something like "Editable installs can only be used with local directories"? It's not entirely obvious.
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.