wu-sheng opened a new pull request, #386:
URL: https://github.com/apache/skywalking-python/pull/386

   ## Summary
   
   - **Fix root cause of PR #374 failures**: missing `import importlib.util` in 
plugin loader caused `NameError` on Python 3.12+, plus CI test step venv 
mismatch
   - **Drop Python 3.8/3.9** (EOL), **add 3.12/3.13/3.14** to CI matrix and 
Docker images
   - Replace deprecated `find_module`/`load_module` with 
`find_spec`/`module_from_spec` across plugin loader and doc generator
   - Mark plugins/lint dependency groups as optional; use `>=` ranges so 
`poetry lock` resolves on newer Python
   - Replace unapproved `getsentry/paths-filter` GHA with approved 
`dorny/paths-filter`
   - Update `testcontainers` `DockerCompose` API for v4 compatibility
   
   ### Key design decisions
   - **Plugin group deps changed from exact pins to `>=` ranges**: The exact 
versions tested per plugin are NOT affected — those are controlled by each 
plugin's `support_matrix` dict and enforced via Docker `requirements.txt`. The 
pyproject.toml plugin group is only for dev-machine installation.
   - **CI test step uses `--without plugins,lint`**: Plugin integration tests 
run inside Docker containers, so the host only needs `pytest` + 
`testcontainers`. This avoids resolving old plugin deps (e.g., django 3.2, 
celery 5.1) on Python 3.12+.
   
   ### Verified locally
   Docker images build and agent loads all 35 plugins on Python 3.10, 3.11, 
3.12, 3.13, and 3.14:
   ```
   === Python 3.10 === Plugins discovered: 35 — SUCCESS
   === Python 3.11 === Plugins discovered: 35 — SUCCESS
   === Python 3.12 === Plugins discovered: 35 — SUCCESS
   === Python 3.13 === Plugins discovered: 35 — SUCCESS
   === Python 3.14 === Plugins discovered: 35 — SUCCESS
   ```
   
   ## Test plan
   - [ ] CI plugin tests pass on Python 3.10/3.11 (existing coverage)
   - [ ] CI plugin tests pass on Python 3.12/3.13/3.14 (new)
   - [ ] E2E tests pass across all Python versions
   - [ ] Docker images build for all variants
   - [ ] Lint and doc-gen checks pass
   
   Supersedes #374
   
   🤖 Generated with [Claude Code](https://claude.com/claude-code)


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to