COMP: Build against ITK main; repair ExternalData, baselines, and docs CI#456
Conversation
|
Finding from #455's re-run: the sha512→cid conversion here is required, not cosmetic — the top-level |
|
Folded the visual-cid fix from #455 (closed) into this PR as f759c48 — with ITKTestingData#63/#64/#65 all merged, every content link this PR's CI needs is now published. Remaining known blocker: the ITKReview/zlib link regression on ITK main hits the superbuild jobs (fix validated locally; ITK PR pending). |
f759c48 to
d2521d3
Compare
d2521d3 to
cc33939
Compare
|
Fixed the 277-test failure from the previous run: the ExternalData config sync imported ITK's |
6585d6f to
3be442b
Compare
53fc455 to
a8eb989
Compare
7cc9ccd to
3411ef0
Compare
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.
Last remaining hash-based links in the repository; blobs published under CID in ITKTestingData#64.
The 20 PNGs referenced since InsightSoftwareConsortium#440 were never published to ITKTestingData and are unrecoverable from any public source; every build of Module_SphinxExamples fails 20 ExternalData fetches. Point the .cid files at recreated diagrams (ITKTestingData#63) and fix the Operator.png/Operation.png reference mismatch.
The pip itk 5.4.6 wheels and ITK main round differently at quantization boundaries, leaving pixels one gray-level apart (plus sub-integer FFT float noise) between Python and C++ example outputs compared against shared baselines.
ITK main deprecates ImageConstIterator::GetIndex in favor of the WithIndex iterator variants, and MersenneTwister Initialize() in favor of SetSeed(). The zero-warning dashboard gate fails on these once the superbuild targets ITK main.
Every example includes ${ITK_USE_FILE}, which ITK main deprecates;
migrating ~350 example CMakeLists to imported targets is follow-up
work.
Standard hygiene hooks plus clang-format v19.1.7 (must track ITK main's pin; the lint CI job resolves it from ITK at run time), black, and pyupgrade for Python.
end-of-file/trailing-whitespace normalization, exec bits on shebang scripts, black and pyupgrade modernization of utility and example Python.
3411ef0 to
7658627
Compare
nbsphinx (execute=auto) skips notebooks with stored outputs, matching the other five notebooks; executing this one in the docs environment fails because itkwidgets view() requires the zarr 2 API.
|
Check out this pull request on See visual diffs & provide feedback on Jupyter Notebooks. Powered by ReviewNB |
Lengthen a short title underline, lex the FFT output block as text, and exempt doxygenclass lookups for classes absent from the current nightly InsightDoxygen XML.
|
@greptileai review |
| @@ -0,0 +1,53 @@ | |||
| # Mirrors ITK's .pre-commit-config.yaml style gates for C++ and Python. | |||
There was a problem hiding this comment.
Are these file mode changes intentional? Why make these ~30 .py files executable? All of them should have the same file mode.
hjmjohnson
left a comment
There was a problem hiding this comment.
This is a stable starting point.
Builds the examples against ITK
main(was v5.4.2), recreates 20 lost Core/Common visuals, and repairs everything that surfaced once the stricter toolchain and dashboard actually ran: ExternalData staging, Python baseline skew, ITK 6 deprecations, the warning gate, and the docs environment. All 13 CI checks are green.Change inventory (10 commits)
ITK_TAG→main; pipitk>=5.4.6,zarr>=3; URL templates mirror ITK; zarr2 compat shim for itkwidgets in the docs venv; drops the importedExternalData_BINARY_ROOTthat mis-staged fixtures*WithIndexiterators andSetSeed()(ITK 6 deprecations; GCC flags more sites than AppleClang)UseITK.cmakedeprecation (~350 configure lines), pip cache notice, example/file names containing "Warning", missing-doxygen-class lookupsconfigure_filewithout COPYONLY also substituted away the list's self-referencesview()is zarr-2-only); title underline + literal-block lexing fixesKnown follow-ups
include(${ITK_USE_FILE})to imported targets (UseITK deprecation currently exempted).itk::AddImageFilteranditk::Statistics::SampleToHistogramFilter(lookups exempted; needs an upstream ITK doxygen-artifact fix)..ipynbfiles contain invalid JSON (adjacent-string concatenation); excluded from the JSON hook until repaired.itkwidgetszarr 3 incompatibility tracked upstream; the venv shim and stored notebook outputs decouple this PR from it.