First off, thank you for considering contributing to this project! It's people like you that make this setup better for everyone.
If you find a bug, please create an issue on GitHub. Before creating a new issue, please check if a similar issue already exists.
When you create an issue, please include:
- A clear and descriptive title.
- Steps to reproduce the problem.
- What you expected to happen vs what actually happened.
- Relevant logs (use the Rescue Menu
sudo pihole-rescueto gather system status). - Information about your system (OS version, Raspberry Pi model).
Enhancement suggestions are tracked as GitHub issues. When creating an enhancement suggestion, please provide:
- A clear and descriptive title.
- A step-by-step description of the suggested enhancement.
- Specific examples to demonstrate the steps.
- The rationale for why this enhancement would be useful.
- Fork the repository and create your branch from
main. - If you've added code that should be tested, add tests.
- Ensure the test suite passes (run
bash scripts/nightly_test.shif applicable). - Update the documentation if your changes require it.
- Make sure your code follows the existing style (run
shellcheckon bash scripts;scripts/nightly_test.shalso runs optionalshfmtchecks when available). - Issue that pull request!
If you want to contribute to the codebase:
- Clone your fork locally.
- We highly recommend using a test environment (e.g. a Proxmox VM or a dedicated testing Raspberry Pi) instead of your production DNS server to avoid network downtime.
- For Python changes in
start_suite.py, set up a virtual environment and installrequirements.txt; the documented Python development tools areruffandpytest.
Thank you for your contributions!