Skip to content

Commit cf61881

Browse files
committed
COMP: Build against ITK main; sync ExternalData config with ITK
Superbuild ITK_TAG v5.4.2 -> main, matching the C++ CI jobs and picking up post-5.4.2 fixes behind the Python baseline mismatches. pip itk pins -> >=5.4.6; zarr>=3.0.0 satisfies ngff-zarr OME-Zarr 0.5 (nbsphinx notebook execution failed without it). ExternalData URL templates and module now mirror ITK main: adds the Girder hashsum mirror (sole host of some legacy sha512 objects, e.g. ComputeFFTInOneDimension), filebase and pinata public gateways, and the WASI symlink guard; drops dead estuary.tech/w3s.link and the released-root-CID gateways. The project-specific gin.g-node.org mirror and ExternalData_LINK_CONTENT=CID are retained.
1 parent 67d5002 commit cf61881

5 files changed

Lines changed: 22 additions & 37 deletions

File tree

.github/workflows/build-test-publish.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -264,7 +264,7 @@ jobs:
264264
run: |
265265
python -m pip install --upgrade pip
266266
python -m pip install ninja
267-
python -m pip install itk>=5.4rc3
267+
python -m pip install itk>=5.4.6
268268
python -m pip install matplotlib
269269
python -m pip install itkwidgets
270270
# Issues with 5.7.0

