Skip to contents

Thanks for helping out! Questions and ideas are welcome in GitHub Discussions, and bugs in the issues.

Setting up

rpix is developed in its own Pixi environment, defined in pixi.toml. Its default feature has R and rpix’s dependencies, the packages in DESCRIPTION’s Imports. Its dev feature has the tools for developing rpix (devtools, roxygen2, testthat, covr, pkgdown, quarto and air), which users don’t get. The default environment has both.

  1. Install Pixi.
  2. Clone the repository. Pixi installs the environment the first time you run a task.

Tasks

Run these in a terminal in the repository:

Task Does
pixi run document Regenerates man/ and NAMESPACE from the roxygen comments
pixi run test Runs the tests
pixi run check Runs R CMD check
pixi run coverage Measures test coverage, and opens a report of uncovered lines
pixi run format Formats the code with air
pixi run readme Renders README.md from README.qmd
pixi run site Builds the pkgdown site
pixi run preview Builds the site and serves it at http://127.0.0.1:8000

In an IDE

  • Positron: the repository turns on Positron’s Pixi discovery in .vscode/settings.json. Pick R (Pixi: default) in the interpreter picker, and use devtools::load_all() and friends, or their shortcuts (Cmd/Ctrl+Shift+L, T, D), as usual.
  • RStudio or VS Code: see Using rpix with an IDE.

Pull requests

  • Every new or changed line is covered by tests. Codecov checks this on each pull request; pixi run coverage shows what isn’t covered.
  • Code is formatted with air, which is checked on each pull request. Run pixi run format, or comment /style on the pull request.
  • man/ is generated. Edit the roxygen comments and run pixi run document, or comment /document on the pull request.
  • NEWS.md is written for users, in the tidyverse style. Add a bullet under # rpix (development version) for each user-facing change.
  • Pull request titles are Conventional Commits, e.g. feat: add pixi_sitrep() or fix: ....

Releasing

  • Set the version in DESCRIPTION and in .claude-plugin/plugin.json, date the NEWS.md heading, and render README.md (pixi run readme).
  • Re-read the agent skill (skills/rpix/) against what changed, and check it: claude plugin validate . and skills-ref validate skills/rpix. Run the evals (claude plugin eval . --scaffold) when the skill changes.
  • After the release, set both versions to the next .9000.