COMP: Restore release-4.14 CI on current hosted agent images#6440
Conversation
d120fea to
4caca67
Compare
|
| Filename | Overview |
|---|---|
| Testing/ContinuousIntegration/AzurePipelinesLinux.yml | Updates pool image from retired ubuntu-16.04 to ubuntu-latest, adds ccache via Cache@2, and suppresses warnings with -w; path exclusion uses Documentation/* instead of Documentation/** |
| Testing/ContinuousIntegration/AzurePipelinesLinuxPython.yml | Repurposes Python pipeline to BUILD_SHARED_LIBS C++ variant, updates to ubuntu-latest with ccache, and aligns structure with non-Python Linux pipeline |
| Testing/ContinuousIntegration/AzurePipelinesMacOS.yml | Updates from retired macOS 10.13 to macos-latest, adds Homebrew ccache, switches from Release/shared to MinSizeRel/static build; same Documentation/* exclusion concern |
| Testing/ContinuousIntegration/AzurePipelinesMacOSPython.yml | Repurposes Python pipeline to shared-library C++ variant on macos-latest; fully restructured to match the new standard layout |
| Testing/ContinuousIntegration/AzurePipelinesWindows.yml | Updates from retired vs2017-win2016 to windows-latest; uses vswhere for vcvars64.bat discovery; vswhere silent-failure mode could produce confusing errors |
| Testing/ContinuousIntegration/AzurePipelinesWindowsPython.yml | Repurposes Python pipeline to shared-library C++ build on windows-latest; uses bash step to write dashboard.cmake via Git Bash, then cmd.exe for the build step |
| .readthedocs.yml | New minimal Read the Docs config pinned to ubuntu-22.04 / Python 3.11 with a simple Sphinx build; correctly references the stub conf.py |
| Documentation/docs/conf.py | Minimal Sphinx config (no extensions, alabaster theme) sufficient to satisfy the Read the Docs check |
| .circleci/config.yml | Deleted legacy CircleCI config that used an EOL circleci/python:2.7.16-stretch image; removal is appropriate |
Flowchart
%%{init: {'theme': 'neutral'}}%%
flowchart TD
PR[Push to release branch] --> T{CI Trigger}
T --> L[Linux static C++ - ubuntu-latest]
T --> LP[Linux SharedLibs - ubuntu-latest]
T --> M[macOS static C++ - macos-latest]
T --> MP[macOS SharedLibs - macos-latest]
T --> W[Windows static C++ - windows-latest]
T --> WP[Windows SharedLibs - windows-latest]
L --> CC1[Cache restore - ccache]
LP --> CC2[Cache restore - ccache]
M --> CC3[Cache restore - ccache]
MP --> CC4[Cache restore - ccache]
CC1 --> CT1[ctest dashboard.cmake]
CC2 --> CT2[ctest dashboard.cmake]
CC3 --> CT3[ctest dashboard.cmake]
CC4 --> CT4[ctest dashboard.cmake]
W --> VS[vswhere - vcvars64.bat]
WP --> VS2[vswhere - vcvars64.bat]
VS --> CT5[ctest dashboard.cmake]
VS2 --> CT6[ctest dashboard.cmake]
CT1 --> CDash[(CDash)]
CT2 --> CDash
CT3 --> CDash
CT4 --> CDash
CT5 --> CDash
CT6 --> CDash
PR --> RTD[Read the Docs - Sphinx stub]
Reviews (1): Last reviewed commit: "COMP: Remove defunct CircleCI configurat..." | Re-trigger Greptile
79101f8 to
213a6d4
Compare
e33a41a to
6884c1a
Compare
ubuntu-16.04, macOS 10.13, and vs2017-win2016 hosted images have been removed from Azure Pipelines; every job failed at agent allocation with 'No image label found to route agent pool'. Re-base the six pipeline definitions on the current main-branch CI, keeping the 4.13.2 testing-data tarball and the shared dashboard branch script. This historical maintenance branch must stay buildable with minimal intervention for as long as possible, so every expiring pin is avoided: pools use ubuntu-latest/macos-latest/windows-latest rather than dated image tags that Azure retires, vcvars64.bat is located through vswhere instead of a hardcoded Visual Studio version path, and UsePythonVersion requests '3.x' rather than a minor version that will leave the tool cache. Compiler warnings are suppressed with -w//w: the branch receives build-compatibility fixes only, and the dashboard gate treats any warning as fatal. The *Python pipelines build a shared-library C++ configuration instead of ITK_WRAP_PYTHON, which no longer builds with modern Python.
The readthedocs.org PR check fails on this branch because no RTD configuration or Sphinx tree exists. Provide a one-page stub that identifies the maintenance branch and points to current documentation.
The CircleCI job builds in a circleci/python:2.7.16-stretch Docker image that no longer exists, and the project no longer runs CircleCI; main removed its configuration long ago.
The MSVC STL removes std::unary_function, std::binary_function, std::bind2nd, and std::auto_ptr by default as of VS2022 17.8, even in C++14 mode. Remove the vestigial functor base classes, replace bind2nd with a lambda, and replace auto_ptr with unique_ptr. The bundled GDCM CharLS copy relies on auto_ptr ownership-transfer semantics throughout its codec interfaces; the Windows pipelines define _HAS_AUTO_PTR_ETC=1 to retain it in vendored code rather than back-porting the upstream CharLS unique_ptr rewrite.
41b6270 to
cb730a5
Compare
Modern Apple SDKs define TARGET_OS_MAC via TargetConditionals.h, which steered pngpriv.h into its classic Mac OS branch and a fatal error: fp.h was removed with Carbon. The branch is only meant for pre-OS X compilers (MWERKS, THINK_C, SC); later upstream libpng removed it entirely.
45b50ee to
3bd7c22
Compare
|
Force-pushed one amended commit to fix the failing ITK.Windows dashboard gate. The Linux/macOS jobs and all 2483 tests pass; only the Windows zero-warnings gate was red. Root cause + fixVS2022's STL emits Fix: define the macro project-wide via |
VS2022's STL emits STL4037 (warning C4996) when std::complex is instantiated for any type other than float, double, or long double, which the dashboard gate treats as fatal. The release-4.14 NumericTraits specializations and their tests intentionally exercise integer complex types. itkNumericTraits.h declares the std::complex<integer> specializations and is included by hundreds of translation units, so per-TU _SILENCE_NONFLOATING_COMPLEX_DEPRECATION_WARNING defines cannot cover every instantiation point (build 16130 still emitted 199 warnings). Define the macro project-wide via CMAKE_CXX_FLAGS in both Windows CI pipelines, alongside the existing /w suppression, matching the maintenance-branch policy of suppressing rather than fixing warnings. The per-TU defines are retained to mirror upstream (37e4c71 / 0892cd1) for builds outside this CI.
std::remove on the GE5 patient-id string only shifts the kept characters and returns the new logical end; without erase() the '-' characters were never stripped. VideoFileWriter::InitializeOutputParameters called m_Dimensions.empty() (a query whose result was discarded) where clear() was intended, leaving stale dimensions across invocations.
3bd7c22 to
67001b7
Compare
|
Pushed fixes for the 8 residual MSVC warnings that were failing the
|
e924b83
into
InsightSoftwareConsortium:release-4.14
Restore
release-4.14CI: the six Azure pipelines requested hosted agent images retired years ago (ubuntu-16.04,macOS 10.13,vs2017-win2016) and every job died at agent allocation. Re-based on the current main-branch CI using non-expiringubuntu-latest/macos-latest/windows-latestpools, plus a minimal Read the Docs stub so thedocs/readthedocs.org:itkcheck can pass. Unblocks #6437 and follow-on toolchain-compatibility PRs (requested by @dzenanz in #6437).What changed and why
ubuntu-latest/macos-latest/windows-latest. This historical branch must stay buildable with minimal intervention for as long as possible, so every expiring pin is avoided: no dated image tags (that is exactly how the previous CI died),vcvars64.batlocated viavswhereinstead of a hardcoded Visual Studio version path, andUsePythonVersion: 3.xrather than a minor version that will leave the tool cache.-w//w): the shared dashboard script gates on zero build warnings; ITK 4.14 under GCC 13 emits ~10k warnings that will never be fixed on a maintenance branch that receives build-compatibility fixes only.ITK_WRAP_PYTHONdoes not build with modern Python; the*.Pythonpipelines now build aBUILD_SHARED_LIBS=ONC++ variant (suffix-SharedLibson CDash) so they still add configuration coverage.Cache@2on Linux/macOS, mirroring main..readthedocs.yml+ one-pageDocumentation/docs/) identifying the maintenance branch and pointing at https://docs.itk.org/.Local validation
Ran the exact CI entry point locally on Linux (GCC 13.3, CMake 4.2.1, Ninja) with Azure environment variables mimicked and
dashboard_no_submit=1:ctest -Sexit code 0 (the fullci_completed_successfullygate)Sphinx stub verified with
sphinx-build -b html Documentation/docs(clean).macOS (arm64) and Windows (MSVC 2022) configurations cannot be exercised on this Linux workstation; CI is the first executor for those, by necessity.
Lateral porting to other release branches
release-4.13ubuntu-16.04era) — needs the same two commitsrelease/release-5.4ubuntu-22.04(currently valid) — no actionrelease-3.20