Trusted contributors
Some proof requirements from the Pull Request template may be waived for contributors who have built a track record of producing working, tested, and properly documented changes. This page defines what "trusted contributor" means, what can be waived, and how the status is granted or revoked.
Why this exists
Requiring full proof on every PR (compile logs, real-device screenshots, RF captures, wiki updates) is the right default. It keeps the firmware stable and prevents untested code from reaching users. But for contributors who have repeatedly shown they hold themselves to that standard, asking for the same evidence on every small refactor or bugfix becomes friction rather than quality control.
This exception exists to reduce that friction without lowering the bar for the firmware itself.
Who qualifies
There is no automatic threshold. Trusted-contributor status is granted at maintainer discretion, typically after a contributor has:
- Merged at least 3 PRs that included full proof (compile, real-device, and RF evidence where applicable)
- Created or properly updated the corresponding wiki pages for each of those PRs
- Responded constructively to review feedback
- Not shipped a PR that was later reverted or hot-fixed due to missing testing
Maintainers may also grant the status to long-standing project members, core maintainers of related projects, or contributors with a verifiable history elsewhere.
If you believe you qualify and the status would be useful for your upcoming work, you may open a discussion or mention it in your next PR, but please do not assume the status applies until a maintainer confirms it.
What can be waived
The proof sections on a PR fall into three tiers:
| Section | Waivable? | Notes |
|---|---|---|
| 🖥️ Proof it compiles | ✅ Yes | Maintainers can re-run the build themselves. |
| 📱 Proof of testing on a real device | ⚠️ Sometimes | Waivable for changes that don't affect runtime behaviour (refactors, comment fixes, build-system tweaks). Not waivable for UI, app logic, or hardware-interacting changes. |
| 📡 Proof against a real emitter/receiver | ❌ Never waivable | Maintainers cannot physically re-verify RF behaviour against arbitrary hardware. This proof is required from everyone, every time, without exception. |
| 📚 Wiki documentation | ❌ Never waivable | If the PR adds or modifies a user-facing app, the wiki must be kept in sync. |
When a section is waived, the contributor should still mark the section in the PR as:
N/A - trusted contributor (short reason, e.g. "internal refactor, no user-visible change")
This leaves an audit trail that makes the review history easier to follow.
Scope of a waiver
A waiver applies per PR, not per contributor. Even a trusted contributor should provide full proof when:
- The change touches RF, TX/RX, or protocol code (see the table above)
- The change is large, architectural, or risky
- The change affects an app they have not previously worked on
- A maintainer explicitly requests proof for that PR
When in doubt, include the proof anyway. Trusted-contributor status is a courtesy to save time on trivial changes, not a blanket exemption.
How status is revoked
Trusted-contributor status can be revoked at maintainer discretion if:
- A PR merged under the waiver is found to be broken, untested, or missing its wiki update
- The contributor repeatedly skips proof on changes where it was warranted
- The contributor becomes inactive for an extended period (status may be re-granted on return)
Revocation is not a punishment, it simply restores the default expectation of full proof on every PR. Re-earning the status follows the same path as earning it the first time.
For maintainers
When reviewing a PR from a trusted contributor:
- Confirm the N/A reasoning is accurate for the scope of the change
- Check that the RF proof and wiki update (where applicable) are still present, these are never waived
- If something feels off, ask for the proof anyway; the waiver is a default, not a guarantee
- Record revocations in the project discussions or a dedicated issue so other maintainers are aware
If you have questions about this policy, open a discussion on the repository rather than asking in individual PRs.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Start here
Contributors
How to collaborate
Contributing Guidelines
Trusted contributors
How to ask questions correctly
Hardware
- PortaPack Versions (which one to buy)
- Features
- HackRF Versions
- Description of the hardware
- Enclosure/cases
- Repairs
- Mods
User manual
Intended use and Legality
- Usage cautions
- First steps
- Firmware update procedure
- User interface
- Powering the PortaPack
- Troubleshooting
- Won't boot
- Config Menu
- Firmware upgrade
- Diagnose firmware update in Windows
- Receive Quality Issues
- No TX/RX
- TX Carrier Only
- H2+ speaker modifications
- Dead Coin Cell Battery
- Factory Defaults
- SD card not recognized by PC with the SD-card over USB selected
- DFU overlay
- Full reset
- SolveBoard
- How to Format SDCard
- What if I don't like some of the apps
Applications
- 📥 Receivers
- 📤 Transmitters
- 2-Tone-TX
- ADS-B(S) TX
- Adult Toys
- APRS TX
- BHT Xy/EP
- BLE TX
- BLESpam
- Burger Pager
- CVS Spam
- EPIRB TX
- Flex TX
- FlipperTX
- GPS Sim
- Hopper
- Jammer
- KeeLoq TX
- Key fob TX
- LGE Tool
- MDC-1200 TX
- Morse TX
- OOK
- OOK Brute
- OOK Editor
- P25 TX
- POCSAG TX
- RDS
- RTTY TX
- SAME TX
- Signal gen
- Soundboard
- Spectrum Painter
- SSTV
- TEDI/LCR
- TouchTunes
- TPMS TX
- 🔄 Transceivers
- 🟡 Recon
- 🔴 Capture
- ▶️ Replay
- 🖲️ Remote
- 🔍 Looking Glass
- 🛠️ Utilities
- 🎮 Games
- ⚙️ Settings
- 💻 HackRF Mode
Misc
Developer Manual
- Compilation of the firmware
- Compile on WSL with ninja
- How to compile on Windows faster with WSL 2
- Using Docker and Kitematic
- Docker command-line reference
- Using Buddyworks and other CI platforms
- Notes for Buddy.Works (and other CI platforms)
- Using ARM on Debian host
- All in one script for ARM on Debian host
- Compile on Arch based distro (exclude Asahi), or other weird distros
- Dev build versions
- Notes About ccache
- Create a custom map
- Code formatting
- PR process
- Description of the Structure
- Software Dev Guides
- Tools
- Research
- UI Screenshots
- Maintaining
- Creating a prod/stable release (Maintainers only)
- Maintaining rules
- Development States Notes
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Note
The wiki is incomplete. Please add content and collaborate.
Important
- This is a public wiki. Everything is visible to everyone. Don't use it for personal notes.
- Avoid linking to external tutorials/articles; they may become outdated or contain false information.