Develop and contribute#

Contributions are welcome, from a documentation fix to a new integration.

  • Share a workload, reporter, optimization agent, or execution backend you’ve built.

  • Improve an existing integration or fix a bug.

  • Add a public example or clarify a guide based on your experience.

For a new feature or a substantial change, open an issue to discuss the use case with the team before implementing it. Keep each contribution focused, with validation appropriate to its behavior.

Prepare#

Follow the repository’s contribution guidelines. Use SPDX headers for new Python files, mirrored tests, absolute core imports, and existing lazy-loading patterns. Keep configurations backward compatible and examples free of internal resources and credentials.

Check a change#

uv run --locked --extra dev pytest tests/path_to_changed_behavior.py
uv run --locked --extra dev pre-commit run --files path/to/changed_file.py

Replace the paths with the tests and files affected by your change. Build documentation with uv run --extra docs sphinx-build -b html doc doc/_build/html and inspect the rendered pages.

Submit#

Sign off commits and follow the pull-request template. Describe the user-visible behavior and validation performed. Update the relevant task guide or reference when public behavior changes. Keep runtime examples and their documentation linked so later changes can be validated together.