Repository: caracal-pipeline/cult-cargo
Pull request #96: Issue 93
Author: login: o-smirnov
Created: 2025-04-01T14:36:58Z | Merged: 2025-04-02T10:04:20Z



Diff:
diff --git a/bundle-manifest.md b/bundle-manifest.md
index ed9b600..9868bd2 100644
--- a/bundle-manifest.md
+++ b/bundle-manifest.md
@@ -4,6 +4,7 @@
 |----------|---------------|--------------|
 |**aimfast**|**master**-cc0.2.0|**1.3.4**-cc0.2.0|
 |**base-cult**|**kern-9**-cc0.2.0|**kern-7**-cc0.2.0&nbsp;&nbsp;**kern-8**-cc0.2.0&nbsp;&nbsp;**kern-dev**-cc0.2.0|
+|**bdsf**|**1.12.0**-cc0.2.0||
 |**breizorro**|cc0.2.0|**0.1.1**-cc0.2.0&nbsp;&nbsp;**master**-cc0.2.0|
 |**casa**|**5.8.0**-cc0.2.0|**4.7.2**-cc0.2.0&nbsp;&nbsp;**_base**-cc0.2.0|
 |**casa6**|**6.7**-cc0.2.0|**6.6**-cc0.2.0|
@@ -14,8 +15,8 @@
 |**mosaic-queen**|cc0.2.0|**1.1.1**-cc0.2.0&nbsp;&nbsp;**master**-cc0.2.0|
 |**msutils**|cc0.2.0|**1.2.0**-cc0.2.0&nbsp;&nbsp;**master**-cc0.2.0|
 |**pfb-imaging**|**master**-cc0.2.0|**0.0.4**-cc0.2.0&nbsp;&nbsp;**0.0.5**-cc0.2.0|
-|**python-astro**|**3.11**-cc0.2.0|**3.10**-cc0.2.0&nbsp;&nbsp;**3.8**-cc0.2.0&nbsp;&nbsp;**3.9**-cc0.2.0|
-|**python-base**|**3.8**-cc0.2.0|**3.10**-cc0.2.0&nbsp;&nbsp;**3.11**-cc0.2.0&nbsp;&nbsp;**3.9**-cc0.2.0|
+|**python-astro**|**3.11**-cc0.2.0|**3.10**-cc0.2.0&nbsp;&nbsp;**3.12**-cc0.2.0&nbsp;&nbsp;**3.9**-cc0.2.0|
+|**python-base**|**3.11**-cc0.2.0|**3.10**-cc0.2.0&nbsp;&nbsp;**3.12**-cc0.2.0&nbsp;&nbsp;**3.9**-cc0.2.0|
 |**quartical**|cc0.2.0|**0.2.2**-cc0.2.0&nbsp;&nbsp;**0.2.3**-cc0.2.0&nbsp;&nbsp;**0.2.4**-cc0.2.0&nbsp;&nbsp;**0.2.5**-cc0.2.0&nbsp;&nbsp;**0.2.6dev**-cc0.2.0&nbsp;&nbsp;**master**-cc0.2.0|
 |**rfinder**|**master**-cc0.2.0||
 |**shadems**|cc0.2.0|**0.5.3**-cc0.2.0&nbsp;&nbsp;**master**-cc0.2.0|
@@ -23,7 +24,7 @@
 |**spimple**|**base**-cc0.2.0|**master**-cc0.2.0|
 |**sunblocker**|**master**-cc0.2.0|**1.0.1**-cc0.2.0|
 |**tricolour**|cc0.2.0|**0.1.8.1**-cc0.2.0&nbsp;&nbsp;**master**-cc0.2.0|
