Python: make transitive pre-release bounds explicit in release dependency probes - #7927
Draft
Tao Chen (TaoChenOSU) with Copilot wants to merge 2 commits into
Draft
Python: make transitive pre-release bounds explicit in release dependency probes#7927Tao Chen (TaoChenOSU) with Copilot wants to merge 2 commits into
Tao Chen (TaoChenOSU) with Copilot wants to merge 2 commits into
Conversation
Contributor
There was a problem hiding this comment.
Copilot wasn't able to review any files in this pull request.
💡 Add a code-review agent skill for context-aware, tailored reviews. Learn more in the docs.
…se probes Co-authored-by: TaoChenOSU <12570346+TaoChenOSU@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Fix release validator failure for package validation
Python: make transitive pre-release bounds explicit in release dependency probes
Aug 28, 2026
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.
Motivation & Context
The 1.16.0 release gate failed two of eighteen probes with an unsatisfiable resolution, despite the dependency being published:
Release probes run
uv run --isolated --no-project --prerelease if-necessary-or-explicitwith internal packages passed as--with-editable. uv enables pre-release candidates only for packages named by a direct requirement carrying a pre-release specifier.azure-ai-agentserver-responses>=2.2.0b1is declared byagent-framework-foundry-hosting, which the probe reaches only transitively throughagent-framework-core[all], so2.2.0b1was filtered out of the candidate set and the probe reported the floor as unreachable.Description & Review Guide
What are the major changes?
_dependency_bounds_release_impl.py: new_prerelease_requirements()walks the probe's internal editable closure (target + its requested extras) and collects every external requirement whose specifier carries a pre-release.ReleaseProbePlangainsprerelease_requirements(defaulted, so existing constructions are unaffected);_build_release_probe_command()re-declares each as a direct--withrequirement.--withargs.For
agent-framework-corethe probe command now carries:What is the impact of these changes?
--prerelease allow, which would let betas leak into thehighestscenario. This mirrors the existing repo pattern of making transitive pre-releases explicit (see theprompty>=2.0.0a9comment inpackages/azure-cosmos-memory/pyproject.toml).lowest-direct, these requirements are now direct, so they resolve to their declared floor instead of the highest compatible version. That is the bound the lower probe is meant to exercise, but it does widen what the lower scenario asserts.agent-frameworkupper,agent-framework-corelower) resolve and import cleanly with the pinned uv 0.12.5.What do you want reviewers to focus on?
lowest-directfor these newly-direct requirements is the intended semantics.Contribution Checklist
breaking changelabel (or add "[BREAKING]" to the title prefix, before or after any language prefix) — a workflow keeps the label and title prefix in sync automatically.