Skip to content

Commit 7b40380

Browse files
committed
docs(standard): keep _checks.yml per repo and record why the shared workflow was rejected
1 parent a09f148 commit 7b40380

1 file changed

Lines changed: 12 additions & 9 deletions

File tree

‎docs/standard.md‎

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -108,9 +108,8 @@ minor and that minor's free-threaded build** (`3.14` and `3.14t` today). The mat
108108
from the repo's floor to the newest, plus the free-threaded newest. The `Programming Language ::
109109
Python :: 3.X` classifiers list every minor in the matrix.
110110

111-
In the shared checks workflow (section 7) the matrix is derived at run time from `requires-python`
112-
and the newest released cycle, so no repo edits a matrix when a Python ships; a repo still on its
113-
own `_checks.yml` maintains the list by hand.
111+
The matrix is a hand-maintained list in each repo's `_checks.yml` (section 7), so a new Python is
112+
a one-line change in every repo, made in one sweep.
114113

115114
## 7. CI
116115

@@ -121,7 +120,7 @@ Two workflows per repo, both thin:
121120
failure, opening or updating a tracking issue in the repo. This is how a dependency release or a
122121
new Python that breaks the build becomes a ticket without anyone watching.
123122

124-
Both call one reusable `checks.yml` with these jobs:
123+
Both call the repo's own reusable `_checks.yml`, which has these jobs:
125124

126125
| Job | What it does |
127126
|---|---|
@@ -130,9 +129,12 @@ Both call one reusable `checks.yml` with these jobs:
130129
| `links` | [lychee](https://github.com/lycheeverse/lychee-action) with `--offline`, remapping this repo's `blob/main` URLs to the checkout, so it fails only on a relative link or file path the diff broke |
131130
| `docs` | `just docs-build` (`mkdocs build --strict`), only for repos with a docs site |
132131

133-
The shared `checks.yml` will live in `modern-python/.github` and be referenced at `main`, so a
134-
change to it reaches every repo on merge; such a change is first exercised from a branch ref in
135-
one repo. Until it exists, each repo carries the same jobs in a local `_checks.yml`.
132+
`_checks.yml` is per repo by decision, not by omission. A shared workflow in `modern-python/.github`
133+
was built and proven
134+
([#95](https://github.com/modern-python/.github/issues/95)), and rejected on its interface: a
135+
`workflow_call` input is a scalar, so a service container or an env map has to be flattened into
136+
a string, and image knowledge ends up in the org repo. A change to the jobs is a sweep across the
137+
repos instead, which is how the rest of this standard already lands.
136138

137139
## 8. Release
138140

@@ -153,8 +155,9 @@ git tag -m "<repo> 3.4.0" 3.4.0 && git push origin 3.4.0
153155
- The Release body is GitHub's generated notes from squashed PR titles, so a conventional-commit
154156
PR title is the changelog entry. Prose goes in afterwards with `gh release edit`.
155157

156-
`release.yml` stays a per-repo file: PyPI does not accept a reusable workflow as a Trusted
157-
Publisher. It is identical across repos apart from the comment naming the PyPI project.
158+
`release.yml` could not be shared even if the checks were: PyPI does not accept a reusable
159+
workflow as a Trusted Publisher. It is identical across repos apart from the comment naming the
160+
PyPI project.
158161

159162
## 9. Repository files
160163

0 commit comments

Comments
 (0)