From c6e62dceb1dde3f9df51dbb0149811709939f91b Mon Sep 17 00:00:00 2001 From: Joe Naegele Date: Tue, 9 Dec 2025 15:06:21 +0000 Subject: [PATCH 1/7] Empty commit From 96e5b5938f7cec61093e7b2e766cf723a5ff073a Mon Sep 17 00:00:00 2001 From: Joe Naegele Date: Tue, 9 Dec 2025 15:35:15 +0000 Subject: [PATCH 2/7] Bump CMake and Ninja versions --- environment.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/environment.yml b/environment.yml index 95d0800..5872ac7 100644 --- a/environment.yml +++ b/environment.yml @@ -6,7 +6,7 @@ channels: dependencies: - bash-completion=2.11 - boost=1.80.0 - - cmake=3.21.3 + - cmake=3.25.1 - fmt=8.1.1 - gcc_linux-64=11.2.0 - gdb=11.2 @@ -19,7 +19,7 @@ dependencies: - howardhinnant_date=3.0.1 - just=1.5.0 - matplotlib=3.6.2 - - ninja=1.11.0 + - ninja=1.13.0 - nlohmann_json=3.11.2 - nodejs=18.12.1 # local - python=3.9.15 From 75967e4330c548038f1740c3642c01fc3b0fafa6 Mon Sep 17 00:00:00 2001 From: Joe Naegele Date: Tue, 9 Dec 2025 20:31:57 +0000 Subject: [PATCH 3/7] Update GCC and suppress false positive warnings --- .devcontainer/Dockerfile | 6 +++--- ...> matlab-r2023b.ubuntu-24.04.dependencies.txt} | 15 +++++++++------ cpp/mrd-tools/mrd_stream_recon.cc | 11 ++++++++++- environment.yml | 14 +++++++------- 4 files changed, 29 insertions(+), 17 deletions(-) rename .devcontainer/{matlab-r2023b.ubuntu-22.04.dependencies.txt => matlab-r2023b.ubuntu-24.04.dependencies.txt} (80%) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 5bc99a6..901b38f 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1,4 +1,4 @@ -ARG DEVCONTAINER_BASE=mcr.microsoft.com/devcontainers/base:1.0.23-ubuntu-22.04 +ARG DEVCONTAINER_BASE=mcr.microsoft.com/devcontainers/base:ubuntu-24.04 ######################################################### # file-normalizer stage @@ -13,7 +13,7 @@ FROM mcr.microsoft.com/oss/busybox/busybox:1.33.1 as file-normalizer COPY environment.yml \ .devcontainer/devcontainer.bashrc \ - .devcontainer/matlab-r2023b.ubuntu-22.04.dependencies.txt \ + .devcontainer/matlab-r2023b.ubuntu-24.04.dependencies.txt \ /data/ RUN chmod -R 555 /data/ @@ -108,7 +108,7 @@ RUN wget --quiet "https://github.com/microsoft/yardl/releases/download/v${YARDL_ ENV DEBIAN_FRONTEND="noninteractive" TZ="Etc/UTC" -COPY --from=file-normalizer /data/matlab-r2023b.ubuntu-22.04.dependencies.txt /tmp/matlab-dependencies.txt +COPY --from=file-normalizer /data/matlab-r2023b.ubuntu-24.04.dependencies.txt /tmp/matlab-dependencies.txt RUN export DEBIAN_FRONTEND=noninteractive \ && apt-get update \ diff --git a/.devcontainer/matlab-r2023b.ubuntu-22.04.dependencies.txt b/.devcontainer/matlab-r2023b.ubuntu-24.04.dependencies.txt similarity index 80% rename from .devcontainer/matlab-r2023b.ubuntu-22.04.dependencies.txt rename to .devcontainer/matlab-r2023b.ubuntu-24.04.dependencies.txt index 230ba3f..1f0e7c4 100644 --- a/.devcontainer/matlab-r2023b.ubuntu-22.04.dependencies.txt +++ b/.devcontainer/matlab-r2023b.ubuntu-24.04.dependencies.txt @@ -1,18 +1,19 @@ ca-certificates -libasound2 +debianutils +libasound2t64 libc6 libcairo-gobject2 libcairo2 libcap2 -libcups2 +libcups2t64 libdrm2 libgbm1 libgdk-pixbuf-2.0-0 libgl1 -libglib2.0-0 +libglib2.0-0t64 libgstreamer-plugins-base1.0-0 libgstreamer1.0-0 -libgtk-3-0 +libgtk-3-0t64 libice6 libltdl7 libnspr4 @@ -31,7 +32,7 @@ libxfixes3 libxft2 libxinerama1 libxrandr2 -libxt6 +libxt6t64 libxtst6 libxxf86vm1 locales @@ -41,4 +42,6 @@ net-tools procps sudo unzip -zlib1g \ No newline at end of file +wget +x11-xkb-utils +zlib1g diff --git a/cpp/mrd-tools/mrd_stream_recon.cc b/cpp/mrd-tools/mrd_stream_recon.cc index c3484da..cb9e3a1 100644 --- a/cpp/mrd-tools/mrd_stream_recon.cc +++ b/cpp/mrd-tools/mrd_stream_recon.cc @@ -1,11 +1,20 @@ + #include "mrd/binary/protocols.h" #include "mrd/protocols.h" #include "mrd/types.h" #include #include -#include + +// NOTE: +// GCC 13+ appears to emit false positive warnings for array-bounds and stringop-overflow +// when using xt::view with xt::range (specifically in `remove_oversampling` below). +// The assignment is correct and there's no overflow, so we can suppress the warnings. +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Warray-bounds" +#pragma GCC diagnostic ignored "-Wstringop-overflow" #include +#pragma GCC diagnostic pop xt::xtensor, 4> fftshift(xt::xtensor, 4> x) { return xt::roll(xt::roll(x, x.shape(3) / 2, 3), x.shape(2) / 2, 2); diff --git a/environment.yml b/environment.yml index 5872ac7..2140804 100644 --- a/environment.yml +++ b/environment.yml @@ -7,27 +7,27 @@ dependencies: - bash-completion=2.11 - boost=1.80.0 - cmake=3.25.1 - - fmt=8.1.1 - - gcc_linux-64=11.2.0 + - fmt=12.0.0 + - gcc_linux-64=15.2.0 - gdb=11.2 - - gxx_linux-64=11.2.0 + - gxx_linux-64=15.2.0 - h5py=3.2.1 - hdf5=1.10.6 - imagemagick=7.0.11_13 - ipykernel=6.23.1 - ismrmrd>=1.14.2 - - howardhinnant_date=3.0.1 - - just=1.5.0 + - howardhinnant_date=3.0.3 + - just=1.44.1 - matplotlib=3.6.2 - ninja=1.13.0 - - nlohmann_json=3.11.2 + - nlohmann_json=3.12.0 - nodejs=18.12.1 # local - python=3.9.15 - pyfftw=0.13.1 - shellcheck=0.8.0 - valgrind=3.18.1 - xmlschema=2.2.3 - - xtensor=0.24.2 + - xtensor=0.25.0 - xtensor-fftw=0.2.5 - pip - pip: From cd6f7f18a3cc6828997da47f50d7f30e5fe5e8e4 Mon Sep 17 00:00:00 2001 From: Joe Naegele Date: Tue, 9 Dec 2025 21:19:24 +0000 Subject: [PATCH 4/7] Update GCC in conda build --- cpp/conda/conda_build_config.yaml | 4 ++-- cpp/conda/meta.yaml | 10 +++++----- cpp/mrd-tools/mrd_image_stream_to_png.cc | 8 ++++++++ 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/cpp/conda/conda_build_config.yaml b/cpp/conda/conda_build_config.yaml index 6d8770d..aeab509 100644 --- a/cpp/conda/conda_build_config.yaml +++ b/cpp/conda/conda_build_config.yaml @@ -1,8 +1,8 @@ c_compiler_version: - - 11.2.0 # [linux] + - 15.2.0 # [linux] - 14.0.6 # [osx] cxx_compiler_version: - - 11.2.0 # [linux] + - 15.2.0 # [linux] - 14.0.6 # [osx] MACOSX_DEPLOYMENT_TARGET: # [osx] diff --git a/cpp/conda/meta.yaml b/cpp/conda/meta.yaml index a2b8948..0b6ee4c 100644 --- a/cpp/conda/meta.yaml +++ b/cpp/conda/meta.yaml @@ -18,16 +18,16 @@ requirements: - ninja host: - fftw=3.3.9 - - fmt=8.1.1 - - howardhinnant_date=3.0.1 + - fmt=12.0.0 + - howardhinnant_date=3.0.3 - hdf5=1.10.6 - imagemagick=7.0.11_13 - ismrmrd>=1.14.2 - - nlohmann_json=3.11.2 - - xtensor=0.24.7 + - nlohmann_json=3.12.0 + - xtensor=0.25.0 - xtensor-fftw=0.2.5 run: - - fmt=8.1.1 + - fmt=12.0.0 - hdf5=1.10.6 - imagemagick=7.0.11_13 - ismrmrd>=1.14.2 diff --git a/cpp/mrd-tools/mrd_image_stream_to_png.cc b/cpp/mrd-tools/mrd_image_stream_to_png.cc index 2ca1c95..c6e6454 100644 --- a/cpp/mrd-tools/mrd_image_stream_to_png.cc +++ b/cpp/mrd-tools/mrd_image_stream_to_png.cc @@ -1,4 +1,12 @@ +// NOTE: +// GCC 13+ appears to emit false positive warnings for array-bounds +// when using xt::views (specifically the calls to `xt::amax` below). +// The statements are correct and there's no overflow, so we can suppress the warnings. +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Warray-bounds" #include "mrd/binary/protocols.h" +#pragma GCC diagnostic pop + #include #include #include From 3513be91378dabecdfdb90232b2e12f85406e19d Mon Sep 17 00:00:00 2001 From: Joe Naegele Date: Tue, 9 Dec 2025 21:31:28 +0000 Subject: [PATCH 5/7] Bump MacOS runner version (required) --- .github/workflows/mrd_conda.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/mrd_conda.yml b/.github/workflows/mrd_conda.yml index dcae88b..03d173e 100644 --- a/.github/workflows/mrd_conda.yml +++ b/.github/workflows/mrd_conda.yml @@ -13,7 +13,7 @@ jobs: name: Test and Build Conda Packages strategy: matrix: - os: [ubuntu-latest, macos-13] + os: [ubuntu-latest, macos-14] runs-on: ${{ matrix.os }} defaults: run: From 2d867ebf078b482a6450d4edc6fe9b7c2deb7239 Mon Sep 17 00:00:00 2001 From: Joe Naegele Date: Tue, 9 Dec 2025 21:49:26 +0000 Subject: [PATCH 6/7] Bump MacOS runner to 'latest' (15) This matches the version used to publish Conda packages elsewhere, such as for ismrmrd-python. --- .github/workflows/mrd_conda.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/mrd_conda.yml b/.github/workflows/mrd_conda.yml index 03d173e..2555ee0 100644 --- a/.github/workflows/mrd_conda.yml +++ b/.github/workflows/mrd_conda.yml @@ -13,7 +13,7 @@ jobs: name: Test and Build Conda Packages strategy: matrix: - os: [ubuntu-latest, macos-14] + os: [ubuntu-latest, macos-latest] runs-on: ${{ matrix.os }} defaults: run: From 0e1cb7b5d42075259e3665e97dcf6e29d856f611 Mon Sep 17 00:00:00 2001 From: Joe Naegele Date: Tue, 9 Dec 2025 22:08:20 +0000 Subject: [PATCH 7/7] Disable MacOS runner in CI for now --- .github/workflows/mrd_conda.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/mrd_conda.yml b/.github/workflows/mrd_conda.yml index 2555ee0..9c93d3a 100644 --- a/.github/workflows/mrd_conda.yml +++ b/.github/workflows/mrd_conda.yml @@ -13,7 +13,7 @@ jobs: name: Test and Build Conda Packages strategy: matrix: - os: [ubuntu-latest, macos-latest] + os: [ubuntu-latest] runs-on: ${{ matrix.os }} defaults: run: