Advice on R Package Building
Overview
Give advice about good practices when building R packages. Advice includes functions and syntax to avoid, package structure, code complexity, code formatting, etc.
Major changes
- Require R version >= 4.3, because of treesitter dependency (#302; thanks to @christian-million)
- New
use_skill_gp()andlearn_skill_gp()functions, plus a bundledgoodpractice4agents.mdskill ininst/skills/, giving AI agents instructions to fix issues flagged bygoodpractice(#308, #312, #313; thanks to @mpadge, @drmowinckels, and @jonthegeek). - New vignette, "'goodpractice' for developers" describing
Makefile(#305), and overall check structure.
Minor changes
- New GitHub issue templates for bug reports and feature requests
complexity_unused_internalcheck no longer flags standard R package hook functions (.onLoad,.onAttach,.onUnload,.onDetach,.Last.lib) as unused (#319; thanks @TanguyBarthelemy).- Fix
urlcheckerprep step to passfail = FALSEtourlchecker::url_check(), restoring previous default behaviour after an upstream change (r-lib/urlchecker#42). .Rprofilenow sources the system-level~/.Rprofileif it exists, rather than entirely replacing it.- Fix
test-integrity.Rto only read.Rsource files (avoiding installed.rdbbinaries) and skip informatively when none are found. tidyverse_r_file_names: allow file names containing hyphens (-) but require file extension.R(#307; thanks to @JesseAlderliesten).- Fix bug in check group exclusions through env vars, and update vignette.
Show all changes in 1.2.0Hide the rest of the changes in 1.2.0
- Fix prep assignment to check groups for two checks (revdep + 1 tidyverse), including attaching "namespace" prep only internally to one of those so full tidyverse prep stage is only run for that group.
- Fix bug in printing some check results that would produce an error caused by invalid marker types (#304; thanks to @JesseAlderliesten).
- Convert the remaining base
warning()ints_parse()tocli::cli_warn(), completing the package-wide move to cli messaging.
---
From NEWS.md in the release
Install
Health
- OK13 OK2026-09-05
- ERROR12 OK, 1 ERROR2026-08-21
- OK13 OK2026-08-05
- NOTE12 OK, 1 NOTE2026-08-01
- OK13 OK2026-06-10
Show 3 earlier changesHide 3 earlier changes
- NOTE12 OK, 1 NOTE2026-06-09
- ERROR11 OK, 1 NOTE, 1 ERROR2026-06-08
- NOTE12 OK, 2 NOTE2026-03-10
Documentation
- Help pages
- 18includes a package overview page
- Examples that run
- 94%15 run in a plain check · 1 never run
- Exported functions with examples
- 100%
- Documented parameters
- 100%
- Return-value docs
- 100%
- Help pages citing references
- 0%
- goodpractice HTML
- 'goodpractice' for developers HTML
- Custom Checks HTML
Downloads
Repository
- PRs merged (all time)
- 90%
- Median days to close, 50 most recently updated closed issues
- 23
- Median days to close, 50 most recently updated closed PRs
- 1
Stars over time
Forks over time
Releases over time
Issues over time
PRs over time
Commits over time
13 development-tooling and community-health practices detected across 8 families in the upstream repository
Checks run against github.com/ropensci-review-tools/goodpractice on 2026-10-11.
The R CMD check workflow runs on Linux, macOS and Windows, and on R-devel
GitHub Pages site last deployed 2022-07-13
Show all practicesHide 4 practices
This repository shows signs of AI coding tools.
- Claude Codefirst seen 2026-02-13Named in .Rbuildignore: .claudePull request it wrote: opened by a project memberCommits: at least 132 crediting it in the message
- Claude CodePull requests: 32 from outside contributors, first on 2026-02-13, 32 from forks
- Claude Opus 4.6100 commits · Feb to Mar 2026
Some of these counts are a minimum, because the search stopped before the oldest commits.
Dependencies
Installing goodpractice adds 56 packages (25 with compiled code, 18 MB of source tarballs). Heaviest: hunspell 3.1 MB, Rcpp 1.8 MB, fs 1.4 MB.
Code & Tests
People & History
Previously maintained by Karina Marks (1.0.3 to 1.0.4) and Hannah Frick (1.0.2).
Pick two releases to compare their code metrics.
- 1.2.0Latest
- 1.1.02026-06-05 · diff ↗ ·
added 6 exports
all_check_groups, checks_by_group, default_checks, describe_check, describe_check_groups, tidyverse_checks - RR 4.6.0 released · 2026-04-24
- RR 4.5.0 released · 2025-04-11
- unarchivedReturned to CRAN2024-06-04
- 1.0.52024-06-04 · diff ↗
- RR 4.4.0 released · 2024-04-24
- archivedRemoved from CRAN2024-04-20issues were not corrected despite reminders
- RR 4.3.0 released · 2023-04-21
- 1.0.42022-08-30 · diff ↗
- unarchivedReturned to CRAN2022-07-13
- 1.0.32022-07-13 · diff ↗
- archivedRemoved from CRAN2022-04-27check issues were not corrected in time length > 1 in && or ||
- RR 4.2.0 released · 2022-04-22
- RR 4.1.0 released · 2021-05-18
- RR 4.0.0 released · 2020-04-24
Show 3 earlier eventsHide 3 earlier events
- RR 3.6.0 released · 2019-04-26
- 1.0.22018-05-02
- RR 3.5.0 released · 2018-04-23
Package metadata
- First published
- 2018-05-02
- Total releases
- 6 / 8 yrs
- License
- MIT + file LICENSE OSI
- Minimum R
- ≥ 4.3.0
- Download size
- 175 KB
Cite
Cite this package
Run in R for the authors' preferred citation:
citation("goodpractice")This package has no citation file, so citation() returns this entry built from DESCRIPTION.
Cite the R Observatory
For a number measured here: a download total, a coverage figure, an archival date.
From data release v2026-10-19, which the citation names so these numbers can be found later. More on citing and the projects behind them.