Repository navigation
ci(loongsuite): add Python 3.15 jobs and classifiers - #289
pylaterreur wants to merge 4 commits into
Conversation
A GitHub Actions matrix holds at most 256 jobs, so the workflow generator refuses to render loongsuite_test with more than 250 jobs. Adding Python 3.15 brings the test matrix to 263 jobs. Instead of refusing, render one selector step and one test job per chunk of 250 jobs, all in loongsuite_test_0.yml. Each selector step runs the existing select_loongsuite_matrix.py on its own chunk, so the script is unchanged, and the existing "LoongSuite Test 0 result" job now needs and checks every chunk. With 250 jobs or fewer the generated workflow is byte-for-byte the same as before. The lint matrix keeps the guard. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GwUvhmzgfkiZ6vo4uGyesN
Test the LoongSuite instrumentation packages, loongsuite-distro and opentelemetry-util-genai on Python 3.15, and add the Python 3.15 trove classifier to them. The vendored workflow generator gets the py315 alias, and the regenerated loongsuite_test_0.yml gains the matching 34 jobs; they go into the second matrix chunk. LiteLLM, Google ADK and Vita stay on Python 3.14 and older. litellm declares Requires-Python <3.15 and has no cp315 wheels, and building it from source needs fastuuid 0.14.0, which has no cp315 wheels either and fails to build (PyO3 0.26 supports Python up to 3.14). The Google ADK tests install litellm. vita 0.1.0 only has wheels up to cp314 and no sdist. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GwUvhmzgfkiZ6vo4uGyesN
|
The red crewai jobs here are not from this PR: they fail the same way on 🤖 Generated with Claude Code |
There was a problem hiding this comment.
🔵 Needs a closer look
The generator and generated matrix were statically validated, but 34 new Python 3.15 dependent CI jobs and third-party dependency installs remain unexecuted, so GitHub-hosted CI is needed to verify runtime behavior and compatibility.
No open issues 🎉
What changed in this PR
Adds Python 3.15 support for eligible LoongSuite packages and updates CI to run the expanded test matrix without exceeding GitHub Actions limits.
Changes:
- Adds Python 3.15 classifiers and tox environments for supported packages.
- Adds the
py315workflow alias and generated Python 3.15 jobs. - Splits oversized test matrices into chunks with aggregate result validation.
- Keeps packages with incompatible dependencies on earlier Python versions.
This pull request is too complex or risky for automated approval.
| File | Description |
|---|---|
util/opentelemetry-util-genai/pyproject.toml |
Adds the Python 3.15 classifier. |
util/opentelemetry-util-genai/CHANGELOG-loongsuite.md |
Documents Python 3.15 CI support. |
tox-loongsuite.ini |
Adds Python 3.15 test environments for supported packages. |
loongsuite-distro/pyproject.toml |
Adds the Python 3.15 classifier. |
instrumentation-loongsuite/loongsuite-instrumentation-wildtool/pyproject.toml |
Adds the Python 3.15 classifier. |
instrumentation-loongsuite/loongsuite-instrumentation-widesearch/pyproject.toml |
Adds the Python 3.15 classifier. |
instrumentation-loongsuite/loongsuite-instrumentation-webarena/pyproject.toml |
Adds the Python 3.15 classifier. |
instrumentation-loongsuite/loongsuite-instrumentation-terminus2/pyproject.toml |
Adds the Python 3.15 classifier. |
instrumentation-loongsuite/loongsuite-instrumentation-strands/pyproject.toml |
Adds the Python 3.15 classifier. |
instrumentation-loongsuite/loongsuite-instrumentation-slop-code/pyproject.toml |
Adds the Python 3.15 classifier. |
instrumentation-loongsuite/loongsuite-instrumentation-qwen-agent/pyproject.toml |
Adds the Python 3.15 classifier. |
instrumentation-loongsuite/loongsuite-instrumentation-minisweagent/pyproject.toml |
Adds the Python 3.15 classifier. |
instrumentation-loongsuite/loongsuite-instrumentation-microsoft-agent-framework/pyproject.toml |
Adds the Python 3.15 classifier. |
instrumentation-loongsuite/loongsuite-instrumentation-mem0/README.md |
Updates Python compatibility documentation; one compatibility wording nit remains. |
instrumentation-loongsuite/loongsuite-instrumentation-mem0/pyproject.toml |
Adds the Python 3.15 classifier. |
instrumentation-loongsuite/loongsuite-instrumentation-llama-index/pyproject.toml |
Adds the Python 3.15 classifier. |
instrumentation-loongsuite/loongsuite-instrumentation-langgraph/pyproject.toml |
Adds the Python 3.15 classifier. |
instrumentation-loongsuite/loongsuite-instrumentation-hermes-agent/pyproject.toml |
Adds the Python 3.15 classifier. |
instrumentation-loongsuite/loongsuite-instrumentation-google-genai/pyproject.toml |
Adds the Python 3.15 classifier. |
instrumentation-loongsuite/loongsuite-instrumentation-deepagents/pyproject.toml |
Adds the Python 3.15 classifier. |
instrumentation-loongsuite/loongsuite-instrumentation-dashscope/pyproject.toml |
Adds the Python 3.15 classifier. |
instrumentation-loongsuite/loongsuite-instrumentation-claw-eval/pyproject.toml |
Adds the Python 3.15 classifier. |
instrumentation-loongsuite/loongsuite-instrumentation-claude-agent-sdk/pyproject.toml |
Adds the Python 3.15 classifier. |
instrumentation-loongsuite/loongsuite-instrumentation-bfclv4/pyproject.toml |
Adds the Python 3.15 classifier. |
instrumentation-loongsuite/loongsuite-instrumentation-autogen/pyproject.toml |
Adds the Python 3.15 classifier. |
instrumentation-loongsuite/loongsuite-instrumentation-algotune/pyproject.toml |
Adds the Python 3.15 classifier. |
instrumentation-loongsuite/loongsuite-instrumentation-agno/pyproject.toml |
Adds the Python 3.15 classifier. |
instrumentation-loongsuite/loongsuite-instrumentation-agentscope/pyproject.toml |
Adds the Python 3.15 classifier. |
instrumentation-loongsuite/loongsuite-instrumentation-a2a/pyproject.toml |
Adds the Python 3.15 classifier. |
CHANGELOG-loongsuite.md |
Records Python 3.15 support and dependency-based exclusions. |
.github/workflows/loongsuite_test_0.yml |
Regenerates CI with Python 3.15 jobs, split test matrices, and aggregate result checks. |
.github/workflows/generate_workflows_lib/src/generate_workflows_lib/loongsuite_test.yml.j2 |
Templates chunked selectors, test jobs, and result validation. |
.github/workflows/generate_workflows_lib/src/generate_workflows_lib/__init__.py |
Adds the py315 alias and matrix chunk generation. |
.github/workflows/generate_workflows_lib/pyproject.toml |
Adds the Python 3.15 classifier to the workflow generator package. |
Review effort: Lite
|
Thanks for the contribution! Please resolve the conflict first. |
# Conflicts: # util/opentelemetry-util-genai/CHANGELOG-loongsuite.md
|
The red jobs here are not from this PR: 🤖 Generated with Claude Code |
Python 3.15.0 is out. This runs the LoongSuite instrumentation packages,
loongsuite-distroandopentelemetry-util-genaion 3.15 and adds the 3.15 trove classifier to them. It follows #285 (3.14).py315alias, andloongsuite_test_0.ymlgains the matching 34 jobs.select_loongsuite_matrix.pyis unchanged. With 250 jobs or fewer the generated workflow is byte-for-byte the same as before. The lint matrix keeps the guard.Requires-Python <3.15and has no cp315 wheels, and building it from source needs fastuuid 0.14.0, which has no cp315 wheels either and fails to build (PyO3 0.26 supports Python up to 3.14). The Google ADK tests install litellm. vita 0.1.0 only has wheels up to cp314 and no sdist.Not run locally: the 3.15 test jobs; they need this PR's CI.
🤖 Generated with Claude Code
https://claude.ai/code/session_01GwUvhmzgfkiZ6vo4uGyesN