Skip to content

Contributing ​

Thank you for your interest in contributing to Geomorphometry.jl! This document provides guidelines and information for contributors.

Reporting Issues ​

If you encounter a bug or have a problem with the software, please open an issue on GitHub. When reporting issues, please include:

  • A clear and descriptive title.

  • A minimal reproducible example (MRE) that demonstrates the problem (please share data that you're using as input)

  • The version of Geomorphometry.jl you are using (] status Geomorphometry in the Julia REPL).

  • Your Julia version (versioninfo()).

  • Any relevant error messages or stack traces.

Feature Requests ​

We welcome suggestions for new features or improvements. Please open an issue and describe:

  • The feature you would like to see.

  • The use case or problem it would solve.

  • Any relevant references (papers, existing implementations, etc.).

Contributing Code ​

Getting Started ​

  1. Fork the repository on GitHub.

  2. Clone your fork locally:

    bash
    git clone https://github.com/your-username/Geomorphometry.jl.git
  3. Create a new branch for your changes:

    bash
    git checkout -b my-feature-branch
  4. Install the package in development mode. From the Julia REPL:

    julia
    ] dev .

Making Changes ​

  • Follow existing code style and conventions in the project.

  • Add tests for new functionality in the test/ directory.

  • Add or update docstrings for any new or modified public functions.

  • Run the test suite before submitting to make sure everything passes:

    julia
    ] test Geomorphometry

Submitting a Pull Request ​

  1. Push your branch to your fork on GitHub.

  2. Open a pull request against the main branch.

  3. Provide a clear description of your changes and reference any related issues.

  4. Ensure that CI checks pass on your pull request.

Seeking Support ​

If you have questions about using Geomorphometry.jl:

  • Check the documentation.

  • Search existing issues for similar questions.

  • Open a new issue with the question label if your question is not answered elsewhere.