Contributing

Getting Involved

So you’d like to contribute? That’s awesome! We would love to have your help, especially in the following ways:

  • Making Pull Requests for code, tests, or docs

  • Commenting on open issues and pull requests

  • Suggesting new features

Setting Up Your Environment

Fork the repository and clone your fork to your local machine:

git clone https://github.com/yourusername/fastkml.git
cd fastkml
git checkout develop

Next, set up a virtual environment. This helps to manage dependencies and avoid conflicts:

python3 -m venv .venv
source venv/bin/activate  # On Windows use `venv\Scripts\activate`

Then, install the required packages:

pip install -e ".[dev]"

Install the pre-commit hook with:

pre-commit install

and check the code with:

pre-commit run --all-files

Running the Tests

To run the tests, simply use:

pytest

You can also run the tests with coverage to see which lines are covered by the tests. This is useful for writing new tests to cover any uncovered lines:

pytest  --cov=fastkml --cov-report=term

To get a report on the individual lines that are not covered, use the --cov-report=term-missing option, or generate an HTML report with --cov-report=html. Some editor extensions can also show the coverage directly in the editor, notably coverage-gutter for VSCode, which needs the output to be in the xml format produced with --cov-report=xml.

Tips

  • Commit often, commit early.

  • Make a draft PR while you are still working on it to give your work some visibility.