Test, Document, Containerise, and Deploy R Packages
Overview
Reproducibility is essential to the progress of research, yet achieving it remains elusive even in computational fields. Continuous Integration (CI) platforms offer a powerful way to launch automated workflows to check and document code, but often require considerable time, effort, and technical expertise to setup. We therefore developed the rworkflows suite to make robust CI workflows easy and freely accessible to all R package developers. rworkflows consists of 1) a CRAN/Bioconductor-compatible R package template, 2) an R package to quickly implement a standardised workflow, and 3) a centrally maintained GitHub Action.
New Features
- Add
run_lintraction input (defaulttrue) which runslintr::lint_package()and surfaces each lint as a GitHub workflow annotation. Does not fail the workflow. - Add
run_spellingaction input (defaulttrue) which runsspelling::spell_check_package()and surfaces each misspelling as a GitHub workflow annotation. Does not fail the workflow. use_workflow()now exposes matchingrun_lintrandrun_spellingarguments, written into the generated workflowwith:block.run_lintrandrun_spellingsteps now also append a titled section to the GitHub Actions run summary ($GITHUB_STEP_SUMMARY), with per-finding details inside a collapsed<details>block. The existing inline workflow annotations are unchanged.
Show all changes in 1.0.12Hide the rest of the changes in 1.0.12
Bug Fixes
- Comply with CRAN policy on graceful handling of unavailable internet
resources:
- Add
testthat::skip_if_offline()to all tests whose call stacks may reach the internet (test-check_bioc_version.R,test-fill_description.R,test-get_authors.R,test-get_hex.R,test-infer_biocviews.R,test-infer_deps.R). - Move the existing offline guard up in
test-construct_cont.Rso that theversions_explicit = TRUEbranch (which callsbioc_r_versions()) is also skipped when offline. - Wrap all examples that may use internet resources in
curl::has_internet()so they emit an informative message instead of erroring when offline (bioc_r_versions,construct_runners,fill_description,get_description,get_hex,infer_deps,use_badges,use_workflow). - Gate internet-dependent code chunks in the
bioconductorandrworkflowsvignettes oncurl::has_internet()so vignette rebuilds degrade gracefully when offline. - Add
curltoSuggeststo support the new offline guards in examples
and vignettes.
- Vignettes: replace
read.dcf("../DESCRIPTION", ...)withutils::packageDescription("rworkflows", ...)so the setup chunks no longer fail underR CMD check'stools::checkVignettes(), which tangles each vignette to a.Rfile and sources it from a temp working directory where../DESCRIPTIONdoes not resolve. The same change is applied toinst/templates/{templateR,docker}.Rmdvia a__PKG__placeholder thatuse_vignette_getstarted()/use_vignette_docker()substitute at write time. use_vignette_getstarted()/use_vignette_docker(): raise a clear error whenpackageisNULLor empty (previously they silently produced a malformed file).
Miscellaneous
- Update system requirements Ubuntu version for Linux runners in actions.
- Bump
conda-incubator/setup-minicondafrom@v3to@v4. v4 upgrades the action runtime to Node.js 24, which is supported by GitHub-hosted runners but requires self-hosted runners on a recentactions/runnerrelease. - Bump
actions/checkoutfrom@v4to@v6(the bundled example workflow goes from@v3). v5 moved the runtime to Node.js 24 (requires runner >= v2.327.1, satisfied by all GitHub-hosted runners) and v6 persists git auth credentials to a separate.gitauthfile instead of.git/config; neither change affects this action. - Forward the
ncpusinput togrimbough/bioc-actions/setup-bioc@v1(as itsNcpusinput) so non-Linux R installs use the configured parallel job count instead of the action's default of 3. - Tests: replace
is_gha()gates that were guarding internet access with host-specificskip_if_offline(host=...)calls (bioconductor.org,github.com,raw.githubusercontent.com,ghcr.io) so individual tests skip when their actual remote is unreachable. This includes theget_descriptionBioc-repo block, which previously gated onis_gha() | is_rstudio()to dodge CRAN flakiness (#65); it now skips onbioconductor.orginstead. Eachskip_if_offline()is then wrapped inif (!is_gha())so GitHub Actions exercises the network path regardless of the offline probe; developer machines and CRAN's check farm continue to skip when the named host is unreachable.is_gha()is also retained for theconstruct_conda_ymlenv-creation block, where the test is genuinely GHA-only (creates and leaves a conda env behind, so should not run on developer machines).
From NEWS.md in the release
Install
Health
- OK13 OK2026-10-17
- NOTE12 OK, 1 NOTE2026-10-01
- OK13 OK2026-08-30
- NOTE12 OK, 1 NOTE2026-08-28
- OK13 OK2026-08-04
Show 6 earlier changesHide 6 earlier changes
- NOTE12 OK, 1 NOTE2026-08-01
- OK13 OK2026-06-09
- ERROR12 OK, 1 ERROR2026-06-07
- OK12 OK2026-04-25
- NOTE10 OK, 1 NOTE2026-03-27
- ERROR4 OK, 1 NOTE, 1 ERROR2026-03-24
Documentation
- Help pages
- 32 (9 internal)
- Examples that run
- 91%20 run in a plain check (8 of them under a condition) · 2 never run
- Exported functions with examples
- 100%
- Documented parameters
- 87%
- Return-value docs
- 100%
- Help pages citing references
- 0%
Downloads
Repository
- PRs merged (all time)
- 88%
- Median days to close, 50 most recently updated closed issues
- 10
- Median days to close, 50 most recently updated closed PRs
- 0
Stars over time
Forks over time
Releases over time
Issues over time
PRs over time
9 development-tooling and community-health practices detected across 6 families in the upstream repository
Checks run against github.com/neurogenomics/rworkflows on 2026-10-18.
The R CMD check workflow runs on Linux, macOS and Windows, and on R-devel
GitHub Pages site last deployed 2026-05-06 · The repository has a site deploy workflow
Show all practicesHide 2 practices
This repository shows signs of AI coding tools.
- Claude Codefirst seen 2026-03-13Pull request it wrote: opened by a project memberCommits: at least 5 crediting it in the message
- Copilot code reviewCommits: at least 1 accepting its review suggestions
- Claude Opus 4.65 commits · Mar 2026
Dependencies
Installing rworkflows adds 51 packages (22 with compiled code, 33 MB of source tarballs). Heaviest: ggplot2 6.0 MB, data.table 5.7 MB, pak 3.8 MB.
Code & Tests
Datasets
People & History
Previously maintained by Brian Schilder (0.99.3 to 1.0.8).
Pick two releases to compare their code metrics.
- 1.0.12Latest
- RR 4.6.0 released · 2026-04-24
- 1.0.112026-03-26 · diff ↗
- unarchivedReturned to CRAN2026-03-23
- 1.0.102026-03-23 · diff ↗
- archivedRemoved from CRAN2026-03-03issues were not corrected in time
- 1.0.82026-01-09 · diff ↗
- RR 4.5.0 released · 2025-04-11
- 1.0.62025-01-23 · diff ↗
- unarchivedReturned to CRAN2024-09-22
- 1.0.22024-09-22 · diff ↗
- archivedRemoved from CRAN2024-09-19issues were not corrected in time
- RR 4.4.0 released · 2024-04-24
- unarchivedReturned to CRAN2024-01-18
- 1.0.12024-01-18 · diff ↗
- archivedRemoved from CRAN2024-01-11policy violation On Internet access
Show 7 earlier eventsHide 7 earlier events
- 1.0.02023-11-02 · diff ↗ ·
added 4 exports
conda_export, construct_conda_yml, infer_docker_org, use_codespace - 0.99.13
- 0.99.122023-08-25 · diff ↗ ·
added 8 exports
construct_authors, dt_to_desc, fill_description, get_description, get_hex, infer_biocviews, infer_deps, is_gha - RR 4.3.0 released · 2023-04-21
- 0.99.5
- 0.99.32022-12-21
- RR 4.2.0 released · 2022-04-22
Package metadata
- First published
- 2022-12-21
- Total releases
- 12 / 4 yrs
- License
- GPL-3 OSI
- Minimum R
- ≥ 4.1
- Bundled data
- 45 KB / 1 file
- Download size
- 1.4 MB
Cite
Cite this package
Run in R for the authors' entry:
citation("rworkflows")The package provides a citation file, so citation() returns the authors' own entry.
It points to 10.1038/s41467-023-44484-5.
Cite the R Observatory
For a number measured here: a download total, a coverage figure, an archival date.
From data release v2026-10-20, which the citation names so these numbers can be found later. More on citing and the projects behind them.