Skip to content

Update NEWS for v1.3.0 #244

Update NEWS for v1.3.0

Update NEWS for v1.3.0 #244

# Based on workflows from https://github.com/Huber-group-EMBL/rhdf5
# Uses steps from https://github.com/grimbough/bioc-actions
on:
push:
branches:
- devel
pull_request:
name: R-CMD-check-bioc
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
env:
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
R_REMOTES_NO_ERRORS_FROM_WARNINGS: true
jobs:
R-CMD-check-bioc:
runs-on: ${{ matrix.config.os }}
name: ${{ matrix.config.os }} (${{ matrix.config.bioc-version }})
strategy:
fail-fast: false
matrix:
config:
- { os: windows-latest, bioc-version: 'devel', bioc-mirror: 'https://bioconductor.posit.co/', cache: 1 }
- { os: macOS-latest, bioc-version: 'devel', bioc-mirror: 'https://bioconductor.posit.co/', cache: 1 }
- { os: macOS-15-intel, bioc-version: 'devel', bioc-mirror: 'https://bioconductor.posit.co/', cache: 2 }
- { os: ubuntu-latest, bioc-version: 'devel', bioc-mirror: 'https://bioconductor.posit.co/', cache: 1 }
- { os: ubuntu-latest, bioc-version: 'release', bioc-mirror: 'https://packagemanager.posit.co/bioconductor', cache: 1 }
steps:
## R CMD check complains about Windows line endings without this
- name: Configure git
run: |
git config --global core.autocrlf false
- name: Checkout repository
uses: actions/checkout@v6
- name: Install Linux dependencies
if: runner.os == 'Linux'
run: |
sudo apt-get update
sudo apt-get -y install hdf5-tools libsz2 libaec-dev
## Workaround: data.table (indirect dep via Seurat) fails to compile
## on macOS ARM because libintl.h is missing.
- name: Install macOS dependencies
if: runner.os == 'macOS'
run: |
brew install gettext
mkdir -p ~/.R
echo "CPPFLAGS += -I$(brew --prefix gettext)/include" >> ~/.R/Makevars
echo "LDFLAGS += -L$(brew --prefix gettext)/lib" >> ~/.R/Makevars
- name: Setup R and Bioconductor
# todo: remove this workaround line once it is working for windows and/or mac os x
if: matrix.config.os != 'windows-latest' && matrix.config.os != 'macOS-latest'
uses: grimbough/bioc-actions/setup-bioc@v1
with:
bioc-version: ${{ matrix.config.bioc-version }}
bioc-mirror: ${{ matrix.config.bioc-mirror }}
## windows-latest and macOS-latest (ARM) hit a bug in R-devel (commit
## dd03406, 2026-04-09) where BiocManager::install() crashes via
## old.packages(type="both") -> .available.both() -> subscript out of
## bounds. Work around by setting up R manually and calling
## BiocManager::install(update=FALSE) to skip the old.packages() call.
- name: Setup R (Windows/macOS-ARM devel)
if: matrix.config.os == 'windows-latest' || matrix.config.os == 'macOS-latest'
uses: r-lib/actions/setup-r@v2
with:
r-version: devel
rtools-version: 45
use-public-rspm: true
- name: Setup Bioconductor (Windows/macOS-ARM devel)
if: matrix.config.os == 'windows-latest' || matrix.config.os == 'macOS-latest'
shell: Rscript {0}
run: |
download.file(
'https://bioconductor.org/checkResults/devel/bioc-LATEST/Renviron.bioc',
destfile = '~/.Renviron', mode = 'wb')
write(
'options(BioC_mirror = "${{ matrix.config.bioc-mirror }}")',
file = '~/.Rprofile', append = TRUE)
install.packages(c("BiocManager", "remotes"), quiet = TRUE)
## update=FALSE avoids calling old.packages(type="both") which
## triggers the R-devel bug in .available.both() (commit dd03406)
BiocManager::install(version = "3.23", ask = FALSE, update = FALSE)
cat("R_BIOC_VERSION=3.23\n", file = Sys.getenv("GITHUB_ENV"), append = TRUE)
- name: Install pandoc
uses: r-lib/actions/setup-pandoc@v2
- name: Install R dependencies
uses: r-lib/actions/setup-r-dependencies@v2
with:
cache-version: ${{ matrix.config.cache }}
extra-packages: any::rcmdcheck
needs: check
## Workaround: llvmlite has no pre-built pip wheel on macOS x86_64,
## but conda-forge does have a build. Use reticulate + conda to install.
## See https://github.com/numba/numba/issues/10187#issuecomment-3800638403
- name: Cache conda packages (macOS Intel)
if: matrix.config.os == 'macOS-15-intel'
uses: actions/cache@v5
with:
path: ~/.local/share/r-miniconda
key: ${{ runner.os }}-conda-${{ hashFiles('DESCRIPTION') }}
restore-keys: |
${{ runner.os }}-conda-
- name: Install Python packages via conda (macOS Intel)
id: install-conda
if: matrix.config.os == 'macOS-15-intel'
shell: Rscript {0}
run: |
reticulate::install_miniconda()
reticulate::py_install(
c("scanpy", "mudata"),
method = "conda",
channel = "conda-forge"
)
# need to store this in Renviron because there's no easy way of
# passing env vars to bioc-actions/build-install-check
writeLines(
paste0("RETICULATE_PYTHON=", reticulate::conda_python("r-reticulate")),
"~/.Renviron"
)
- name: Verify conda installation (macOS Intel)
if: matrix.config.os == 'macOS-15-intel'
shell: Rscript {0}
run: |
stopifnot(reticulate::py_module_available("scanpy"))
stopifnot(reticulate::py_module_available("mudata"))
cat("Python packages verified successfully\n")
- name: Bioc - Build, Install, Check
id: bioc-check
uses: grimbough/bioc-actions/build-install-check@v1
- name: Show testthat output
if: always()
run: find .. -name 'testthat.Rout*' -exec cat '{}' \; || true
shell: bash
- name: Upload check results
if: failure() && steps.bioc-check.outputs.check-dir != ''
uses: actions/upload-artifact@v7
with:
name: ${{ format('{0}-{1}-bioc-{2}-results', runner.os, runner.arch, env.R_BIOC_VERSION) }}
path: ${{ steps.bioc-check.outputs.check-dir }}
- name: Run BiocCheck
if: matrix.config.os == 'ubuntu-latest' && matrix.config.bioc-version == 'devel'
uses: grimbough/bioc-actions/run-BiocCheck@v1
with:
error-on: 'never'
arguments: '--no-check-bioc-help'