Files
Mason Daugherty f328753ea2 ci(infra): flag stale dependency minimums on release PRs (#4823)
Release PRs currently verify that dependencies resolve against PyPI, but
they do not show when a declared minimum has fallen behind the newest
published version. That makes dependency reconciliation easy to miss at
the point maintainers are preparing a release.

This adds an advisory release-PR check for the changed package
manifests. It compares required and optional dependency minimums with
PyPI, reports whether the newest version still fits the current ceiling,
and maintains one non-blocking PR comment. The existing `release-deps:
acknowledged` label records that maintainers reviewed the result without
requiring a metadata change.

Stable releases are compared by default. Pre-releases participate only
when the declared minimum is itself a pre-release, while an environment
setting keeps that policy explicit and adjustable. Local path and
workspace sources are excluded, so sibling development installs do not
create noise while external LangChain dependencies remain covered.

PyPI requests use bounded concurrency, timeouts, and retries. Query
failures remain advisory and preserve any previous finding rather than
incorrectly declaring the dependency set current. Unit coverage
exercises requirement parsing, release selection, upper bounds, source
exclusions, retries, output formatting, and canonical-name request
deduplication.
2026-07-17 14:45:55 -04:00
..