Skip to content

Contributing#

Thank you for your interest in contributing!

Development Setup#

  1. Install pixi and gh.
  2. Clone the repository.
  3. Set up the development environment:
pixi install -e dev
pixi install -e typecheck
  1. Install pre-commit hooks:
pixi r pcupdate  # optionally bump hooks to latest versions first
pixi r lint      # installs hooks and runs them across the repo

Commit Messages#

This project uses Conventional Commits. All commit messages must follow this format:

<type>[optional scope]: <description>

[optional body]

[optional footer(s)]

Types#

Type When to use Changelog section
feat A new feature Added
fix A bug fix Fixed
perf A performance improvement Changed
refactor Code restructuring, no behavior change Changed
revert Reverting a previous commit Fixed
docs Documentation only (skipped)
test Adding or updating tests (skipped)
chore Maintenance, dependencies, tooling (skipped)
ci CI/CD changes (skipped)

Breaking Changes#

Append ! after the type, or add BREAKING CHANGE: in the footer:

feat!: drop support for Python 3.11
feat: new API

BREAKING CHANGE: `old_function` has been removed.

Examples#

feat(osm): add support for railway layer
fix: handle missing CRS in bbox reprojection
chore: bump ruff to v0.15.5
docs: add example notebook for water_body fetch

Running Tests#

pixi r test          # unit tests only
pixi r test-network  # network tests only
pixi r test-all      # all tests

Type Checking#

pixi r typecheck

Documentation#

pixi r docs-serve

Managing the Changelog#

The changelog is maintained by git-cliff and generated automatically from conventional commit messages.

pixi r changelog        # preview unreleased changes
pixi r changelog-update # write them to CHANGELOG.md

Submitting Changes#

  1. Fork the repository.
  2. Create a feature branch.
  3. Make your changes with tests.
  4. Ensure all checks pass.
  5. Submit a pull request.