feat: upgrade py-uproot to v5.7.1 for RNTuple format v1.0.1.0 support#243
Open
feat: upgrade py-uproot to v5.7.1 for RNTuple format v1.0.1.0 support#243
Conversation
ROOT 6.38.00 writes RNTuple format version 4. The previously pinned uproot 5.6.3 (in spack-packages v2025.11.0) only supports RNTuple format up to version 3, causing CI failures when comparing new RNTuple output files with capybara. uproot 5.7.0 (released 2025-01-13) added RNTuple v4 support. Cherry- pick commit 2c49a2c6a2f8a95c25e0add0e8fc67d1a5351f96 from spack-packages develop (restricted to py_uproot/package.py) to make v5.7.1 available, and add a version requirement '@5.7:' to ensure it is selected. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Contributor
There was a problem hiding this comment.
Pull request overview
This PR updates the container Spack environment to ensure a newer py-uproot is selected, addressing ROOT 6.38.00 RNTuple format v1.0.1.0 compatibility in downstream CI (e.g., capybara comparisons).
Changes:
- Cherry-pick a
spack/spack-packagescommit that addspy-uprootv5.7.1, restricted to thepy_uproot/package.pyfile. - Add a
packages.yamlconstraint to requirepy-uproot>= 5.7 during concretization.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
spack-packages.sh |
Adds a cherry-pick (file-restricted) to bring in the py-uproot v5.7.1 package definition. |
spack-environment/packages.yaml |
Adds a py-uproot version constraint so concretization selects uproot 5.7+. |
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
wdconinc
commented
Apr 18, 2026
wdconinc
commented
Apr 18, 2026
…(HEP): add new versions Co-authored-by: Wouter Deconinck <wdconinc@gmail.com>
Contributor
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.
Comments suppressed due to low confidence (1)
spack-packages.sh:67
SPACKPACKAGES_CHERRYPICKS_FILESdoes not include an entry for the newly-added commit2c49a2c6..., so this cherry-pick will be applied without file restriction. That contradicts the PR description (restricted topy_uproot/package.py) and may unintentionally modify many packages. Add a[2c49a2c6...]=.../py_uproot/package.pyentry (and any other intended paths) to enforce the restriction.
## Optional hash table with comma-separated file list
## For these commits, the cherry-pick will be restricted to the listed files only.
## For all other commits, the cherry-pick will be applied without restriction (default).
read -r -d '' SPACKPACKAGES_CHERRYPICKS_FILES <<- \
--- || true
[50433a4a02370e9035b85820cd438a64d5433749]=repos/spack_repo/builtin/packages/py_snakemake_interface_report_plugins/package.py
---
Member
|
Linker is not happy with g4occt on aarch64 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
EICrecon PR eic/EICrecon#2469 converts CI output files from TTree to RNTuple format. The capybara comparison step fails because the eic-shell nightly container has uproot 5.6.3, which contains a bug in its array reading code for files written by ROOT 6.38.00 (RNTuple format v1.0.1.0).
Root Cause
uproot 5.6.3, even with the eic-spack patches that add v1.0.1.0 footer support, uses
read_col_pages()for array reading. For certain column configurations in v1.0.1.0 files, this function returns an empty buffer, causing:uproot 5.7.0 rewrote the array reading path, replacing
read_col_pages()withread_cluster_range(), which correctly handles all v1.0.1.0 column configurations.Note: The eic-spack patches (
88e69d47for footer support,ee1b1d55for zigzag fix) only fix footer parsing — they do not fix theread_col_pagesarray reading bug.Changes
spack-packages.sh: Cherry-picks commit2c49a2c6a2f8a95c25e0add0e8fc67d1a5351f96fromspack/spack-packages("Python HEP arrays: add new versions for awkward, uproot, vector, and others"), restricted topy_uproot/package.pyonly, to make py-uproot@5.7.1 available.spack-environment/packages.yaml: Addspy-uproot: require: '@5.7:'to force the container to use uproot 5.7.x.Related PRs