Skip to content

Regenerate requirements.txt from the declared dependencies - #457

Merged
mattjala merged 1 commit into
HDFGroup:masterfrom
mattjala:deps/regen-lockfile
Sep 2, 2026
Merged

mattjala merged 1 commit into
HDFGroup:masterfrom
mattjala:deps/regen-lockfile

Conversation

@mattjala

@mattjala mattjala commented Sep 2, 2026

Copy link
Copy Markdown
Collaborator

Stacked on #456 — the regenerated lock resolves requests above the cap that PR removes, so it cannot merge first.

The lock had drifted from pyproject.toml: assembled by hand and by dependabot bumping individual entries, it pinned packages that are not dependencies while omitting transitive ones that are. Regenerated by installing the project plus the tools CI needs (pytest, openapi-spec-validator for tests/unit/openapi_test, pyflakes/build for build.sh) into a clean environment and freezing.

Adds 16 transitive packages the file never listed; drops wheel. setuptools is left out as build tooling rather than a dependency, and h5json stays on @master rather than the SHA freeze resolved, matching pyproject.toml.

Verified: 87 unit tests pass in the regenerated environment.

Two major-version moves worth a lookaiobotocore 2.13.0 → 3.0.0 and wrapt 1.17.3 → 2.4.0. Both satisfy the ranges pyproject.toml declares (aiobotocore >= 2.13.0, no bound on wrapt). HSDS only uses get_session and AioConfig from aiobotocore and both still import, but the S3 path is thinly covered by CI, so if you would rather stay on 2.x that belongs as an upper bound in pyproject.toml.

The lock had drifted from pyproject.toml: it was assembled by hand and
by dependabot bumping individual entries, so it pinned some packages
that are not dependencies while omitting transitive ones that are.

Resolve it properly instead - install the project and the tools CI needs
(pytest for the runner, openapi-spec-validator for tests/unit/openapi_test,
pyflakes and build for build.sh) into a clean environment and freeze it.

The environment is Python 3.11, the lowest version HSDS supports. A flat
lock has to hold for every interpreter in the test matrix, and pins
resolved on a newer one do not necessarily exist for an older: numpy
2.5.2 requires >= 3.12, so freezing on 3.12 produces a file that cannot
install on 3.11 at all. Verified the result installs on 3.11, 3.12 and
3.13.

setuptools is left out deliberately: it is build-environment tooling
rather than a dependency of HSDS. h5json stays pointed at master rather
than the commit pip freeze resolved, since pyproject declares @master and
pinning a SHA here would silently override it.

Verified by running the unit tests in the regenerated environment on
3.11: 87 passed.
@mattjala
mattjala force-pushed the deps/regen-lockfile branch from 638481f to b690674 Compare September 2, 2026 21:19
@mattjala
mattjala merged commit fc98d0c into HDFGroup:master Sep 2, 2026
26 checks passed
@mattjala
mattjala deleted the deps/regen-lockfile branch September 2, 2026 21:32
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