/recontools

Tools to develop RECON packages

Primary LanguageRGNU General Public License v3.0GPL-3.0

Build Status Build status Coverage Status CRAN_Status_Badge

Tools to develop RECON packages

Installation

CRAN

Not yet on CRAN

Development version

To install the most recent development version use:

devtools::install_github("reconhub/recontools")

What does it do?

Package scaffolding

When starting a new RECON package, you can use init_package to quickly create a default package structure:

# from within your session
recontools::init_package("mynewpackage")

# you can also set a specific path for the new package
recontools::init_package("mynewpackage", path = "my_new_package_dir")

# you can also disable the CRAN checks
recontools::init_package("mynewpackage", check_cran_name = FALSE)

In case you want to create a new package from the command line, run:

Rscript -e "recontools::init_package('mynewpackage')"

Please note that using Rscript creates all optional components (like the MIT license) without asking.

init_package currently does the following:

  • Checks if the package name is valid and already taken on CRAN
  • Initializes a git repository, if not already present
  • Creates default .Rbuildignore and .gitignore files
  • Creates an R directory
  • Creates a default DESCRIPTION file
  • Adds an MIT License (asks for it)
  • Adds testthat tests
  • Adds a code of conduct (from the usethis package)
  • Creates a default README.Rmd
  • Creates a sample vignette
  • Adds travis CI + codecov (asks for it)
  • Adds appveyor (asks for it)
  • Adds a default .lintr file
  • Adds a NEWS.md file
  • Runs devtools::document()

Package checks

You can also run package checks for a given package.

# from within your session in a package directory
recontools::check_package()

# to enable goodpractice::gp checks do
recontools::check_package(run_gp = TRUE)

Currently, check_package does the following:

recontools::check_package(run_gp = FALSE)
#> Running RECON specific tests:
#>    x Packages should have at least one rmarkdown vignette
#>    ✓ Packages should not import functions in NAMESPACE but use :: instead
#>    ✓ Packages should have a NEWS.md file
#>    ✓ Packages should have tests
#>    ✓ Packages should use roxygen2
#>    ✓ Packages should use snake case in exported functions
#>    ✓ Packages should have a URL in the DESCRIPTION
#>    ✓ Packages should have a URL for bugreports in the DESCRIPTION
#>    x Packages should have a docs folder or a gh-pages branch.
#>    ✓ Packages should use travis CI for Linux/Mac testing
#>    ✓ Packages should use appveyor CI for Windows testing
#> 
#> Consider fixing the issues identified above.
#> However, your package is already phenomenal!

Inspiration

This package is inspired by the goodpractice and the devtools package. In particular it relies on many functions provided by the devtools package.