Draft
Conversation
Member
kezhenxu94
commented
May 26, 2025
- If this pull request closes/resolves/fixes an existing issue, replace the issue url. Closes:
3db5f5d to
8d867da
Compare
wu-sheng
added a commit
that referenced
this pull request
Apr 10, 2026
- Fix missing `import importlib.util` that caused NameError on Python 3.12+ (root cause of PR #374 failures) - Replace deprecated `find_module`/`load_module` with `find_spec`/`module_from_spec` in plugin loader and doc generator - Remove Python <3.8 `pkg_resources` fallback (dead code since 3.8 dropped) - Update CI matrix: test Python 3.10/3.11/3.12/3.13/3.14 - Fix CI test step: use `--without plugins,lint` to avoid installing incompatible old plugin test deps on newer Python versions (plugin tests run in Docker, host only needs pytest + testcontainers) - Mark plugins and lint dependency groups as optional - Change plugin dep pins from exact versions to `>=` ranges so poetry lock resolves on newer Python (actual test versions unchanged, controlled by support_matrix in each plugin + Docker) - Update deps: unpin psutil, loosen wrapt/uvloop/grpcio-tools constraints - Remove uwsgi from dev deps (doesn't build on 3.12+, tested via e2e) - Update testcontainers DockerCompose usage for v4 API compatibility - Replace unapproved getsentry/paths-filter with dorny/paths-filter - Update docker/Makefile and Container.md for 3.10-3.14 Verified: Docker images build and agent loads all 35 plugins successfully on Python 3.10, 3.11, 3.12, 3.13, and 3.14. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
6 tasks
wu-sheng
added a commit
that referenced
this pull request
Apr 11, 2026
…lity (#386) ## Summary Support Python 3.10 through 3.14, drop end-of-life Python 3.8 and 3.9. Update plugin `support_matrix` and test services for newer library versions on 3.12+. Supersedes #374. ### Core agent fixes - Fix missing `import importlib.util` that caused `NameError` on Python 3.12+ (root cause of #374 failures) - Replace deprecated `find_module`/`load_module` with `find_spec`/`module_from_spec` in plugin loader and doc generator - Remove Python <3.8 `pkg_resources` fallback (dead code) ### Dependency updates - Python range: `>=3.10, <3.15` - Unpin `psutil`, `packaging`; loosen `wrapt>=1.14`, `uvloop>=0.17` - Remove `uwsgi` from dev deps (doesn't build on 3.12+) - Mark plugins/lint groups as optional; use `>=` ranges so `poetry lock` resolves on all Python versions - Upgrade pylint pin from `2.13.9` to `>=2.13.9` - Remove Poetry 1.5.1 pin on Linux (can't read Poetry 2.x lock files) ### Plugin support_matrix updates for 3.12+ All hook points verified against new library versions: | Plugin | >=3.10 | >=3.12 | >=3.13 | >=3.14 | |--------|--------|--------|--------|--------| | bottle | 0.12.23 | 0.12.23 | 0.13 | 0.13 | | django | 3.2 | 3.2 | 5.1 | 5.1 | | flask | 2.0 | 2.0 | 2.0 | 3.0 | | tornado | 6.0, 6.1 | 6.0, 6.1 | 6.0, 6.1 | 6.4 | | pyramid | 1.10, 2.0 | 2.1 | 2.1 | 2.1 | | kafka-python | 2.0 | 2.3 | 2.3 | 2.3 | | pulsar-client | 3.3.0 | 3.9.0 | 3.9.0 | 3.9.0 | | psycopg | 3.0/3.1 | 3.1 | 3.2 | 3.2 | | httpx | 0.22/0.23 | 0.22/0.23 | 0.23 | 0.28/0.23 | | happybase | 1.2.0 | 1.3.0 | 1.3.0 | 1.3.0 | | urllib3 | 1.25/1.26 | skipped | skipped | skipped | - **urllib3**: skipped on 3.12+ — `urllib3.request.RequestMethods` was removed in urllib3 2.x, plugin needs code adaptation - **happybase**: upgraded to 1.3.0 for 3.12+ (thriftpy2 0.6.0 has cp312/cp313 wheels) ### Test service fixes - Django test services: replace removed `django.conf.urls.url` with `django.urls.path` (compatible with Django 2.0+ through 5.1) - Fix `testcontainers` DockerCompose API for v4 compatibility (`filepath` -> `context`) ### CI updates - Test matrix: Python 3.10/3.11/3.12/3.13/3.14 (dropped 3.8/3.9) - Fix test step: `poetry install --without plugins,lint` (avoids installing incompatible old plugin deps on host) - Replace unapproved `getsentry/paths-filter` with approved `dorny/paths-filter` - Exclude `profiling_greenlet` E2E on 3.14 (gevent doesn't have 3.14 wheels yet) ### Docker & docs - Update docker/Makefile for 3.10-3.14 - Update Container.md with version range and known limitations - Add CLAUDE.md and Claude Code skills for plugin development ### Locally verified (with span data validation) - django==5.1 on Python 3.13 — PASSED - psycopg[binary]==3.2.* on Python 3.13 — PASSED - happybase==1.3.0 on Python 3.13 — PASSED - httpx==0.23.* on Python 3.13 — PASSED - requests==2.26/2.25 on Python 3.13 — PASSED - Agent loads all 35 plugins on Python 3.10/3.11/3.12/3.13/3.14
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.