Skip to content

Contributing

You are working on fastgeoapi itself — fixing something, adding a provider for a cloud-native format, or trying to understand why a piece is shaped the way it is.

Two commitments shape most of the answers. A format that can be read in ranges should be servable without being converted first, and the reads that wait on the network should be awaited rather than given a thread each. The pages below are mostly about what those two cost.

  • How-to guides

    Getting a working checkout, running the suite the way CI runs it, and writing a provider that can be awaited.

  • API reference

    Generated from the docstrings, which is where the reasoning lives.

  • Explanation

    How the pieces fit: the two roles, the programmatic construction of pygeoapi, the storage layer everything reads through, and why a provider has two faces.

Before anything else

Contributions go through CONTRIBUTING.md. Two conventions matter more than the rest, because the whole codebase assumes them.

Docstrings carry the reasoning, not the mechanics. A docstring that restates the signature is noise; one that says why a thing is done this way and what breaks otherwise is the only record of a decision that would otherwise have to be rediscovered.

A test fails before it passes. Not as ceremony: a test written against working code and never seen red can assert nothing at all, and this project has caught that happening more than once.