dx takes bug reports, fixes and small features for run-run, vland and their packages. To set up the repo and run its checks, see the development guide.
- A bug report says what you ran, what you expected, what happened, and which Node version and package versions you use.
DEBUG=run-run:*orDEBUG=vland:*before the command prints the debug log. - A new feature, a new plugin, or a change to a command, a template or the plugin contract starts as an issue before any pull request.
- Branch from
mainwith a prefix:feat/,fix/,docs/,ci/,chore/ortest/. - Write commits as Conventional Commits, such as
fix(oxc-plugin): stop installing a flaky oxlint-tsgolint. The pull request title takes the same form, because it becomes the squash commit. - A feature lands with a test of the happy path and at least one failure case, and a fix with a regression test.
- Run
pnpm rr checkandpnpm testbefore you push. - A pull request from a
feat/orfix/branch, or with thepreviewlabel, publishes a preview to npm, under thepr-<number>tag, of each package it changes and the packages that depend on them. The development guide shows how to install one.
CI has to pass, and a maintainer squash-merges.
A change to what a package ships to npm needs a changeset. Run pnpm changeset, pick the packages and the bump (patch for a fix, minor for a feature, major for a breaking change), and write one sentence for the changelog. Changes to tests, CI, decisions/ or these docs need none.
The plugins take @rrlab/cli as a peer, and a changeset that bumps @rrlab/cli by major also lists every official plugin as major. Decision 011 explains why.
Nobody edits versions or CHANGELOG.md by hand, and nobody publishes from a clone.
When changesets land on main, the Release job opens or updates a "chore: update versions" pull request as vland-bot. A maintainer merges it, and the next run on main publishes each new version to npm, with npm trusted publishing, and tags it.
A new tag of a CLI regenerates the CLI.md of every CLI in the cli docs workflow, in a "chore: regenerate CLI docs" pull request, which a maintainer merges too.