Migration Guide V2.0.0
This guide covers breaking changes introduced in ifm3d v2.0.0.
Python Version Support Changes
Python Version Support Policy
Starting with v2.0.0, ifm3d will support all non-EOL versions of Python 3. At the time of this release, this includes Python 3.10 through 3.14.
Removed Support for Python 3.9
Python 3.9 reached end-of-life and is no longer supported. The minimum required Python version is now 3.10.
Migration: Upgrade your Python environment to version 3.10 or newer.
Added Support for Python 3.14
Python 3.14.0 is now officially supported.
Platform Support Changes
Ubuntu Version Support Policy
Starting with v2.0.0, ifm3d will support the latest 2 LTS releases of Ubuntu. Currently this means:
Supported: Ubuntu 22.04 LTS and Ubuntu 24.04 LTS
Removed: Ubuntu 20.04 LTS
L4T-Based Docker Images
Support for l4t-based docker images has been dropped in v2.0.0.
Migration for l4t users: Users who need l4t-based images for on-device hardware-accelerated workloads should stay on the v1.6.x branch, which will continue to receive bugfixes but no new features.
Migration for Ubuntu 20.04 users: Upgrade to Ubuntu 22.04 or 24.04 to continue receiving prebuilt packages.
Build Dependency Changes
Replacement of curl and xmlrpc-c
ifm3d now uses cpp-httplib and tinyxml2 instead of curl and xmlrpc-c for HTTP and XML-RPC communication.
Impact: This change only affects users who build ifm3d from source. Runtime behavior and API remain unchanged.
Migration for source builds:
Remove
curlandxmlrpc-cfrom your build dependenciesThe new dependencies (
cpp-httplibandtinyxml2) are fetched automatically via CMake’s FetchContent
No code changes are required in your application.
C++ API Breaking Changes
Name changes due to enforcement of code-style
Code-style is now enforced using clang-format as such some code has been adjusted to follow the naming conventions:
Old Name |
New Name |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Please update any references to these names.
Summary of Breaking Changes
Python Support: Only non-EOL Python versions supported (currently 3.10 through 3.14)
Python 3.9 no longer supported - upgrade to Python 3.10+
Ubuntu Support: Only the latest 2 LTS releases supported (currently 22.04 and 24.04)
Ubuntu 20.04 no longer in official build matrix
L4T Support: L4T-based docker images dropped - use v1.6.x branch for continued l4t support
Build dependencies:
curlandxmlrpc-creplaced withcpp-httplibandtinyxml2(build-time only)C++ API Changes due to enforcement of code-style, see above for the full list
C++ applications will require code changes to adapt to the renamed types and methods. Platform and Python version upgrades may also be required for continued support.