diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index bd9c250c6f0847bf4e3b65f80b677f6d00fa642f..50c37f6993b66446ab4fb40aa7da61403fc64a02 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -55,10 +55,11 @@ build-docker-base: [ "$BUILD_DOCKER_IMAGE" = "1" ] && DOCKER_CACHE="--no-cache" || DOCKER_CACHE="" docker build ${DOCKER_CACHE} \ --build-arg AOFLAGGER_COMMIT \ + --build-arg CASACORE_COMMIT \ --build-arg DP3_COMMIT \ - --build-arg DYSCO_COMMIT \ --build-arg EVERYBEAM_COMMIT \ --build-arg IDG_COMMIT \ + --build-arg PYTHONCASACORE_COMMIT \ --build-arg SAGECAL_COMMIT \ --build-arg WSCLEAN_COMMIT \ --file ci/ubuntu_22_04-base \ diff --git a/Docker/Dockerfile b/Docker/Dockerfile index 0c5f067a6b53d0eba4ef72e1e5403f4207bd0edc..4d66e5a6e9bb2f8592fe34d1378e463851d46e29 100644 --- a/Docker/Dockerfile +++ b/Docker/Dockerfile @@ -1,19 +1,34 @@ -FROM ubuntu:22.04 as builder +# This Dockerfile builds the base image for the Rapthor pipeline, +# containing all its dependencies. -# This Dockerfile builds a Docker image for the Rapthor pipeline -# and all its dependencies. +FROM ubuntu:22.04 AS builder -# By default, build non-portable code, for the oldest CPU that supports AVX2 +# Set default versions. Can be overridden from the command-line +ARG AOFLAGGER_COMMIT=master +ARG CASACORE_COMMIT=master +ARG DP3_COMMIT=master +ARG EVERYBEAM_COMMIT=master +ARG IDG_COMMIT=master +ARG PYTHONCASACORE_COMMIT=master +ARG SAGECAL_COMMIT=master +ARG WSCLEAN_COMMIT=master + +# Build binaries targeted at the oldest CPU that supports AVX2 ARG PORTABLE=FALSE ARG TARGET_CPU=haswell +# Suppress warning from pip when installing packages as root +ENV PIP_ROOT_USER_ACTION=ignore + +# Set our working directory +WORKDIR /src + # Install all build-time dependencies RUN export DEBIAN_FRONTEND=noninteractive && \ apt-get update && \ apt-get install -y \ bison \ build-essential \ - casacore-dev \ cmake \ flex \ gfortran \ @@ -39,15 +54,41 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ wcslib-dev \ wget -# Prepare the environment for installing the Rapthor source dependencies. -RUN mkdir /src -RUN git config --global alias.shallow-clone "!git clone --depth 1 --recurse-submodules --shallow-submodules" -WORKDIR /src +# Do not use `pip` from the Debian repository, but fetch it from PyPA. +# This way, we are sure that the latest versions of `pip`, `setuptools`, and +# `wheel` are installed in /usr/local, the only directory we're going to copy +# over to the next build stage. +RUN wget -q https://bootstrap.pypa.io/get-pip.py && \ + python3 get-pip.py + +# Install required python packages +RUN python3 -m pip install \ + 'numpy<2' + +# Install the casacore measures data. We purposely do not install these from +# the Ubuntu repository, but download the latest version from the ASTRON site. +# Note: The file on the ftp site is updated daily. When warnings regarding +# leap seconds appear, ignore them or regenerate the docker image. +RUN mkdir -p /usr/local/share/casacore/data && \ + wget -qO - https://www.astron.nl/iers/WSRT_Measures.ztar | \ + tar -C /usr/local/share/casacore/data -xzf - + +# Install Casacore +RUN git clone --no-checkout https://github.com/casacore/casacore.git +RUN git -C casacore checkout ${CASACORE_COMMIT} +RUN cmake \ + -DCMAKE_BUILD_TYPE:STRING=Release \ + -DBUILD_TESTING=OFF \ + -DPORTABLE=${PORTABLE} \ + -DTARGET_CPU=${TARGET_CPU} \ + -H/src/casacore \ + -B/src/casacore/build \ + -G Ninja +RUN ninja -C /src/casacore/build install # Install IDG -# A shallow clone of IDG breaks its version number. This is an issue for DP3 -# since it has a minimal version requirement. -RUN git clone --recurse-submodules https://git.astron.nl/RD/idg.git +RUN git clone --no-checkout https://git.astron.nl/RD/idg.git +RUN git -C idg checkout ${IDG_COMMIT} RUN cmake \ -DCMAKE_BUILD_TYPE:STRING=Release \ -DBUILD_WITH_PYTHON=OFF \ @@ -59,10 +100,10 @@ RUN cmake \ -G Ninja RUN ninja -C /src/idg/build install -# Install EveryBeam -# Do not compile python bindings, they will interfere with the ones in the -# binary wheel on PyPI. -RUN git shallow-clone https://git.astron.nl/RD/EveryBeam.git +# Install EveryBeam. Do not compile python bindings, they will interfere with +# the ones in the binary wheel on PyPI. +RUN git clone --no-checkout https://git.astron.nl/RD/EveryBeam.git +RUN git -C EveryBeam checkout ${EVERYBEAM_COMMIT} RUN cmake \ -DCMAKE_BUILD_TYPE:STRING=Release \ -DBUILD_WITH_PYTHON=OFF \ @@ -74,19 +115,9 @@ RUN cmake \ -G Ninja RUN ninja -C /src/EveryBeam/build install -# Install Dysco -RUN git shallow-clone https://github.com/aroffringa/dysco.git -RUN cmake \ - -DCMAKE_BUILD_TYPE:STRING=Release \ - -DPORTABLE=${PORTABLE} \ - -DTARGET_CPU=${TARGET_CPU} \ - -H/src/dysco \ - -B/src/dysco/build \ - -G Ninja -RUN ninja -C /src/dysco/build install - # Install AOFlagger -RUN git shallow-clone https://gitlab.com/aroffringa/aoflagger.git +RUN git clone --no-checkout https://gitlab.com/aroffringa/aoflagger.git +RUN git -C aoflagger checkout ${AOFLAGGER_COMMIT} RUN cmake \ -DCMAKE_BUILD_TYPE:STRING=Release \ -DPORTABLE=${PORTABLE} \ @@ -97,7 +128,8 @@ RUN cmake \ RUN ninja -C /src/aoflagger/build install # Install WSClean -RUN git shallow-clone https://gitlab.com/aroffringa/wsclean.git +RUN git clone --no-checkout https://gitlab.com/aroffringa/wsclean.git +RUN git -C wsclean checkout ${WSCLEAN_COMMIT} RUN cmake \ -DCMAKE_BUILD_TYPE:STRING=Release \ -DBUILD_TESTING=OFF \ @@ -109,7 +141,8 @@ RUN cmake \ RUN ninja -C /src/wsclean/build install # Install SAGECal libdirac -RUN git shallow-clone https://github.com/nlesc-dirac/sagecal.git +RUN git clone --no-checkout https://github.com/nlesc-dirac/sagecal.git +RUN git -C sagecal checkout ${SAGECAL_COMMIT} RUN cmake \ -DCMAKE_BUILD_TYPE:STRING=Release \ -DLIB_ONLY=1 \ @@ -119,7 +152,8 @@ RUN cmake \ RUN ninja -C /src/sagecal/build install # Install DP3 -RUN git shallow-clone https://git.astron.nl/RD/DP3.git +RUN git clone --no-checkout https://git.astron.nl/RD/DP3.git +RUN git -C DP3 checkout ${DP3_COMMIT} RUN cmake \ -DCMAKE_BUILD_TYPE:STRING=Release \ -DBUILD_TESTING=OFF \ @@ -131,6 +165,16 @@ RUN cmake \ -G Ninja RUN ninja -C /src/DP3/build install +# Install python-casacore +RUN git clone --no-checkout https://github.com/casacore/python-casacore.git +RUN git -C python-casacore checkout ${PYTHONCASACORE_COMMIT} +RUN CASACORE_DATA=/usr/local/share/casacore/data \ + pip install -v /src/python-casacore + +# We need to `pip install` EveryBeam from source as well, because the C++ +# build does not produce a proper Python package. +RUN pip install -v /src/EveryBeam + # Generate file with one-liner package version descriptions RUN mkdir -p /usr/local/share/rapthor; \ for p in $(find /src -type d -name .git | sort); \ @@ -140,45 +184,55 @@ do \ done \ > /usr/local/share/rapthor/sw-versions.txt -# Do not use `pip` from the Debian repository, but fetch it from PyPA. -# This way, we are sure that the latest versions of `pip`, `setuptools`, and -# `wheel` are installed in /usr/local, the only directory we're going to copy -# over to the next build stage. -RUN wget https://bootstrap.pypa.io/get-pip.py && \ - python3 get-pip.py - -# Install all Python dependencies for Rapthor -COPY ./requirements.txt . -RUN python3 -m pip install -r requirements.txt +# Install current version of Rapthor from source. +COPY . rapthor +RUN pip install ./rapthor #--------------------------------------------------------------------------- # The image will now be rebuilt without adding the sources, in order to # reduce the size of the image. #--------------------------------------------------------------------------- -FROM ubuntu:22.04 as runner +FROM ubuntu:22.04 AS runner COPY --from=builder /usr/local /usr/local +# Set default versions. Can be overridden from the command-line +ARG AOFLAGGER_COMMIT=master +ARG CASACORE_COMMIT=master +ARG DP3_COMMIT=master +ARG EVERYBEAM_COMMIT=master +ARG IDG_COMMIT=master +ARG PYTHONCASACORE_COMMIT=master +ARG SAGECAL_COMMIT=master +ARG WSCLEAN_COMMIT=master + +# Add version information to the metadata of the image +LABEL \ + nl.astron.rapthor.aoflagger.version=${AOFLAGGER_COMMIT} \ + nl.astron.rapthor.casacore.version=${CASACORE_COMMIT} \ + nl.astron.rapthor.dp3.version=${DP3_COMMIT} \ + nl.astron.rapthor.everybeam.version=${EVERYBEAM_COMMIT} \ + nl.astron.rapthor.idg.version=${IDG_COMMIT} \ + nl.astron.rapthor.python-casacore.version=${PYTHONCASACORE_COMMIT} \ + nl.astron.rapthor.sagecal.version=${SAGECAL_COMMIT} \ + nl.astron.rapthor.wsclean.version=${WSCLEAN_COMMIT} + # Only install run-time required packages RUN export DEBIAN_FRONTEND=noninteractive && \ apt-get update && \ apt-get install -y --no-install-recommends \ ca-certificates \ - casacore-tools \ + git \ libatkmm-1.6-1v5 \ libblas3 \ libboost-filesystem1.74.0 \ libboost-program-options1.74.0 \ + libboost-python1.74.0 \ libcairomm-1.0-1v5 \ - libcasa-casa6 \ - libcasa-fits6 \ - libcasa-measures6 \ - libcasa-ms6 \ - libcasa-scimath6 \ - libcasa-tables6 \ libcfitsio9 \ libfftw3-double3 \ libfftw3-single3 \ + libgfortran5 \ libglib2.0-0 \ libglibmm-2.4-1v5 \ libgomp1 \ @@ -193,36 +247,19 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ libpython3.10 \ libsigc++-2.0-0v5 \ libstdc++6 \ + libwcs7 \ nodejs \ python3 \ python3-distutils \ wget - RUN rm -rf /var/lib/apt/lists/* -# Install the casacore measures data. We purposely do not install these from -# the Ubuntu repository, but download the latest version directly from the -# ASTRON ftp site. -# Note: The file on the ftp site is updated daily. When warnings regarding -# leap seconds appear, ignore them or regenerate the docker image. -RUN mkdir -p /usr/share/casacore/data && \ - ln -s /usr/share/casacore /var/lib/casacore && \ - wget -qO - ftp://ftp.astron.nl/outgoing/Measures/WSRT_Measures.ztar | \ - tar -C /usr/share/casacore/data -xzf - - -# Try to run the compiled tools to make sure they run without -# a problem (e.g. no missing libraries). +# Basic sanity check: try to run the compiled tools and Rapthor itself, to +# make sure the software runs without problems (e.g. no missing libraries) RUN aoflagger --version && \ DP3 --version && \ - wsclean --version - -# Install current version of Rapthor. -# Note: VERSION should be provided as build argument. -ARG VERSION=0.0.0 -COPY . /tmp/rapthor -RUN SETUPTOOLS_SCM_PRETEND_VERSION_FOR_RAPTHOR=${VERSION} \ - python3 -m pip install --upgrade --no-cache-dir /tmp/rapthor -RUN rm -rf /tmp/* + wsclean --version && \ + rapthor --version # Set environment variables needed at run-time ENV EVERYBEAM_DATADIR=/usr/local/share/everybeam diff --git a/Docker/fetch_commit_hashes.sh b/Docker/fetch_commit_hashes.sh index 9fac6dace6a9d902254d11336f612a38e6d68457..dd86922869b4108f2ab4cce3e5192ab59ff76843 100755 --- a/Docker/fetch_commit_hashes.sh +++ b/Docker/fetch_commit_hashes.sh @@ -1,10 +1,9 @@ #!/bin/sh -e -git ls-remote https://git.astron.nl/RD/idg.git HEAD | awk '{ print "IDG_COMMIT="$1 }' -git ls-remote https://git.astron.nl/RD/EveryBeam.git v0.6.2 | awk '{ print "EVERYBEAM_COMMIT="$1 }' -git ls-remote https://github.com/aroffringa/dysco.git HEAD | awk '{ print "DYSCO_COMMIT="$1 }' -git ls-remote https://gitlab.com/aroffringa/aoflagger.git HEAD | awk '{ print "AOFLAGGER_COMMIT="$1 }' -# git ls-remote https://gitlab.com/aroffringa/wsclean.git v3.5 | awk '{ print "WSCLEAN_COMMIT="$1 }' -echo "WSCLEAN_COMMIT=ed6e7225532ce49222e04897d3d30184cd4a3bff" -git ls-remote https://github.com/nlesc-dirac/sagecal.git HEAD | awk '{ print "SAGECAL_COMMIT="$1 }' -# git ls-remote https://git.astron.nl/RD/DP3.git HEAD | awk '{ print "DP3_COMMIT="$1 }' -echo "DP3_COMMIT=86fba9228652932409845ebcf165dcc77f0dc4cb" +git ls-remote https://gitlab.com/aroffringa/aoflagger.git HEAD | awk '{ print "AOFLAGGER_COMMIT="$1 }' +git ls-remote https://github.com/casacore/casacore.git HEAD | awk '{ print "CASACORE_COMMIT="$1 }' +git ls-remote https://git.astron.nl/RD/DP3.git HEAD | awk '{ print "DP3_COMMIT="$1 }' +git ls-remote https://git.astron.nl/RD/EveryBeam.git HEAD | awk '{ print "EVERYBEAM_COMMIT="$1 }' +git ls-remote https://git.astron.nl/RD/idg.git HEAD | awk '{ print "IDG_COMMIT="$1 }' +git ls-remote https://github.com/casacore/python-casacore.git HEAD | awk '{ print "PYTHONCASACORE_COMMIT="$1 }' +git ls-remote https://github.com/nlesc-dirac/sagecal.git HEAD | awk '{ print "SAGECAL_COMMIT="$1 }' +git ls-remote https://gitlab.com/aroffringa/wsclean.git HEAD | awk '{ print "WSCLEAN_COMMIT="$1 }' diff --git a/ci/ubuntu_22_04-base b/ci/ubuntu_22_04-base index 382e219e9b6e9d6051d46180dc838ea555ec995c..d9d8b57641036e75366b7ec47258e7831478b223 100644 --- a/ci/ubuntu_22_04-base +++ b/ci/ubuntu_22_04-base @@ -1,18 +1,27 @@ +# This Dockerfile builds the base image for the Rapthor pipeline, +# containing all its dependencies. + FROM ubuntu:22.04 AS builder -# This Dockerfile builds a docker image containing all Rapthor's dependencies +# Set default versions. Can be overridden from the command-line +ARG AOFLAGGER_COMMIT=master +ARG CASACORE_COMMIT=master +ARG DP3_COMMIT=master +ARG EVERYBEAM_COMMIT=master +ARG IDG_COMMIT=master +ARG PYTHONCASACORE_COMMIT=master +ARG SAGECAL_COMMIT=master +ARG WSCLEAN_COMMIT=master -# By default, build non-portable code, for the oldest CPU that supports AVX2 +# Build binaries targeted at the oldest CPU that supports AVX2 ARG PORTABLE=FALSE ARG TARGET_CPU=haswell -ARG IDG_COMMIT=master -ARG EVERYBEAM_COMMIT=master -ARG DYSCO_COMMIT=master -ARG AOFLAGGER_COMMIT=master -ARG WSCLEAN_COMMIT=master -ARG SAGECAL_COMMIT=master -ARG DP3_COMMIT=master +# Suppress warning from pip when installing packages as root +ENV PIP_ROOT_USER_ACTION=ignore + +# Set our working directory +WORKDIR /src # Install all build-time dependencies RUN export DEBIAN_FRONTEND=noninteractive && \ @@ -20,7 +29,6 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ apt-get install -y \ bison \ build-essential \ - casacore-dev \ cmake \ flex \ gfortran \ @@ -46,8 +54,37 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ wcslib-dev \ wget -# Prepare the environment for installing the Rapthor source dependencies. -WORKDIR /src +# Do not use `pip` from the Debian repository, but fetch it from PyPA. +# This way, we are sure that the latest versions of `pip`, `setuptools`, and +# `wheel` are installed in /usr/local, the only directory we're going to copy +# over to the next build stage. +RUN wget -q https://bootstrap.pypa.io/get-pip.py && \ + python3 get-pip.py + +# Install required python packages +RUN python3 -m pip install \ + 'numpy<2' + +# Install the casacore measures data. We purposely do not install these from +# the Ubuntu repository, but download the latest version from the ASTRON site. +# Note: The file on the ftp site is updated daily. When warnings regarding +# leap seconds appear, ignore them or regenerate the docker image. +RUN mkdir -p /usr/local/share/casacore/data && \ + wget -qO - https://www.astron.nl/iers/WSRT_Measures.ztar | \ + tar -C /usr/local/share/casacore/data -xzf - + +# Install Casacore +RUN git clone --no-checkout https://github.com/casacore/casacore.git +RUN git -C casacore checkout ${CASACORE_COMMIT} +RUN cmake \ + -DCMAKE_BUILD_TYPE:STRING=Release \ + -DBUILD_TESTING=OFF \ + -DPORTABLE=${PORTABLE} \ + -DTARGET_CPU=${TARGET_CPU} \ + -H/src/casacore \ + -B/src/casacore/build \ + -G Ninja +RUN ninja -C /src/casacore/build install # Install IDG RUN git clone --no-checkout https://git.astron.nl/RD/idg.git @@ -78,18 +115,6 @@ RUN cmake \ -G Ninja RUN ninja -C /src/EveryBeam/build install -# Install Dysco -RUN git clone --no-checkout https://github.com/aroffringa/dysco.git -RUN git -C dysco checkout ${DYSCO_COMMIT} -RUN cmake \ - -DCMAKE_BUILD_TYPE:STRING=Release \ - -DPORTABLE=${PORTABLE} \ - -DTARGET_CPU=${TARGET_CPU} \ - -H/src/dysco \ - -B/src/dysco/build \ - -G Ninja -RUN ninja -C /src/dysco/build install - # Install AOFlagger RUN git clone --no-checkout https://gitlab.com/aroffringa/aoflagger.git RUN git -C aoflagger checkout ${AOFLAGGER_COMMIT} @@ -140,6 +165,16 @@ RUN cmake \ -G Ninja RUN ninja -C /src/DP3/build install +# Install python-casacore +RUN git clone --no-checkout https://github.com/casacore/python-casacore.git +RUN git -C python-casacore checkout ${PYTHONCASACORE_COMMIT} +RUN CASACORE_DATA=/usr/local/share/casacore/data \ + pip install -v /src/python-casacore + +# We need to `pip install` EveryBeam from source as well, because the C++ +# build does not produce a proper Python package. +RUN pip install -v /src/EveryBeam + # Generate file with one-liner package version descriptions RUN mkdir -p /usr/local/share/rapthor; \ for p in $(find /src -type d -name .git | sort); \ @@ -149,20 +184,10 @@ do \ done \ > /usr/local/share/rapthor/sw-versions.txt -# Do not use `pip` from the Debian repository, but fetch it from PyPA. -# This way, we are sure that the latest versions of `pip`, `setuptools`, and -# `wheel` are installed in /usr/local, the only directory we're going to copy -# over to the next build stage. -RUN wget https://bootstrap.pypa.io/get-pip.py && \ - python3 get-pip.py +# Install all python packages that Rapthor depends on +COPY requirements.txt . +RUN pip install -r requirements.txt -# Install current version of Rapthor, and then uninstall it again. By doing -# so, we can speed up the build of the final image, because all of Rapthor's -# dependencies will have been installed already and (probably) don't need to -# be updated. -COPY . rapthor -RUN python3 -m pip install --upgrade ./rapthor && \ - python3 -m pip uninstall -y rapthor #--------------------------------------------------------------------------- # The image will now be rebuilt without adding the sources, in order to @@ -172,45 +197,43 @@ FROM ubuntu:22.04 AS runner COPY --from=builder /usr/local /usr/local -ARG IDG_COMMIT=master -ARG EVERYBEAM_COMMIT=master -ARG DYSCO_COMMIT=master +# Set default versions. Can be overridden from the command-line ARG AOFLAGGER_COMMIT=master -ARG WSCLEAN_COMMIT=master -ARG SAGECAL_COMMIT=master +ARG CASACORE_COMMIT=master ARG DP3_COMMIT=master +ARG EVERYBEAM_COMMIT=master +ARG IDG_COMMIT=master +ARG PYTHONCASACORE_COMMIT=master +ARG SAGECAL_COMMIT=master +ARG WSCLEAN_COMMIT=master # Add version information to the metadata of the image LABEL \ - nl.astron.rapthor.idg.version=${IDG_COMMIT} \ - nl.astron.rapthor.everybeam.version=${EVERYBEAM_COMMIT} \ - nl.astron.rapthor.dysco.version=${DYSCO_COMMIT} \ nl.astron.rapthor.aoflagger.version=${AOFLAGGER_COMMIT} \ - nl.astron.rapthor.wsclean.version=${WSCLEAN_COMMIT} \ + nl.astron.rapthor.casacore.version=${CASACORE_COMMIT} \ + nl.astron.rapthor.dp3.version=${DP3_COMMIT} \ + nl.astron.rapthor.everybeam.version=${EVERYBEAM_COMMIT} \ + nl.astron.rapthor.idg.version=${IDG_COMMIT} \ + nl.astron.rapthor.python-casacore.version=${PYTHONCASACORE_COMMIT} \ nl.astron.rapthor.sagecal.version=${SAGECAL_COMMIT} \ - nl.astron.rapthor.dp3.version=${DP3_COMMIT} + nl.astron.rapthor.wsclean.version=${WSCLEAN_COMMIT} # Only install run-time required packages RUN export DEBIAN_FRONTEND=noninteractive && \ apt-get update && \ apt-get install -y --no-install-recommends \ ca-certificates \ - casacore-tools \ git \ libatkmm-1.6-1v5 \ libblas3 \ libboost-filesystem1.74.0 \ libboost-program-options1.74.0 \ + libboost-python1.74.0 \ libcairomm-1.0-1v5 \ - libcasa-casa6 \ - libcasa-fits6 \ - libcasa-measures6 \ - libcasa-ms6 \ - libcasa-scimath6 \ - libcasa-tables6 \ libcfitsio9 \ libfftw3-double3 \ libfftw3-single3 \ + libgfortran5 \ libglib2.0-0 \ libglibmm-2.4-1v5 \ libgomp1 \ @@ -225,23 +248,13 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ libpython3.10 \ libsigc++-2.0-0v5 \ libstdc++6 \ + libwcs7 \ nodejs \ python3 \ python3-distutils \ wget - RUN rm -rf /var/lib/apt/lists/* -# Install the casacore measures data. We purposely do not install these from -# the Ubuntu repository, but download the latest version directly from the -# ASTRON ftp site. -# Note: The file on the ftp site is updated daily. When warnings regarding -# leap seconds appear, ignore them or regenerate the docker image. -RUN mkdir -p /usr/share/casacore/data && \ - ln -s /usr/share/casacore /var/lib/casacore && \ - wget -qO - ftp://ftp.astron.nl/outgoing/Measures/WSRT_Measures.ztar | \ - tar -C /usr/share/casacore/data -xzf - - # Try to run the compiled tools to make sure they run without # a problem (e.g. no missing libraries). RUN aoflagger --version && \ diff --git a/requirements.txt b/requirements.txt index 82548987ded65c9de8acdaff05f7f296705b6f12..836871ca2edb247677fb2dedc89ea42777c2e937 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,12 +1,13 @@ astropy bdsf +importlib-metadata; python_version<'3.8' +importlib-resources; python_version<'3.9' jinja2 -losoto -lsmtool +losoto>=2.4.3 +lsmtool>=1.6 matplotlib mocpy -numpy -psutil>=5.6.6 +numpy<2 python-casacore python-dateutil reproject @@ -14,4 +15,4 @@ requests Rtree scipy shapely -toil @ git+https://github.com/DataBiosphere/toil.git#egg=toil[cwl] +toil[cwl]>=5.10