From 399f1b0ae1a257905edb1ef3c9ff5dd068c47a0c Mon Sep 17 00:00:00 2001 From: Aaron Elliot Ross Date: Thu, 27 Aug 2026 16:37:46 +0200 Subject: [PATCH] python: declare role = "library" and gate on ci-workflows python-pins requires-python stays ">=3.11" on purpose. Six repos import this library from an unpinned git URL and they span 3.11 to 3.14, so no single ==X.Y.* satisfies all of them: ==3.11.* would break every 3.14 consumer's lock and ==3.14.* would break fundraiser-api's. The `library` role opts out of the ==X.Y.* form rule only -- the values still have to agree with each other, which this check enforces. Adds a ci.yml as well; this repo had no PR gate at all. See docs/python-pins.md in WeMoveEU/dependency-policy. --- .github/workflows/ci.yml | 18 ++++++++++++++++++ pyproject.toml | 7 +++++++ 2 files changed, 25 insertions(+) create mode 100644 .github/workflows/ci.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..9610086 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,18 @@ +name: CI + +# This repo has no PR gate. The pins check is the whole job -- it is cheap, needs +# no secrets, and stops the Dockerfile and the manifest drifting apart again. +# Adding it does NOT make this repo tier 2: nothing here auto-merges. + +on: + pull_request: + +permissions: + contents: read + +jobs: + ci: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v7 + - uses: WeMoveEU/ci-workflows/.github/actions/python-pins@v14 diff --git a/pyproject.toml b/pyproject.toml index 8cd4579..5c73574 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -21,6 +21,13 @@ build-backend = "setuptools.build_meta" [tool.setuptools] packages = ["actionkit"] +[tool.python-pins] +# requires-python is a compatibility range here, not a runtime pin: six repos +# import this library from an unpinned git URL and they span 3.11 to 3.14, so no +# single ==X.Y.* satisfies all of them. `library` opts out of the form rule only +# -- the values still have to agree with each other. +role = "library" + [dependency-groups] dev = [ "pytest>=7.0.1",