We welcome contributions of all kinds — bug fixes, new features, documentation improvements, and more. This guide explains how to get started.
This project requires all commits to be signed off in accordance with the Developer Certificate of Origin (DCO). The DCO certifies that you have the right to submit your contribution under the project's open-source license.
To sign off your commits, add the -s flag:
git commit -s -m "Your commit message"This adds a Signed-off-by line to your commit message:
Signed-off-by: Your Name <your.email@example.com>
If you have already made commits without signing off, you can amend them:
# Amend the last commit
git commit --amend -s
# Rebase and sign off multiple commits
git rebase --signoff HEAD~N # where N is the number of commits-
Clone the repository:
git clone https://github.com/botanu-ai/botanu-sdk-python.git cd botanu-sdk-python -
Create a virtual environment and install dependencies:
python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate pip install -e ".[dev]"
-
Install pre-commit hooks:
pre-commit install
-
Run tests:
pytest tests/
-
Run linting and type checks:
ruff check src/ tests/ ruff format src/ tests/ mypy src/botanu/
- Fork the repository and create a feature branch from
main - Make your changes with appropriate tests
- Ensure all tests pass and linting is clean
- Sign off all commits with DCO
- Submit a pull request with a clear description of the change
Pull requests require approval from at least one maintainer before merging.
- Look for issues labelled
good first issueif you are new to the project - Issues labelled
help wantedare ready for community contributions - Join the discussion on GitHub Discussions to ask questions or propose ideas
- Follow PEP 8 style guidelines
- Use type hints for all function signatures
- Write docstrings for public APIs
- Keep commits focused and atomic
Please use GitHub Issues to report bugs or request features. Include:
- A clear description of the issue
- Steps to reproduce (for bugs)
- Expected versus actual behaviour
- Python version and OS
This project follows the LF Projects Code of Conduct. See CODE_OF_CONDUCT.md.
By contributing, you agree that your contributions will be licensed under the Apache License 2.0.