From 02dd9ab4c2a8a88f2cc57d45e85cc6b755bbff66 Mon Sep 17 00:00:00 2001 From: Josh Bendavid Date: Fri, 26 Jun 2026 20:01:10 +0200 Subject: [PATCH 1/2] Bump container to v67 (xrootd OpenSSL 3 fix) v67 rebuilds the pip xrootd against the container's system OpenSSL 3 instead of vendoring OpenSSL 1.1.1, resolving the symbol clash with pyarrow's OpenSSL 3 that segfaulted EOS/xrootd access during the krb5 authentication handshake. Co-Authored-By: Claude Opus 4.8 (1M context) Claude-Session: https://claude.ai/code/session_014nku8YpMNAt7HLbneVmUpg --- scripts/ci/run_with_singularity.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/ci/run_with_singularity.sh b/scripts/ci/run_with_singularity.sh index 4c67c507d..b2df44b42 100755 --- a/scripts/ci/run_with_singularity.sh +++ b/scripts/ci/run_with_singularity.sh @@ -6,7 +6,7 @@ fi if [[ -d /ceph ]]; then export APPTAINER_BIND="${APPTAINER_BIND},/ceph" fi -CONTAINER=/cvmfs/unpacked.cern.ch/gitlab-registry.cern.ch/bendavid/cmswmassdocker/wmassdevrolling\:v61 +CONTAINER=/cvmfs/unpacked.cern.ch/gitlab-registry.cern.ch/bendavid/cmswmassdocker/wmassdevrolling\:v67 # Kerberos cache setup # Assuming kinit was already done on the host! From e3f60f8b111705957c4a470171a4cacd95c8a717 Mon Sep 17 00:00:00 2001 From: Josh Bendavid Date: Fri, 26 Jun 2026 21:27:04 +0200 Subject: [PATCH 2/2] Fix matplotlib cm.get_cmap removal (matplotlib >=3.9) matplotlib.cm.get_cmap was deprecated in 3.7 and removed in 3.9. The v67 container ships matplotlib 3.11, so styles.get_labels_colors_procs_sorted (used by all rabbit plotting steps) crashed with AttributeError, failing 7 CI plotting jobs. Replace the three cm.get_cmap("tab10") call sites with the recommended matplotlib.colormaps["tab10"] registry access, which returns the same callable Colormap. Co-Authored-By: Claude Opus 4.8 (1M context) Claude-Session: https://claude.ai/code/session_014nku8YpMNAt7HLbneVmUpg --- scripts/plotting/makePdfUncPlot.py | 4 ++-- scripts/plotting/makeScetlibComparisons.py | 4 ++-- wremnants/utilities/styles/styles.py | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/scripts/plotting/makePdfUncPlot.py b/scripts/plotting/makePdfUncPlot.py index e0e1bcb7a..540fa0d0c 100644 --- a/scripts/plotting/makePdfUncPlot.py +++ b/scripts/plotting/makePdfUncPlot.py @@ -5,7 +5,7 @@ import h5py import hist import numpy as np -from matplotlib import cm +from matplotlib import colormaps from wremnants.postprocessing import pdf_tools from wremnants.utilities import theory_utils @@ -112,7 +112,7 @@ pdfInfo[pdf]["scale"] if "scale" in pdfInfo[pdf] else 1.0 for pdf in args.pdfs ] names = [[pdfName + r" $\pm1\sigma$", "", ""] for pdfName in pdfNames] - cmap = cm.get_cmap("tab10") + cmap = colormaps["tab10"] colors = [[cmap(i)] * 3 for i in range(len(args.pdfs))] if "unrolled_gen_hel" in args.obs: diff --git a/scripts/plotting/makeScetlibComparisons.py b/scripts/plotting/makeScetlibComparisons.py index 1036e3e00..c9d0f4c44 100644 --- a/scripts/plotting/makeScetlibComparisons.py +++ b/scripts/plotting/makeScetlibComparisons.py @@ -3,7 +3,7 @@ import hist import lz4.frame -from matplotlib import cm +from matplotlib import colormaps from wremnants.production import helicity_utils from wremnants.utilities import parsing @@ -217,7 +217,7 @@ {"massVgen": s[0 : x.axes["massVgen"].size : hist.sum]} ] -cmap = cm.get_cmap("tab10") +cmap = colormaps["tab10"] lookup["minnlo"]["colors"] = ["red"] + [ cmap(i) for i in range(len(args.minnlo_files) - 1) ] diff --git a/wremnants/utilities/styles/styles.py b/wremnants/utilities/styles/styles.py index e0a11ba33..673516300 100644 --- a/wremnants/utilities/styles/styles.py +++ b/wremnants/utilities/styles/styles.py @@ -1,6 +1,6 @@ import copy -import matplotlib.cm as cm +from matplotlib import colormaps from wums import boostHistHelpers as hh from wums import logging @@ -818,7 +818,7 @@ def get_labels_colors_procs_sorted(procs): "Rare", ][::-1] - cmap = cm.get_cmap("tab10") + cmap = colormaps["tab10"] procs = sorted( procs, key=lambda x: procs_sort.index(x) if x in procs_sort else len(procs_sort)