Contributing

Thank you for considering contributing to geosupport-suggest! This package is open source, and we welcome contributions of all kinds: bug reports, feature requests, documentation improvements, bug fixes, or new features.

Setting Up Development Environment

  1. Fork the repository on GitHub.

  2. Clone your fork locally:

    git clone https://github.com/your-username/geosupport-suggest.git
    cd geosupport-suggest
    
  3. Create a virtual environment and install dependencies:

    python -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
    pip install -e .
    pip install -r tests/requirements.txt
    

Running Tests

We use the unittest framework for testing. To run tests:

python -m unittest discover

To run a specific test:

python -m unittest tests.test_suggest_methods

Code Style

We follow PEP 8 style guidelines. Please make sure your code adheres to these standards.

We use the Black code formatter to maintain consistent code style. Before submitting a pull request, please format your code with Black:

# Install black if you haven't already
pip install black

# Format your code
black suggest tests

For type annotations, we use the typing module. Please include type hints for function arguments and return values.

Pull Request Process

  1. Create a new branch for your feature or bug fix:

    git checkout -b feature/your-feature-name
    
  2. Make your changes and add tests if applicable.

  3. Run the tests to ensure they pass.

  4. Update the documentation if needed.

  5. Commit your changes:

    git commit -m "Description of your changes"
    
  6. Push to your fork:

    git push origin feature/your-feature-name
    
  7. Open a pull request on GitHub.

Reporting Bugs

When reporting bugs, please include:

  • A clear and descriptive title

  • Steps to reproduce the bug

  • Expected behavior

  • Actual behavior

  • Your operating system and Python version

  • Any relevant logs or error messages

Feature Requests

When requesting new features, please:

  • Clearly describe the feature

  • Explain why it would be valuable

  • Provide examples of how it would be used

  • Indicate if you’re willing to help implement it

Documentation

Documentation improvements are always welcome. You can:

  • Fix typos or clarify existing documentation

  • Add more examples

  • Improve API documentation

  • Add tutorials or how-to guides

License

By contributing to geosupport-suggest, you agree that your contributions will be licensed under the project’s MIT License.