Contributing
Thank you for your interest in Purple8 Hyper Graph! We welcome bug reports, feature requests, and community feedback.
Ways to Contribute
🐛 Bug Reports
Found a bug? Open a bug report with:
- A clear, descriptive title
- Steps to reproduce the issue
- Expected vs. actual behaviour
- Your environment (OS, Python version, Purple8 version)
- Any relevant logs or error messages
See Reporting Issues for a detailed walkthrough.
💡 Feature Requests
Have an idea? Open a feature request with:
- A clear description of the problem you're trying to solve
- Your proposed solution (if any)
- Why this would benefit other users
🔒 Security Vulnerabilities
Do not open a public issue for security vulnerabilities. Please see the Security Policy for responsible disclosure instructions.
Development Setup
# Clone the repository
git clone https://github.com/Purple8-Technologies/purple8-hyper-graph.git
cd purple8-hyper-graph
# Create a virtual environment
python3.11 -m venv .venv
source .venv/bin/activate
# Install in development mode with all extras
pip install -e ".[dev,bench]"
# Run the test suite
python -m pytest tests/ -qPython version
We recommend Python 3.11 for development. The full test suite runs against 3.10, 3.11, and 3.12 in CI.
Code Style
- Python 3.10+ — we use modern Python features (type hints,
matchstatements, etc.) - Formatting — we follow PEP 8 conventions with a 100-character line length (
black --line-length 100) - Linting — Ruff with
E,F,W,I,N,UP,B,C4rules enabled - Type hints — all public APIs must have type annotations (
mypy --strictruns in CI) - Tests — every new feature or bug fix should include tests. We currently maintain 1,447+ tests.
Pull Request Process
- Fork the repository and create your branch from
main - Write clear, focused commits with descriptive messages
- Ensure the full test suite passes:bash
python -m pytest tests/ -q - Update documentation if your change affects public APIs or behaviour
- Open a pull request with a clear description of what changed and why
PR Checklist
Every pull request uses our PR template which includes:
- [ ] Change type (bug fix / feature / breaking change / docs)
- [ ] Tests added or updated
- [ ] Documentation updated (if applicable)
- [ ] CHANGELOG entry added
Code of Conduct
We are committed to providing a welcoming and inclusive environment. Please be respectful and constructive in all interactions. Harassment, discrimination, and abusive behaviour will not be tolerated.
License
By contributing to Purple8 Hyper Graph, you agree that your contributions will be subject to the project's license.
Questions?
| Channel | Contact |
|---|---|
| General | hello@purple8.ai |
| Enterprise | enterprise@purple8.ai |
| Security | security@purple8.ai |
| Bug reports | GitHub Issues |