From 71aebe4b22ebf829d9764a921f18e98fe05c65cc Mon Sep 17 00:00:00 2001 From: Chandraveer Date: Mon, 13 Apr 2026 18:23:47 +0530 Subject: [PATCH 01/20] bump torchvision to v0.23.0 for libtorch 2.8 (torch 0.17) --- .github/workflows/R-CMD-check.yaml | 12 ++++++------ DESCRIPTION | 4 ++-- NEWS.md | 5 +++++ csrc/CMakeLists.txt | 2 +- csrc/patch/kuint16.patch | 20 -------------------- 5 files changed, 14 insertions(+), 29 deletions(-) diff --git a/.github/workflows/R-CMD-check.yaml b/.github/workflows/R-CMD-check.yaml index 12ba9fc..11f10a9 100644 --- a/.github/workflows/R-CMD-check.yaml +++ b/.github/workflows/R-CMD-check.yaml @@ -26,8 +26,8 @@ jobs: - {runner: [self-hosted, m1], r_version: '', os: macOS} - {runner: windows-2019, r_version: release, os: windows} - {runner: ubuntu-latest, r_version: release, os: ubuntu} - - {runner: [self-hosted, linux], r_version: release, os: ubuntu, cuda: 11.8, cuda_patch: 0} - - {runner: windows-2019, r_version: release, os: windows, cuda: 11.8, cuda_patch: 0} + - {runner: [self-hosted, linux], r_version: release, os: ubuntu, cuda: 12.6, cuda_patch: 0} + - {runner: windows-2019, r_version: release, os: windows, cuda: 12.6, cuda_patch: 0} include: - config: {os: ubuntu} @@ -63,7 +63,7 @@ jobs: cmake-version: '3.31' - if: ${{matrix.config.cuda != ''}} - uses: Jimver/cuda-toolkit@v0.2.21 + uses: Jimver/cuda-toolkit@v0.2.23 id: cuda-toolkit with: cuda: '${{matrix.config.cuda}}.${{matrix.config.cuda_patch}}' @@ -90,8 +90,8 @@ jobs: run: | version=$(Rscript -e "cat(as.character(desc::desc_get_version()))") fname=$(Rscript -e "cat(list.files('csrc/build/', '*.zip'))") - echo "::set-output name=version::$version" - echo "::set-output name=fname::$fname" + echo "version=$version" >> $GITHUB_OUTPUT + echo "fname=$fname" >> $GITHUB_OUTPUT - uses: svenstaro/upload-release-action@v2 if: github.ref_name == 'main' @@ -154,7 +154,7 @@ jobs: id: version run: | version=$(Rscript -e "cat(as.character(desc::desc_get_version()))") - echo "::set-output name=version::$version" + echo "version=$version" >> $GITHUB_OUTPUT - uses: actions/download-artifact@v4 with: diff --git a/DESCRIPTION b/DESCRIPTION index 9ace0cd..1701ed0 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,6 +1,6 @@ Package: torchvisionlib Title: Additional Operators for Image Models -Version: 0.6.0 +Version: 0.7.0 Authors@R: c( person("Daniel", "Falbel", , "daniel@rstudio.com", role = c("aut", "cre")), person(family = "RStudio", role = c("cph")) @@ -19,7 +19,7 @@ LinkingTo: torch Imports: Rcpp, - torch (>= 0.14.0), + torch (>= 0.17.0), rlang, glue, withr diff --git a/NEWS.md b/NEWS.md index a92fc08..ab73dd2 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,5 +1,10 @@ # torchvisionlib (development version) +# torchvisionlib 0.7.0 + +- Updates to support LibTorch v2.8 + + # torchvisionlib 0.5.0 - Updates to support LibTorch v2.0.1 diff --git a/csrc/CMakeLists.txt b/csrc/CMakeLists.txt index c705c75..f872721 100644 --- a/csrc/CMakeLists.txt +++ b/csrc/CMakeLists.txt @@ -105,7 +105,7 @@ endif() message(STATUS "CMAKE_ARGS: ${TORCHVISION_CMAKE_ARGS}") ExternalProject_Add(TorchVision-project GIT_REPOSITORY https://github.com/pytorch/vision - GIT_TAG v0.20.1 + GIT_TAG v0.23.0 DEPENDS ${TORCHVISION_DEPENDS} CMAKE_CACHE_ARGS ${TORCHVISION_CMAKE_ARGS} PREFIX "${CMAKE_CURRENT_BINARY_DIR}/libtorchvision" diff --git a/csrc/patch/kuint16.patch b/csrc/patch/kuint16.patch index 0e67e73..875444a 100644 --- a/csrc/patch/kuint16.patch +++ b/csrc/patch/kuint16.patch @@ -1,23 +1,3 @@ -diff --git a/torchvision/csrc/io/image/cpu/decode_png.cpp b/torchvision/csrc/io/image/cpu/decode_png.cpp -index ede14c1e94..a42bd06c35 100644 ---- a/torchvision/csrc/io/image/cpu/decode_png.cpp -+++ b/torchvision/csrc/io/image/cpu/decode_png.cpp -@@ -195,9 +195,13 @@ torch::Tensor decode_png( - - auto num_pixels_per_row = width * channels; - auto is_16_bits = bit_depth == 16; -+ -+ if (is_16_bits) { -+ throw std::runtime_error("16-bit PNG images are not supported."); -+ } -+ - auto tensor = torch::empty( -- {int64_t(height), int64_t(width), channels}, -- is_16_bits ? at::kUInt16 : torch::kU8); -+ {int64_t(height), int64_t(width), channels}, torch::kU8); - if (is_little_endian()) { - png_set_swap(png_ptr); - } diff --git a/torchvision/csrc/ops/nms.cpp b/torchvision/csrc/ops/nms.cpp index 5ecf8812f1..2cbbe93873 100644 --- a/torchvision/csrc/ops/nms.cpp From 8b9fb0c97ce8ee5508fd89d307f61e18753a3199 Mon Sep 17 00:00:00 2001 From: Daniel Falbel Date: Mon, 13 Apr 2026 11:49:25 -0300 Subject: [PATCH 02/20] Upgrade Windows CI runners from windows-2019 to windows-2022 --- .github/workflows/R-CMD-check.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/R-CMD-check.yaml b/.github/workflows/R-CMD-check.yaml index 11f10a9..10f9120 100644 --- a/.github/workflows/R-CMD-check.yaml +++ b/.github/workflows/R-CMD-check.yaml @@ -24,10 +24,10 @@ jobs: config: - {runner: macOS-13, r_version: release, os: macOS} - {runner: [self-hosted, m1], r_version: '', os: macOS} - - {runner: windows-2019, r_version: release, os: windows} + - {runner: windows-2022, r_version: release, os: windows} - {runner: ubuntu-latest, r_version: release, os: ubuntu} - {runner: [self-hosted, linux], r_version: release, os: ubuntu, cuda: 12.6, cuda_patch: 0} - - {runner: windows-2019, r_version: release, os: windows, cuda: 12.6, cuda_patch: 0} + - {runner: windows-2022, r_version: release, os: windows, cuda: 12.6, cuda_patch: 0} include: - config: {os: ubuntu} From d424bc74a32e0424b86d17e81e84489cbc89a356 Mon Sep 17 00:00:00 2001 From: Daniel Falbel Date: Mon, 13 Apr 2026 11:49:59 -0300 Subject: [PATCH 03/20] Use CUDA 12.8 in CI --- .github/workflows/R-CMD-check.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/R-CMD-check.yaml b/.github/workflows/R-CMD-check.yaml index 10f9120..bf77e59 100644 --- a/.github/workflows/R-CMD-check.yaml +++ b/.github/workflows/R-CMD-check.yaml @@ -26,8 +26,8 @@ jobs: - {runner: [self-hosted, m1], r_version: '', os: macOS} - {runner: windows-2022, r_version: release, os: windows} - {runner: ubuntu-latest, r_version: release, os: ubuntu} - - {runner: [self-hosted, linux], r_version: release, os: ubuntu, cuda: 12.6, cuda_patch: 0} - - {runner: windows-2022, r_version: release, os: windows, cuda: 12.6, cuda_patch: 0} + - {runner: [self-hosted, linux], r_version: release, os: ubuntu, cuda: 12.8, cuda_patch: 0} + - {runner: windows-2022, r_version: release, os: windows, cuda: 12.8, cuda_patch: 0} include: - config: {os: ubuntu} From d4762dd1bf79529c842f0126460ca23209b0f89f Mon Sep 17 00:00:00 2001 From: Daniel Falbel Date: Mon, 13 Apr 2026 11:54:24 -0300 Subject: [PATCH 04/20] Use ubuntu-latest for CUDA lib build, self-hosted for tests --- .github/workflows/R-CMD-check.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/R-CMD-check.yaml b/.github/workflows/R-CMD-check.yaml index bf77e59..92ba98f 100644 --- a/.github/workflows/R-CMD-check.yaml +++ b/.github/workflows/R-CMD-check.yaml @@ -26,7 +26,7 @@ jobs: - {runner: [self-hosted, m1], r_version: '', os: macOS} - {runner: windows-2022, r_version: release, os: windows} - {runner: ubuntu-latest, r_version: release, os: ubuntu} - - {runner: [self-hosted, linux], r_version: release, os: ubuntu, cuda: 12.8, cuda_patch: 0} + - {runner: ubuntu-latest, r_version: release, os: ubuntu, cuda: 12.8, cuda_patch: 0} - {runner: windows-2022, r_version: release, os: windows, cuda: 12.8, cuda_patch: 0} include: @@ -120,7 +120,7 @@ jobs: - {os: mac, runner: macOS-13, r: 'release', artifact: '+cpu+x86_64-Darwin.zip'} - {os: m1mac, runner: ['self-hosted', 'm1'], artifact: '+cpu+arm64-Darwin.zip'} - {os: windows, runner: windows-latest, r: 'release', rtools: '42', artifact: '+cpu-win64.zip'} - - {os: ubuntu, runner: ubuntu-20.04, r: 'release', artifact: '+cpu-Linux.zip'} + - {os: ubuntu, runner: [self-hosted, linux], r: 'release', artifact: '+cpu-Linux.zip'} env: GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} From 3f80d873bb970acf3cbe99ba5f0591a47b210988 Mon Sep 17 00:00:00 2001 From: Daniel Falbel Date: Mon, 13 Apr 2026 11:57:06 -0300 Subject: [PATCH 05/20] Upgrade macOS runners from macOS-13 to macOS-14 --- .github/workflows/R-CMD-check.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/R-CMD-check.yaml b/.github/workflows/R-CMD-check.yaml index 92ba98f..ba70d06 100644 --- a/.github/workflows/R-CMD-check.yaml +++ b/.github/workflows/R-CMD-check.yaml @@ -22,7 +22,7 @@ jobs: fail-fast: false matrix: config: - - {runner: macOS-13, r_version: release, os: macOS} + - {runner: macOS-14, r_version: release, os: macOS} - {runner: [self-hosted, m1], r_version: '', os: macOS} - {runner: windows-2022, r_version: release, os: windows} - {runner: ubuntu-latest, r_version: release, os: ubuntu} @@ -117,7 +117,7 @@ jobs: fail-fast: false matrix: config: - - {os: mac, runner: macOS-13, r: 'release', artifact: '+cpu+x86_64-Darwin.zip'} + - {os: mac, runner: macOS-14, r: 'release', artifact: '+cpu+x86_64-Darwin.zip'} - {os: m1mac, runner: ['self-hosted', 'm1'], artifact: '+cpu+arm64-Darwin.zip'} - {os: windows, runner: windows-latest, r: 'release', rtools: '42', artifact: '+cpu-win64.zip'} - {os: ubuntu, runner: [self-hosted, linux], r: 'release', artifact: '+cpu-Linux.zip'} From 117e0f9e03d4f801f037a2227a3e79393dadbc23 Mon Sep 17 00:00:00 2001 From: Daniel Falbel Date: Mon, 13 Apr 2026 12:25:43 -0300 Subject: [PATCH 06/20] Install cli package before cmake to fix torch install script --- .github/workflows/R-CMD-check.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/R-CMD-check.yaml b/.github/workflows/R-CMD-check.yaml index ba70d06..f36d603 100644 --- a/.github/workflows/R-CMD-check.yaml +++ b/.github/workflows/R-CMD-check.yaml @@ -76,7 +76,7 @@ jobs: - name: Install dependencies run: | - Rscript -e "install.packages(c('remotes', 'desc', 'rcmdcheck', 'hms'))" + Rscript -e "install.packages(c('remotes', 'desc', 'rcmdcheck', 'hms', 'cli'))" Rscript -e "remotes::install_github('mlverse/torchexport', force = TRUE)" - run: | From 5308feacdec89d2d33154f8ab02487834643dc9e Mon Sep 17 00:00:00 2001 From: Daniel Falbel Date: Mon, 13 Apr 2026 13:36:33 -0300 Subject: [PATCH 07/20] Load cli package before sourcing torch install script --- csrc/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/csrc/CMakeLists.txt b/csrc/CMakeLists.txt index f872721..001abb4 100644 --- a/csrc/CMakeLists.txt +++ b/csrc/CMakeLists.txt @@ -33,7 +33,7 @@ else() message(STATUS "TORCH_R_VERSION: ${TORCH_R_VERSION}") SET(TORCH_HOME "${CMAKE_CURRENT_BINARY_DIR}/torch") execute_process( - COMMAND Rscript -e "Sys.setenv(TORCH_HOME='${TORCH_HOME}', TORCH_R_VERSION='${TORCH_R_VERSION}', TORCH_COMMIT_SHA='none');source('${TORCH_INSTALL_SCRIPT}'); install_torch();" + COMMAND Rscript -e "library(cli);Sys.setenv(TORCH_HOME='${TORCH_HOME}', TORCH_R_VERSION='${TORCH_R_VERSION}', TORCH_COMMIT_SHA='none');source('${TORCH_INSTALL_SCRIPT}'); install_torch();" ) endif() From 2ac812a9560c31cdfcda8301ce2a4d632c7c7bd7 Mon Sep 17 00:00:00 2001 From: Daniel Falbel Date: Mon, 13 Apr 2026 13:44:51 -0300 Subject: [PATCH 08/20] Create TORCH_HOME directory before running install script --- csrc/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/csrc/CMakeLists.txt b/csrc/CMakeLists.txt index 001abb4..4bbea7c 100644 --- a/csrc/CMakeLists.txt +++ b/csrc/CMakeLists.txt @@ -32,6 +32,7 @@ else() ) message(STATUS "TORCH_R_VERSION: ${TORCH_R_VERSION}") SET(TORCH_HOME "${CMAKE_CURRENT_BINARY_DIR}/torch") + file(MAKE_DIRECTORY ${TORCH_HOME}) execute_process( COMMAND Rscript -e "library(cli);Sys.setenv(TORCH_HOME='${TORCH_HOME}', TORCH_R_VERSION='${TORCH_R_VERSION}', TORCH_COMMIT_SHA='none');source('${TORCH_INSTALL_SCRIPT}'); install_torch();" ) From 247840814e949373802d700cc0ed0c97ce20163f Mon Sep 17 00:00:00 2001 From: Daniel Falbel Date: Mon, 13 Apr 2026 14:13:16 -0300 Subject: [PATCH 09/20] Cross-compile x86_64 libtorch on macOS-14 ARM runner --- .github/workflows/R-CMD-check.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/R-CMD-check.yaml b/.github/workflows/R-CMD-check.yaml index f36d603..b4f5220 100644 --- a/.github/workflows/R-CMD-check.yaml +++ b/.github/workflows/R-CMD-check.yaml @@ -22,7 +22,7 @@ jobs: fail-fast: false matrix: config: - - {runner: macOS-14, r_version: release, os: macOS} + - {runner: macOS-14, r_version: release, os: macOS, torch_url: 'https://github.com/mlverse/libtorch-mac-m1/releases/download/LibTorch-for-R/libtorch-x86_64-v2.8.0.zip', cmake_args: '-DCMAKE_OSX_ARCHITECTURES=x86_64'} - {runner: [self-hosted, m1], r_version: '', os: macOS} - {runner: windows-2022, r_version: release, os: windows} - {runner: ubuntu-latest, r_version: release, os: ubuntu} @@ -38,6 +38,7 @@ jobs: TORCH_TEST: 1 GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} CUDA: ${{matrix.config.cuda}} + TORCH_URL: ${{matrix.config.torch_url}} MAKEFLAGS: '-j8' DEBIAN_FRONTEND: 'noninteractive' TZ: 'Etc/UTC' @@ -82,7 +83,7 @@ jobs: - run: | cd csrc mkdir build && cd build - cmake .. + cmake .. ${{ matrix.config.cmake_args }} cmake --build . --target package --config Release --parallel 4 - id: version From 309db52d31a0c0f715109bfbabff6f33d5633e75 Mon Sep 17 00:00:00 2001 From: Daniel Falbel Date: Mon, 13 Apr 2026 14:19:38 -0300 Subject: [PATCH 10/20] Pass CMAKE_OSX_ARCHITECTURES to TorchVision ExternalProject --- csrc/CMakeLists.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/csrc/CMakeLists.txt b/csrc/CMakeLists.txt index 4bbea7c..d4c4685 100644 --- a/csrc/CMakeLists.txt +++ b/csrc/CMakeLists.txt @@ -95,6 +95,9 @@ if(WIN32) elseif(APPLE) list(APPEND TORCHVISION_CMAKE_ARGS -DCMAKE_FIND_FRAMEWORK:STRING=LAST) + if(CMAKE_OSX_ARCHITECTURES) + list(APPEND TORCHVISION_CMAKE_ARGS -DCMAKE_OSX_ARCHITECTURES:STRING=${CMAKE_OSX_ARCHITECTURES}) + endif() endif() if (WIN32) From a765c548724f729415d784cde7a215fdf7f6b914 Mon Sep 17 00:00:00 2001 From: Daniel Falbel Date: Mon, 13 Apr 2026 16:12:53 -0300 Subject: [PATCH 11/20] Install x86_64 Homebrew libs for macOS cross-compilation --- .github/workflows/R-CMD-check.yaml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/R-CMD-check.yaml b/.github/workflows/R-CMD-check.yaml index b4f5220..a777889 100644 --- a/.github/workflows/R-CMD-check.yaml +++ b/.github/workflows/R-CMD-check.yaml @@ -22,7 +22,7 @@ jobs: fail-fast: false matrix: config: - - {runner: macOS-14, r_version: release, os: macOS, torch_url: 'https://github.com/mlverse/libtorch-mac-m1/releases/download/LibTorch-for-R/libtorch-x86_64-v2.8.0.zip', cmake_args: '-DCMAKE_OSX_ARCHITECTURES=x86_64'} + - {runner: macOS-14, r_version: release, os: macOS, torch_url: 'https://github.com/mlverse/libtorch-mac-m1/releases/download/LibTorch-for-R/libtorch-x86_64-v2.8.0.zip', cmake_args: '-DCMAKE_OSX_ARCHITECTURES=x86_64 -DCMAKE_IGNORE_PATH=/opt/homebrew -DCMAKE_PREFIX_PATH=/usr/local'} - {runner: [self-hosted, m1], r_version: '', os: macOS} - {runner: windows-2022, r_version: release, os: windows} - {runner: ubuntu-latest, r_version: release, os: ubuntu} @@ -80,6 +80,12 @@ jobs: Rscript -e "install.packages(c('remotes', 'desc', 'rcmdcheck', 'hms', 'cli'))" Rscript -e "remotes::install_github('mlverse/torchexport', force = TRUE)" + - name: Install x86_64 Homebrew and libraries + if: ${{ contains(matrix.config.cmake_args, 'x86_64') }} + run: | + arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" + arch -x86_64 /usr/local/bin/brew install libpng jpeg-turbo + - run: | cd csrc mkdir build && cd build From d16723665f434f84bdeaf7e5c39332d500fa5bce Mon Sep 17 00:00:00 2001 From: Daniel Falbel Date: Mon, 13 Apr 2026 17:07:16 -0300 Subject: [PATCH 12/20] Use CMAKE_OSX_ARCHITECTURES for package name when cross-compiling --- csrc/CMakeLists.txt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/csrc/CMakeLists.txt b/csrc/CMakeLists.txt index d4c4685..f950d6a 100644 --- a/csrc/CMakeLists.txt +++ b/csrc/CMakeLists.txt @@ -196,7 +196,11 @@ else() endif() if(APPLE) - set(CPACK_PACKAGE_VERSION ${CPACK_PACKAGE_VERSION}+${CMAKE_SYSTEM_PROCESSOR}) + if(CMAKE_OSX_ARCHITECTURES) + set(CPACK_PACKAGE_VERSION ${CPACK_PACKAGE_VERSION}+${CMAKE_OSX_ARCHITECTURES}) + else() + set(CPACK_PACKAGE_VERSION ${CPACK_PACKAGE_VERSION}+${CMAKE_SYSTEM_PROCESSOR}) + endif() endif() include(CPack) From ca9277c0e6a80f693e341893489837e473923be9 Mon Sep 17 00:00:00 2001 From: Daniel Falbel Date: Mon, 13 Apr 2026 21:28:29 -0300 Subject: [PATCH 13/20] Use ubuntu-latest for R-CMD-check Linux job --- .github/workflows/R-CMD-check.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/R-CMD-check.yaml b/.github/workflows/R-CMD-check.yaml index a777889..5ce736f 100644 --- a/.github/workflows/R-CMD-check.yaml +++ b/.github/workflows/R-CMD-check.yaml @@ -127,7 +127,7 @@ jobs: - {os: mac, runner: macOS-14, r: 'release', artifact: '+cpu+x86_64-Darwin.zip'} - {os: m1mac, runner: ['self-hosted', 'm1'], artifact: '+cpu+arm64-Darwin.zip'} - {os: windows, runner: windows-latest, r: 'release', rtools: '42', artifact: '+cpu-win64.zip'} - - {os: ubuntu, runner: [self-hosted, linux], r: 'release', artifact: '+cpu-Linux.zip'} + - {os: ubuntu, runner: ubuntu-latest, r: 'release', artifact: '+cpu-Linux.zip'} env: GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} From f13a0fccc96c181a913a66cf0fabe0c2ec546d65 Mon Sep 17 00:00:00 2001 From: Daniel Falbel Date: Tue, 14 Apr 2026 08:11:57 -0300 Subject: [PATCH 14/20] Install x86_64 R via rig for macOS cross-compile tests --- .github/workflows/R-CMD-check.yaml | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/.github/workflows/R-CMD-check.yaml b/.github/workflows/R-CMD-check.yaml index 5ce736f..6922d28 100644 --- a/.github/workflows/R-CMD-check.yaml +++ b/.github/workflows/R-CMD-check.yaml @@ -124,7 +124,7 @@ jobs: fail-fast: false matrix: config: - - {os: mac, runner: macOS-14, r: 'release', artifact: '+cpu+x86_64-Darwin.zip'} + - {os: mac, runner: macOS-14, r: 'release', arch: 'x86_64', artifact: '+cpu+x86_64-Darwin.zip'} - {os: m1mac, runner: ['self-hosted', 'm1'], artifact: '+cpu+arm64-Darwin.zip'} - {os: windows, runner: windows-latest, r: 'release', rtools: '42', artifact: '+cpu-win64.zip'} - {os: ubuntu, runner: ubuntu-latest, r: 'release', artifact: '+cpu-Linux.zip'} @@ -143,7 +143,7 @@ jobs: if: ${{ !contains(matrix.config.os, 'm1') }} - uses: r-lib/actions/setup-r@v2 - if: ${{ !contains(matrix.config.os, 'm1') }} + if: ${{ !contains(matrix.config.os, 'm1') && matrix.config.arch != 'x86_64' }} with: r-version: ${{ matrix.config.r }} rtools-version: ${{ matrix.config.rtools }} @@ -151,6 +151,14 @@ jobs: use-public-rspm: true windows-path-include-mingw: false + - name: Install x86_64 R via rig + if: ${{ matrix.config.arch == 'x86_64' }} + run: | + curl -Ls https://github.com/r-lib/rig/releases/download/latest/rig-macOS-arm64.pkg -o rig.pkg + sudo installer -pkg rig.pkg -target / + sudo rig add release --arch x86_64 + sudo rig default release + - name: Install dependencies run: | Rscript -e "install.packages(c('remotes', 'desc', 'rcmdcheck'))" -e "remotes::install_deps(dependencies = TRUE, INSTALL_opts='--no-multiarch')" From 8d67ea01e2df400d7b966f91b05627c82dfd9afe Mon Sep 17 00:00:00 2001 From: Daniel Falbel Date: Tue, 14 Apr 2026 08:37:35 -0300 Subject: [PATCH 15/20] Fix rig installation to use Homebrew --- .github/workflows/R-CMD-check.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/R-CMD-check.yaml b/.github/workflows/R-CMD-check.yaml index 6922d28..f9641a7 100644 --- a/.github/workflows/R-CMD-check.yaml +++ b/.github/workflows/R-CMD-check.yaml @@ -154,8 +154,8 @@ jobs: - name: Install x86_64 R via rig if: ${{ matrix.config.arch == 'x86_64' }} run: | - curl -Ls https://github.com/r-lib/rig/releases/download/latest/rig-macOS-arm64.pkg -o rig.pkg - sudo installer -pkg rig.pkg -target / + brew tap r-lib/rig + brew install --cask rig sudo rig add release --arch x86_64 sudo rig default release From 79aa42e0ec014b4d2850d025bdaa9b54a91a9459 Mon Sep 17 00:00:00 2001 From: Daniel Falbel Date: Tue, 14 Apr 2026 10:00:16 -0300 Subject: [PATCH 16/20] Use macOS-15 runner for x86_64 tests to match libtorch deployment target --- .github/workflows/R-CMD-check.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/R-CMD-check.yaml b/.github/workflows/R-CMD-check.yaml index f9641a7..5909575 100644 --- a/.github/workflows/R-CMD-check.yaml +++ b/.github/workflows/R-CMD-check.yaml @@ -124,7 +124,7 @@ jobs: fail-fast: false matrix: config: - - {os: mac, runner: macOS-14, r: 'release', arch: 'x86_64', artifact: '+cpu+x86_64-Darwin.zip'} + - {os: mac, runner: macOS-15, r: 'release', arch: 'x86_64', artifact: '+cpu+x86_64-Darwin.zip'} - {os: m1mac, runner: ['self-hosted', 'm1'], artifact: '+cpu+arm64-Darwin.zip'} - {os: windows, runner: windows-latest, r: 'release', rtools: '42', artifact: '+cpu-win64.zip'} - {os: ubuntu, runner: ubuntu-latest, r: 'release', artifact: '+cpu-Linux.zip'} From 0da57535951b58a933239c11677219b155ce056f Mon Sep 17 00:00:00 2001 From: Daniel Falbel Date: Tue, 14 Apr 2026 10:34:57 -0300 Subject: [PATCH 17/20] Install x86_64 Homebrew and libs on test runner for macOS --- .github/workflows/R-CMD-check.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/R-CMD-check.yaml b/.github/workflows/R-CMD-check.yaml index 5909575..6fbde4a 100644 --- a/.github/workflows/R-CMD-check.yaml +++ b/.github/workflows/R-CMD-check.yaml @@ -151,13 +151,15 @@ jobs: use-public-rspm: true windows-path-include-mingw: false - - name: Install x86_64 R via rig + - name: Install x86_64 R and libraries if: ${{ matrix.config.arch == 'x86_64' }} run: | brew tap r-lib/rig brew install --cask rig sudo rig add release --arch x86_64 sudo rig default release + arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" + arch -x86_64 /usr/local/bin/brew install libpng jpeg-turbo - name: Install dependencies run: | From 3f95d79a49681ee3614b1c72aeba22acd382dd6d Mon Sep 17 00:00:00 2001 From: Daniel Falbel Date: Tue, 14 Apr 2026 11:15:20 -0300 Subject: [PATCH 18/20] Fix /usr/local permissions before x86_64 Homebrew install --- .github/workflows/R-CMD-check.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/R-CMD-check.yaml b/.github/workflows/R-CMD-check.yaml index 6fbde4a..24d8fb4 100644 --- a/.github/workflows/R-CMD-check.yaml +++ b/.github/workflows/R-CMD-check.yaml @@ -83,6 +83,7 @@ jobs: - name: Install x86_64 Homebrew and libraries if: ${{ contains(matrix.config.cmake_args, 'x86_64') }} run: | + sudo chown -R $(whoami) /usr/local/share/zsh /usr/local/share/zsh/site-functions arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" arch -x86_64 /usr/local/bin/brew install libpng jpeg-turbo @@ -158,6 +159,7 @@ jobs: brew install --cask rig sudo rig add release --arch x86_64 sudo rig default release + sudo chown -R $(whoami) /usr/local/share/zsh /usr/local/share/zsh/site-functions arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" arch -x86_64 /usr/local/bin/brew install libpng jpeg-turbo From 686ba9b3c60bccd9df2336da30822563cd56e20d Mon Sep 17 00:00:00 2001 From: Daniel Falbel Date: Tue, 14 Apr 2026 11:26:19 -0300 Subject: [PATCH 19/20] Install x86_64 Homebrew before rig to avoid permission conflicts --- .github/workflows/R-CMD-check.yaml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/R-CMD-check.yaml b/.github/workflows/R-CMD-check.yaml index 24d8fb4..12b2242 100644 --- a/.github/workflows/R-CMD-check.yaml +++ b/.github/workflows/R-CMD-check.yaml @@ -83,7 +83,6 @@ jobs: - name: Install x86_64 Homebrew and libraries if: ${{ contains(matrix.config.cmake_args, 'x86_64') }} run: | - sudo chown -R $(whoami) /usr/local/share/zsh /usr/local/share/zsh/site-functions arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" arch -x86_64 /usr/local/bin/brew install libpng jpeg-turbo @@ -155,13 +154,12 @@ jobs: - name: Install x86_64 R and libraries if: ${{ matrix.config.arch == 'x86_64' }} run: | + arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" + arch -x86_64 /usr/local/bin/brew install libpng jpeg-turbo brew tap r-lib/rig brew install --cask rig sudo rig add release --arch x86_64 sudo rig default release - sudo chown -R $(whoami) /usr/local/share/zsh /usr/local/share/zsh/site-functions - arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" - arch -x86_64 /usr/local/bin/brew install libpng jpeg-turbo - name: Install dependencies run: | From f8abc3921c2f3d4addf03cdf78597e83890e6dab Mon Sep 17 00:00:00 2001 From: Daniel Falbel Date: Tue, 14 Apr 2026 12:56:03 -0300 Subject: [PATCH 20/20] Bump dev version to 0.7.0.9000 --- DESCRIPTION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DESCRIPTION b/DESCRIPTION index 1701ed0..e71c7cf 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,6 +1,6 @@ Package: torchvisionlib Title: Additional Operators for Image Models -Version: 0.7.0 +Version: 0.7.0.9000 Authors@R: c( person("Daniel", "Falbel", , "daniel@rstudio.com", role = c("aut", "cre")), person(family = "RStudio", role = c("cph"))