LDMX-Software / docker

Docker build context for developing and running ldmx-sw.
https://ldmx-software.github.io/docker/
GNU General Public License v3.0
1 stars 2 forks source link

ACTS v36 #101

Open tomeichlersmith opened 4 weeks ago

tomeichlersmith commented 4 weeks ago

Is your request related to a problem? Please describe.

It seems like we are going to be able to pin ACTS to v36 which means we could pre-build it for all those developers that don't want to have to wait for ACTS to build themselves.

Describe the solution you'd like. What packages do you want installed?

ACTS v36 is the latest version at the time of this writing and so we should just use that if possible. https://github.com/LDMX-Software/ldmx-sw/issues/1365 is an issue focused on attempting to update to a tagged version of acts as a submodule of ldmx-sw and, if that works, we can then move to putting this tagged version pre-compiled into the base container image.

The Development Container is based on Ubuntu 22.04. How do you install your necessary packages on Ubuntu? One potential issue is that our current Boost version is under the "recommended" version by acts v36.

# running denv cmake -B build -S . within Tracking/acts using the latest dev image
-- Found Boost: /usr/lib/x86_64-linux-gnu/cmake/Boost-1.74.0/BoostConfig.cmake (found suitable version "1.74.0", minimum required is "1.71.0")  
CMake Warning at CMakeLists.txt:239 (message):
  Found Boost 1.74.0 - recommended is at least 1.78.0

This warning along with #99 lead me to thinking about updating the boost version we are using. Alternatively, we could look at updating the Ubuntu version (#97) and then getting a newer Boost along with it.

For installing acts, we would build it from source like the other HEP software packages we have installed in the image.

wget https://github.com/acts-project/acts/archive/refs/tags/v36.0.0.tar.gz
tar xzf v36.0.0.tar.gz
cd acts-v36.0.0
cmake -B build -S . # unsure if other build configuration options need to be enabled
cmake --build build --target install
tomeichlersmith commented 4 weeks ago

Using Ubuntu 24.04 would give us access to Boost 1.83 which would not satisfy #99

However, acts v36 does use nlohman/json, so we may just want to install that into the image as well for both ACTS and ldmx-sw to use. We'd then want to inform acts to use the system copy to avoid potential confusion. -DACTS_USE_SYSTEM_NLOHMANN_JSON=ON

It looks like installing nlohman/json could be accomplished with "building" its json.tar.xz package that comes with its release.

https://github.com/nlohmann/json/releases/download/v3.11.3/json.tar.xz
tar xf json.tar.xz
cd json
cmake -B build -S .
cmake --build build --target install
tvami commented 3 weeks ago

If you change boost please add a comment about this check too https://github.com/LDMX-Software/ldmx-sw/issues/1208#issuecomment-2295175931

tvami commented 3 weeks ago

that don't want to have to wait for ACTS to build themselves.

btw this would be awesome! Building ACTS takes the longest for sure!