mirror of
https://github.com/astral-sh/uv.git
synced 2025-08-04 19:08:04 +00:00

Initially, we were limiting Git schemes to HTTPS and SSH as only supported schemes. We lost this validation in #3429. This incidentally allowed file schemes, which apparently work with Git out of the box. A caveat for this is that in tool.uv.sources, we parse the git field always as URL. This caused a problem with #11425: repo = { git = 'c:\path\to\repo', rev = "xxxxx" } was parsed as a URL where c: is the scheme, causing a bad error message down the line. This PR: * Puts Git URL validation back in place. It bans everything but HTTPS, SSH, and file URLs. This could be a breaking change, if users were using a git transport protocol were not aware of, even though never intentionally supported. * Allows file: URL in Git: This seems to be supported by Git and we were supporting it albeit unintentionally, so it's reasonable to continue to support it. * It does not allow relative paths in the git field in tool.uv.sources. Absolute file URLs are supported, whether we want relative file URLs for Git too should be discussed separately. Closes #3429: We reject the input with a proper error message, while hinting the user towards file:. If there's still desire for relative path support, we can keep it open. --------- Co-authored-by: Charlie Marsh <charlie.r.marsh@gmail.com>
47 lines
1.3 KiB
TOML
47 lines
1.3 KiB
TOML
[package]
|
|
name = "uv-requirements"
|
|
version = "0.1.0"
|
|
edition.workspace = true
|
|
rust-version.workspace = true
|
|
homepage.workspace = true
|
|
documentation.workspace = true
|
|
repository.workspace = true
|
|
authors.workspace = true
|
|
license.workspace = true
|
|
|
|
[lib]
|
|
doctest = false
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[dependencies]
|
|
uv-cache-key = { workspace = true }
|
|
uv-client = { workspace = true }
|
|
uv-configuration = { workspace = true }
|
|
uv-console = { workspace = true }
|
|
uv-distribution = { workspace = true }
|
|
uv-distribution-filename = { workspace = true }
|
|
uv-distribution-types = { workspace = true }
|
|
uv-fs = { workspace = true }
|
|
uv-git = { workspace = true }
|
|
uv-normalize = { workspace = true }
|
|
uv-pep508 = { workspace = true }
|
|
uv-pypi-types = { workspace = true }
|
|
uv-requirements-txt = { workspace = true, features = ["http"] }
|
|
uv-resolver = { workspace = true, features = ["clap"] }
|
|
uv-types = { workspace = true }
|
|
uv-warnings = { workspace = true }
|
|
uv-workspace = { workspace = true }
|
|
|
|
anyhow = { workspace = true }
|
|
configparser = { workspace = true }
|
|
console = { workspace = true }
|
|
fs-err = { workspace = true, features = ["tokio"] }
|
|
futures = { workspace = true }
|
|
rustc-hash = { workspace = true }
|
|
serde = { workspace = true }
|
|
thiserror = { workspace = true }
|
|
toml = { workspace = true }
|
|
tracing = { workspace = true }
|
|
url = { workspace = true }
|