-
Notifications
You must be signed in to change notification settings - Fork 22
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fixed drop parameter in generic "[" function and other small bug fixes (
#63) This is a backport to release version `1.14.0` of #62. Fixes in this commit: * Set default for `drop` to `FALSE` in `[` generic function and ignore this argument * Extended testing to test for the `drop` argument. * fix GitHub Action again * update and align FRASER documentation * Update RoxyGen documentation to 7.3.1 * Add ORCID ids to DESCRIPTION * fixed BugReports in DESCRIPTION * remove CCX11 flags from Makevars --------- Co-authored-by: Christian Mertes <mertes@in.tum.de> Co-authored-by: Drew Behrens <drewjbeh@gmail.com>
- Loading branch information
Showing
15 changed files
with
411 additions
and
239 deletions.
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,333 @@ | ||
## Read more about GitHub actions the features of this GitHub Actions workflow | ||
## at https://lcolladotor.github.io/biocthis/articles/biocthis.html#use_bioc_github_action | ||
## | ||
## For more details, check the biocthis developer notes vignette at | ||
## https://lcolladotor.github.io/biocthis/articles/biocthis_dev_notes.html | ||
## | ||
## You can add this workflow to other packages using: | ||
## > biocthis::use_bioc_github_action() | ||
## | ||
## Using GitHub Actions exposes you to many details about how R packages are | ||
## compiled and installed in several operating system.s | ||
### If you need help, please follow the steps listed at | ||
## https://github.com/r-lib/actions#where-to-find-help | ||
## | ||
## If you found an issue specific to biocthis's GHA workflow, please report it | ||
## with the information that will make it easier for others to help you. | ||
## Thank you! | ||
|
||
## Acronyms: | ||
## * GHA: GitHub Action | ||
## * OS: operating system | ||
|
||
on: | ||
push: | ||
pull_request: | ||
|
||
name: R-CMD-check-bioc | ||
|
||
## These environment variables control whether to run GHA code later on that is | ||
## specific to testthat, covr, and pkgdown. | ||
## | ||
## If you need to clear the cache of packages, update the number inside | ||
## cache-version as discussed at https://github.com/r-lib/actions/issues/86. | ||
## Note that you can always run a GHA test without the cache by using the word | ||
## "/nocache" in the commit message. | ||
env: | ||
has_testthat: 'true' | ||
run_covr: 'true' | ||
run_pkgdown: 'false' | ||
has_RUnit: 'false' | ||
cache-version: 'cache-v1' | ||
run_docker: 'false' | ||
|
||
jobs: | ||
build-check: | ||
runs-on: ${{ matrix.config.os }} | ||
name: ${{ matrix.config.os }} (${{ matrix.config.r }}) | ||
container: ${{ matrix.config.cont }} | ||
## Environment variables unique to this job. | ||
|
||
strategy: | ||
fail-fast: false | ||
matrix: | ||
config: | ||
- { os: ubuntu-latest, r: '4.3', bioc: '3.18', cont: "bioconductor/bioconductor_docker:RELEASE_3_18", rspm: "https://packagemanager.rstudio.com/cran/__linux__/focal/latest" } | ||
- { os: ubuntu-latest, r: 'next', bioc: '3.18', cont: "bioconductor/bioconductor_docker:RELEASE_3_18", rspm: "https://packagemanager.rstudio.com/cran/__linux__/focal/latest" } | ||
- { os: macOS-latest, r: '4.3', bioc: '3.18'} | ||
- { os: windows-latest, r: '4.3', bioc: '3.18'} | ||
## Check https://github.com/r-lib/actions/tree/master/examples | ||
## for examples using the http-user-agent | ||
env: | ||
R_REMOTES_NO_ERRORS_FROM_WARNINGS: true | ||
RSPM: ${{ matrix.config.rspm }} | ||
NOT_CRAN: true | ||
TZ: UTC | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} | ||
|
||
steps: | ||
|
||
## Set the R library to the directory matching the | ||
## R packages cache step further below when running on Docker (Linux). | ||
- name: Set R Library home on Linux | ||
if: runner.os == 'Linux' | ||
run: | | ||
mkdir /__w/_temp/Library | ||
echo ".libPaths('/__w/_temp/Library')" > ~/.Rprofile | ||
## Most of these steps are the same as the ones in | ||
## https://github.com/r-lib/actions/blob/master/examples/check-standard.yaml | ||
## If they update their steps, we will also need to update ours. | ||
- name: Checkout Repository | ||
uses: actions/checkout@v3 | ||
|
||
## R is already included in the Bioconductor docker images | ||
- name: Setup R from r-lib | ||
if: runner.os != 'Linux' | ||
uses: r-lib/actions/setup-r@v2 | ||
with: | ||
r-version: ${{ matrix.config.r }} | ||
http-user-agent: ${{ matrix.config.http-user-agent }} | ||
|
||
## pandoc is already included in the Bioconductor docker images | ||
- name: Setup pandoc from r-lib | ||
if: runner.os != 'Linux' | ||
uses: r-lib/actions/setup-pandoc@v2 | ||
|
||
- name: Query dependencies | ||
run: | | ||
install.packages('remotes') | ||
saveRDS(remotes::dev_package_deps(dependencies = TRUE), ".github/depends.Rds", version = 2) | ||
shell: Rscript {0} | ||
|
||
- name: Restore R package cache | ||
if: "!contains(github.event.head_commit.message, '/nocache') && runner.os != 'Linux'" | ||
uses: actions/cache@v3 | ||
with: | ||
path: ${{ env.R_LIBS_USER }} | ||
key: ${{ env.cache-version }}-${{ runner.os }}-biocversion-RELEASE_3_16-r-4.2-${{ hashFiles('.github/depends.Rds') }} | ||
restore-keys: ${{ env.cache-version }}-${{ runner.os }}-biocversion-RELEASE_3_16-r-4.2- | ||
|
||
- name: Cache R packages on Linux | ||
if: "!contains(github.event.head_commit.message, '/nocache') && runner.os == 'Linux' " | ||
uses: actions/cache@v3 | ||
with: | ||
path: /home/runner/work/_temp/Library | ||
key: ${{ env.cache-version }}-${{ runner.os }}-biocversion-RELEASE_3_16-r-4.2-${{ hashFiles('.github/depends.Rds') }} | ||
restore-keys: ${{ env.cache-version }}-${{ runner.os }}-biocversion-RELEASE_3_16-r-4.2- | ||
|
||
- name: Install Linux system dependencies | ||
if: runner.os == 'Linux' | ||
run: | | ||
sysreqs=$(Rscript -e 'cat("apt-get update -y && apt-get install -y", paste(gsub("apt-get install -y ", "", remotes::system_requirements("ubuntu", "20.04")), collapse = " "))') | ||
echo $sysreqs | ||
sudo -s eval "$sysreqs" | ||
- name: Install macOS system dependencies | ||
if: matrix.config.os == 'macOS-latest' | ||
run: | | ||
## Enable installing XML from source if needed | ||
brew install libxml2 | ||
echo "XML_CONFIG=/usr/local/opt/libxml2/bin/xml2-config" >> $GITHUB_ENV | ||
## Required to install magick as noted at | ||
## https://github.com/r-lib/usethis/commit/f1f1e0d10c1ebc75fd4c18fa7e2de4551fd9978f#diff-9bfee71065492f63457918efcd912cf2 | ||
brew install imagemagick@6 | ||
## For textshaping, required by ragg, and required by pkgdown | ||
brew install harfbuzz fribidi | ||
## For installing usethis's dependency gert | ||
brew install libgit2 | ||
## Required for tcltk | ||
brew install xquartz --cask | ||
- name: Install Windows system dependencies | ||
if: runner.os == 'Windows' | ||
run: | | ||
## Edit below if you have any Windows system dependencies | ||
shell: Rscript {0} | ||
|
||
- name: Init tinytex | ||
uses: r-lib/actions/setup-tinytex@v2 | ||
|
||
- name: Install tinytex packages | ||
run: | | ||
system("tlmgr --version") | ||
install.packages("tinytex") | ||
tinytex::tlmgr_install(pkgs = c("bera", "caption", "changepage", "enumitem", "everysel", "fancyhdr", "footmisc", "grfext", "index", "marginfix", "mathtools", | ||
"ms", "nowidow", "parnotes", "parskip", "placeins", "preprint", "ragged2e", "side", "soul", "titlesec", "tocbibind", "xstring")) | ||
shell: Rscript {0} | ||
|
||
- name: Install BiocManager | ||
run: | | ||
message(paste('****', Sys.time(), 'installing BiocManager ****')) | ||
remotes::install_cran("BiocManager") | ||
shell: Rscript {0} | ||
|
||
- name: Set BiocVersion | ||
run: | | ||
BiocManager::install(version = "${{ matrix.config.bioc }}", ask = FALSE, force = TRUE) | ||
shell: Rscript {0} | ||
|
||
- name: Install dependencies pass 1 | ||
run: | | ||
## Try installing the package dependencies in steps. First the local | ||
## dependencies, then any remaining dependencies to avoid the | ||
## issues described at | ||
## https://stat.ethz.ch/pipermail/bioc-devel/2020-April/016675.html | ||
## https://github.com/r-lib/remotes/issues/296 | ||
## Ideally, all dependencies should get installed in the first pass. | ||
## Set the repos source depending on the OS | ||
## Alternatively use https://storage.googleapis.com/bioconductor_docker/packages/ | ||
## though based on https://bit.ly/bioc2021-package-binaries | ||
## the Azure link will be the main one going forward. | ||
gha_repos <- if( | ||
.Platform$OS.type == "unix" && Sys.info()["sysname"] != "Darwin" | ||
) c( | ||
"AnVIL" = "https://bioconductordocker.blob.core.windows.net/packages/3.16/bioc", | ||
BiocManager::repositories() | ||
) else BiocManager::repositories() | ||
## For running the checks | ||
message(paste('****', Sys.time(), 'installing rcmdcheck and BiocCheck ****')) | ||
install.packages(c("rcmdcheck", "BiocCheck"), repos = gha_repos) | ||
## Pass #1 at installing dependencies | ||
## This pass uses AnVIL-powered fast binaries | ||
## details at https://github.com/nturaga/bioc2021-bioconductor-binaries | ||
## The speed gains only apply to the docker builds. | ||
message(paste('****', Sys.time(), 'pass number 1 at installing dependencies: local dependencies ****')) | ||
remotes::install_local(dependencies = TRUE, repos = gha_repos, build_vignettes = FALSE, upgrade = TRUE) | ||
continue-on-error: true | ||
shell: Rscript {0} | ||
|
||
- name: Install dependencies pass 2 | ||
run: | | ||
## Pass #2 at installing dependencies | ||
## This pass does not use AnVIL and will thus update any packages | ||
## that have seen been updated in Bioconductor | ||
message(paste('****', Sys.time(), 'pass number 2 at installing dependencies: any remaining dependencies ****')) | ||
remotes::install_local(dependencies = TRUE, repos = BiocManager::repositories(), build_vignettes = TRUE, upgrade = TRUE, force = TRUE) | ||
shell: Rscript {0} | ||
|
||
- name: Install BiocGenerics | ||
if: env.has_RUnit == 'true' | ||
run: | | ||
## Install BiocGenerics | ||
BiocManager::install("BiocGenerics") | ||
shell: Rscript {0} | ||
|
||
- name: Install covr | ||
if: github.ref == 'refs/heads/master' && env.run_covr == 'true' && runner.os == 'Linux' | ||
run: | | ||
remotes::install_cran("covr") | ||
shell: Rscript {0} | ||
|
||
- name: Install pkgdown | ||
if: github.ref == 'refs/heads/master' && env.run_pkgdown == 'true' && runner.os == 'Linux' | ||
run: | | ||
remotes::install_cran("pkgdown") | ||
shell: Rscript {0} | ||
|
||
- name: Session info | ||
run: | | ||
options(width = 100) | ||
pkgs <- installed.packages()[, "Package"] | ||
sessioninfo::session_info(pkgs, include_base = TRUE) | ||
shell: Rscript {0} | ||
|
||
- name: Run CMD check | ||
env: | ||
_R_CHECK_CRAN_INCOMING_: false | ||
DISPLAY: 99.0 | ||
run: | | ||
options(crayon.enabled = TRUE) | ||
rcmdcheck::rcmdcheck( | ||
args = c("--no-manual", "--no-vignettes", "--timings"), | ||
build_args = c("--no-manual", "--keep-empty-dirs", "--no-resave-data"), | ||
error_on = "warning", | ||
check_dir = "check" | ||
) | ||
shell: Rscript {0} | ||
|
||
## Might need an to add this to the if: && runner.os == 'Linux' | ||
- name: Reveal testthat details | ||
if: env.has_testthat == 'true' | ||
run: find . -name testthat.Rout -exec cat '{}' ';' | ||
|
||
- name: Run RUnit tests | ||
if: env.has_RUnit == 'true' | ||
run: | | ||
BiocGenerics:::testPackage() | ||
shell: Rscript {0} | ||
|
||
- name: Run BiocCheck | ||
env: | ||
DISPLAY: 99.0 | ||
run: | | ||
BiocCheck::BiocCheck( | ||
dir('check', 'tar.gz$', full.names = TRUE), | ||
`quit-with-status` = TRUE, | ||
`no-check-R-ver` = TRUE, | ||
`no-check-bioc-help` = TRUE | ||
) | ||
shell: Rscript {0} | ||
|
||
- name: Test coverage | ||
if: github.ref == 'refs/heads/master' && env.run_covr == 'true' && runner.os == 'Linux' | ||
run: | | ||
covr::codecov() | ||
shell: Rscript {0} | ||
|
||
- name: Install package | ||
if: github.ref == 'refs/heads/master' && env.run_pkgdown == 'true' && runner.os == 'Linux' | ||
run: R CMD INSTALL . | ||
|
||
- name: Build pkgdown site | ||
if: github.ref == 'refs/heads/master' && env.run_pkgdown == 'true' && runner.os == 'Linux' | ||
run: pkgdown::build_site_github_pages(new_process = FALSE, install = FALSE) | ||
shell: Rscript {0} | ||
## Note that you need to run pkgdown::deploy_to_branch(new_process = FALSE) | ||
## at least one locally before this will work. This creates the gh-pages | ||
## branch (erasing anything you haven't version controlled!) and | ||
## makes the git history recognizable by pkgdown. | ||
|
||
- name: Install deploy dependencies | ||
if: github.ref == 'refs/heads/master' && env.run_pkgdown == 'true' && runner.os == 'Linux' | ||
run: | | ||
apt-get update && apt-get -y install rsync | ||
- name: Deploy pkgdown site to GitHub pages 🚀 | ||
if: github.ref == 'refs/heads/master' && env.run_pkgdown == 'true' && runner.os == 'Linux' | ||
uses: JamesIves/github-pages-deploy-action@releases/v4 | ||
with: | ||
clean: false | ||
branch: gh-pages | ||
folder: docs | ||
|
||
- name: Upload check results | ||
if: failure() | ||
uses: actions/upload-artifact@master | ||
with: | ||
name: ${{ runner.os }}-biocversion-RELEASE_3_16-r-4.2-results | ||
path: check | ||
|
||
## Note that DOCKER_PASSWORD is really a token for your dockerhub | ||
## account, not your actual dockerhub account password. | ||
## This comes from | ||
## https://seandavi.github.io/BuildABiocWorkshop/articles/HOWTO_BUILD_WORKSHOP.html#6-add-secrets-to-github-repo | ||
## Check https://github.com/docker/build-push-action/tree/releases/v1 | ||
## for more details. | ||
- uses: docker/build-push-action@v1 | ||
if: "!contains(github.event.head_commit.message, '/nodocker') && env.run_docker == 'true' && runner.os == 'Linux' " | ||
with: | ||
username: ${{ secrets.DOCKER_USERNAME }} | ||
password: ${{ secrets.DOCKER_PASSWORD }} | ||
repository: gagneurlab/fraser | ||
tag_with_ref: true | ||
tag_with_sha: true | ||
tags: latest |
Oops, something went wrong.