Support Policy

Support Policy for CamiTK project dependencies and toolchain

This document lists the tool chain and dependencies that are currently maintained (and recommended) for using CamiTK in a stable development environment.

Operating Systems

The CamiTK project team is currently using the following platforms on a daily/regular basis (all these platforms are used during continuous integration):

MacOS is known to work, but there is unfortunately no simple way of maintaining a proper/automatic CI system for MacOS.

Toolchain

The following toolchain is used by the CamiTK team:

What Tool
Application Lifecycle Management gitlab
Source Versioning git (in gitlab)
Configuration & Build CMake
Automatic test CMake
Test report and dashboard CDash and gitlab, gitlab-runner inside dockers (for both Linux and Windows)
C++ Compiler Linux = gcc
Windows = msvc
Packager Debian package (.deb), zip archive
Source distribution gitlab
Binary distribution camitk website

C++ Standard version

The latest CXX standard version supported by CamiTK is C++20.

CMake version

The minimum required version of CMake is 3.20. CMake versions up to 3.30 were tested and are known to work. Newer versions should work as well (although they might produce some warnings).

Libraries

The following list are the libraries dependencies required by the four CamiTK Community Edition CEP:

SDK

Name Min Version(s)
Qt >= 5.15.2
VTK >= 9.1
XSD Code Synthesis >= 4.0.0

xerces-c == 3.2 is itself a dependency of xsdcxx, and therefore is also required

Imaging CEP

Name Min Version(s)
ITK >= 5.3.0
gdcm >= 3.0.21

Modeling CEP

This CEP has no external dependencies.

Tutorials CEP

This CEP has no external dependencies.

Validation Status Table

This table present all the toolchain and dependencies that are currently used in the CI docker images or that have been manually tested and certified to work.

Category Name OS Version Manual Validation CI pipeline Validation
Toolchain git stable 2.39.2 OK OK
LTS 2.43.0 OK OK
Windows 2.45.2 OK OK
CMake stable 3.25.1 OK OK
LTS 3.28.3 OK OK
Windows 3.30.1 OK OK
gitlab-runner Linux 15.10.1 N/A OK
Windows 17.2.1 N/A OK
gcc stable 12.2.0 OK OK
LTS 13.2.0 OK OK
clang LTS 18.1.3 OK not used in CI
MSVC++ / cl Windows 19.40.33813 (Visual Studio 2022, BuildTools 17.10)1 OK OK
ninja stable 1.11.1 OK OK
LTS 1.11.1 OK OK
Windows 1.12.1 OK OK
SDK Libraries Qt stable 5.15.8 OK OK
LTS 5.15.13 OK OK
Windows 5.15.2 OK OK
VTK stable 9.1.0 OK OK
LTS 9.1.0 OK OK
Windows 9.3.1 OK OK
xerces-c stable 3.2.4 OK OK
LTS 3.2.4 OK OK
Windows 3.2.5 OK OK
xsd cxx stable 4.0.0 OK OK
LTS 4.0.0 OK OK
Windows 4.2.0 OK OK
Imaging CEP Libraries ITK stable 5.2.1 OK OK
LTS 5.3.0 OK OK
Windows 5.4rc04 OK OK
gdcm stable 3.0.21 OK OK
LTS 3.0.24 OK OK
Windows 3.0.24 OK OK

1 Identifying the MSVC++ / cl compiler version (as an independent tool from Visual Studio) is difficult. See the wikipedia article, Microsoft Visual Studio workload and component IDs Microsoft documentation, the C++ build tools in the Visual Studio Build Tools component directory and Microsoft Visual Studio release notes for more information