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.

Debian unstable (aka sid) is also tested weekly: it is the base for Debian testing (the future Debian stable) and the future Ubuntu where all official packaging should start.

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++17.

Although CamiTK Community Edition is fully compatible with C++17, the currently enforced version (as stated in the CMake configuration) is C++14.

This is due to the use of XSD CXX and MSVC. This pre-compiled version of XSD CXX on Windows was build using an older version of MSVC. The code generated by XSD CXX from the CamiTK XML Schema therefore produces auto_ptr (now deprecated). This in turns generates a FTBFS error on Windows.

But do feel free to enforce C++17 on your project (if you don’t use XSD CXX), it should work without any problem (even on Windows).

CMake version

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

Libraries

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

SDK

Name Min Version(s)
Qt >= 5.11
VTK >= 7.1.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 >= 4.13.2
gdcm >= 3.0.6

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.34.1 OK OK
Win10 2.31.1 (64-bit) OK OK
CMake stable 3.25.1 OK OK
LTS 3.22.1 OK OK
Windows 3.17.3 OK OK
gitlab-runner Linux 15.10 N/A OK
Windows 13.10 N/A OK
gcc stable 11.3.0 OK OK
LTS 10.4.0 OK OK
clang LTS 11.1 OK not used in CI yet
MSVC++ Win10 14.26 in Visual Studio 2019 version 16.6 (MSVC2019 v14.26.28801)1 OK OK
SDK Libraries Qt stable 5.15.8 OK OK
LTS 5.15.3 OK OK
Win10 5.15.02 (LTS) OK OK
VTK LTS 7.1.1 OK OK
stable 9.1.0 OK OK
Win10 8.2.0 OK OK
xerces-c stable 3.2.4 OK OK
LTS 3.2.3 OK OK
Win10 3.2.3 OK OK
xsd cxx stable 4.0.0 OK OK
LTS 4.0.0 OK OK
Win10 4.0.0 OK OK
Imaging CEP Libraries ITK stable 5.2.1 OK OK
LTS 5.2.1 OK OK
Win10 4.13.2 OK OK
gdcm stable 3.0.21 OK OK
LTS 3.0.10 OK OK
Win10 3.0.6 OK OK

1 Identifying the MSVC++ 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

2 VTK 8.2.0 has to be patched to compile with Qt 5.15.0 (it is missing a #include)