Contributing#

We welcome contributions to Qontrol’s Python bindings! This document provides guidelines for contributing.

Getting Started#

  1. Fork the repository on GitHub

  2. Clone your fork locally

  3. Create a new branch for your feature or bugfix

  4. Make your changes

  5. 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#

  1. Update documentation for any changed functionality

  2. Add tests for new features

  3. Ensure all tests pass

  4. Update the changelog

  5. 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).