Thanks for your interest in rdc-cli! Whether it's a bug report, feature idea, or code contribution — all are welcome.
Found a bug or have a feature request? Please open an issue.
A good issue includes:
- Bug reports: what you did, what you expected, what happened instead. Include
rdc doctoroutput and your OS/Python version. A minimal.rdccapture to reproduce is ideal but not required. - Feature requests: describe the use case (what problem are you solving?), not just the solution. If you have thoughts on the CLI interface, include an example invocation.
- Questions: if you're unsure whether something is a bug or a usage question, open an issue anyway — we'll sort it out.
- For non-trivial changes, open an issue first to discuss the approach. This avoids wasted effort if the design needs adjustment.
- Small fixes (typos, one-liner bug fixes) can go straight to a PR.
A good PR description helps reviewers understand your change quickly:
## What
One-sentence summary of what this PR does.
## Why
The problem or motivation. Link to the issue if there is one (Fixes #123).
## How
Brief description of the approach. Call out any non-obvious decisions
or trade-offs.
## Test plan
How you verified the change works:
- [ ] Added/updated unit tests
- [ ] Ran `pixi run check` (lint + typecheck + tests)
- [ ] Manual testing with a real .rdc capture (if applicable)
We use Conventional Commits, enforced by commitlint in CI:
feat(cli): add frobnicate command
fix(daemon): handle missing texture gracefully
docs(readme): update install instructions
Common scopes: cli, daemon, vfs, ci, build, docs.
- Fork and clone the repo
- Set up the dev environment:
pixi install && pixi run sync - Create a feature branch:
git switch -c feat/my-feature - Make your changes, ensure
pixi run checkpasses - Push and open a PR against
master
PRs are squash-merged after review.
Enforced by CI — just follow the tooling:
- Linter/formatter: ruff (
ruff check --fix/ruff formatto auto-fix) - Type checker: mypy strict mode
- Line length: 100 chars
- Output:
click.echo()orlogging, neverprint() - Paths:
pathlib.Path, notos.path
- Lint (ruff) + type check (mypy)
- Unit tests — Python 3.10 / 3.12 / 3.14 on Linux + Windows
- Commitlint — conventional commit format
- Dependency audit (pip-audit)
By contributing, you agree that your contributions will be licensed under the MIT License.