Releases: LDMX-Software/docker
4.2.2 : ease usage of `denv` and simplify entrypoint
This patch release is just to have a marked tag for any users interested in trying to use denv
with ldmx-sw. #95 moved environment initialization into its own script that both the /etc/skel/.profile
and /etc/entry.sh
can source. The first file is copied by denv
into the user's workspace to be used by the container's shell when initializing and the second is used by ldmx
when launching the container. This means both can initialize an equivalent environment without further setup of the user's local copy of .profile
.
What's Changed
- move environment initialization into separate script by @tomeichlersmith in #95
- Bump actions/configure-pages from 4 to 5 by @dependabot in #96
Full Changelog: 4.2.1...4.2.2
4.2.1 : bump Geant4 patch version for upstream biasing
The updated Geant4 patch enables biasing of volumes upstream of the target and the patch has no effect on any current samples which bias the target region or downstream volumes.
What's Changed
- bump Geant4 patch version by @tomeichlersmith in #93 and LDMX-Software/geant4#14
Full Changelog: 4.2.0...4.2.1
4.2.0 : Better Labels and Custom G4
Besides some documentation and chores, the main features motivating this release are #80 and #82 .
#80 standardizes using environment variables to track our dependency versions, this also makes it transparent to add labels to the image so we can deduce which package versions are in use without having to run it.
#82 adds a snippet to the entrypoint script allowing users to use a custom-build of Geant4 by defining a special environment variable. This may mean we will not have to keep different builds of Geant4 within the container anymore since users who wish to study other builds can now build their own without having to build the entire image. #90 followed up with some fixes to enable versions of Geant4 with different datasets.
What's Changed
- Start a mdbook for this repo by @tomeichlersmith in #71
- Create dependabot.yml by @tomeichlersmith in #70
- Docker labels derived from env variables set once per dependency by @bryngemark in #80
- Optionally use custom Geant4 by @EinarElen in #82 and #90
- Various version bumps in our actions setup by @dependabot in #75, #78, #84, #85, #88, #89, #87, #86
New Contributors
- @dependabot made their first contribution in #75
Full Changelog: v4.1.0...4.2.0
4.1.0: rework Dockerfile and add clang dev tools
Besides the refactor of the Dockerfile focused on rebuild efficiency done by @EinarElen in #67 , we also included a few more clang development tools as well as fixed the building workflow which was putting all of the previous digests into the manifest for an image rather than just the two from its workflows.
What's Changed
- 66 somethings wrong with the dockerhub setup by @tomeichlersmith in #68
- Iss65 split packages by @EinarElen in #67
Full Changelog: v4.0.1...v4.1.0
v4.0.1 : multi-platform image building
The reason this is simply a patch release is because very little of the container-internal software has changed. ONNX had to be bumped to 1.15 but besides that, only the removal of an old, now meaningless, compile flag was implemented in the Dockerfile. The rest of the changes and work was done in the CI, making sure that the builder workflow could be done across many architectures at once and setting up a self-hosted runner at UMN for our very-long builds.
What's Changed
- refactor builder workflow by @tomeichlersmith in #62
- multi platform image building by @tomeichlersmith in #63
Other Contributions
- @therwig did some manual testing of different images on his Apple M1 computer to double check that the arm builds were functional.
Full Changelog: v4.0.0...v4.0.1
v4.0 : upgrade to Ubuntu 22.04
Breaking Changes
The upgrade to a new GCC version and a new Python version required some changes to ldmx-sw in order to compile and run properly. These changes were implemented by a few PRs1 which you can reference for details. Here I list the major bugs that need to be resolved in order to properly interface with older ldmx-sw versions in this new container image.
- ROOT Branch Configuration (compile time) - A hacky-solution to tell ROOT to stop deleting our branch objects needed to be patched so that it could be compiled with the newer GCC version. LDMX-Software/Framework@5ddc20e This patch is included in Framework v1.3.2.
- Catch2 version (compile time) - As noticed in #54 (comment) Catch2 v2 uses a method for registering tests that is not supported by newer GCC anymore (it was kinda hacky and used a lot of memory), so we need to update to Catch2 v3. You can skip this issue if you simply don't build the tests by commenting out
build_tests()
in theCMakeLists.txt
in ldmx-sw; however, you should prefer to update your branch to the newer ldmx-sw if you wish for your developments to be integrated. - Python C API Interaction (run time) - The way we were using the Python C API did not accommodate the memory-saving measures that were implemented in newer Python versions, so we needed to update it.
- ONNX API (compile time) - ONNXRuntime changed its API somewhere between v1.2.0 (what was used for first integration) and the current v1.15.0. We want to upgrade to v1.15.0 so we can support both x86_64 and arm64 architectures. For this reason, we have moved ONNX into the image and update the CMake infrastructure so that it will correctly deduce if ONNX already exists or if it needs to be downloaded. For past compatibility reasons, the version being downloaded by CMake (if the user is not using a v4 container image) is still v1.2.0 and so will only support x86_64 architectures. The helper class for using ONNXRuntime was updated to use the C preprocessor to follow the API changes that affect us.
What's Changed
- Update OS to Ubuntu 22.04 by @tomeichlersmith in #54
- build onnx into container by @tomeichlersmith in #58
- patch G4EMLOW data path by @tomeichlersmith in #60
Full Changelog: v3.5.0...v4.0.0
-
LDMX-Software/ldmx-sw#1157 updated Catch2 version, LDMX-Software/ldmx-sw#1170 updated ONNX API, and LDMX-Software/ldmx-sw#1173 updated Python API ↩
v4 release candidate 2
The detailed testing found a bug in how I was defining the data paths for Geant4. Patching this and making a new release candidate for further testing.
v4 release candidate 1
I've built ONNX into the container and re-enabled running the tests on ldmx-sw trunk after merging in the compile-time updates into ldmx-sw. I am still seeing bugs with this build of ldmx-sw and so I'll need to continue to develop but this tag of docker is what I will be using to test and develop the necessary updates to ldmx-sw.
Since the tests are failing, the build will not be automatically pushed to dockerhub. I have downloaded the build from the commit I am tagging and will push the v4.0.0-rc1 tag to DockerHub manually.
v4.0 release candidate 0
zero'th testing pre-release for major container image update.
v3.5 : Last 18.04 Based Image
Since the updated OS container requires patches to Framework in order to functionally build ldmx-sw, I will make a major release of that container. It will still be possible building v3-versions of ldmx-sw with the new container, but the Framework submodule specifically will need to be updated to at least v1.3.1.
What's Changed
- Add in mplhep and pandas in Dockerfile by @bryngemark in #51
- update sklearn to new major version name by @tomeichlersmith in cd0fdac
- bump versions of actions used by @tomeichlersmith in #53
- move CI to major.minor.patch tag format by @tomeichlersmith in fd53962
- add caching to our docker builds to make re-building and re-testing faster by @tomeichlersmith in 7ffc419
New Contributors
- @bryngemark made their first contribution in #51
Full Changelog: v3.4.0...v3.5.0