Cap litellm below 1.98 on Python 3.10, report lowest-direct nightly failures, re-run CI on PR retarget - #11
Merged
Merged
Conversation
…ailures, re-run CI on PR retarget litellm 1.98.0 through 1.100.0 import typing.NotRequired, which exists only on 3.11+, so the nightly latest and lowest-direct lanes have failed test_lite_llm on py3.10 since 2026-09-06 (#10). The fix is on litellm main but unreleased; the 3.10 cap is lifted once a fixed release ships. scripts/ci/nightly_report.py matched the job name 'Python (lowest-direct, advisory)' while ci.yml names the job 'Python (lowest-direct)', so lowest-direct failures never opened an issue. A new test keeps the two in step. ci.yml now also runs on the 'edited' pull request event: retargeting a stacked PR after its base merges fires only that event, and without it the check set stays computed against the old base. Documents the checks actually required on main and the GitHub settings configured by hand on 2026-09-09 for cicd-terraform to mirror.
uv records resolution-mode = "lowest-direct" in the lockfile, and the following plain uv sync reported "Ignoring existing lockfile due to change in resolution mode: lowest-direct vs. highest" and re-resolved to the newest versions. The lane therefore tested the same versions as the latest lane (nightly job logs show openai-agents 0.19.4, mcp 1.29.1, litellm 1.98.0 under lowest-direct). Passing the same resolution flag to uv sync, with --locked, installs the lowest lock and fails loudly if the two ever disagree again.
12 tasks
brianstrauch
approved these changes
Sep 10, 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.
Summary
python/openai_agents: litellm 1.98.0 through 1.100.0 importtyping.NotRequired, which exists only on Python 3.11+, sotest_lite_llmhas failed on py3.10 in both nightly lanes since 2026-09-06 (nightly: openai_agents failing (latest) #10). The fix is on litellm main but unreleased. The dev dependency now caps litellm below 1.98 on 3.10 and is unchanged on 3.11+; lift the cap once a fixed litellm ships. Lock re-resolved (litellm stays at 1.97.0).scripts/ci/nightly_report.pymatched the job namePython (lowest-direct, advisory)whileci.ymlnames the jobPython (lowest-direct), so lowest-direct failures never opened an issue. Fixed, with a test that keeps the regex and the workflow job names in step.ci.ymlalso runs on theeditedpull request event: retargeting a stacked PR after its base merges fires only that event, and without it the check set stays computed against the old base (this is why PR Add OpenAI Agents MCP v2 support #6 shows stalemcplanes).python/_shared/python.mk: the lowest-direct lane never tested lowest versions.uv lock --upgrade --resolution lowest-directrecordsresolution-mode = "lowest-direct", and the following plainuv syncprinted "Ignoring existing lockfile due to change in resolution mode:lowest-directvs.highest" and re-resolved to the newest versions (nightly logs show openai-agents 0.19.4, mcp 1.29.1, litellm 1.98.0 under "lowest-direct"). The sync now repeats--resolution lowest-directwith--locked, so it installs the lowest lock and fails loudly if the two disagree.main(ci-status,Check for CODEOWNERS,opengrep/scan, one code-owner approval) and aTRANSITION(sdk-cutover)note that branch protection, thetestpypi/pypienvironments and the release-tag ruleset were configured by hand on 2026-09-09 forcicd-terraformto mirror.Testing
python/openai_agentson CPython 3.10 with the fixed targets:make sync-lowest && make lint && make testat the genuine floors (litellm 1.83.0, mcp 1.19.0, openai 2.45.0, openai-agents 0.19.2, pydantic 2.12.2): lint clean, 216 passed, 1 skipped;make sync-latest && make test: 216 passed, 1 skipped (previouslytest_lite_llmfailed in both lanes)uv run --project scripts --locked pytest scripts/tests -q: 70 passedscripts/ci/check_conventions.py: OKCloses #10 once the nightly lanes are green again (the reporter closes it automatically).