Thank you for your interest in contributing! This document outlines how to get started.
Please read and follow our Code of Conduct before contributing.
- Check that the bug hasn't already been reported in Issues
- Open a new issue using the Bug Report template
- Include as much detail as possible: steps to reproduce, expected vs actual behavior, environment
- Open a new issue using the Feature Request template
- Describe the problem you want to solve and your proposed solution
- Discuss before opening a PR for large changes
- Fork the repository
- Create a feature branch:
git checkout -b feature/my-feature - Make your changes β see code style notes below
- Test your changes:
pip install -r requirements.txt && python main.py db init - Commit with a clear message:
git commit -m "feat: add X to Y" - Push to your fork:
git push origin feature/my-feature - Open a Pull Request against
main
- Python 3.11+
- Follow PEP 8
- Use type hints on all public functions
- Add docstrings to new modules and public classes
- Keep functions focused and small
- No hardcoded credentials β always use environment variables
Use conventional commits where possible:
feat:β new featurefix:β bug fixdocs:β documentation onlyrefactor:β code change that neither fixes a bug nor adds a featuretest:β adding or updating testschore:β maintenance, dependency updates
git clone https://github.com/your-org/canarynet.git
cd canarynet
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
python main.py db init
python main.py serveDo not open public issues for security vulnerabilities. See SECURITY.md.