uv
6392961f - Add support for extras in editable requirements (#1531)

Comment changes are shownComment changes are hidden
Commit
1 year ago
Add support for extras in editable requirements (#1531) ## Summary If you're developing on a package like `attrs` locally, and it has a recursive extra like `attrs[dev]`, it turns out that we then try to find the `attrs` in `attrs[dev]` from the registry, rather than recognizing that it's part of the editable. This PR fixes the issue by making editables slightly more first-class throughout the resolver. Instead of mocking metadata, we explicitly check for extras in various places. Part of the problem here is that we treated editables as URL dependencies, but when we saw an _extra_ like `attrs[dev]`, we didn't map that back to the URL. So now, we treat them as registry dependencies, but with the appropriate guardrails throughout. Closes https://github.com/astral-sh/uv/issues/1447. ## Test Plan - Cloned `attrs`. - Ran `cargo run venv && cargo run pip install -e ".[dev]" -v`.
Author
Parents
  • crates
    • uv-resolver/src
      • File
        resolution.rs
      • resolver
        • File
          mod.rs
    • uv/tests
      • File
        pip_compile.rs
  • scripts/editable-installs/black_editable
    • File
      pyproject.toml