Contributing to ‘box’

Konrad Rudolph

2024-02-07

Installation

Compared to many other R packages, ‘box’ uses a somewhat different development workflow:

While ‘box’ uses ‘devtools’ and ‘roxygen2’ to generate documentation and package infrastructure, generated code and data is not checked into version control! This means in particular that the project does not contain a NAMESPACE file, since that is auto-(re)generated by tools. Therefore, attempting to install the current development version of ‘box’ via pak::pak('klmr/box') or equivalent means will fail!

Instead, an up-to-date, automatically generated build of the development version of ‘box’ should be installed from R-Universe:

install.packages('box', repos = 'https://klmr.r-universe.dev')

… or from the corresponding build branch:

pak::pak('klmr/box@build')

Alternatively it can be built manually using the instructions below.

Development

Building

The project contains a Makefile written in the GNU Make dialect that contains various development utilities. Invoking make without target will show a list of available targets with short descriptions. Using this Makefile isn’t necessary, but it helps. In particular:

Branches

All new code should be developed on a new branch with a name prefixed fix/ (for bug fixes), feature/ (for new features/enhancements), and chore/ (for any other contributions: fixed typos, project infrastructure, tests, etc.). Branches for pull requests will be merged into the main branch.

Code style

The code style of ‘box’ is similar to the Tidyverse style guide, but with several notable differences: