diff --git a/.github/ISSUE_TEMPLATE/cran-release-checklist.md b/.github/ISSUE_TEMPLATE/cran-release-checklist.md index 8ab8b40a..98e422b6 100644 --- a/.github/ISSUE_TEMPLATE/cran-release-checklist.md +++ b/.github/ISSUE_TEMPLATE/cran-release-checklist.md @@ -11,31 +11,33 @@ assignees: '' - [ ] increment package version - [ ] create release name - [ ] update NEWS.md -- [ ] code check: run devtools::check(args=c("--no-examples", "--no-tests"), vignettes=FALSE), alternatively rcmdcheck::rcmdcheck(args=c("--no-examples", "--no-tests")) -- [ ] test check: run devtools::test(): set options("testthat.progress.max_fails"=Inf) and options("Ncpus"=10) -- [ ] create archives for testing backward compatibility against future versions: run tests/old_experiments/archiveExperiments.R -- [ ] test backward compatibility against archived experiments: manually run tests/testthat/test-update_object.R -- [ ] pre-compile vignettes: run vignettes/compile.R -- [ ] code and vignette check: run devtools::check(args=c("--no-examples", "--no-tests")), alternatively rcmdcheck::rcmdcheck(args=c("--no-examples", "--no-tests")) -- [ ] reverse dependencies: run revdepcheck::revdep_check() -- [ ] reverse dependencies: mail maintainers using revdepcheck::revdep_email() -- [ ] run check: rhub::check_for_cran() +- [ ] code check: run `devtools::check(args=c("--no-examples", "--no-tests"), vignettes=FALSE)`, alternatively `rcmdcheck::rcmdcheck(args=c("--no-examples", "--no-tests"))` +- [ ] test check: run `devtools::test()`: set `options("testthat.progress.max_fails"=Inf)` and `options("Ncpus"=10)` +- [ ] create archives for testing backward compatibility against future versions: run `tests/old_experiments/archiveExperiments.R` +- [ ] test backward compatibility against archived experiments: manually run `tests/testthat/test-update_object.R` +- [ ] pre-compile vignettes: run `vignettes/compile.R` +- [ ] code and vignette check: `rcmdcheck::rcmdcheck(args=c("--no-examples", "--as-cran"))` +- [ ] check reverse dependencies +- [ ] create pull request +- [ ] check continuous integration tests +- [ ] Build source tarball using `devtools::build()`. +- [ ] Run `devtools::check_built(path=pkg, env_vars = list("_R_CHECK_DEPENDS_ONLY_" = TRUE))`, with pkg the path to the tarball. - [ ] update cran_comments.md - [ ] merge dev branch into master **Post-merge** - [ ] Check for merging errors. - - [ ] Run a post-merge code check: devtools::check(env_vars = c("NOT_CRAN"="false"), args=c("--as-cran")) + - [ ] Run a post-merge code check: `rcmdcheck::rcmdcheck(args=c("--no-examples", "--as-cran"))` - [ ] Run post-merge test suite, if required. - [ ] Pre-compile vignettes, if required. + - [ ] Rebuild source tarball using `devtools::build()`, if required. **CRAN** -- [ ] Build source tarball using devtools::build(). - [ ] Check CRAN-policies on https://cran.r-project.org/web/packages/policies.html - [ ] Upload source tarball to https://cran.r-project.org/submit.html - [ ] Check CRAN checks **Github release** - [ ] prepare a GithHub release - - [ ] create source tarball using devtools::build and add as binary. - [ ] copy news from NEWS.md + - [ ] add source tarball as data diff --git a/.github/ISSUE_TEMPLATE/documentation.md b/.github/ISSUE_TEMPLATE/documentation.md new file mode 100644 index 00000000..73abf9f5 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/documentation.md @@ -0,0 +1,19 @@ +--- +name: Documentation +about: Template for suggesting documentation changes +title: '' +labels: documentation +assignees: '' + +--- + +Please use the below template to submit your issue: + +# Documentation changes + +What new addition or change to the documentation would you like to see? +Where should this addition or change be made? If relevant, provide the name of the method, class or function. + +# Specifications + +- `familiar` version: diff --git a/.github/ISSUE_TEMPLATE/general-issue.md b/.github/ISSUE_TEMPLATE/general-issue.md new file mode 100644 index 00000000..32e32483 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/general-issue.md @@ -0,0 +1,29 @@ +--- +name: Bugs and problems +about: General issue template +title: '' +labels: bug +assignees: '' + +--- + +Please use the below template to submit your issue: + +# Expected behaviour + +What did you expect `familiar` to do? + +# Observed behaviour + +What did `familiar` actually do? What error (if any) was produced? + +# Steps to reproduce the problem + +What steps are required to reproduce the problem? If possible, provide code and data that led to the problem. + +# Specifications + +- `familiar` version: +- `R` version: +- Operating system: +- Other package versions (*if relevant*): diff --git a/.github/ISSUE_TEMPLATE/internal-patch-checklist.md b/.github/ISSUE_TEMPLATE/internal-patch-checklist.md index 959c50c4..e808f44e 100644 --- a/.github/ISSUE_TEMPLATE/internal-patch-checklist.md +++ b/.github/ISSUE_TEMPLATE/internal-patch-checklist.md @@ -8,18 +8,20 @@ assignees: '' --- **Prior to merge with master** -- [ ] code check: run devtools::check(args=c("--no-examples", "--no-tests"), vignettes=FALSE); alternatively rcmdcheck::rcmdcheck(args=c("--no-examples", "--no-tests")) -- [ ] test check: run devtools::test(): set options("testthat.progress.max_fails"=Inf) and options("Ncpus"=10) +- [ ] code check: run `devtools::check(args=c("--no-examples", "--no-tests"), vignettes=FALSE)`; alternatively `rcmdcheck::rcmdcheck(args=c("--no-examples", "--no-tests"))` +- [ ] test check: run `devtools::test()`: set options("testthat.progress.max_fails"=Inf) and options("Ncpus"=10) - [ ] create archives for testing backward compatibility against future versions: run tests/old_experiments/archiveExperiments.R - [ ] test backward compatibility against archived experiments: manually run tests/testthat/test-update_object.R - [ ] increment minor package version - [ ] create release name - [ ] update NEWS.md +- [ ] create pull request +- [ ] check continuous integration tests - [ ] merge patches into master **Post-merge** - [ ] Check for merging errors. - - [ ] Run a post-merge code check: devtools::check(args=c("--no-examples", "--no-tests"), vignettes=FALSE) + - [ ] Run a post-merge code check: `rcmdcheck::rcmdcheck(args=c("--no-examples", "--as-cran"))` - [ ] Run post-merge test suite, if required. **Github release** diff --git a/.github/workflows/auto-test-no-suggests-pull.yml b/.github/workflows/auto-test-no-suggests-pull.yml new file mode 100644 index 00000000..ac4d705a --- /dev/null +++ b/.github/workflows/auto-test-no-suggests-pull.yml @@ -0,0 +1,56 @@ +# This workflow uses actions that are not certified by GitHub. +# They are provided by a third-party and are governed by +# separate terms of service, privacy policy, and support +# documentation. +# +# See https://github.com/r-lib/actions/tree/master/examples#readme for +# additional example workflows available for the R community. + +name: Run R CMD check for strong dependencies only (nosuggests) + +on: [pull_request, workflow_dispatch] + +permissions: + contents: read + +jobs: + build: + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + r-version: ["release"] + os: [ windows-latest ] + + steps: + - uses: actions/checkout@v4 + - uses: r-lib/actions/setup-pandoc@v2 + - uses: r-lib/actions/setup-r@v2 + with: + use-public-rspm: true + + - uses: r-lib/actions/setup-r-dependencies@v2 + with: + dependencies: '"hard"' + cache: false + extra-packages: | + any::rcmdcheck + any::testthat + needs: check + + - name: Identify and remove all non-critical packages + run: | + installed_packages <- data.table::data.table(utils::installed.packages()) + required_packages <- c("familiar", "rcmdcheck", "testthat") + required_packages <- union(required_packages, unlist(tools::package_dependencies(required_packages, recursive = TRUE), use.names=FALSE)) + required_packages <- union(required_packages, installed_packages[Priority == "base"]$Package) + non_critical_packages <- setdiff(installed_packages$Package, required_packages) + for (package in non_critical_packages) {utils::remove.packages(installed_packages[Package == package]$Package, installed_packages[Package == package]$LibPath)} + shell: Rscript {0} + + - uses: r-lib/actions/check-r-package@v2 + with: + upload-snapshots: true + args: 'c("--no-manual", "--as-cran", "--no-vignettes", "--no-build-vignettes")' + build_args: 'c("--no-build-vignettes", "--no-manual")' + error-on: '"error"' diff --git a/.github/workflows/auto-test-package_pull.yml b/.github/workflows/auto-test-package_pull.yml new file mode 100644 index 00000000..28f085f4 --- /dev/null +++ b/.github/workflows/auto-test-package_pull.yml @@ -0,0 +1,43 @@ +# This workflow uses actions that are not certified by GitHub. +# They are provided by a third-party and are governed by +# separate terms of service, privacy policy, and support +# documentation. +# +# See https://github.com/r-lib/actions/tree/master/examples#readme for +# additional example workflows available for the R community. + +name: Run R CMD for different OS + +on: [pull_request, workflow_dispatch] + +permissions: + contents: read + +jobs: + build: + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + r-version: ["release"] + os: [ ubuntu-latest, macos-latest, windows-latest ] + + steps: + - uses: actions/checkout@v4 + - uses: r-lib/actions/setup-pandoc@v2 + - uses: r-lib/actions/setup-r@v2 + with: + use-public-rspm: true + + - uses: r-lib/actions/setup-r-dependencies@v2 + with: + extra-packages: | + any::rcmdcheck + needs: check + + - uses: r-lib/actions/check-r-package@v2 + with: + upload-snapshots: true + args: 'c("--no-manual", "--as-cran", "--no-vignettes", "--no-build-vignettes")' + build_args: 'c("--no-build-vignettes", "--no-manual")' + error-on: '"error"' diff --git a/.github/workflows/auto-test-package_time_trigger.yml b/.github/workflows/auto-test-package_time_trigger.yml new file mode 100644 index 00000000..138f24e1 --- /dev/null +++ b/.github/workflows/auto-test-package_time_trigger.yml @@ -0,0 +1,46 @@ +# This workflow uses actions that are not certified by GitHub. +# They are provided by a third-party and are governed by +# separate terms of service, privacy policy, and support +# documentation. +# +# See https://github.com/r-lib/actions/tree/master/examples#readme for +# additional example workflows available for the R community. + +name: build-check + +on: + workflow_dispatch: + schedule: + - cron: '30 6 1,15 * *' + +permissions: + contents: read + +jobs: + build: + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + r-version: ["release"] + os: [ ubuntu-latest, macos-latest, windows-latest ] + + steps: + - uses: actions/checkout@v4 + - uses: r-lib/actions/setup-pandoc@v2 + - uses: r-lib/actions/setup-r@v2 + with: + use-public-rspm: true + + - uses: r-lib/actions/setup-r-dependencies@v2 + with: + extra-packages: | + any::rcmdcheck + needs: check + + - uses: r-lib/actions/check-r-package@v2 + with: + upload-snapshots: true + args: 'c("--no-manual", "--as-cran", "--no-vignettes", "--no-build-vignettes")' + build_args: 'c("--no-build-vignettes", "--no-manual")' + error-on: '"error"' diff --git a/.gitignore b/.gitignore index 27ee1a0d..98fbb26c 100644 --- a/.gitignore +++ b/.gitignore @@ -5,10 +5,7 @@ doc Meta tests/testthat/Rplots.pdf -inst/doc /doc/ /Meta/ -/man/ -*.Rd tests/old_experiments/_experiment Rplots.pdf diff --git a/README.md b/README.md index e32b4873..eff5aea5 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,10 @@ -# Familiar + + +![GitHub License](https://img.shields.io/github/license/alexzwanenburg/familiar) +![CRAN Version](https://img.shields.io/cran/v/familiar) +![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/alexzwanenburg/familiar/auto-test-package_time_trigger.yml) + +# Familiar ## Overview diff --git a/cran-comments.md b/cran-comments.md index b2d41bb2..cfa3307c 100644 --- a/cran-comments.md +++ b/cran-comments.md @@ -1,4 +1,4 @@ -Update familiar to version 1.4.6 +Update familiar to version 1.4.8 Vignettes are pre-compiled to avoid long compilation times on build (several minutes). @@ -8,65 +8,40 @@ Longer tests and tests involving parallel processing are not performed on CRAN, ## R CMD check results -R CMD check was run on R-hub using rhub::check_for_cran(), producing the following results: +R CMD check was run on GitHub using https://github.com/alexzwanenburg/familiar/actions/workflows/auto-test-package_pull.yml ---------------------------------- -Windows Server 2022, R-devel, 64 bit: -0 errors | 0 warnings | 4 notes - -* checking installed package size ... NOTE - installed size is 5.8Mb - sub-directories of 1Mb or more: - R 3.5Mb - doc 1.0Mb - help 1.2Mb - -**Maintainer**: The size of the R-directory is due to source code. Addressing the size of the R directory would require creating a set of mutually dependent packages. This would likely result in a larger footprint across the packages. - -* checking HTML version of manual ... [39s] NOTE -Skipping checking math rendering: package 'V8' unavailable - -**Maintainer**: I am not sure what the cause is, but it might be because the V8 package was not available on rhub. - -* checking for non-standard things in the check directory ... NOTE -Found the following files/directories: - ''NULL'' - -**Maintainer**: I am not sure what the cause is. However, NULL is not present as a directory or file. - -* checking for detritus in the temp directory ... NOTE -Found the following files/directories: - 'lastMiKTeXException' - -**Maintainer**: This note only appeared on the Windows server test. It didn't appear locally (Windows 10) or the other builds. - - +window-latest: +0 errors | 0 warnings | 0 notes ---------------------------------- -Fedora Linux, R-devel, clang, gfortran: -0 errors | 0 warnings | 1 notes +macos-latest +0 errors | 0 warnings | 1 note * checking installed package size ... NOTE - installed size is 5.8Mb + installed size is 5.4Mb sub-directories of 1Mb or more: - R 3.5Mb - doc 1.0Mb help 1.2Mb + R 4.1Mb + +---------------------------------- +ubuntu-latest: +0 errors | 0 warnings | 0 notes +## R CMD check for strong dependencies only +R CMD check was run on GitHub using https://github.com/alexzwanenburg/familiar/actions/workflows/auto-test-no-suggests-pull.yml ---------------------------------- -Ubuntu Linux 20.04.1 LTS, R-release, GCC: +ubuntu-latest: 0 errors | 0 warnings | 1 note -* checking installed package size ... NOTE - installed size is 5.9Mb - sub-directories of 1Mb or more: - doc 1.0Mb - help 1.1Mb - R 3.6Mb - - +* checking package dependencies ... NOTE +Packages suggested but not available for checking: + 'BART', 'CORElearn', 'coro', 'dynamicTreeCut', 'e1071', 'Ecdat', + 'fastcluster', 'fastglm', 'glmnet', 'harmonicmeanp', 'isotree', + 'laGP', 'maxstat', 'mboost', 'microbenchmark', 'partykit', 'praznik', + 'proxy', 'qvalue', 'randomForestSRC', 'ranger', 'VGAM', 'xgboost' ## Downstream dependencies