Skip to content

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

Merged
merged 1 commit into from
Jan 27, 2025
Merged

Conversation

charliermarsh
Copy link
Member

Summary

Closes #10992.

@charliermarsh charliermarsh added the bug Something isn't working label Jan 27, 2025
@charliermarsh charliermarsh requested a review from zanieb January 27, 2025 17:47
@@ -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);
Copy link
Member Author

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?

Copy link
Member

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?

Copy link
Member Author

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.

Copy link
Member Author

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.

Copy link
Member

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?

Copy link
Member

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.

@@ -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.")]
Copy link
Member

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.

Copy link
Member Author

Choose a reason for hiding this comment

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

Changed.

@charliermarsh charliermarsh enabled auto-merge (squash) January 27, 2025 19:29
@charliermarsh charliermarsh merged commit a00f6f5 into main Jan 27, 2025
73 checks passed
@charliermarsh charliermarsh deleted the charlie/ed branch January 27, 2025 19:37
tmeijn pushed a commit to tmeijn/dotfiles that referenced this pull request Jan 29, 2025
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 ([#&#8203;10927](astral-sh/uv#10927))
-   Allow optional `=` for editables in `requirements.txt` ([#&#8203;10954](astral-sh/uv#10954))
-   Add Windows aarch64 to the release binaries ([#&#8203;10885](astral-sh/uv#10885))

##### Bug fixes

-   Use spec-compliant (`128+n`) exit codes for `uv run` and `uv tool run` on Unix ([#&#8203;10781](astral-sh/uv#10781))
-   Fix best-interpreter lookups when there is an invalid interpreter in the `PATH` ([#&#8203;11030](astral-sh/uv#11030))
-   Guard against concurrent cache writes on Windows ([#&#8203;11007](astral-sh/uv#11007))
-   Prioritize package preferences with greater package versions ([#&#8203;10963](astral-sh/uv#10963))
-   Reject `--editable` flag on non-directory requirements ([#&#8203;10994](astral-sh/uv#10994))
-   Respect `--no-sources` for `uv pip install` workspace discovery ([#&#8203;11003](astral-sh/uv#11003))
-   Set `JEMALLOC_SYS_WITH_LG_PAGE=16` in ARM Docker builds ([#&#8203;10943](astral-sh/uv#10943))
-   Update `riscv64` Python downloads to allow install on `riscv64gc` ([#&#8203;10937](astral-sh/uv#10937))
-   Fix file persist retries on Windows ([#&#8203;11008](astral-sh/uv#11008))
-   Fix incorrect error message when specifying `tool.uv.sources.(package).workspace` with other options ([#&#8203;11013](astral-sh/uv#11013))
-   Improve SIGINT handling in `uv run` ([#&#8203;11009](astral-sh/uv#11009))

##### Documentation

-   Add `SECURITY` policy ([#&#8203;11035](astral-sh/uv#11035))
-   Add `Requires-Python` upper bound behavior to the docs ([#&#8203;10964](astral-sh/uv#10964))
-   Add a troubleshooting section and reproducible example guide ([#&#8203;10947](astral-sh/uv#10947))
-   Add documentation for `uv add -r` ([#&#8203;10926](astral-sh/uv#10926))
-   Amend `requires-python` rules in resolver documentation ([#&#8203;10993](astral-sh/uv#10993))
-   Reference workspaces in `--no-sources` documentation ([#&#8203;10995](astral-sh/uv#10995))
-   Update documentation for activating virtual environments in different shell ([#&#8203;11000](astral-sh/uv#11000))
-   Add Docker SHA pinning tip ([#&#8203;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=-->
styvane added a commit to styvane/uv that referenced this pull request Jan 29, 2025
* 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)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging this pull request may close these issues.

uv add silently ignores --editable when used with a Git/VCS dependency
2 participants