Contributing

Contributions to exotools are welcome! Here’s how you can help:

Development Setup

  1. Fork the repository on GitHub

  2. Clone your fork locally:

    git clone https://github.com/your-username/exotools.git
    cd exotools
    
  3. Install development dependencies:

    pip install -e ".[dev]"
    
  4. Create a branch for your feature:

    git checkout -b feature-name
    

Coding Standards

  • We use ruff for code formatting and linting

  • All code should include appropriate type hints

  • New features should include tests

Testing

Run the test suite with pytest:

pytest

Pull Requests

  1. Update the documentation to reflect any changes

  2. Update the CHANGELOG.md file

  3. Make sure all tests pass

  4. Submit a pull request to the main repository

Releasing

For maintainers, to release a new version:

  1. Update version in pyproject.toml

  2. Update CHANGELOG.md

  3. Build the package:

    python -m build
    
  4. Upload to PyPI:

    python -m twine upload dist/*