-
Notifications
You must be signed in to change notification settings - Fork 18
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
defer installation of some CIL run requirements after build #937
base: master
Are you sure you want to change the base?
Conversation
There is an issue with Gadgetron or dcmtk and GCC? https://github.com/SyneRBI/SIRF-SuperBuild/actions/runs/13265453075/job/37031643450?pr=937
This is the error on my docker instance, potentially I haven't redirected stderr so the output seems incomplete.
|
There is. gadgetron/gadgetron#1277. However, this shouldn't occur on ubuntu 22.04. Does it say somewhere what version of dcmtk is being used? |
Good spot! My docker image says it's 24.04
I suppose the base docker image has upgraded to 24.04 more or less recently without us noticying. Line 2 in 5f1a7f4
We hit a similar issue but for a too old image with CIL. |
On my docker instance with the
|
Dockerfile
Outdated
sed -r -i -e '/^\s*- (cil|ccpi-regulariser).*/d' /opt/scripts/requirements.yml; \ | ||
sed -r -i -e '/^\s*- (cil|ccpi-regulariser|h5py|dxchange).*/d' /opt/scripts/requirements.yml; \ | ||
else \ | ||
sed -r -i -e '/^\s*- (h5py|dxchange|cil|ccpi-regulariser|pillow|olefile|pywavelets|cil-data|tqdm|numba|zenodo_get).*/d' /opt/scripts/requirements.yml; \ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think SIRF-exercises do need numba and tqdm, zenodo_get would be useful as well
Why did you move the python setup later on GHA? GHA is using the system python and pip. This doesn't have anything to do with conda discussions/problems on docker. By the way, why not pin the hdf5 version (both conda and pip I guess to be the same as the system one. Then it wouldn't matter which one is picked up. For conda, I suppose we'd still need to install cxx-compiler to avoid what we saw at #935 (comment) |
Let's try to install hdf5 from conda/pip of the same version of the system one to minimise incompatibilities. |
.github/workflows/c-cpp.yml
Outdated
- uses: actions/setup-python@v5 | ||
with: | ||
python-version: '${{ steps.deps.outputs.python-version }}' | ||
cache: pip | ||
- name: pip install | ||
working-directory: docker | ||
run: PYTHON_EXECUTABLE=python3 PYTHON_INSTALL_DIR="$HOME/virtualenv" ./user_python-ubuntu.sh | ||
- uses: hendrikmuhs/ccache-action@v1 | ||
with: | ||
key: ${{ matrix.os }}-${{ env.COMPILER }}-${{ matrix.compiler_version }}-${{ env.BUILD_TYPE }}-${{ github.ref_name }}-${{ github.run_id }} | ||
restore-keys: | | ||
${{ matrix.os }}-${{ env.COMPILER }}-${{ matrix.compiler_version }}-${{ env.BUILD_TYPE }}-${{ github.ref_name }} | ||
${{ matrix.os }}-${{ env.COMPILER }}-${{ matrix.compiler_version }}-${{ env.BUILD_TYPE }} | ||
append-timestamp: false |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
let's revert this once the same version of HDF5 that is in the system is installed via pip/conda.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- GHA and the VM re-use the docker scripts, so they are broken now.
- I think you will need
cxx-compilers
for CMake - Logically speaking, it seems now to make more sense to add armadillo as a conda-forge package https://anaconda.org/conda-forge/armadillo, For pip, there seems to be
pyarma
https://pyarma.sourceforge.io/, which might be ok.
Seems we're on a long path here...
- pillow # cil | ||
- olefile >=0.46 # cil | ||
- pywavelets # cil | ||
- cil-data >=21.3.0 # cil | ||
- ipp >=2021.10 # cil | ||
- tqdm # cil | ||
- numba # cil | ||
- h5py # gadgetron and CIL | ||
- hdf5 # gadgetron and CIL |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
and STIR actually
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I meant, hdf5 is needed by STIR
- Udated Versions: | ||
- Docker image updates: | ||
- defer installation of CIL requirements after build (#937) | ||
- Updated Versions: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
looks like you need to list gadgetron update as well.
@@ -25,19 +25,27 @@ ARG BUILD_CIL="OFF" | |||
COPY docker/requirements.yml /opt/scripts/ | |||
# https://jupyter-docker-stacks.readthedocs.io/en/latest/using/common.html#conda-environments | |||
# https://github.com/TomographicImaging/CIL/blob/master/Dockerfile | |||
# First remove the CIL run-dependencies from requirements.yml as they install hdf5 and CMake gets confused |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
no longer correct comment?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
not correct indeed, but it's still not passing unittests!
I tried armadillo from Yes, as usual this is a long and painful road. |
I get the following error on Gadgetron configuration. Indeed the system boost is 1.78.0.3 on Ubuntu 22.04
|
The Gadgetron boost error will be because you update Gadgetron (which I told you to do). Let's keep it at the original version for now to get this through and see. |
Defers the installation of CIL run requirements which confuse CMake.