Contributing#
We welcome contributions to Qontrol’s Python bindings! This document provides guidelines for contributing.
Getting Started#
Fork the repository on GitHub
Clone your fork locally
Create a new branch for your feature or bugfix
Make your changes
Submit a pull request
Development Setup#
Install in development mode with all dependencies:
cd bindings/python
pip install -e ".[dev,all]"
This installs the package in editable mode with development tools.
Running Tests#
Run the test suite:
pytest tests/ -v
With coverage report:
pytest tests/ --cov=qontrol --cov-report=html
Building Documentation#
Build the documentation locally:
cd docs
make clean
make html
The built documentation will be in docs/_build/html/.
Contribution Guidelines#
Code Contributions#
Write clear, documented code
Add tests for new features
Ensure all tests pass
Update documentation as needed
Documentation Contributions#
Fix typos and improve clarity
Add examples for common use cases
Expand API documentation
Improve tutorials
Bug Reports#
When reporting bugs, please include:
Python and Qontrol versions
Minimal code to reproduce the issue
Expected vs actual behavior
Error messages and stack traces
Feature Requests#
For feature requests:
Describe the use case clearly
Explain why the feature would be valuable
Provide examples if possible
Pull Request Process#
Update documentation for any changed functionality
Add tests for new features
Ensure all tests pass
Update the changelog
Request review from maintainers
Code Review#
All submissions require review before merging. We look for:
Code quality and style compliance
Test coverage
Documentation updates
Clear commit messages
License#
By contributing, you agree that your contributions will be licensed under the same license as the project (LGPL-3.0).