Skip to content

Python: make transitive pre-release bounds explicit in release dependency probes - #7927

Draft
Tao Chen (TaoChenOSU) with Copilot wants to merge 2 commits into
mainfrom
copilot/fix-release-validator-issue
Draft

Python: make transitive pre-release bounds explicit in release dependency probes#7927
Tao Chen (TaoChenOSU) with Copilot wants to merge 2 commits into
mainfrom
copilot/fix-release-validator-issue

Conversation

Copilot AI commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Motivation & Context

The 1.16.0 release gate failed two of eighteen probes with an unsatisfiable resolution, despite the dependency being published:

Because only azure-ai-agentserver-responses<=2.1.0 is available and
agent-framework-foundry-hosting==1.0.0b260827 depends on
azure-ai-agentserver-responses>=2.2.0b1,<3, ...

Release probes run uv run --isolated --no-project --prerelease if-necessary-or-explicit with 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.0b1 is declared by agent-framework-foundry-hosting, which the probe reaches only transitively through agent-framework-core[all], so 2.2.0b1 was 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.
    • ReleaseProbePlan gains prerelease_requirements (defaulted, so existing constructions are unaffected); _build_release_probe_command() re-declares each as a direct --with requirement.
    • Test covering both the collection and command wiring, plus an assertion that closures without pre-release bounds emit no --with args.
    • README note on the behavior.

    For agent-framework-core the probe command now carries:

    --with agent-hooks-sdk<0.2,>=0.1.0a4
    --with azure-ai-agentserver-responses<3,>=2.2.0b1
    --with azure-ai-contentunderstanding<2,>=1.2.0b2
    --with azure-ai-inference<1.0.0b10,>=1.0.0b9
    
  • What is the impact of these changes?

    • The pre-release policy itself is unchanged — no blanket --prerelease allow, which would let betas leak into the highest scenario. This mirrors the existing repo pattern of making transitive pre-releases explicit (see the prompty>=2.0.0a9 comment in packages/azure-cosmos-memory/pyproject.toml).
    • Under 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.
    • Both previously failing probes (agent-framework upper, agent-framework-core lower) resolve and import cleanly with the pinned uv 0.12.5.
  • What do you want reviewers to focus on?

    • Whether tightening lowest-direct for these newly-direct requirements is the intended semantics.
    • Whether the same treatment is warranted in the lower/upper optimizer implementations, which build isolated environments through a different path and were left untouched here.

Contribution Checklist

  • The code builds clean without any errors or warnings
  • All unit tests pass, and I have added new tests where possible
  • The PR follows the Contribution Guidelines
  • This PR is linked to an issue and there is no other open PR for this issue (see Related Issue above).
  • This is not a breaking change. If it is a breaking change, add the breaking change label (or add "[BREAKING]" to the title prefix, before or after any language prefix) — a workflow keeps the label and title prefix in sync automatically.

Copilot AI balanced review requested due to automatic review settings August 28, 2026 00:44

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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
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.

Python: [Bug]: Release validator failed to validate packages

3 participants