Skip to content

Commit 514e4ab

Browse files
start drafting updated compatibility table
1 parent 4cc1d33 commit 514e4ab

1 file changed

Lines changed: 31 additions & 18 deletions

File tree

src/developing/compatibility.md

Lines changed: 31 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@ reasons cause some compatibility issues where all versions of ldmx-sw
77
are not necessarily buildable by all versions of the container.
88

99
The "container image" is version controlled in its repository
10-
[LDMX-Software/docker](https://github.com/LDMX-Software/docker).
10+
[LDMX-Software/dev-build-context](https://github.com/LDMX-Software/dev-build-context).
1111
If you are interested in looking for which minimum version of the container
1212
has your desired dependency, you should look through the
13-
[releases](https://github.com/LDMX-Software/docker/releases) of the container.
13+
[releases](https://github.com/LDMX-Software/dev-build-context/releases) of the container.
1414

1515
The ldmx-sw versions are documented in the "releases" of the LDMX-Software/ldmx-sw repository,
1616
but you should also read these versions as inclusive of branches that are based off of them.
@@ -41,6 +41,7 @@ force legacy onnx | ldmx-sw's CMake code for finding ONNX didn't work well and s
4141
sanitizers | enable one or more of the sanitizers, cmake: `-DENABLE_SANITIZER_*=ON`
4242
detector id bindings | enable detector ID python bindings, cmake: `-DBUILD_DETECTORID_BINDINGS=ON`
4343
patch cmake | need to do both `no testing` and `force legacy onnx`
44+
header patch | transitioning to a newer compiler then required a few more headers to be included[^3]
4445

4546
[^1]: Currently in ldmx-sw, there isn't a command-line option to disable the
4647
testing so one must comment out the `build_test()` line in `ldmx-sw/CMakeLists.txt`.
@@ -53,35 +54,39 @@ patch cmake | need to do both `no testing` and `force legacy onnx`
5354
`find_path` call within the `ldmx-sw/cmake/FindONNXRuntime.cmake` file. This
5455
prevents CMake from finding the system install in newer containers.
5556

57+
[^3]: The specific headers needed vary depending on the version you are attempting to build.
58+
You can either look at [the patch files for different versions](https://github.com/LDMX-Software/dev-build-context/tree/main/ci/interop)
59+
or simply follow the compiler's instructions for including the appropriate headers.
60+
5661
### Pre-v3.0.0
5762
No containers have been studied for older versions of ldmx-sw.
5863
Although, there was
5964
[a patch-release of v1.7.0](https://github.com/LDMX-Software/ldmx-sw/releases/tag/v1.7.1)
60-
so that it could run in a container image.
65+
so that it could run in an image.
6166

6267
### >=v3.0.0 and < v3.1.1
6368

64-
build config | container version
69+
build config | image version
6570
---|---
6671
default | < v4.0.0
67-
patch cmake | >= v4.0.0
72+
patch cmake | >= v4.0.0, < v5.0.0
6873

6974
### >=v3.1.1 and < v3.1.12
7075

71-
build config | container version
76+
build config | image version
7277
---|---
7378
default | < v4.0.0
74-
patch cmake | >= v4.0.0
75-
with sanitizers | > v3.2
79+
patch cmake | >= v4.0.0, < v5.0.0
80+
with sanitizers | > v3.2, < v5.0.0
7681

7782
### >= v3.1.12 and < v3.2.4
7883

79-
build config | container version
84+
build config | image version
8085
---|---
8186
default | < v4.0.0
82-
patch cmake | >= v4.0.0
83-
with sanitizers | > v3.2
84-
with detector id bindings | > v3.3
87+
patch cmake | >= v4.0.0, < v5.0.0
88+
with sanitizers | > v3.2, < v5.0.0
89+
with detector id bindings | > v3.3, < v5.0.0
8590

8691
### >= v3.2.5 and < v3.3.4
8792
Since we are requiring an upgrade of the container
@@ -90,13 +95,13 @@ detector ID bindings to be included in the default
9095
build configuration which simply bumps the minimum
9196
no-testing release by three.
9297

93-
build config | container version
98+
build config | image version
9499
---|---
95100
default | >= v4.0.0
96-
no det id bindings | >= v3.2
97-
no det id bindings and no sanitizers | >= v3.0
101+
no det id bindings | >= v3.2, < v5.0.0
102+
no det id bindings and no sanitizers | >= v3.0, < v5.0.0
98103

99-
### >= v3.3.5
104+
### >= v3.3.5, < v3.2.15
100105
Updates to the ROOT dictionary generation procedure inadvertently
101106
broke compatibility with older container images.
102107
Users of older container images will see issues during dictionary building
@@ -107,7 +112,15 @@ undo the ROOT dictionary generation changes that were done in
107112
[Framework PR #73](https://github.com/LDMX-Software/Framework/pull/73).
108113
This is highly technical and I would recommend avoiding it at all costs.
109114

110-
build config | container version
115+
build config | image version
111116
---|---
112-
default | >= v4.0.0
117+
default | >= v4.0.0, < v5.0.0
118+
header patch | >= v5.0.0
119+
120+
### >= v3.2.15
121+
Patches for the newer compiler have been included and so the default build
122+
configuration can be handled by the new image version.
113123

124+
build config | image version
125+
---|---
126+
default | >= v4.0.0

0 commit comments

Comments
 (0)