A comprehensive R package that simplifies and expedites common R package development tasks.
devtools is an R package that provides a comprehensive suite of functions to simplify and expedite the development of other R packages. It automates common tasks such as loading code during development, updating documentation, running tests, building packages, and managing installations from various sources. The tool is designed to make the entire package development workflow more efficient and less error-prone.
R developers and data scientists who are creating, maintaining, or contributing to R packages, especially those looking for a standardized and automated development workflow.
Developers choose devtools because it bundles essential development tools into a single, cohesive interface, significantly reducing the complexity and time required for package development. Its integration with modern practices and companion resources like the *R Packages* book makes it the de facto standard for R package development.
Tools to make an R developer's life easier
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Bundles essential functions like load_all(), document(), and test() into a cohesive workflow, automating repetitive tasks and reducing the need to memorize disparate commands, as emphasized in the README's usage examples.
Provides install_* functions for GitHub, GitLab, URLs, and local files, simplifying package installation from diverse sources beyond CRAN, which is a key feature highlighted in the README.
Includes tools like check(), release(), and submit_cran() to handle local checks and submission mechanics, making it easier to prepare packages for CRAN, as detailed in the 'Check and release' section.
Linked with the 'R Packages' book and community resources, offering comprehensive guidance for developers, with the README pointing to chapters and forums for support.
As a meta-package resulting from 'conscious uncoupling,' it installs multiple dependencies like testthat and roxygen2, increasing setup time and potential for conflicts, which the README acknowledges as a consideration for bug reporting or direct use.
load_all() has limitations with unloading packages, as noted in the README's warning that 'reloading a package is not guaranteed to work,' which can lead to unstable behavior during iterative development.
The first edition of the companion book is out of sync with current devtools, and while a second edition exists, users might encounter outdated guidance, creating a learning curve for newcomers.