Skip to content

rewired downstream test drivers#672

Open
RonnyPfannschmidt wants to merge 5 commits intopytest-dev:mainfrom
RonnyPfannschmidt:downstream-driver
Open

rewired downstream test drivers#672
RonnyPfannschmidt wants to merge 5 commits intopytest-dev:mainfrom
RonnyPfannschmidt:downstream-driver

Conversation

@RonnyPfannschmidt
Copy link
Copy Markdown
Member

there was bitrot in the shell scripts
i added a python driver and a workflow to run them on github

testing them now - in particular conda and hatch may need some more details

psa - im also working on actively removing pluggy from hatch as its used in a non-idiomatic way there that doesn’t bring value

RonnyPfannschmidt and others added 2 commits May 6, 2026 11:37
Replace per-project shell scripts with a PEP 723 uv-runnable driver and
validated recipe files under downstream/recipes/. Environment kinds
(uv-venv, stdlib-venv, none) pair with nested [environment.install] in
each TOML. Document the flow in downstream/README.md and RELEASING.rst.

Co-authored-by: Cursor AI <ai@cursor.sh>
Co-authored-by: Composer <composer@cursor.com>
Introduce a workflow_dispatch-only workflow that runs each downstream TOML
recipe (conda, datasette, devpi, hatch, pytest, python-lsp-server, tox) on
ubuntu-latest with Python 3.12 and uv. Matrix jobs are independent
(fail-fast: false) and time out after 120 minutes. Trigger from Actions and,
when validating a change that needs it, select the relevant branch under
"Use workflow from" (for example a pull request head branch).

Co-authored-by: Cursor AI <ai@cursor.sh>
Co-authored-by: Composer <composer@cursor.com>
Copilot AI review requested due to automatic review settings May 6, 2026 09:47
@RonnyPfannschmidt RonnyPfannschmidt changed the title rewired ownstream test drivers rewired downstream test drivers May 6, 2026
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR replaces the bitrotted downstream shell scripts with a structured TOML-based downstream test runner (downstream/run_downstream.py) and adds a manual GitHub Actions workflow to execute the recipes in CI. It also updates release/docs guidance to point maintainers at the new driver.

Changes:

  • Removed the legacy downstream/*.sh scripts and replaced them with a PEP 723 Python driver plus per-project TOML recipes.
  • Added a manual-only downstream GitHub Actions workflow that runs a matrix of downstream recipes.
  • Updated RELEASING.rst and downstream/README.md to document the new invocation and recipe format.

Reviewed changes

Copilot reviewed 19 out of 19 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
RELEASING.rst Updates release instructions to use the new downstream driver.
downstream/tox.sh Removes the legacy tox downstream shell script.
downstream/run_downstream.py Adds the new PEP 723 downstream driver (clone/update, env setup, install, test steps).
downstream/recipes/tox.toml Adds tox downstream recipe definition.
downstream/recipes/python-lsp-server.toml Adds python-lsp-server downstream recipe definition.
downstream/recipes/pytest.toml Adds pytest downstream recipe definition.
downstream/recipes/hatch.toml Adds hatch downstream recipe definition.
downstream/recipes/devpi.toml Adds devpi downstream recipe definition.
downstream/recipes/datasette.toml Adds datasette downstream recipe definition.
downstream/recipes/conda.toml Adds conda downstream recipe definition (bootstrap via sourced script).
downstream/README.md Documents recipe schema and how to run the driver.
downstream/python-lsp-server.sh Removes the legacy python-lsp-server downstream shell script.
downstream/pytest.sh Removes the legacy pytest downstream shell script.
downstream/hatch.sh Removes the legacy hatch downstream shell script.
downstream/devpi.sh Removes the legacy devpi downstream shell script.
downstream/datasette.sh Removes the legacy datasette downstream shell script.
downstream/conda.sh Removes the legacy conda downstream shell script.
downstream/.gitignore Ignores the new python-lsp-server/ clone directory.
.github/workflows/downstream.yml Adds manual workflow to run downstream recipe matrix on GitHub Actions.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread RELEASING.rst
@@ -3,7 +3,8 @@ Release Procedure

#. Dependening on the magnitude of the changes in the release, consider testing
Comment thread downstream/README.md
uv run downstream/run_downstream.py pytest --skip-install
```

Requirements: Python 3.11+ for the driver, `git`, and `uv` where recipes use it.
RonnyPfannschmidt and others added 3 commits May 6, 2026 11:55
workflow_dispatch alone does not show checks on a pull request; add a
label-gated pull_request trigger (labeled, synchronize) so maintainers can
apply run-downstream to opt in. Document that the workflow file must exist
on the default branch to appear under upstream Actions.

Co-authored-by: Cursor AI <ai@cursor.sh>
Co-authored-by: Composer <composer@cursor.com>
Replace the run-downstream label with a head branch filter so forks
without shared labels still opt in (e.g. downstream-driver). Pull
requests still target main only.

Co-authored-by: Cursor AI <ai@cursor.sh>
Co-authored-by: Composer <composer@cursor.com>
actions/checkout defaults to a shallow clone; pluggy installs as -e ../..
need a real tree (e.g. setuptools-scm). Set fetch-depth: 0.

Co-authored-by: Cursor AI <ai@cursor.sh>
Co-authored-by: Composer <composer@cursor.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants