Compare commits

..

No commits in common. "rawhide" and "f44" have entirely different histories.

3 changed files with 83 additions and 3 deletions

78
21434.patch Normal file
View 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

View file

@ -1 +1 @@
SHA512 (uv-0.12.12.tar.gz) = 9242adfa1f0508db02215766d62d6129043b8cfc6b488ba4d7a3889c334786f58717559625187f38ce9f53060f1a2063b8ea59a71d63c8c7a836bc73a99be6d5
SHA512 (uv-0.12.9.tar.gz) = 18d35675a3e15531a9542c951b265866da4b762e0f2ba91f66dcc8b55ba5352ec97638ee2dc7fd3a908639201b27a442112a75c67053f9d861840c041e0b5290

View file

@ -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,6 +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
# Remove Python invocation from dirhash tests
# https://github.com/astral-sh/uv/pull/21434
Patch: %{url}/pull/21434.patch
BuildSystem: pyproject
BuildOption(install): --assert-license uv
@ -720,7 +723,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. Its very possible that this is another testing race
# condition that would be avoided by process isolation in “cargo nextest.” It