ENH: Serve SWIG/PCRE archives via direct-file IPFS CIDs (release-5.4)#6547
Merged
hjmjohnson merged 2 commits intoJul 4, 2026
Conversation
Re-add the vendored SWIG prebuilt binary archives (Windows/Linux/macOS), the SWIG source tarball, and the PCRE source tarball to IPFS using the kubo `unixfs-v1-2025` import profile (CIDv1, raw leaves, 1 MiB chunks, 1024 links/node, balanced layout). Each archive is now added as a file so its CID resolves to the archive bytes directly, rather than to a UnixFS directory that wraps the file. The download URLs therefore drop the trailing `/<filename>` path segment and reference the CID directly. Refresh the content-addressed mirror list to the gateways currently serving the ITK content: https://itk.mypinata.cloud/ipfs/ https://ipfs.io/ipfs/ https://gateway.pinata.cloud/ipfs/ https://insightsoftwareconsortium.github.io/ITKTestingData/CID/ https://ipfs.filebase.io/ipfs/ The data.kitware.com SHA512 endpoint is retained as the primary source, and URL_HASH continues to validate whichever mirror responds. The archives are pinned on the itk-filebase and itk-pinata remote pinning services and mirrored in the ITKTestingData repository under CID/. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Apply the main-branch gersemi profile (0.19.3; indent 2, line length 80, list_expansion favour-expansion) to Wrapping/Generators/SwigInterface/ CMakeLists.txt. This is a whitespace-only reflow with no change to any CMake token, so the file matches ITK's main-branch formatting and merges cleanly forward. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Contributor
dzenanz
approved these changes
Jul 3, 2026
Member
|
Azure Windows failure: |
Member
Author
|
/azp run ITK.Windows |
Member
Author
|
@hjmjohnson @CavRiley download failures were noted with the conda-forge builds -- increasing robustness with this patch |
hjmjohnson
approved these changes
Jul 4, 2026
e0912ed
into
InsightSoftwareConsortium:release-5.4
19 checks passed
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.
Summary
Re-hosts the SWIG and PCRE archives used by the Python-wrapping toolchain as
direct-file IPFS CIDs and refreshes the content-addressed mirror list in
Wrapping/Generators/SwigInterface/CMakeLists.txt.Previously each
*_cidpointed at a UnixFS directory that wrapped the archive,so every download URL carried a trailing
/<filename>path segment. Each archiveis now added to IPFS as a file using the kubo
unixfs-v1-2025import profile(CIDv1, raw leaves, 1 MiB chunks, 1024 links/node, balanced layout), so the CID
resolves to the archive bytes directly and the URLs reference the CID with no
path suffix.
New CIDs
swigwin_cidbafybeibavyfwb5fenlrjxvhd4pj55brbbvphcgpuwlmbyusrwn44rs2hcqswiglinux_cid(arm64)bafybeiasuvglbnjji24hiqpzry65kpqszjxyg4bup5ophfel4noykqemwyswiglinux_cid(amd64)bafybeiemc7gbf6bgh4yopzudhp56dsb36ks6eltq7m5sny4ifr5n2vruluswigmacos_cid(arm64)bafybeihhw3wktwsi4evq3sfy4rujb5eia4shzqtw7dvgt6s2zsag2ealmmswigmacos_cid(amd64)bafybeiegnvdxavxc7gcf5nfkalpej64p6stn54mzv7nfdwtr5k4vkjvbteswig_cid(source)bafybeidevegcr53m6hrfhvel2ahpyla5rfddu5ycsxsjv5ylmzo4czuubupcre_cidbafybeig5jsstzxtwy4g3ap6rplfsnpcuptgi7uxzw2kftjnkly6tbnbiwiGateways
The mirror list is updated to the gateways currently serving ITK content
(each URL is now
${gateway}${cid}):https://itk.mypinata.cloud/ipfs/https://ipfs.io/ipfs/https://gateway.pinata.cloud/ipfs/https://insightsoftwareconsortium.github.io/ITKTestingData/CID/https://ipfs.filebase.io/ipfs/https://data.kitware.com/.../sha512/<hash>/downloadis retained as the primarysource, and
URL_HASH SHA512=...continues to validate whichever mirror responds.Hosting / pinning
itk-filebaseanditk-pinataremote pinning servicesvia the kubo CLI.
CID/— companion PR:Add SWIG 2024-03-26-master and PCRE archives as direct-file CIDs (ITK release-5.4) ITKTestingData#72.
Verification
ipfs add --only-hash --cid-version=1.itk.mypinata.cloud,ipfs.io, andipfs.filebase.iogateways and confirmed the returned bytes match theexpected SHA512.
Commits
main's profile (indent 2,line length 80,
list_expansion: favour-expansion). Whitespace-only: thenon-whitespace token stream is byte-identical to commit 1, so the file matches
main's formatting and forward-merges cleanly.🤖 Generated with Claude Code