mirror of
https://github.com/astral-sh/uv
synced 2026-01-23 14:30:14 -05:00
## Summary uv will now reject ZIP files that meet any of the following conditions: - Multiple local header entries exist for the same file with different contents. - A local header entry exists for a file that isn't included in the end-of-central directory record. - An entry exists in the end-of-central directory record that does not have a corresponding local header. - The ZIP file contains contents after the first end-of-central directory record. - The CRC32 doesn't match between the local file header and the end-of-central directory record. - The compressed size doesn't match between the local file header and the end-of-central directory record. - The uncompressed size doesn't match between the local file header and the end-of-central directory record. - The reported central directory offset (in the end-of-central-directory header) does not match the actual offset. - The reported ZIP64 end of central directory locator offset does not match the actual offset. We also validate the above for files with data descriptors, which we previously ignored. Wheels from the most recent releases of the top 15,000 packages on PyPI have been confirmed to pass these checks, and PyPI will also reject ZIPs under many of the same conditions (at upload time) in the future. In rare cases, this validation can be disabled by setting `UV_INSECURE_NO_ZIP_VALIDATION=1`. Any validations should be reported to the uv issue tracker and to the upstream package maintainer.
83 lines
2.8 KiB
TOML
83 lines
2.8 KiB
TOML
[package]
|
|
name = "uv-dev"
|
|
version = "0.0.1"
|
|
description = "Build wheels from source distributions"
|
|
publish = false
|
|
|
|
edition = { workspace = true }
|
|
rust-version = { workspace = true }
|
|
homepage = { workspace = true }
|
|
documentation = { workspace = true }
|
|
repository = { workspace = true }
|
|
authors = { workspace = true }
|
|
license = { workspace = true }
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[dependencies]
|
|
uv-cache = { workspace = true, features = ["clap"] }
|
|
uv-cli = { workspace = true }
|
|
uv-client = { workspace = true }
|
|
uv-configuration = { workspace = true }
|
|
uv-distribution-filename = { workspace = true }
|
|
uv-distribution-types = { workspace = true }
|
|
uv-extract = { workspace = true }
|
|
uv-installer = { workspace = true }
|
|
uv-macros = { workspace = true }
|
|
uv-options-metadata = { workspace = true }
|
|
uv-pep508 = { workspace = true }
|
|
uv-pypi-types = { workspace = true }
|
|
uv-python = { workspace = true }
|
|
uv-settings = { workspace = true, features = ["schemars"] }
|
|
uv-static = { workspace = true }
|
|
uv-workspace = { workspace = true, features = ["schemars"] }
|
|
|
|
# Any dependencies that are exclusively used in `uv-dev` should be listed as non-workspace
|
|
# dependencies, to ensure that we're forced to think twice before including them in other crates.
|
|
anstream = { workspace = true }
|
|
anyhow = { workspace = true }
|
|
clap = { workspace = true, features = ["derive", "wrap_help"] }
|
|
fs-err = { workspace = true, features = ["tokio"] }
|
|
futures = { workspace = true }
|
|
itertools = { workspace = true }
|
|
markdown = { version = "1.0.0" }
|
|
owo-colors = { workspace = true }
|
|
poloto = { version = "19.1.2", optional = true }
|
|
pretty_assertions = { version = "1.4.1" }
|
|
reqwest = { workspace = true, features = ["stream"] }
|
|
resvg = { version = "0.29.0", optional = true }
|
|
schemars = { workspace = true }
|
|
serde = { workspace = true }
|
|
serde_json = { workspace = true }
|
|
serde_yaml = { version = "0.9.34" }
|
|
tagu = { version = "0.1.6", optional = true }
|
|
tempfile = { workspace = true }
|
|
textwrap = { workspace = true }
|
|
tokio = { workspace = true }
|
|
tokio-util = { workspace = true }
|
|
tracing = { workspace = true }
|
|
tracing-durations-export = { workspace = true, features = ["plot"] }
|
|
tracing-subscriber = { workspace = true }
|
|
uv-performance-memory-allocator = { path = "../uv-performance-memory-allocator", optional = true }
|
|
walkdir = { workspace = true }
|
|
|
|
[lib]
|
|
name = "uv_dev"
|
|
|
|
[[bin]]
|
|
name = "uv-dev"
|
|
# We don't want to build the dev CLI by default, so we skip it by requiring an off-by-default feature
|
|
required-features = ["dev"]
|
|
|
|
[features]
|
|
default = ["performance", "uv-extract/static"]
|
|
# Actually build the dev CLI.
|
|
dev = []
|
|
performance = ["performance-memory-allocator"]
|
|
performance-memory-allocator = ["dep:uv-performance-memory-allocator"]
|
|
render = ["poloto", "resvg", "tagu"]
|
|
|
|
[package.metadata.cargo-shear]
|
|
ignored = ["flate2", "uv-extract", "uv-performance-memory-allocator"]
|