CMake/ExternalData.cmake

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -999,7 +999,6 @@ function(_ExternalData_get_from_object_store hash algo var_obj var_success)
999999
foreach(dir ${ExternalData_OBJECT_STORES})
10001000
set(obj "${dir}/${algo}/${hash}")
10011001
if(EXISTS "${obj}")
1002-
message(STATUS "Found object: \"${obj}\"")
10031002
set("${var_obj}" "${obj}" PARENT_SCOPE)
10041003
set("${var_success}" 1 PARENT_SCOPE)
10051004
return()
@@ -1013,7 +1012,6 @@ function(_ExternalData_download_object name hash algo var_obj var_success var_er
10131012
foreach(dir ${ExternalData_OBJECT_STORES})
10141013
set(obj "${dir}/${algo}/${hash}")
10151014
if(EXISTS "${obj}")
1016-
message(STATUS "Found object: \"${obj}\"")
10171015
set("${var_obj}" "${obj}" PARENT_SCOPE)
10181016
set("${var_success}" "${success}" PARENT_SCOPE)
10191017
return()

CMake/ITKSphinxExamplesExternalData.cmake

Lines changed: 18 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
set(ExternalData_SOURCE_ROOT "${PROJECT_SOURCE_DIR}")
12
get_filename_component(_ITKExternalData_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
23
include(${_ITKExternalData_DIR}/ExternalData.cmake)
34

@@ -18,52 +19,38 @@ if(NOT ExternalData_OBJECT_STORES)
1819
endif()
1920
list(APPEND ExternalData_OBJECT_STORES
2021
# Local data store populated by the ITK pre-commit hook
21-
"${CMAKE_SOURCE_DIR}/.ExternalData"
22+
"${PROJECT_SOURCE_DIR}/.ExternalData"
2223
)
2324

24-
set(ITK_SPHINX_EXAMPLES_DATA_RELEASED_ROOT_CID bafybeib6yijwyl52gkalx6griio2wsibowlrt3v5wmkkuqlnuvku64c3ra)
25+
set(ExternalData_BINARY_ROOT ${PROJECT_BINARY_DIR}/ExternalData)
2526

27+
# Expands %(algo:lower)
2628
set(ExternalData_URL_ALGO_CID_lower cid)
29+
set(ExternalData_URL_ALGO_MD5_lower md5)
2730
set(ExternalData_URL_TEMPLATES "" CACHE STRING
2831
"Additional URL templates for the ExternalData CMake script to look for testing data. E.g.
2932
file:///var/bigharddrive/%(algo)/%(hash)")
3033
mark_as_advanced(ExternalData_URL_TEMPLATES)
3134
if(NOT ITK_FORBID_DOWNLOADS)
3235
list(APPEND ExternalData_URL_TEMPLATES
36+
# Data published on GitHub Pages
37+
"https://insightsoftwareconsortium.github.io/ITKTestingData/%(algo)/%(hash)"
3338
# Local IPFS gateway
3439
"http://127.0.0.1:8080/ipfs/%(hash)"
35-
36-
# Data published on GitHub Pages (note: not complete due to file size
37-
# limit)
38-
"https://insightsoftwareconsortium.github.io/ITKTestingData/%(algo)/%(hash)"
39-
40-
# Released data rsync'd to Kitware's Apache web server
41-
"https://itk.org/files/ExternalData/%(algo)/%(hash)"
42-
43-
# Restricted gateway with released data
44-
"https://itk.mypinata.cloud/ipfs/${ITK_SPHINX_EXAMPLES_DATA_RELEASED_ROOT_CID}/Objects/CID/%(hash)"
45-
46-
# New data on web3.storage
47-
"https://w3s.link/ipfs/%(hash)"
48-
49-
# Released data on web3.storage
50-
"https://${ITK_SPHINX_EXAMPLES_DATA_RELEASED_ROOT_CID}.ipfs.w3s.link/Objects/CID/%(hash)"
51-
52-
# Released data on estuary.tech
53-
"https://api.estuary.tech/gw/ipfs/${ITK_SPHINX_EXAMPLES_DATA_RELEASED_ROOT_CID}/Objects/CID/%(hash)"
54-
55-
# Protocol Labs gateway
56-
"https://${ITK_SPHINX_EXAMPLES_DATA_RELEASED_ROOT_CID}.ipfs.dweb.link/Objects/CID/%(hash)"
57-
58-
# Gateway for arbitrary new files, uploaded to web3.storage
59-
"https://dweb.link/ipfs/%(hash)"
60-
6140
# Protocol Labs gateway
6241
"https://ipfs.io/ipfs/%(hash)"
63-
42+
# Filebase gateway
43+
"https://ipfs.filebase.io/ipfs/%(hash)"
44+
# Gateway for data pinned on pinata
45+
"https://gateway.pinata.cloud/ipfs/%(hash)"
6446
# Cloudflare gateway
6547
"https://cloudflare-ipfs.com/ipfs/%(hash)"
66-
48+
# Additional gateway (modern but has redirect)
49+
"https://dweb.link/ipfs/%(hash)"
50+
# Data published on Girder
51+
"https://data.kitware.com:443/api/v1/file/hashsum/%(algo)/%(hash)/download"
52+
# Data published by developers using git-gerrit-push.
53+
"https://itk.org/files/ExternalData/%(algo)/%(hash)"
6754
# DataLad repository on gin.g-node.org
6855
"https://gin.g-node.org/InsightSoftwareConsortium/ITKSphinxExamplesData/raw/main/Objects/CID/%(hash)"
6956
)
@@ -73,7 +60,7 @@ endif()
7360
set(ExternalData_LINK_CONTENT CID)
7461

7562
# Emscripten currently has difficulty reading symlinks.
76-
if(EMSCRIPTEN)
63+
if(EMSCRIPTEN OR WASI)
7764
set(ExternalData_NO_SYMLINKS 1)
7865
endif()
7966

Superbuild/External-ITK.cmake

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
# Get and build itk
33

44
if(NOT ITK_TAG)
5-
# ITK release 2025-01-02
6-
set(ITK_TAG "v5.4.2")
5+
# Track ITK main, matching the itk-git-tag used by the C++ CI jobs
6+
set(ITK_TAG "main")
77
endif()
88

99
set(_vtk_args)

Superbuild/External-Python.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,6 @@ ExternalProject_Add(ITKPython
1818
DOWNLOAD_COMMAND ""
1919
CONFIGURE_COMMAND ${Python3_EXECUTABLE} -m venv "${_itk_venv}"
2020
BUILD_COMMAND ${ITKPython3_EXECUTABLE} -m pip install --upgrade pip
21-
INSTALL_COMMAND ${ITKPython3_EXECUTABLE} -m pip install --ignore-installed itk>=5.4.2 sphinx==7.2.6 six black nbsphinx ipywidgets sphinx-contributors ipykernel matplotlib itkwidgets[lab,notebook]>=1.0a51 pydata-sphinx-theme
21+
INSTALL_COMMAND ${ITKPython3_EXECUTABLE} -m pip install --ignore-installed itk>=5.4.6 zarr>=3.0.0 sphinx==7.2.6 six black nbsphinx ipywidgets sphinx-contributors ipykernel matplotlib itkwidgets[lab,notebook]>=1.0a51 pydata-sphinx-theme
2222
COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/ITKBlackConfig.cmake
2323
)

0 commit comments

Comments
 (0)