diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 018a033..aa0211a 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -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) @@ -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. + +### 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