diff --git a/.github/workflows/r.yml b/.github/workflows/r.yml index 98b301d095dc..4ae8e3b19bb0 100644 --- a/.github/workflows/r.yml +++ b/.github/workflows/r.yml @@ -228,11 +228,10 @@ jobs: r-${{ matrix.config.rtools }}-ccache-mingw-${{ matrix.config.arch }}- - uses: r-lib/actions/setup-r@v2 with: - # Note: RTools must be 40 here because RTools40 + ucrt is how we build the Arrow C++ - # static library. The R is not used here but R 4.1 was the last R to use - # Rtools40. + # Note: we need Rtools40 here because Rtools40 + ucrt is how we build the Arrow C++ + # static library. R itself is not used, but setup-r picks the Rtools version from + # r-version, and R 4.1 was the last R to use Rtools40, so this must stay at 4.1. r-version: "4.1" - rtools-version: ${{ matrix.config.rtools }} Ncpus: 2 - name: Build Arrow C++ shell: bash diff --git a/ci/docker/linux-r.dockerfile b/ci/docker/linux-r.dockerfile index c0d5a69a94ec..da378eac4302 100644 --- a/ci/docker/linux-r.dockerfile +++ b/ci/docker/linux-r.dockerfile @@ -33,9 +33,6 @@ ENV R_PRUNE_DEPS=${r_prune_deps} ARG r_custom_ccache=false ENV R_CUSTOM_CCACHE=${r_custom_ccache} -ARG r_update_clang=false -ENV R_UPDATE_CLANG=${r_update_clang} - ARG tz="UTC" ENV TZ=${tz} diff --git a/ci/scripts/r_docker_configure.sh b/ci/scripts/r_docker_configure.sh index 7c8a7c171964..3bc16a69a052 100755 --- a/ci/scripts/r_docker_configure.sh +++ b/ci/scripts/r_docker_configure.sh @@ -90,23 +90,5 @@ if [ "$PACKAGE_MANAGER" = "apt-get" ] && apt-cache show tzdata-legacy > /dev/nul apt-get install -y tzdata-legacy fi - -# Update clang version to latest available. -# The rhub/ubuntu-clang image ships clang-15 but CRAN's debian-clang now uses -# clang 22. Install clang-22 from LLVM's apt repos to match. -if [ "$R_UPDATE_CLANG" = true ]; then - apt-get update -y --allow-releaseinfo-change - apt-get install -y gnupg - curl -fsSL https://apt.llvm.org/llvm-snapshot.gpg.key | gpg --dearmor -o /etc/apt/trusted.gpg.d/llvm.gpg - echo "deb https://apt.llvm.org/jammy/ llvm-toolchain-jammy-22 main" > /etc/apt/sources.list.d/llvm22.list - apt-get update -y --allow-releaseinfo-change - apt-get install -y clang-22 lld-22 - # The rhub image hardcodes clang-15/clang++-15 in R's Makeconf, so installing - # clang-22 alone isn't enough: point R at the new compilers. - sed -i 's/clang++-15/clang++-22/g; s/clang-15/clang-22/g' "$(R RHOME)/etc/Makeconf" - echo "R is now using CC=$(R CMD config CC) CXX=$(R CMD config CXX)" - clang-22 --version -fi - # Workaround for html help install failure; see https://github.com/r-lib/devtools/issues/2084#issuecomment-530912786 Rscript -e 'x <- file.path(R.home("doc"), "html"); if (!file.exists(x)) {dir.create(x, recursive=TRUE); file.copy(system.file("html/R.css", package="stats"), x)}' diff --git a/compose.yaml b/compose.yaml index 1741d00db431..c2fb039bf839 100644 --- a/compose.yaml +++ b/compose.yaml @@ -1686,7 +1686,6 @@ services: tz: ${TZ} r_prune_deps: ${R_PRUNE_DEPS} r_custom_ccache: ${R_CUSTOM_CCACHE} - r_update_clang: ${R_UPDATE_CLANG} shm_size: *shm-size environment: <<: [*common, *sccache] diff --git a/dev/tasks/r/github.linux.cran.yml b/dev/tasks/r/github.linux.cran.yml index dace061111f5..2e5528ff3fc7 100644 --- a/dev/tasks/r/github.linux.cran.yml +++ b/dev/tasks/r/github.linux.cran.yml @@ -35,16 +35,15 @@ jobs: config: # See https://r-hub.github.io/containers/ - { r_image: "ubuntu-gcc12" } # ~ r-devel-linux-x86_64-debian-gcc - - { r_image: "ubuntu-clang", r_update_clang: true } # ~ r-devel-linux-x86_64-debian-clang + - { r_image: "ubuntu-clang" } # ~ r-devel-linux-x86_64-debian-clang - { r_image: "ubuntu-next" } # ~ r-patched-linux-x86_64 - { r_image: "ubuntu-release" } # ~ r-release-linux-x86_64 - - { r_image: "clang22", skip_vignettes: true } # ~ r-devel-linux-x86_64-fedora-clang + - { r_image: "clang23", skip_vignettes: true } # ~ r-devel-linux-x86_64-fedora-clang env: R_ORG: "rhub" R_IMAGE: {{ '${{ matrix.config.r_image }}' }} R_TAG: "latest" ARROW_R_DEV: "FALSE" - R_UPDATE_CLANG: {{ '${{ matrix.config.r_update_clang }}' }} steps: {{ macros.github_checkout_arrow()|indent }} {{ macros.github_install_archery()|indent }} diff --git a/dev/tasks/r/github.packages.yml b/dev/tasks/r/github.packages.yml index 5ac13a84b731..a1f117ddf469 100644 --- a/dev/tasks/r/github.packages.yml +++ b/dev/tasks/r/github.packages.yml @@ -183,8 +183,9 @@ jobs: {{ macros.github_change_r_pkg_version(is_fork, '${{ needs.source.outputs.pkg_version }}')|indent }} - uses: r-lib/actions/setup-r@v2 with: - rtools-version: 40 - r-version: "4.0" + # R 4.1 was the last R to use Rtools40, which is how we build the + # Arrow C++ static library. setup-r installs Rtools40 for it. + r-version: "4.1" Ncpus: 2 - name: Install sccache shell: bash diff --git a/r/R/dplyr-funcs-doc.R b/r/R/dplyr-funcs-doc.R index bbcd3fe59f4c..524422993af2 100644 --- a/r/R/dplyr-funcs-doc.R +++ b/r/R/dplyr-funcs-doc.R @@ -84,7 +84,7 @@ #' Functions can be called either as `pkg::fun()` or just `fun()`, i.e. both #' `str_sub()` and `stringr::str_sub()` work. #' -#' In addition to these functions, you can call any of Arrow's 283 compute +#' In addition to these functions, you can call any of Arrow's 287 compute #' functions directly. Arrow has many functions that don't map to an existing R #' function. In other cases where there is an R function mapping, you can still #' call the Arrow function directly if you don't want the adaptations that the R diff --git a/r/README.md b/r/README.md index 595a6a798bae..4920fd9045d6 100644 --- a/r/README.md +++ b/r/README.md @@ -1,14 +1,5 @@ # arrow - - -[![cran](https://www.r-pkg.org/badges/version-last-release/arrow)](https://cran.r-project.org/package=arrow) -[![CI](https://github.com/apache/arrow/actions/workflows/r.yml/badge.svg?branch=main&event=push)](https://github.com/apache/arrow/actions/workflows/r.yml?query=branch%3Amain+event%3Apush) -[![R-universe status badge](https://apache.r-universe.dev/badges/arrow)](https://apache.r-universe.dev) -[![conda-forge](https://img.shields.io/conda/vn/conda-forge/r-arrow.svg)](https://anaconda.org/conda-forge/r-arrow) - - - ## Overview The R `{arrow}` package provides access to many of the features of the [Apache Arrow C++ library](https://arrow.apache.org/docs/cpp/index.html) for R users. The goal of arrow is to provide an Arrow C++ backend to `{dplyr}`, and access to the Arrow C++ library through familiar base R and tidyverse functions, or `{R6}` classes. The dedicated R package website is located [here](https://arrow.apache.org/docs/r/index.html). diff --git a/r/man/acero.Rd b/r/man/acero.Rd index 45be81521e82..0dc7f624255b 100644 --- a/r/man/acero.Rd +++ b/r/man/acero.Rd @@ -72,7 +72,7 @@ can assume that the function works in Acero just as it does in R. Functions can be called either as \code{pkg::fun()} or just \code{fun()}, i.e. both \code{str_sub()} and \code{stringr::str_sub()} work. -In addition to these functions, you can call any of Arrow's 283 compute +In addition to these functions, you can call any of Arrow's 287 compute functions directly. Arrow has many functions that don't map to an existing R function. In other cases where there is an R function mapping, you can still call the Arrow function directly if you don't want the adaptations that the R diff --git a/r/tools/checksums/r-libarrow-darwin-arm64-26.0.1.zip.sha512 b/r/tools/checksums/r-libarrow-darwin-arm64-26.0.1.zip.sha512 new file mode 100644 index 000000000000..3ce55b55a302 --- /dev/null +++ b/r/tools/checksums/r-libarrow-darwin-arm64-26.0.1.zip.sha512 @@ -0,0 +1 @@ +239d1507cdce2753690f1cd86e2dabae96d8168bbe98b0ec8154dee7afc81400ddcd0903cce59adc75f9f12407e516a9a05ee24d3639d6b0abc2bcdc4879555b r-libarrow-darwin-arm64-26.0.1.zip diff --git a/r/tools/checksums/r-libarrow-darwin-x86_64-26.0.1.zip.sha512 b/r/tools/checksums/r-libarrow-darwin-x86_64-26.0.1.zip.sha512 new file mode 100644 index 000000000000..ef7da9ce16d6 --- /dev/null +++ b/r/tools/checksums/r-libarrow-darwin-x86_64-26.0.1.zip.sha512 @@ -0,0 +1 @@ +20813caea1f4b0a4a2ddca64c07071c18db373d2f7fa2119585f915c7b9ebb211c13167889f06f38843cad6f6fdfb30ff2bcf4ba51ee15697625a2762f49dc7a r-libarrow-darwin-x86_64-26.0.1.zip diff --git a/r/tools/checksums/r-libarrow-linux-arm64-26.0.1.zip.sha512 b/r/tools/checksums/r-libarrow-linux-arm64-26.0.1.zip.sha512 new file mode 100644 index 000000000000..116714af3cb2 --- /dev/null +++ b/r/tools/checksums/r-libarrow-linux-arm64-26.0.1.zip.sha512 @@ -0,0 +1 @@ +d60746b29631e34ec77602e96f13e80f5576168ba90a4fa76e0c0f701ec439ee7ff518b3110e5312a353465e966c9ed50af26973f13a5af4e78b89cdcb3554a2 r-libarrow-linux-arm64-26.0.1.zip diff --git a/r/tools/checksums/r-libarrow-linux-x86_64-26.0.1.zip.sha512 b/r/tools/checksums/r-libarrow-linux-x86_64-26.0.1.zip.sha512 new file mode 100644 index 000000000000..91a37f033665 --- /dev/null +++ b/r/tools/checksums/r-libarrow-linux-x86_64-26.0.1.zip.sha512 @@ -0,0 +1 @@ +0d536d267eaa67446b0413b6c8e08a7945aad7165848fce6c6887f500a70e241058a109cdcb284d2e8b9f7df7aab420f468174645504e1db4602f2c99f1ea253 r-libarrow-linux-x86_64-26.0.1.zip diff --git a/r/tools/checksums/r-libarrow-windows-x86_64-26.0.1.zip.sha512 b/r/tools/checksums/r-libarrow-windows-x86_64-26.0.1.zip.sha512 new file mode 100644 index 000000000000..dba36e017bd5 --- /dev/null +++ b/r/tools/checksums/r-libarrow-windows-x86_64-26.0.1.zip.sha512 @@ -0,0 +1 @@ +bd7d366de74419d6ea8a55b1e9432a59933bbb7656ac7d4a0b4ff2d99729424a1d66b71cc94532e403a97e79e2d0cb9c1d0e23fcd3b4cf26740d0bc31570492d r-libarrow-windows-x86_64-26.0.1.zip