Skip to content

Experimental package for making it easy to initialize and compile R packages complying with IQSS Best Practices

License

Notifications You must be signed in to change notification settings

IQSS/IQSSdevtools

Repository files navigation

Project Status: WIP - Initial development is in progress, but there has not yet been a stable, usable release suitable for the public. CRAN_Status_Badge Travis-CI Build Status AppVeyor Build Status

IQSSdevtools

This package is in the early stages of development

The goal of IQSSdevtools is to makes it easy to initialize and compile an R software package that complies with the IQSS Best Practices for Software Development and Sustainability (IBPSDS).

The package will contain the following functions:

  • init_iqss_package: initialize a new IQSS Best Practices for Software Development and Sustainability compliant package {MINIMALLY WORKING EXAMPLE}

  • check_best_practices: checks to what extent a package follows the minimal best practices.

  • add_iqss_package: identify and add (when possible) missing Best Practice compliant elements to an existing R package {IN DEVELOPMENT}

    • add_test_suit: add just a test suite, including files needed for continuous integration.
  • build_iqss_package: builds and tests IQSS Best Practice elements in an R package {IN DEVELOPMENT}

  • iqss_lintr: lints package source code using IQSS R Style Guide {GUIDE and FUNCTION IN DEVELOPMENT}

  • publish_package: {GUIDE and FUNCTION IN DEVELOPMENT}

IQSS Best Practices for R Language Software Development and Sustainability

init_iqss_package initializes a skeleton package that allows you to begin to implement the IQSS Best Practices for Software Development and Sustainability.

IN DEVELOPMENT

  • Documentation: Sets up documentation dynamically generated using RMarkdown and roxygen2. This includes a README.Rmd file along with a package website generated with pkgdown. The README.Rmd file should lay out core information about the package's motivation, methods and include a dynamically generated "quick-start" example. init_iqss_package also creates a NEWS.md file for you to document all changes made to the package by version.

  • License: Adds a GPL-3 License

  • Version Control: Sets up git version control.

  • Public Source Code Hosting: If a GitHub authentication token is provided with the github_auth_token argument, a new GitHub remote repository is created for the package.

  • Testing: Sets up the infrastructure for unit testing with the testthat package. The basic foundation for external continuous integration of these unit tests is set up with the Travis CI and Appveyor services to run the tests on Linux and Windows operating systems, respectively.

Install

IQSSdevtools is in the early stages of development and is not yet on CRAN.

To install the development version using devtools:

library(devtools)

install_github('hadley/pkgdown') # Not currently on CRAN
install_github('IQSS/IQSSdevtools')

Example

To initialize a new package called mypkg use:

library(IQSSdevtools)

init_iqss_package(path = 'mypkg',
                    description = list("Title" = "A Test IQSS Package")
                  )

To check the extent to which a package follows the best practices:

check_best_practices()
## 
## Surveying IQSSdevtools. . .
## * checking documentation . . .
## * checking license . . .
## * checking version control . . .
## * checking tests . . .
##  ---- running CRAN check ----
##  ---- calculating test coverage ----
## 
## Survey results for IQSSdevtools:
## ---------------------------------------
## Documentation:
##   readme: yes
##   roxygen: yes
##   news: yes
##   bugreports: yes
##   vignettes: yes
##   website:
##     openscholar: no
##     pkgdown_website: no
## License:
##   gpl3_license: yes
## Version_Control:
##   git: yes
##   github: yes
## Testing:
##   uses_testthat: no
##   uses_travis: yes
##   uses_appveyor: yes
##   build_check:
##     build_check_completed: yes
##     no_check_warnings: yes
##     no_check_errors: yes
##     no_check_notes: no
##   test_coverage: 0
## Background:
##   package_name: IQSSdevtools
##   package_version: 0.0.0.9000
##   package_language: R
##   package_commit_sha: dcae5a1a5d5fc6515ab978c67fc73f661060479a
##   iqss_bestpractices_version: 0.0.0.9000
##   iqssdevtools_version: 0.0.0.9000
##   check_time: 2017-04-05 09:48:08
## 
## Saving results into .iqss_reportcard.yml
## * Adding .iqss_reportcard.yml to .Rbuildignore

Relationship with devtools

IQSSdevtools largely builds on the devtools package. It wraps many of the devtools functions based on the Best Practices. As such, feel free to use any devtools function when developing your package to add additional elements/run specific functions.

About

Experimental package for making it easy to initialize and compile R packages complying with IQSS Best Practices

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •