Tooling#

By sharing the same tooling stack among our projects, we make it easier for developers to move from repository to repository. Not every repository will use or need all of these tools.

CHANGELOG#

All projects should keep a changelog, following the guidelines of keep a changelog.

pre-commit#

We use pre-commit extensively to automatically lint, format, and check code on developer’s machines and in CI. For Python projects, pre-commit should be configured to use the same version of tools that are defined in requirements-dev.txt.

Documentation#

Sphinx is recommended if the primary language doesn’t provide standard documentation tool (e.g. don’t use Sphinx for Rust projects). This developer guide is built with Sphinx.