Conversation
2 tasks
Member
Author
|
Closed with #95: the org is staying on per-repo |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Part of #95. Adds the reusable
.github/workflows/checks.ymlthat section 7 of the standard describes, with the matrix derived at run time as section 6 requires. Callers come in per-repo PRs; this one is exercised first from a branch ref indb-retry, the postgres repo, so the service-container inputs path is proven before any other repo migrates.Changes
.github/workflows/checks.yml:on: workflow_callwith the four jobs the standard lists plus amatrixjob the others depend on. Thematrixjob checks out this repo atjob.workflow_sha(the documented way for a reusable workflow to reach its own files), fetchesendoflife.date/api/python.json, and runs the script below.lintpins the derived floor;pytestfans out over the derived list;docsruns behind thedocsinput.scripts/python_matrix.py: pure derivation, tested. Floor is the>=bound ofrequires-python; ceiling is the newest cycle whosereleaseDateis not in the future, since endoflife.date lists a cycle before it ships; thetentry is the ceiling's. The GIL check's import name is the distribution name with underscores, which holds for every repo in the org.docs,free-threaded(off only for the two section 6 exemptions),service-image/service-port/service-options,test-env,free-threaded-env.docs/standard.mdsection 7: the workflow exists now, so the "will live" paragraph becomes the caller snippet and an input table.Decisions
inputsas available underjobs.<job_id>.services, and an emptyimageskips the service (documented underjobs.<job_id>.services.<service_id>.image; the runner logs "will not be started because the container definition has an empty image"). The workflow knows nothing about any particular image:service-optionsis spliced verbatim intodocker create(runner source,DockerCommandManager.DockerCreate), so the health command and any-ean image needs come from the caller in Docker's own syntax. Only the health interval, timeout and retries are shared, because how long CI waits is policy, not image knowledge.test-envasKEY=VALUElines appended to$GITHUB_ENV, because aworkflow_callinput cannot be a map.free-threaded-envis the same applied only on thetentry: db-retry and faststream-concurrent-aiokafka need a switch there that must not apply to the other entries.python3(3.12 on ubuntu-24.04) rather than setting up uv, since it only needstomllib.PYTHONDONTWRITEBYTECODEandPYTHONUNBUFFERED, set in some copies, are not carried over; a repo that wants them passes them intest-env.Checklist
ruff) — run with the library rule set on the two new Python filesty)uv run pytest: 135 passed, 29 skipped) andmkdocs build --strictis clean