Contributing¶
canair thrives on contributions — especially vehicle profiles and decoded
signals. Every profile or PID you share means the next person with the same car
starts ahead instead of from zero. This page is the friendly version; the
repo-root CONTRIBUTING.md
is the same information in brief.
Contribute a profile or PIDs (most wanted)¶
This is the highest-value contribution and needs no changes to canair's code.
- Do the work — follow the Bring your own car journey to build a profile for your car (or decode more of an existing one).
- Make it clean and honest:
canair validate allmust pass (schema + duplicate-signal-name checks).- Prefer
--verifiedparameters with a--sourcerecording your evidence; mark genuine guesses--unverified. car_modelshould pin down model/year/market/battery so others can tell if it matches theirs.- Include a representative subset of
captures/as evidence (they can be large — you don't have to ship everything). - Share it with
canair contribute— one command opens the pull request for you (no manual fork/clone/branch), no matter where your profile is stored. It runscanair validate all, scans your captures andecus/identity blocks for a VIN/PII, then opens the PR via the GitHub CLI (gh— install it and rungh auth loginonce;canair contributeprints these steps if it's missing). Use--no-capturesfor a smaller, definitions-only PR, or--dry-runto preview. Prefer git yourself? A standard PR putting your profile underprofiles/<your-car>/works just as well.
Partial is welcome. A handful of verified signals, a corrected byte offset,
or a new research: lead all help — you don't need a "finished" profile.
See Share your profile for the full detail.
Report a bug or request a feature¶
Open a GitHub issue and pick
the matching form (bug, feature, or profile). It prompts for what you ran, what
you expected, and what happened (a --json dump or the exact command helps).
Rough edges in the CLI or docs are fair game too.
Contribute code¶
Changes to canair itself (the canlib/ package) are welcome — the dev setup, the
checks to run before a PR, commit-message format, and the screenshot pipeline all
live in Development.
Code of conduct¶
Be kind and constructive. This is a hobbyist project for people curious about
their cars — assume good faith, and help newcomers. The full text is in
CODE_OF_CONDUCT.md.