The goal of inteRgrate is to provide an very opinionated set of rules for R package development. The idea is that when many people contribute to a package, it’s easy for standards to diverge. We think that CI can help here. This package has the same functions for both travis and Gitlab-CI environments. Currently, the package is used by Jumping Rivers on GitHub and GitLab.
The rationale behind this package is
This package is still being developed, but we are now actively using it, so hopefully we can avoid breaking changes.
As the package is currently being developed, it isn’t yet on CRAN. The development version can be installed from GitHub with:
install.packages("remotes")
remotes::install_github("jumpingrivers/inteRgrate")
The package is meant to be used within a continuous integration framework, e.g. travis, GitLab runner. This package contains a number functions that are useful for CI:
check_pkg()
- installs package dependencies, builds & installs the package, before running package check. By default, any notes or warnings will raise an error message. This can be changed by setting the environment variables ALLOWED_NOTES
and ALLOWED_WARNINGS
.check_lintr()
- runs lintr on the package, README.Rmd and vignettes.check_namespace()
- check for instances of import()
in the NAMESPACE file. By default, no imports are allowed. This can be changed via the environment variable NO_IMPORTS
check_r_filenames()
- ensures file extensions are .R
and all names are lower case.check_version()
- ensures that the package description has been updated.check_gitignore()
- .gitignore contains standard files.check_readme()
- checks README.Rmd timestampscheck_tidy_description()
- ensure that the DESCRIPTION file is tidy, via usethis::use_tidy_description()
check_file_permissions()
, check_line_breaks()
- ensures that linux line breaks are used and file permissions are sensible.create_tag()
- autotag via the CI.See the help pages for customisation.
There’s also a pre-commit hook to help. Run inteRgrate::add_pre_commit()
in root git directory of your repo and checks will be run before committing.
Within a CI file, it’s often better to use check_via_env()
that will automatically call all checks. Specific checks can be switch on/off via environment variables.
You can also use it at the command line
library("inteRgrate")
check_pkg()
check_r_filenames()
ROpensci are developing a related package - tic. The tic package aims to specify the CI environment purely by an R script.
If you have any suggestions or find bugs, please use the github issue tracker
Feel free to submit pull requests
Development of this package was supported by Jumping Rivers