Contributing to This Project

Thank you for considering contributing to this project! Your help is greatly appreciated.

How to Contribute

Reporting Issues

If you encounter a bug, have a feature request, or need clarification, please open an issue in the GitHub Issues section. When reporting a bug, include:

  • A clear description of the issue

  • Steps to reproduce

  • Expected vs. actual behavior

  • Any relevant error messages or logs

Submitting Code Changes

  1. Fork the repository and clone it locally.

  2. Create a new branch for your feature or fix:

    git checkout -b feature-name
    
  3. Make your changes and ensure they follow the project’s coding style.

  4. Run tests to verify your changes:

    pytest tests
    
  5. Commit your changes with a meaningful message:

    git commit -m "Describe your change briefly"
    
  6. Push the branch to your fork:

    git push origin feature-name
    
  7. Create a Pull Request (PR) from your branch to the main branch.

Code Style

This project follows standard Python best practices (PEP 8).

Please ensure your code is typed where applicable using type hints.

Make sure that every function has a docstring with types. We use the Google style docstring format. Here is an example for a Google style docstring.

Writing Tests

If your contribution includes code changes, please add or update tests to maintain high code quality. We use pytest for testing. All tests are located in the tests folder:

pytest tests

Ensure all tests pass before submitting your PR.

Reviewing Pull Requests

We encourage contributors to review open PRs and provide constructive feedback.

Other Ways to Contribute

  • Writing tutorials or examples using GitHub Gists and referencing them in discussions.

  • Fixing typos and improving the documentation by opening issues or creating pull requests.

Getting Help

If you have any questions, feel free to open a discussion in the GitHub Discussions or comment on an open issue.

Ground Rules

The goal is to maintain a diverse community that’s pleasant for everyone. Please be considerate and respectful of others. Everyone must abide by our Code of Conduct and we encourage all to read it carefully.

Miscellaneous

For more information on contributing to open source projects, GitHub’s own guide is a great starting point if you are new to version control. Also, checkout the Zen of Scientific Software Maintenance for some guiding principles on how to create high quality scientific software contributions.

Thank you for contributing!