Contributing¶
Thank you for your interest in contributing to RhamaaCMS!
Ways to Contribute¶
- Report bugs — GitHub Issues
- Suggest features — GitHub Discussions
- Write documentation — Improve these docs
- Submit code — Pull requests welcome
- Share templates — Create custom templates
Development Setup¶
1. Fork and Clone¶
2. Create Branch¶
3. Set Up Environment¶
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt
4. Run Tests¶
Branch Structure¶
| Branch | Purpose |
|---|---|
base | Core template (stable) |
base-iot | IoT features |
base-inertia-react | React frontend |
dev | Active development |
Make changes to the appropriate branch.
Pull Request Process¶
- Update documentation — If your change affects usage
- Add tests — If applicable
- Update changelog — Describe your changes
- Submit PR — With clear description
PR Template¶
## Description
Brief description of changes
## Type of Change
- [ ] Bug fix
- [ ] New feature
- [ ] Documentation
- [ ] Breaking change
## Checklist
- [ ] Tests pass
- [ ] Documentation updated
- [ ] Code follows project style
Code Style¶
Python¶
Follow PEP 8 with these specifics:
# Max line length: 88 characters (Black)
# Use Black formatter
black apps/ utils/
# Import order: stdlib, third-party, local
django
wagtail
utils
apps
JavaScript/CSS¶
Creating Custom Templates¶
Want to create a new template variant?
- Fork the
basebranch - Make your modifications
- Update documentation
- Submit PR with:
- Template code
- Documentation
- README explaining the variant
See CLI: Creating Templates for details.
Documentation Contributions¶
Docs are in the docs/ folder (MkDocs format).
Local Preview¶
Open http://127.0.0.1:8000
Style Guide¶
- Use clear, concise language
- Include code examples
- Add screenshots for UI features
- Cross-reference related pages
Reporting Issues¶
Bug Reports¶
Include: - Steps to reproduce - Expected vs actual behavior - Environment (OS, Python, Wagtail versions) - Relevant code snippets
Feature Requests¶
Include: - Use case description - Proposed solution - Alternatives considered
Code of Conduct¶
- Be respectful and inclusive
- Welcome newcomers
- Assume good intent
- Focus on constructive feedback
Questions?¶
- GitHub Discussions
- Discord (if available)
Thank you for contributing! 🎉