← Back to all sparks
G

goodpractice

INFRA · APIS
Velocity0.0

Advice on R Package Building. Contribute to ropensci-review-tools/goodpractice development by creating an account on GitHub.

The R package-quality checker returns from CRAN limbo with checks you can select by category.

code-qualitystatic-analysisr-packageropenscideveloper-tooling
Current state
goodpractice runs a battery of static checks over an R package — style, complexity, test coverage, documentation, DESCRIPTION hygiene — and reports what a reviewer would flag. The package was archived on CRAN, adopted by rOpenSci in 1.0.5, and version 1.1 is the first substantive release since: every check now belongs to one of 16 named groups, discoverable via all_check_groups() and selectable via checks_by_group(), with group-level exclusion through an option or environment variable and new default_checks() and tidyverse_checks() presets.
Where it's heading
The direction is from a monolithic verdict toward a configurable one. Previously the practical choices were run everything or name individual checks; grouping makes partial adoption tractable, which matters because the full battery is opinionated enough that teams either accept all of it or ignore the tool. The tidyverse_checks() preset makes that explicit — the package is acknowledging that its defaults encode one house style among several. Earlier releases pointed the same way with a configurable cyclomatic complexity limit and adjustable output length.
Prediction
With grouping and presets in place, the natural next step is per-project persistent configuration so exclusions live in the repository rather than in an option or environment variable.

Recent moves

  1. 2mo ago

    Checks organized into 16 selectable groups with presets

    ⚡ SPARK

    Restructures how checks are chosen: every check joins one of 16 named groups, with discovery, description, per-group printing, and group-level exclusion, plus default_checks() and tidyverse_checks() presets and a changed gp() default. The first release to treat the check set as something teams configure rather than accept whole.

    View source ↗
  2. 2y ago

    rOpenSci takes over maintenance, package restored to CRAN

    Records the maintainer transfer to rOpenSci and the package's reinstatement on CRAN after the previous version was archived, with the minimum fixes needed to get there. No functional change, but it is the reason the package has a 1.1 at all.

    View source ↗
  3. 4y ago

    Configurable cyclomatic complexity limit and output length

    Makes two hardcoded thresholds adjustable: the cyclomatic complexity limit via the goodpractice.cyclocomp.limit option, and the previously fixed five-line output per check via a positions_limit parameter on print(). Custom check documentation was substantially improved in the same release — early movement toward the configurability 1.1 generalizes.

    View source ↗
  4. 5y ago

    Package logo added

    A merged pull request adding a package logo. No code change.

    View source ↗