-|**wsclean**|**3.5**-cc0.2.0|**2.10.1-kern7**-cc0.2.0&nbsp;&nbsp;**3.0.1**-cc0.2.0&nbsp;&nbsp;**3.1**-cc0.2.0&nbsp;&nbsp;**3.1-kern8**-cc0.2.0&nbsp;&nbsp;**3.2**-cc0.2.0&nbsp;&nbsp;**3.3**-cc0.2.0&nbsp;&nbsp;**3.4**-cc0.2.0|
+|**wsclean**|**3.6-haswell**-cc0.2.0|**2.10.1-kern7**-cc0.2.0&nbsp;&nbsp;**3.0.1-haswell**-cc0.2.0&nbsp;&nbsp;**3.1-haswell**-cc0.2.0&nbsp;&nbsp;**3.1-kern8**-cc0.2.0&nbsp;&nbsp;**3.2-haswell**-cc0.2.0&nbsp;&nbsp;**3.3-haswell**-cc0.2.0&nbsp;&nbsp;**3.4-haswell**-cc0.2.0&nbsp;&nbsp;**3.5-haswell**-cc0.2.0&nbsp;&nbsp;**3.5-skylake**-cc0.2.0&nbsp;&nbsp;**3.6-skylake**-cc0.2.0|
 
 
 <br><br>*This file was automatically generated by build-cargo. Do not edit.*
diff --git a/cultcargo/bdsf.yml b/cultcargo/bdsf.yml
index e06c58f..f81e6be 100644
--- a/cultcargo/bdsf.yml
+++ b/cultcargo/bdsf.yml
@@ -7,7 +7,7 @@ cabs:
     info: Uses PyBDSF to source-find within an image and write source catalog(s) (https://pybdsf.readthedocs.io/)
     image: 
       _use: vars.cult-cargo.images
-      name: python-astro
+      name: bdsf
     command: |
       import sys
       import bdsf as bdsm
diff --git a/cultcargo/builder/build_cargo.py b/cultcargo/builder/build_cargo.py
index 9a9169c..18a0799 100755
--- a/cultcargo/builder/build_cargo.py
+++ b/cultcargo/builder/build_cargo.py
@@ -411,7 +411,6 @@ def format_md_version(vers):
                 found_linked = {}
                 not_found = []
                 # make list of found and not found images
-                print(remote_images_exist[image])
                 for version, (exists, linked) in remote_images_exist[image].items():
                     if exists:
                         found_linked[version] = linked
diff --git a/cultcargo/builder/cargo-manifest.yml b/cultcargo/builder/cargo-manifest.yml
index 8254fc3..a7bfae8 100644
--- a/cultcargo/builder/cargo-manifest.yml
+++ b/cultcargo/builder/cargo-manifest.yml
@@ -17,7 +17,7 @@ assign:
   pre_install: ''
   post_install: ''
   extra_deps: ''
-
+  default_pip_base_image: python-base
   default_python_version: '3.10'
 
 images:
@@ -38,18 +38,16 @@ images:
   # These are suitable as base images for pip installs
   python-base:
     versions:
-#      '3.12': {}   # having some trouble with 3.12 so ignoring it for now
-      '3.11': {}
-      '3.10': {}
+      '3.12': {}   
       '3.9': {}
-      '3.8': {}
+      '3.10': {}
+      '3.11': {}
 
   # Python base will all the astro goodies (and stimela) thrown in
   # This is the default image stimela uses for python cabs
   python-astro:
     versions:
-#      '3.12': {}
-      '3.8': {}
+      '3.12': {}
       '3.9': {}
       '3.10': {}
       '3.11': {}
@@ -71,6 +69,7 @@ images:
   wsclean:
     assign:
       kern_version: 9
+      target_cpu: haswell
     versions:
       # these versions shipped in KERN
       '2.10.1-kern7':  # frozen version
@@ -91,22 +90,37 @@ images:
       # '2.10.1':
       #   dockerfile: Dockerfile.build.2x
       #   tag: v2.10.1
-      '3.0.1':
+      '3.0.1-haswell':
+        package_version: 3.0.1
+        dockerfile: Dockerfile.build
+      '3.1-haswell':
+        package_version: 3.1
         dockerfile: Dockerfile.build
-      '3.1':
+      '3.2-haswell':
+        package_version: 3.2
         dockerfile: Dockerfile.build
-      '3.2':
+      '3.3-haswell':
+        package_version: 3.3
         dockerfile: Dockerfile.build
-      '3.3':
+      '3.4-haswell':
+        package_version: 3.4
         dockerfile: Dockerfile.build
-      '3.4':
+      '3.5-skylake':
+        package_version: 3.5
+        target_cpu: skylake
         dockerfile: Dockerfile.build
-      '3.5':
+      '3.5-haswell':
+        package_version: 3.5
+        dockerfile: Dockerfile.build
+      '3.6-skylake':
+        package_version: 3.6
+        target_cpu: skylake
+        kern_version: dev
+        dockerfile: Dockerfile.build
+      '3.6-haswell':
+        package_version: 3.6
+        kern_version: dev
         dockerfile: Dockerfile.build
-      ## build error -- casacore problems on kern-9, and cmake version on kern-dev
-      # '3.6':
-      #   kern_version: dev
-      #   dockerfile: Dockerfile.build
 
   casa:
     assign:
@@ -130,6 +144,16 @@ images:
       '6.7':
           wheel_version: 6.7.0.31
 
+  bdsf:
+    assign:
+      default_pip_base_image: python-astro
+      default_python_version: '3.9'    # use older python and astropy for bdsf 1.12
+      extra_deps: "'matplotlib<3.10' mpl-tools"  # this astropy doesn't like 3.10, too
+      CMD: "python -c 'import bdsf; print(bdsf)'"
+    versions:
+      '1.12.0':
+        package: bdsf==1.12.0
+
   breizorro:
     versions:
       '0.1.1':
@@ -162,10 +186,6 @@ images:
   tricolour:
     assign:
       default_python_version: '3.8'
-      # python: python3.8
-      # extra_deps: -U scipy 
-    #  pre_install: RUN pip uninstall -y bokeh # bokeh causes deps conflict with numpy pin in tricolour
-    #  extra_deps: numpy\<1.20 # numba==0.54.0 bokeh\<3 psutil
     versions:
       '0.1.8.1':
         package: tricolour==0.1.8.1
@@ -186,7 +206,7 @@ images:
 
   msutils:
     assign:
-      CMD: /bin/true  # no main binary as such
+      CMD: "python -c 'import MSUtils; print(MSUtils)'"
     versions:
       '1.2.0':
         package: msutils==1.2.0
diff --git a/cultcargo/casa/flag.yml b/cultcargo/casa/flag.yml
index f603a47..0b428e1 100644
--- a/cultcargo/casa/flag.yml
+++ b/cultcargo/casa/flag.yml
@@ -10,7 +10,9 @@ cabs:
         _use: lib.misc.casa6.command-data
         inputs:
             _use: lib.params.casa.base-inputs
-            # TODO decide on the write_parent_dir: true
+            ms:
+                # since a new "<MS>.flagversions" may need to be created, mark parent dir of ms as writeable
+                write_parent_dir: true
             versionname:
                 info: "flag version name"
             mode: 
@@ -43,7 +45,6 @@ cabs:
         _use: lib.misc.casa6.command-data
         inputs:
             _use: lib.params.casa.ms-field-spw-inputs
-            #    write_parent_dir: true
             mode:
                 info: Flagging mode
                 choices:
diff --git a/cultcargo/genesis/casa/casa-inputs.yml b/cultcargo/genesis/casa/casa-inputs.yml
index 4eb866c..dafdeb4 100644
--- a/cultcargo/genesis/casa/casa-inputs.yml
+++ b/cultcargo/genesis/casa/casa-inputs.yml
@@ -33,3 +33,9 @@ lib:
                 image: 
                     _use: vars.cult-cargo.images
                     name: casa6
+                backend:
+                    singularity:
+                        bind_dirs:
+                            dot-casa:
+                                host: empty
+                                target: ~/.casa
diff --git a/cultcargo/genesis/wsclean/wsclean-base.yml b/cultcargo/genesis/wsclean/wsclean-base.yml
index b177b13..cde0b52 100644
--- a/cultcargo/genesis/wsclean/wsclean-base.yml
+++ b/cultcargo/genesis/wsclean/wsclean-base.yml
@@ -171,6 +171,12 @@ lib:
           dtype: float
         maxuvw-m:
           dtype: float
+        mem: 
+          dtype: int
+          info: "Limit memory usage to the given percentage of the total system memory. This is an approximate value. Default: 100."
+        abs-mem:
+          dtype: int
+          info: "Like -mem, but this specifies a fixed amount of memory in gigabytes."
 
       base-outputs:
         source-list:
diff --git a/cultcargo/images/Dockerfile.generic.pip b/cultcargo/images/Dockerfile.generic.pip
index ba81aef..504f9fc 100644
--- a/cultcargo/images/Dockerfile.generic.pip
+++ b/cultcargo/images/Dockerfile.generic.pip
@@ -1,8 +1,12 @@
-FROM {REGISTRY}/python-base:{default_python_version}-{BUNDLE_VERSION}
+FROM {REGISTRY}/{default_pip_base_image}:{default_python_version}-{BUNDLE_VERSION}
 
 {pre_install}
 
-RUN python{default_python_version} -m pip install --no-cache-dir {package} {extra_deps}
+RUN uv python pin python{default_python_version}
+RUN uv pip -n install --system {package} {extra_deps}
+
+## leaving old command for reference
+# RUN python{default_python_version} -m pip install --no-cache-dir {package} {extra_deps}
 
 {post_install}
 
diff --git a/cultcargo/images/bdsf/Dockerfile b/cultcargo/images/bdsf/Dockerfile
new file mode 120000
index 0000000..a161461
--- /dev/null
+++ b/cultcargo/images/bdsf/Dockerfile
@@ -0,0 +1 @@
+../Dockerfile.generic.pip
\ No newline at end of file
diff --git a/cultcargo/images/casa6/Dockerfile b/cultcargo/images/casa6/Dockerfile
index 12092d2..a10f802 100644
--- a/cultcargo/images/casa6/Dockerfile
+++ b/cultcargo/images/casa6/Dockerfile
@@ -6,10 +6,14 @@ RUN apt-get update && apt-get -y upgrade && \
    && rm -rf /var/lib/apt/lists/* \
    && rm -rf /var/cache/apt/archives 
 
-RUN pip install --no-cache-dir --upgrade numpy casatools=={wheel_version} casatasks=={wheel_version} casaplotms casaconfig casadata
-
-# needed for casaplotms
-RUN pip install --no-cache-dir "protobuf==3.20"
+RUN uv python pin python{default_python_version}
+ 
+## leaving old command for reference
+#RUN pip install --no-cache-dir --upgrade numpy casatools=={wheel_version} casatasks=={wheel_version} casaplotms casaconfig casadata
+
+# NB: protobuf==3.20 required by casa
+RUN uv pip -n install --system --upgrade numpy \
+    casatools=={wheel_version} casatasks=={wheel_version} casaplotms casaconfig casadata protobuf==3.20
 
 RUN mkdir -p /opt/casa/data
 
diff --git a/cultcargo/images/ddfacet/Dockerfile b/cultcargo/images/ddfacet/Dockerfile
index bc10de7..b5020af 100644
--- a/cultcargo/images/ddfacet/Dockerfile
+++ b/cultcargo/images/ddfacet/Dockerfile
@@ -48,7 +48,7 @@ RUN apt-get update && \
 
 {pre_install}
 
-RUN python{default_python_version} -mpip install --use-pep517 --no-cache-dir -U matplotlib dask-ms python-casacore casadata ninja
+RUN python{default_python_version} -mpip install --use-pep517 --no-cache-dir -U matplotlib mpl-tools dask-ms python-casacore casadata ninja
 RUN python{default_python_version} -mpip install --use-pep517 --no-cache-dir {package} {extra_deps}
 
 {post_install}
diff --git a/cultcargo/images/python-astro/Dockerfile b/cultcargo/images/python-astro/Dockerfile
index e01e067..07c1ec7 100644
--- a/cultcargo/images/python-astro/Dockerfile
+++ b/cultcargo/images/python-astro/Dockerfile
@@ -1,9 +1,11 @@
 FROM {REGISTRY}/python-base:{VERSION}-{BUNDLE_VERSION}
 
 # add useful astro stuff
-RUN python{VERSION} -m pip install --no-cache-dir \
+# RUN python{VERSION} -m 
+RUN uv python pin python{VERSION}
+RUN uv pip -n install --system \
     python-casacore astropy astroplan regions astro-tigger-lsm \
-    owlcat dask-ms scipy omegaconf bdsf msutils \
+    owlcat dask-ms scipy omegaconf msutils \
     stimela katbeam
 
 # set XDG cache (normally ~/.cache)
diff --git a/cultcargo/images/python-base/Dockerfile b/cultcargo/images/python-base/Dockerfile
index 79bfa13..edd18cb 100644
--- a/cultcargo/images/python-base/Dockerfile
+++ b/cultcargo/images/python-base/Dockerfile
@@ -8,12 +8,14 @@ RUN apt-get update && apt-get install apt-utils && \
     && rm -rf /var/lib/apt/lists/* \
     && rm -rf /var/cache/apt/archives 
 
-#RUN update-alternatives --install /usr/bin/python python /usr/bin/python{VERSION} 1
+## left as reminder in case of future problems
+# RUN update-alternatives --install /usr/bin/python python /usr/bin/python{VERSION} 1
 
-# # needed to upgrade pip properly -- sometimes it gets stuck and is unable to upgrade itself
+## left as reminder in case of future problems
+## needed to upgrade pip properly -- sometimes it gets stuck and is unable to upgrade itself
 #RUN curl -sS https://bootstrap.pypa.io/get-pip.py | python{VERSION}
 
-RUN python{VERSION} -m pip install --no-cache-dir -U pip setuptools wheel packaging
+RUN python{VERSION} -m pip install --no-cache-dir -U pip setuptools wheel packaging uv
 
 CMD python{VERSION}
 
diff --git a/cultcargo/images/wsclean/Dockerfile.build b/cultcargo/images/wsclean/Dockerfile.build
index 0d200ad..59de7e2 100644
--- a/cultcargo/images/wsclean/Dockerfile.build
+++ b/cultcargo/images/wsclean/Dockerfile.build
@@ -11,9 +11,9 @@ RUN apt-get update && apt-get -y upgrade && \
     && rm -rf /var/cache/apt/archives 
 
 RUN git clone https://gitlab.com/aroffringa/wsclean.git && \
-    (cd wsclean && git checkout v{VERSION}) && \
+    (cd wsclean && git checkout v{package_version}) && \
     mkdir build && \
-    (cd build && cmake ../wsclean && make -j16) && \
+    (cd build && cmake -D TARGET_CPU={target_cpu} ../wsclean && make -j16) && \
     ln -s /build/wsclean /usr/bin && \
     ln -s /build/chgcentre /usr/bin && \
     rm -fr /wsclean
diff --git a/pyproject.toml b/pyproject.toml
index 4fc2215..652369c 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -8,7 +8,7 @@ readme = "README.md"
 packages = [{include = "cultcargo"}]
 
 [tool.poetry.dependencies]
-python = "^3.9"
+python = ">=3.9 <3.13"
 stimela = "^2.0.3"
 requests = "^2.0"
 


Reviews:
user: login: JSKenyon
body: I have some very minor suggestions/questions. 
state: CHANGES_REQUESTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-02T06:49:25Z
user: login: o-smirnov
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-04-02T07:04:54Z
user: login: o-smirnov
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-04-02T07:06:18Z
user: login: o-smirnov
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-04-02T07:07:29Z
user: login: o-smirnov
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-04-02T07:07:59Z
user: login: JSKenyon
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-02T07:13:46Z
user: login: JSKenyon
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-02T07:15:53Z
user: login: JSKenyon
body: Happy with the changes.
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-04-02T07:26:09Z
user: login: landmanbester
body: Just that typo if it is one, otherwise looks good to go
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-04-02T07:53:35Z
user: login: o-smirnov
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-04-02T10:04:09Z

Review comments:
diff_hunk: @@ -38,18 +38,16 @@ images:
   # These are suitable as base images for pip installs
   python-base:
     versions:
-#      '3.12': {}   # having some trouble with 3.12 so ignoring it for now
-      '3.11': {}
-      '3.10': {}
+      '3.12': {}   # having some trouble with 3.12 so ignoring it for now
path: cultcargo/builder/cargo-manifest.yml
user: login: JSKenyon
body: Remove outdated comment?
created_at: 2025-04-02T06:35:57Z
author_association: CONTRIBUTOR
diff_hunk: @@ -33,3 +33,9 @@ lib:
                 image: 
                     _use: vars.cult-cargo.images
                     name: casa6
+                backend:
+                    singularity:
+                        bind_dirs:
+                            dot-casa:
path: cultcargo/genesis/casa/casa-inputs.yml
user: login: JSKenyon
body: Is `dot-*` a special construct for hidden files/folders?
created_at: 2025-04-02T06:37:42Z
author_association: CONTRIBUTOR
diff_hunk: @@ -8,7 +8,7 @@ readme = "README.md"
 packages = [{include = "cultcargo"}]
 
 [tool.poetry.dependencies]
-python = "^3.9"
+python = "^3.9 <3.13"
path: pyproject.toml
user: login: JSKenyon
body: This looks odd to me. `">=3.9, <3.13"` may be clearer.
created_at: 2025-04-02T06:47:45Z
author_association: CONTRIBUTOR
diff_hunk: @@ -33,3 +33,9 @@ lib:
                 image: 
                     _use: vars.cult-cargo.images
                     name: casa6
+                backend:
+                    singularity:
+                        bind_dirs:
+                            dot-casa:
path: cultcargo/genesis/casa/casa-inputs.yml
user: login: o-smirnov
body: No, the label is arbitrary.
created_at: 2025-04-02T07:04:54Z
author_association: MEMBER
diff_hunk: @@ -33,3 +33,9 @@ lib:
                 image: 
                     _use: vars.cult-cargo.images
                     name: casa6
+                backend:
+                    singularity:
+                        bind_dirs:
+                            dot-casa:
path: cultcargo/genesis/casa/casa-inputs.yml
user: login: o-smirnov
body: See https://github.com/caracal-pipeline/stimela/issues/377#issuecomment-2751627645
created_at: 2025-04-02T07:06:18Z
author_association: MEMBER
diff_hunk: @@ -8,7 +8,7 @@ readme = "README.md"
 packages = [{include = "cultcargo"}]
 
 [tool.poetry.dependencies]
-python = "^3.9"
+python = "^3.9 <3.13"
path: pyproject.toml
user: login: o-smirnov
body: I actually thought "^" was the replacement for ">=" all this time!
created_at: 2025-04-02T07:07:29Z
author_association: MEMBER
diff_hunk: @@ -38,18 +38,16 @@ images:
   # These are suitable as base images for pip installs
   python-base:
     versions:
-#      '3.12': {}   # having some trouble with 3.12 so ignoring it for now
-      '3.11': {}
-      '3.10': {}
+      '3.12': {}   # having some trouble with 3.12 so ignoring it for now
path: cultcargo/builder/cargo-manifest.yml
user: login: o-smirnov
body: Done.
created_at: 2025-04-02T07:07:59Z
author_association: MEMBER
diff_hunk: @@ -8,7 +8,7 @@ readme = "README.md"
 packages = [{include = "cultcargo"}]
 
 [tool.poetry.dependencies]
-python = "^3.9"
+python = "^3.9 <3.13"
path: pyproject.toml
user: login: JSKenyon
body: They have slightly different meanings. So-called caret requirements can be a bit weird: https://python-poetry.org/docs/dependency-specification/#caret-requirements.
created_at: 2025-04-02T07:13:46Z
author_association: CONTRIBUTOR
diff_hunk: @@ -33,3 +33,9 @@ lib:
                 image: 
                     _use: vars.cult-cargo.images
                     name: casa6
+                backend:
+                    singularity:
+                        bind_dirs:
+                            dot-casa:
path: cultcargo/genesis/casa/casa-inputs.yml
user: login: JSKenyon
body: Yeah - I recall that change. Was just wondering if there was some meaning to the label I wasn't understanding. 
created_at: 2025-04-02T07:15:53Z
author_association: CONTRIBUTOR
diff_hunk: @@ -48,7 +48,7 @@ RUN apt-get update && \
 
 {pre_install}
 
-RUN python{default_python_version} -mpip install --use-pep517 --no-cache-dir -U matplotlib dask-ms python-casacore casadata ninja
+RUN python{default_python_version} -mpip install --use-pep517 --no-cache-dir -U matplotlib mpl-tools dask-ms python-casacore casadata ninja
path: cultcargo/images/ddfacet/Dockerfile
user: login: landmanbester
body: is the `-mpip` a typo?
created_at: 2025-04-02T07:51:26Z
author_association: CONTRIBUTOR
diff_hunk: @@ -48,7 +48,7 @@ RUN apt-get update && \
 
 {pre_install}
 
-RUN python{default_python_version} -mpip install --use-pep517 --no-cache-dir -U matplotlib dask-ms python-casacore casadata ninja
+RUN python{default_python_version} -mpip install --use-pep517 --no-cache-dir -U matplotlib mpl-tools dask-ms python-casacore casadata ninja
path: cultcargo/images/ddfacet/Dockerfile
user: login: o-smirnov
body: No, that's the official way to invoke pip via python.
created_at: 2025-04-02T10:04:09Z
author_association: MEMBER

PR comments:
user: login: o-smirnov
created_at: 2025-04-01T14:45:58Z
body: Dunno why ``docker manifest`` is failing weirdly inside the github action. It works fine for me locally. Will investigate tomorrow.
author_association: MEMBER
user: login: o-smirnov
created_at: 2025-04-01T22:24:17Z
body: > Dunno why `docker manifest` is failing weirdly inside the github action. It works fine for me locally. Will investigate tomorrow.

Funny, rerunning the actions cleared up the error. It seems that github actions sometimes start up in a VM with an older versions of docker, and sometimes a newer one, WTF. If the problem persists, ChatGPT offers this solution to upgrade docker inside the action:

https://chatgpt.com/share/67ec674b-3bc4-8003-8c4e-2026958ee75b
author_association: MEMBER
user: login: o-smirnov
created_at: 2025-04-01T22:24:43Z
body: @landmanbester @JSKenyon ok to review now.
author_association: MEMBER
user: login: o-smirnov
created_at: 2025-04-02T07:11:38Z
body: Thanks @JSKenyon. Minor changes incoming (including for #95).
author_association: MEMBER
user: login: o-smirnov
created_at: 2025-04-02T07:21:32Z
body: OK please review latest changes. If checks fail, could you please restart the failing jobs (I'll be off the laptop for the next couple of hours). Docker continues to fail intermittently, which is a whole other mystery to investigate.
author_association: MEMBER