Update to a pre-release snapshot of 2.10.0

- Disable experimental features (blosc2/isa-l)
This commit is contained in:
Benjamin A. Beasley 2025-01-20 15:33:51 -05:00
commit 319eba6ebb
4 changed files with 24 additions and 72 deletions

1
.gitignore vendored
View file

@ -6,3 +6,4 @@
/cramjam-2.9.0rc1.tar.gz
/cramjam-2.9.0.tar.gz
/cramjam-2.9.1.tar.gz
/cramjam-61564e7761e38e5ec55e7939ccd6a276c2c55d11-filtered.tar.gz

View file

@ -1,20 +0,0 @@
From 7a993e9d4418a5e44c0c775a11c438f248b333c7 Mon Sep 17 00:00:00 2001
From: Agriya Khetarpal <74401230+agriyakhetarpal@users.noreply.github.com>
Date: Mon, 30 Dec 2024 19:49:23 +0530
Subject: [PATCH] Add a `version` key in the `[project]` table
---
pyproject.toml | 1 +
1 file changed, 1 insertion(+)
diff --git a/pyproject.toml b/pyproject.toml
index 038e21ae..acb2a183 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,5 +1,6 @@
[project]
name = "cramjam"
+version = "2.9.1"
keywords = ["compression", "decompression", "snappy", "zstd", "bz2", "gzip", "lz4", "brotli", "deflate", "blosc2"]
requires-python = ">=3.8"
license = { file = "LICENSE" }

View file

@ -1,10 +1,10 @@
%bcond tests 1
# isa-l is ExcludeArch: i686
%bcond isal %[ 0%{?__isa_bits} != 32 ]
%global commit 61564e7761e38e5ec55e7939ccd6a276c2c55d11
%global snapdate 20250104
Name: python-cramjam
Version: 2.9.1
Version: 2.10.0~%{snapdate}git%{sub %{commit} 1 7}
Release: %autorelease
Summary: Thin Python bindings to de/compression algorithms in Rust
@ -33,10 +33,6 @@ Source1: get_source
%endif
# Updates for Maturin 1.8: add a version key in the project metadata
# https://github.com/milesgranger/cramjam/pull/196
Patch: %{url}/pull/196.patch
BuildRequires: python3-devel
BuildRequires: tomcli
BuildRequires: cargo-rpm-macros >= 24
@ -91,6 +87,24 @@ tomcli set pyproject.toml false 'profile.release.strip'
# which is not packaged for that reason.
tomcli set Cargo.toml del 'features.generate-import-lib'
# Downstream-only: patch out the wasm-compat feature, which is unnecessary and
# would bring in unwanted dependencies
tomcli set Cargo.toml del 'features.wasm32-compat'
# Downstream-only: patch out the "experimental" feature and all of the features
# related to blosc2 and isa-l support. We only want to build the Python
# extension with the default features, and we only want maturin to check
# dependencies for those features.
blosc2_isal_features="$(
tomcli get Cargo.toml features -F newline-keys |
grep -E 'blosc2|ideflate|igzip|isal|izlib' |
tr '\n' ' '
)"
for feature in experimental ${blosc2_isal_features}
do
tomcli set Cargo.toml del "features.${feature}"
done
# Downstream-only: remove all the static-linking features, and make the
# dynamic-linking ones default, as we do in rust-libcramjam.
static_features="$(
@ -109,24 +123,6 @@ do
fi
done
# Downstream-only: patch out the wasm-compat feature, which requires an
# unavailable blosc2 crate feature.
tomcli set Cargo.toml del 'features.wasm32-compat'
%if %{without isal}
tomcli set Cargo.toml lists delitem --type regex \
'features.default' 'i(gzip|deflate|zlib)'
isal_features="$(
tomcli get Cargo.toml features -F newline-keys |
grep -E '^i(gzip|deflate|zlib)|-isal-' |
tr '\n' ' '
)"
for sf in ${isal_features}
do
tomcli set Cargo.toml del "features.${sf}"
done
%endif
%cargo_prep
@ -150,30 +146,6 @@ export RUSTFLAGS='%{build_rustflags}'
%check
%pyproject_check_import
%if %{with tests}
%ifarch s390x
# Even after serious effort by upstream (see
# https://github.com/milesgranger/blosc2-rs/issues/23), several blosc2-rs tests
# still fail on s390x, and therefore blosc2-related tests may also fail in this
# package. Making this package ExcludeArch would have a ripple effect on
# a whole tree of packages that depend on it, and which probably do not even
# use its blosc2 support. We consider that outcome even worse than shipping
# broken blosc2 support on s390x. Note that the endianness issues are probably
# in the C blosc2 library (and that the blosc2 package ignores any and all
# test failures on s390x), and see also:
# https://github.com/Blosc/c-blosc2/issues/467.
#
# […]
# E cramjam.DecompressionError: Blosc2(InvalidHeader)
# […]
# tests/test_variants.py:55: DecompressionError
k="${k-}${k+ and }not test_variants_different_dtypes[blosc2]"
%endif
# Some tests in test_variants.py may produce segmentation faults
# https://github.com/milesgranger/cramjam/issues/190
k="${k-}${k+ and }not (test_variants and [blosc2)"
%if 0%{?fedora} > 41
# Test failures in test_variants_decompress_into with recent hypothesis
# versions
# https://github.com/milesgranger/cramjam/issues/201
@ -184,9 +156,8 @@ k="${k-}${k+ and }not (test_variants and [blosc2)"
# not reason to believe that the package has *new* problems. It *might* have
# newly *revealed* problems. This merits further investigation.
k="${k-}${k+ and }not test_variants_decompress_into"
%endif
%pytest -k "${k-}" -v -n auto
%pytest -k "${k-}" --ignore=benchmarks/test_bench.py -v -n auto
%endif

View file

@ -1 +1 @@
SHA512 (cramjam-2.9.1.tar.gz) = a2bcb6f98c8f7ffdf026fe9ffc061b3a462368a9bb69eea79697f7cba5091b1beb52cde9c298423d3a7538f86c1d6b15fdd083ccfd26fa2700c024c6d2a0437f
SHA512 (cramjam-61564e7761e38e5ec55e7939ccd6a276c2c55d11-filtered.tar.gz) = 2c0eaafaa63b1a0c65ba217a77c13ae71871c73e67466ea9bb86ca169e7c42af744ffb48e27294824350137297ee40c9ddd0a61a1290ce48b9ea18de2fbcdb1f