Skip to content

Commit c91d6eb

Browse files
Merge pull request #51 from LDMX-Software/compatibility-update
start drafting updated compatibility table
2 parents 4cc1d33 + 60afe16 commit c91d6eb

File tree

1 file changed

+36
-19
lines changed

1 file changed

+36
-19
lines changed

src/developing/compatibility.md

+36-19
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,14 @@ 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
---|---
95-
default | >= v4.0.0
96-
no det id bindings | >= v3.2
97-
no det id bindings and no sanitizers | >= v3.0
100+
default | >= v4.0.0, < v5.0.0
101+
no det id bindings | >= v3.2, < v5.0.0
102+
no det id bindings and no sanitizers | >= v3.0, < v5.0.0
103+
header patch | >= v5.0.0
98104

99-
### >= v3.3.5
105+
### >= v3.3.5, < v4.2.15
100106
Updates to the ROOT dictionary generation procedure inadvertently
101107
broke compatibility with older container images.
102108
Users of older container images will see issues during dictionary building
@@ -107,7 +113,18 @@ undo the ROOT dictionary generation changes that were done in
107113
[Framework PR #73](https://github.com/LDMX-Software/Framework/pull/73).
108114
This is highly technical and I would recommend avoiding it at all costs.
109115

110-
build config | container version
116+
build config | image version
111117
---|---
112-
default | >= v4.0.0
118+
default | >= v4.0.0, < v5.0.0
119+
header patch | >= v5.0.0
113120

121+
### >= v4.2.15
122+
Patches for the newer compiler have been included and so the default build
123+
configuration can be handled by the new image version.
124+
Not all of the _warnings_ from the newer compiler have been patched,
125+
but a regular build that doesn't force the warnings to be errors completes
126+
and runs as expected.
127+
128+
build config | image version
129+
---|---
130+
default | >= v4.0.0

0 commit comments

Comments
 (0)