Compare commits
31 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e3121d9512 | ||
|
|
bbf325e61d | ||
|
|
52f50eb202 | ||
|
|
260caad5b2 | ||
|
|
f4dc229a11 | ||
|
|
037a5334b8 | ||
|
|
8067177984 | ||
|
|
d5f64d5b40 | ||
|
|
b2e299c85a | ||
|
|
6d5b6df28e | ||
|
|
6fa06b6a2b | ||
|
|
d81d924b8e | ||
|
|
3390ffc93b | ||
|
|
ee01661ac5 | ||
|
|
20d07c3400 | ||
|
|
456632b9fe | ||
|
|
1727780afd | ||
|
|
535c235020 | ||
|
|
e04993a93c | ||
|
|
369aa45b0b | ||
|
|
4c941abc60 | ||
|
|
8896e99313 | ||
|
|
6185988208 | ||
|
|
90745185da | ||
|
|
8b86f3ea0d | ||
|
|
fb4d6e09d1 | ||
|
|
703cfa73ac | ||
|
|
8833957069 | ||
|
|
5b333d4a4e | ||
|
|
0e140d9392 | ||
|
|
b0a54b3e91 |
3 changed files with 98 additions and 11 deletions
78
21434.patch
Normal file
78
21434.patch
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
From 9ded1ff23cb5d9c78c615ab0bb026942fac5d128 Mon Sep 17 00:00:00 2001
|
||||
From: Charlie Marsh <charlie.r.marsh@gmail.com>
|
||||
Date: Thu, 3 Sep 2026 07:24:08 -0400
|
||||
Subject: [PATCH] Remove Python invocation from dirhash tests
|
||||
|
||||
---
|
||||
crates/uv-extract/src/dirhash.rs | 27 +++--------------------
|
||||
crates/uv-extract/test_vectors/dirhash.py | 5 +----
|
||||
2 files changed, 4 insertions(+), 28 deletions(-)
|
||||
|
||||
diff --git a/crates/uv-extract/src/dirhash.rs b/crates/uv-extract/src/dirhash.rs
|
||||
index 76a0300ca51..943e13bd1fb 100644
|
||||
--- a/crates/uv-extract/src/dirhash.rs
|
||||
+++ b/crates/uv-extract/src/dirhash.rs
|
||||
@@ -519,7 +519,6 @@ mod tests {
|
||||
|
||||
use super::*;
|
||||
use std::cmp;
|
||||
- use std::process::Command;
|
||||
use std::task::{Context, Poll};
|
||||
|
||||
#[test]
|
||||
@@ -806,10 +805,9 @@ mod tests {
|
||||
|
||||
// `../test_vectors/test_vectors.json` contains a series of input trees and hashes, which is
|
||||
// generated by `cargo dev generate-dirhash-test-vectors`. This tests both `dirhash_path` and
|
||||
- // `DirhashTree` from this file, and also the `dirhash.py` Python implementation, so we're
|
||||
- // testing that three different implementations agree.
|
||||
- #[tokio::test]
|
||||
- async fn test_vectors_json() -> anyhow::Result<()> {
|
||||
+ // `DirhashTree` against the committed hashes.
|
||||
+ #[test]
|
||||
+ fn test_vectors_json() -> anyhow::Result<()> {
|
||||
let test_vectors: Vec<JsonTestVector> =
|
||||
serde_json::from_str(include_str!("../test_vectors/test_vectors.json"))?;
|
||||
for JsonTestVector { input, dirhash } in &test_vectors {
|
||||
@@ -828,25 +826,6 @@ mod tests {
|
||||
dirhash.as_str(),
|
||||
dirhash_path(tempdir.path())?.to_hex().as_str(),
|
||||
);
|
||||
-
|
||||
- // Check the Python implementation, which also reads the FS.
|
||||
- let python_script = Path::new(env!("CARGO_MANIFEST_DIR"))
|
||||
- .join("test_vectors")
|
||||
- .join("dirhash.py");
|
||||
- let output = Command::new("uv")
|
||||
- .args(["run", "--locked", "--script"])
|
||||
- .arg(python_script)
|
||||
- .arg(tempdir.path())
|
||||
- .output()?;
|
||||
- assert!(output.status.success());
|
||||
- // This script's output is formatted like `md5sum` or `b3sum`, with each line including
|
||||
- // a hash, a couple spaces, and a path. With only one path arg, there will be only one
|
||||
- // line.
|
||||
- let python_dirhash = std::str::from_utf8(&output.stdout)?
|
||||
- .split_whitespace()
|
||||
- .next()
|
||||
- .unwrap();
|
||||
- assert_eq!(dirhash.as_str(), python_dirhash);
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
diff --git a/crates/uv-extract/test_vectors/dirhash.py b/crates/uv-extract/test_vectors/dirhash.py
|
||||
index fde1339670e..73ef480ca8a 100755
|
||||
--- a/crates/uv-extract/test_vectors/dirhash.py
|
||||
+++ b/crates/uv-extract/test_vectors/dirhash.py
|
||||
@@ -10,10 +10,7 @@
|
||||
# exclude-newer = "P7D"
|
||||
# ///
|
||||
|
||||
-"""Independent Python implementation of ``uv_extract::dirhash``.
|
||||
-
|
||||
-The Rust ``test_vectors_json`` test case exercises this implementation in CI.
|
||||
-"""
|
||||
+"""Independent Python implementation of ``uv_extract::dirhash``."""
|
||||
|
||||
import sys
|
||||
from pathlib import Path
|
||||
2
sources
2
sources
|
|
@ -1 +1 @@
|
|||
SHA512 (uv-0.12.12.tar.gz) = 9242adfa1f0508db02215766d62d6129043b8cfc6b488ba4d7a3889c334786f58717559625187f38ce9f53060f1a2063b8ea59a71d63c8c7a836bc73a99be6d5
|
||||
SHA512 (uv-0.12.9.tar.gz) = 18d35675a3e15531a9542c951b265866da4b762e0f2ba91f66dcc8b55ba5352ec97638ee2dc7fd3a908639201b27a442112a75c67053f9d861840c041e0b5290
|
||||
|
|
|
|||
29
uv.spec
29
uv.spec
|
|
@ -5,7 +5,7 @@
|
|||
%bcond other_python_versions %{undefined epel}
|
||||
|
||||
Name: uv
|
||||
Version: 0.12.12
|
||||
Version: 0.12.9
|
||||
# The uv package has a permanent exception to the Updates Policy in Fedora, so
|
||||
# it can be updated in stable releases across SemVer boundaries (subject to
|
||||
# good judgement and actual compatibility of any reverse dependencies). See
|
||||
|
|
@ -160,9 +160,9 @@ Patch: uv-0.12.1-revert-blake2-beta.patch
|
|||
# Add license texts for new contents of test/ecosystem/ from PR#20068
|
||||
# https://github.com/astral-sh/uv/pull/20174
|
||||
Patch: %{url}/pull/20174.patch
|
||||
|
||||
BuildSystem: pyproject
|
||||
BuildOption(install): --assert-license uv
|
||||
# Remove Python invocation from dirhash tests
|
||||
# https://github.com/astral-sh/uv/pull/21434
|
||||
Patch: %{url}/pull/21434.patch
|
||||
|
||||
# https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval
|
||||
ExcludeArch: %{ix86}
|
||||
|
|
@ -375,7 +375,9 @@ Requires: uv = %{version}-%{release}
|
|||
This package provides an importable Python module for uv.
|
||||
|
||||
|
||||
%prep -a
|
||||
%prep
|
||||
%autosetup -p1
|
||||
|
||||
# Collect license files of vendored dependencies
|
||||
install -D --preserve-timestamps --mode=0644 \
|
||||
--target=LICENSE.bundled/packaging \
|
||||
|
|
@ -552,7 +554,7 @@ tomcli set Cargo.toml str workspace.dependencies.blake2.version 0.10.6
|
|||
%cargo_prep
|
||||
|
||||
|
||||
%generate_buildrequires -p
|
||||
%generate_buildrequires
|
||||
# For unclear reasons, maturin checks for all crate dependencies when it is
|
||||
# invoked as part of %%pyproject_buildrequires – including those corresponding
|
||||
# to optional features.
|
||||
|
|
@ -564,14 +566,20 @@ tomcli set Cargo.toml str workspace.dependencies.blake2.version 0.10.6
|
|||
# Since maturin always checks for dev-dependencies, we need -t so that they are
|
||||
# generated even when the “check” bcond is disabled.
|
||||
%cargo_generate_buildrequires -a -t
|
||||
%pyproject_buildrequires
|
||||
|
||||
|
||||
%build -a
|
||||
%build
|
||||
%pyproject_wheel
|
||||
|
||||
%{cargo_license_summary}
|
||||
%{cargo_license} > LICENSE.dependencies
|
||||
|
||||
|
||||
%install -a
|
||||
%install
|
||||
%pyproject_install
|
||||
%pyproject_save_files -l uv
|
||||
|
||||
if [ '%{python3_sitearch}' != '%{python3_sitelib}' ]
|
||||
then
|
||||
# Maturin is really designed to build compiled Python extensions, but (when
|
||||
|
|
@ -602,7 +610,7 @@ install -D --preserve-timestamps --mode=0644 \
|
|||
--target='%{buildroot}%{_sysconfdir}/uv' '%{SOURCE1}'
|
||||
|
||||
|
||||
%check -a
|
||||
%check
|
||||
%if %{with check}
|
||||
# These tests rely on debug assertions, and fail when tests are compiled in
|
||||
# release mode:
|
||||
|
|
@ -720,7 +728,6 @@ skip="${skip-} --skip user_agent_version::test_user_agent_has_version"
|
|||
# }
|
||||
# There are probably more of these.
|
||||
skip="${skip-} --skip retry::tests::retried_status_codes"
|
||||
skip="${skip-} --skip retry::tests::retry_logs_redact_signed_urls"
|
||||
# This has been seen to fail in koji, so far only on x86_64, but so far not in
|
||||
# a local mock build. It’s very possible that this is another testing race
|
||||
# condition that would be avoided by process isolation in “cargo nextest.” It
|
||||
|
|
@ -731,6 +738,8 @@ skip="${skip-} --skip interpreter::tests::test_cache_eviction_with_unchanged_exe
|
|||
%cargo_test -- -- --exact ${skip-}
|
||||
%endif
|
||||
|
||||
%pyproject_check_import
|
||||
|
||||
|
||||
%files
|
||||
%license LICENSE-APACHE LICENSE-MIT LICENSE.dependencies LICENSE.bundled/
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue