Skip to content

Latest commit

 

History

History
40 lines (31 loc) · 1.45 KB

File metadata and controls

40 lines (31 loc) · 1.45 KB

Contributing

Development setup

This project uses uv.

uv sync --extra dev      # create .venv and install the project + dev tools
uv run pytest            # run the unit tests
uv run ruff check .      # lint
uv run ruff format .     # format

Conventions

  • Python 3.12+. Keep the harness importable and unit-testable in isolation; service dependencies (TiTiler, object storage) belong in the deployment, not in the unit tests.
  • CI never runs a benchmark. It lints, unit-tests the harness, builds the runner image, and proves the stack deploys. Anything that needs real data or real infrastructure runs on a deployed stack, not in CI.
  • Datasets and runs are configuration. Adding a dataset or a target format should not require touching CI or the deployment manifests.

Commits & releases

  • PRs are squash-merged, and the PR title must follow Conventional Commits (feat:, fix:, docs:, ci:, chore:, …). The PR Title check enforces this.
  • Releases are automated with release-please: the title of each merged PR drives the version bump and CHANGELOG.md. Merging the release PR tags a GitHub Release and publishes the runner image to GHCR. See the Releasing guide.

Building the runner image

docker build -f docker/Dockerfile.runner -t cng-benchmark-runner:dev .
docker run --rm cng-benchmark-runner:dev version