Skip to content

Compile only the test group into requirements-test.txt - #22

Merged
tomaslink merged 1 commit into
mainfrom
PIPELINE-4672-compile-only-test-group
Oct 16, 2026
Merged

tomaslink merged 1 commit into
mainfrom
PIPELINE-4672-compile-only-test-group

Conversation

@tomaslink

@tomaslink tomaslink commented Oct 16, 2026 •

Copy link
Copy Markdown
Collaborator

PIPELINE-4672 · Fixes the test-dependency setup added in #18.

Summary

requirements-test.txt was compiled from the project plus its test group, so it repeated every production pin. Those pins are resolved for the Docker image's Python (3.12), and some aren't installable on the next version: in pipe-encounters, Beam pins grpcio 1.65.5, which has no 3.13 wheel, so the CI job on 3.13 failed in make install-test while trying to build it from source.

  • make reqs / make reqs-upgrade now compile only the test group (--group pyproject.toml:test), still constrained by requirements.txt so the shared packages (e.g. packaging, pluggy) match production.
  • requirements-test.txt goes from the full dependency tree to the 8 test packages.
  • The test image still installs just the test dependencies on top of the production image; the 3.13 job installs the package with its own resolution (pip install .).
  • CONTRIBUTING.md explains why the file doesn't repeat the production pins.

Verification

  • Template: make reqs and make docker-test (11 passed).
  • Same change in pipe-encounters (Beam 2.76): the Docker test image passes (17 tests), and the CI's 3.13 job (make install-test, pip install ., pytest) now passes (17 tests), where before it failed building grpcio.
  • uv 0.10.9 (the version the Makefile and Dockerfile pin) supports --group pyproject.toml:test.

🤖 Generated with Claude Code

requirements-test.txt was compiled from the project plus its test group, so
it repeated every production pin. Those are compiled for the Docker image's
Python version, and some aren't installable on the next one: in
pipe-encounters, grpcio 1.65.5 (pinned by Beam for 3.12) has no 3.13 wheel,
so the CI job on 3.13 failed in make install-test while building it from
source.

make reqs now compiles only the group (--group pyproject.toml:test), still
constrained by requirements.txt so the shared packages match production. The
test image installs the same test dependencies on top of the production
image; the 3.13 job resolves the package's own dependencies with pip install.
@tomaslink tomaslink self-assigned this Oct 16, 2026
@tomaslink tomaslink changed the title Compile only the test group into requirements-test.txt (fixes the CI job on Python 3.13) Compile only the test group into requirements-test.txt Oct 16, 2026
@tomaslink
tomaslink merged commit be236a5 into main Oct 16, 2026
3 checks passed
@tomaslink
tomaslink deleted the PIPELINE-4672-compile-only-test-group branch October 16, 2026 20:43
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.

1 participant