Thank you for your interest in contributing to the OpenIntent Python SDK! This document provides guidelines for contributing.
-
Clone the repository:
git clone https://github.com/openintent-ai/openintent.git cd openintent -
Create a virtual environment:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install development dependencies:
pip install -e ".[dev]"
We use the following tools for code quality:
- Ruff for linting and code formatting
- mypy for type checking
- pre-commit for automatic formatting on every commit
Set up pre-commit hooks (runs automatically with make install-dev):
pip install pre-commit
pre-commit installBefore submitting a PR, run:
ruff format openintent/
ruff check openintent/ --fix
mypy openintent/# Run all tests
pytest
# Run with coverage
pytest --cov=openintent --cov-report=html
# Run specific test file
pytest tests/test_models.py
# Run with verbose output
pytest -v- Fork the repository and create your branch from
main - Add tests for any new functionality
- Update documentation if you're changing public APIs
- Run the full test suite and ensure it passes
- Update CHANGELOG.md with your changes
- Submit a pull request with a clear description
Follow conventional commit format:
feat: add lease renewal support
fix: handle empty state updates
docs: update async usage examples
test: add validation tests
chore: update dependencies
When adding new features:
- Check if the feature aligns with an OpenIntent RFC
- Add type hints to all public functions
- Add docstrings with examples
- Add validation where appropriate
- Add tests for both sync and async clients
When reporting issues, please include:
- Python version
- SDK version
- Minimal code example to reproduce
- Expected vs actual behavior
- Full error traceback if applicable
- Be respectful and inclusive
- Focus on constructive feedback
- Help others learn and grow
Open an issue or reach out at contributors@openintent.ai.