Contributing to TFiltersPy

First off, thank you for considering contributing to TFilterPy! πŸ™Œ Your contributions help us build better, faster, and more meaningful filtering tools for the world.

We welcome all kinds of contributions: - πŸ”§ Bug fixes - πŸ“š Documentation improvements - ✨ New features or filters - πŸ§ͺ Unit tests and validation - πŸ’‘ Suggestions and discussions

Getting Started

  1. Fork the repository Go to https://github.com/ubunye-ai-ecosystems/tfilterspy and click β€œFork”.

  2. Clone your fork

    git clone https://github.com/ubunye-ai-ecosystems/tfilterspy.git
    cd tfilterspy
    
  3. Create a virtual environment

    python -m venv venv
    source venv/bin/activate  # On Windows use `venv\Scripts\activate`
    
  4. Install dependencies

    pip install -e .[dev]
    

    This installs the library along with development tools like pytest, black, ruff, and sphinx.

  5. Run the tests

    pytest
    

Code Style

We follow [PEP8](https://peps.python.org/pep-0008/). Before submitting, please run:

black .
ruff . --fix

This ensures your code is formatted and linted properly.

Branching Strategy

  • main: Stable releases

  • dev: Active development

  • Feature branches: feature/your-awesome-thing

  • Bugfix branches: fix/some-bug-name

Writing Documentation

To build docs locally:

cd docs
make html
open _build/html/index.html

Notebooks for examples should be placed in: examples/notebooks/particle-filters-usecases.ipynb

Pull Requests

  1. Push your changes and open a pull request to dev.

  2. Add a descriptive title and explain your motivation.

  3. Link related issues, if any.

All PRs will go through: - βœ… CI testing - πŸ§ͺ Code review - πŸ“š Docs build check

Need Help?

Open an issue or join the discussion at https://github.com/ubunye-ai-ecosystems/tfilterspy/discussions

We’re all here to learn and build together. ❀️

License

By contributing, you agree that your contributions will be licensed under the same license as this project (MIT, Apache 2.0, etc.).