Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ Thank you for you interest in contributing ✨
- [Design Philosophy](#design-philosophy)
- [Pre-commit Hooks](#pre-commit-hooks)
- [Coding Style](#coding-style)
- [Supported Versions](#supported-versions)
- [Naming Conventions](#naming-conventions)
- [Testing](#testing)
- [Documentation](#documentation)
Expand Down Expand Up @@ -103,6 +104,36 @@ be followed perfectly all the time. Here are a few of those principles:
Coding style is largely enforced automatically, using [pre-commit hooks](https://pre-commit.com/).
For Python packages, the pre-commit should include automated code formatting *via* [Black](https://black.readthedocs.io/) and code linting *via* [flake8](https://flake8.pycqa.org).

(dev/supported_versions)=
## Supported Versions

Below are guidelines for the versions we support for a few key dependencies across our projects.

### General strategy

We want to follow these principles in deciding which versions to support, and how to test against them:

- Support any major versions that are realistically used by a significant number of users.
- Avoid ballooning our test matrices so that CI/CD becomes cumbersome for development.
- Allow ourselves at least 6 months of buffer to support new versions after they are released.
- When a new version is released, create a pull request that adds the version to our test matrix, to identify which tests will fail.
Over the next 6 months, periodically update the branch from `main` and see if changes have fixed the tests.
When they all pass, merge the PR.

Comment thread
choldgraf marked this conversation as resolved.
### Python

We support **all `3.X` releases that Python also supports**.
We follow the [Python End of Life dates](https://devguide.python.org/#status-of-python-branches) to determine which versions versions this means.

Our test suites should test against the following Python versions:

- The oldest supported version
- The latest two versions older than 6 months

### Sphinx

We support and test the **latest two major-version releases of Sphinx** that are older than 6 months.

(dev/pre_commit)=
## Pre-commit hooks

Expand Down