-
-
Notifications
You must be signed in to change notification settings - Fork 914
Code contribution rules
gullradriel edited this page Feb 19, 2026
·
19 revisions
By contributing you accept to provide code that comply to the following code rules. Any pull request may be stalled until fixed. It's important for everyone, be it contributors or reviewers, to have a clear compile log so they can easily spot and fix new arising problems / warning.
- Indent your code. Using automatic indentation is recommended, at least for new apps
- Test and take in account the return code each time it's needed
- Have an error management in your app
- Make reusable content (class, structs, gui filler functions, ...)
- Document global processing as well as tricky parts, don't be lazy, some may contribute to your own contribution. Information inside the code is really appreciated
- Fix your compilation warnings before making a pull request. ALL your warnings. It's making a terrible noise in the compilation log each time we accept PRs with warnings everywhere
- Provide access to your sources via a public repository
- !! NEVER USE std::rand or std::srand, they are known to break to heap/stack/memory !!
We love and welcome AI code, as long as:
- It didn’t violate the TOS of the AI provider and AI model.
- It doesn't substantially resemble or duplicate open-source code with licensing incompatible to this project's licenses.
- You reviewed the code.
- You understood the code.
- You tested the code.
- You checked that AI code IS NOT using std::rand or std::srand !
- PRs should be up to date with 'next'
- Each new functionality should have it's own PR, don't put too much files/commits into a single PR. When it's too much commits, one can make a new branch and report only the modified files in a single commit, to make the review easier
- Merging of any PR is up to the maintainers good will
- Use English
-
var_and_func_example(snake_case) -
_private_member_of_class_example(_snake_case) (not yet covered all in codebase but new apps. You are welcomed to correct them.) namespaceexample-
ClassNameExample(CamelCase) -
objectNameExample(camelCase) -
func_arg_ex(snake_case and abbreviation is allowed in small scope functions) - Don’t use
typedefkeyword in C++ code -
gotois not allowed
- MIT: It's safe to copy MIT license, as long as you keep original copyright info.
- MPL: It's safe to copy MPL license, as long as you follow Mozilla's agreement.
- GNU (GPL 2/3 / AGPL): This project is under GPL which means it's safe to use GPL code here as long as you open source your the distro under GPL license.
- The Unlicensed: safe to use.
- BSD: safe to use.
- WTFPL: Safe to use.
- CC0: safe to use.
How to collaborate
Contributing Guidelines
Trusted contributors
How to ask questions correctly
- PortaPack Versions (which one to buy)
- Features
- HackRF Versions
-
Description of the hardware
- Enclosure/cases
- Repairs
- Mods
- 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
- 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
- 📥 Receivers
- 2-Tone-RX
- ACARS
- ADS-B
- AFSK
- AIS Boats
- Analog TV
- APRS RX
- Audio
- BLE RX
- Detector
- EPIRB RX
- ERT Meter
- Flex RX
- Radio
- Fox-Hunt
- FPV-Detect
- gfxEQ
- Level
- Meteor
- Morse RX
- NOAA
- NRF
- POCSAG
- ProtoView
- Radiosonde
- RTTY RX
- Scanner
- Search
- Signal Hunter
- SSTV RX
- SubCar
- SubGhzD
- Tetra RX
- Time Sink
- TPMS RX
- Weather
- WeFax
- VOR RX
- 📤 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
- Security+ TX
- Signal gen
- Soundboard
- Spectrum Painter
- SSTV
- TEDI/LCR
- TouchTunes
- TPMS TX
- VOR TX
- 🔄 Transceivers
- 🟡 Recon
- 🔴 Capture
▶️ Replay- 🖲️ Remote
- 🔍 Looking Glass
- 🛠️ Utilities
- 🎮 Games
- ⚙️ Settings
- 💻 HackRF Mode
-
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