diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 5b5e5cdc..90c98b6f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -9,10 +9,16 @@ We are actively encouraging users to ask questions and start discussions in the [discussions tab] of this repository. Does something seem like it's broken? Please go ahead and [open an issue]! -The [website] pages are open to contributions but they will need to be reviewed -by a member or associate member of ARC. We might be slow to approve new tool -suggestions (since we'll probably want to discuss them first) but don't let that -put you off creating an issue. +The template and [website] pages are open to contributions! But they will need +to be reviewed by a member or associate member of ARC. + +We will probably be slow to approve new tool suggestions (since we'll probably +want to discuss them first) but don't let that put you off creating an issue! + +Any opinionated changes should be approved by at least two reviewers who are +members or associate members of ARC. Pull-request authors are trusted to add two +reviewers to anything that they think might be opinionated. If a reviewer adds +a second reviewer, please wait for both to approve before merging. ## Development workflow @@ -24,8 +30,9 @@ To contribute a change, please: the tests pass if you modified the template (`pytest -s`). 3. Open a _pull request_ (PR) with changes. 4. Ask someone who did not contribute to the PR from [@UCL-ARC/collaborations] - to review it. -5. If approved with no comments, then the reviewer will merge the PR. + to review it. If it should have two reviewers, you can also request a review + from [@UCL-ARC/collaborations-python-tooling] and add the `needs-2-reviewers` label. +5. If approved with no comments, then the last approving reviewer should merge the PR. 6. If changes are requested, the PR author should address the comments, and then ask for review again. @@ -53,6 +60,14 @@ cookiecutter /path/to/your/checkout/of/python-tooling --checkout You can omit the `--checkout` option if you're already on the branch you want to test. +#### Python version support + +[![SPEC 0 — Minimum Supported Dependencies](https://img.shields.io/badge/SPEC-0-green?labelColor=%23004811&color=%235CA038)](https://scientific-python.org/specs/spec-0000/) + +We follow Scientific Python's [SPEC 0](https://scientific-python.org/specs/spec-0000/) policy. +Notably this means our template will support [Python versions for three years after their release](https://scientific-python.org/specs/spec-0000/#support-window), and changes to the template are required to pass tests in all such python versions. +(See [the CI checks](./.github/workflows/test.yml) for precise details.) + ### Developing the recommended tooling pages Pages all live in the `docs/pages` sub-directory, and are written in markdown. @@ -79,6 +94,7 @@ See the [jekyll docs] for more info. [Research software engineers]: https://society-rse.org/about/history [pre-commit]: https://pre-commit.com [@UCL-ARC/collaborations]: https://github.com/orgs/UCL-ARC/teams/collaborations +[@UCL-ARC/collaborations-python-tooling]: https://github.com/orgs/UCL-ARC/teams/collaborations-python-tooling [uv tool]: https://docs.astral.sh/uv/guides/tools [Install jekyll]: https://jekyllrb.com/docs/installation [jekyll docs]: https://jekyllrb.com/docs