Skip to content

Latest commit

 

History

History
116 lines (86 loc) · 3.05 KB

File metadata and controls

116 lines (86 loc) · 3.05 KB

Contributing to Botanu SDK

We welcome contributions of all kinds — bug fixes, new features, documentation improvements, and more. This guide explains how to get started.

Developer Certificate of Origin (DCO)

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

Development Setup

  1. Clone the repository:

    git clone https://github.com/botanu-ai/botanu-sdk-python.git
    cd botanu-sdk-python
  2. Create a virtual environment and install dependencies:

    python -m venv .venv
    source .venv/bin/activate  # On Windows: .venv\Scripts\activate
    pip install -e ".[dev]"
  3. Install pre-commit hooks:

    pre-commit install
  4. Run tests:

    pytest tests/
  5. Run linting and type checks:

    ruff check src/ tests/
    ruff format src/ tests/
    mypy src/botanu/

Pull Request Process

  1. Fork the repository and create a feature branch from main
  2. Make your changes with appropriate tests
  3. Ensure all tests pass and linting is clean
  4. Sign off all commits with DCO
  5. Submit a pull request with a clear description of the change

Pull requests require approval from at least one maintainer before merging.

Finding Work

Code Style

  • Follow PEP 8 style guidelines
  • Use type hints for all function signatures
  • Write docstrings for public APIs
  • Keep commits focused and atomic

Reporting Issues

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

Code of Conduct

This project follows the LF Projects Code of Conduct. See CODE_OF_CONDUCT.md.

License

By contributing, you agree that your contributions will be licensed under the Apache License 2.0.