-
Notifications
You must be signed in to change notification settings - Fork 0
Comparing changes
Open a pull request
base repository: CodePrometheus/skywalking-python
base: f6bbda3
head repository: apache/skywalking-python
compare: 88d30ab
- 17 commits
- 86 files changed
- 8 contributors
Commits on Feb 19, 2025
-
Configuration menu - View commit details
-
Copy full SHA for 8a1c893 - Browse repository at this point
Copy the full SHA 8a1c893View commit details
Commits on Mar 22, 2025
-
Configuration menu - View commit details
-
Copy full SHA for 2a34c85 - Browse repository at this point
Copy the full SHA 2a34c85View commit details
Commits on Apr 30, 2025
-
Configuration menu - View commit details
-
Copy full SHA for e5fdfe8 - Browse repository at this point
Copy the full SHA e5fdfe8View commit details
Commits on May 6, 2025
-
Configuration menu - View commit details
-
Copy full SHA for 1f091ee - Browse repository at this point
Copy the full SHA 1f091eeView commit details
Commits on May 7, 2025
-
Configuration menu - View commit details
-
Copy full SHA for aecf120 - Browse repository at this point
Copy the full SHA aecf120View commit details
Commits on May 11, 2025
-
Configuration menu - View commit details
-
Copy full SHA for 6ff93cb - Browse repository at this point
Copy the full SHA 6ff93cbView commit details
Commits on Jun 11, 2025
-
Configuration menu - View commit details
-
Copy full SHA for 99434d4 - Browse repository at this point
Copy the full SHA 99434d4View commit details
Commits on Sep 25, 2025
-
Configuration menu - View commit details
-
Copy full SHA for d2fe0af - Browse repository at this point
Copy the full SHA d2fe0afView commit details
Commits on Jan 12, 2026
-
Configuration menu - View commit details
-
Copy full SHA for 6f8882c - Browse repository at this point
Copy the full SHA 6f8882cView commit details -
Configuration menu - View commit details
-
Copy full SHA for b91ebc4 - Browse repository at this point
Copy the full SHA b91ebc4View commit details
Commits on Apr 11, 2026
-
feat: support Python 3.10-3.14, drop 3.8/3.9, update plugin compatibi…
…lity (apache#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 apache#374. ### Core agent fixes - Fix missing `import importlib.util` that caused `NameError` on Python 3.12+ (root cause of apache#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
Configuration menu - View commit details
-
Copy full SHA for a70b2cc - Browse repository at this point
Copy the full SHA a70b2ccView commit details
Commits on Apr 12, 2026
-
feat(plugin): add urllib3 2.x support for Python 3.12+ (apache#387)
urllib3 2.x removed `urllib3.request.RequestMethods` which the existing plugin hooks. Add a new plugin `sw_urllib3_v2` that hooks `PoolManager.request` directly (the 2.x entry point). Auto-detection logic: - sw_urllib3: tries `from urllib3.request import RequestMethods`. Succeeds on 1.x, fails on 2.x (skipped). - sw_urllib3_v2: checks if `RequestMethods` exists. If yes (1.x), returns early. If no (2.x), hooks PoolManager. Both plugins share the same test directory. The test merges version vectors from both plugins' support_matrix. Verified locally on Python 3.13: - urllib3==2.3 PASSED (span validation) - urllib3==2.0 PASSED (span validation)
Configuration menu - View commit details
-
Copy full SHA for 78bed98 - Browse repository at this point
Copy the full SHA 78bed98View commit details -
feat: re-enable aiohttp/psycopg2 and add falcon v3/sanic v2 plugins (a…
…pache#389) ## Summary Re-enable previously skipped plugins, add new plugins for modern framework versions, fix E2E flaky tests, and improve plugin test stability. ### New Plugins - `sw_falcon_v3.py`: Falcon 3.x/4.x plugin, hooks `falcon.App.__call__`. Replaces abandoned hug-based `sw_falcon` for modern Falcon. - `sw_sanic_v2.py`: Sanic 21.9+ plugin, uses `@app.on_request`/`@app.on_response` signal listeners instead of monkey-patching `handle_request` (Sanic's touchup system recompiles patched methods via `compile()+exec()`, losing closure variables). ### Re-enabled Plugins - `sw_aiohttp.py`: Was `>=3.8: []` (fully skipped). Now tests aiohttp 3.9/3.11. Fixed `_handle_request` signature (`*args` for forward compat). Fixed `request.url` ValueError with yarl >= 1.18 (fallback URL construction). - `sw_psycopg2.py`: Was `>=3.10: []` (skipped). Now tests `2.9.*` on all supported Python versions. ### New Test Directories - `tests/plugin/web/sw_falcon_v3/`: Full integration test with Falcon-native services using `wsgiref`. - `tests/plugin/web/sw_sanic_v2/`: Full integration test with `single_process=True` Sanic services. ### E2E Flaky Fixes - `tracing-cases.yaml`: `endpointnames[0]` → `endpointnames[]` in yq select (matches endpoint at any array position). - `logging-cases.yaml`: Same fix. - `traces-list.yml`: Hardcoded `/artist-provider` → `{{ regexp . "/artist-(consumer|provider)" }}` (endpoint name is non-deterministic from OAP). ### Test Stability - `base.py`: Increased validation retry from 1×10s to 3× with backoff (5s/10s/15s = 30s total max). Fixes timing-sensitive tests (e.g., happybase) where segments haven't arrived at the collector yet. ### Docs - `Plugins.md`: Regenerated with new plugins and updated versions.
Configuration menu - View commit details
-
Copy full SHA for 71640af - Browse repository at this point
Copy the full SHA 71640afView commit details -
fix: support module-level @Runnable with continue_tracing() (apache#391)
## Summary `@runnable` previously captured the trace context snapshot at decoration time, which only worked when applied **inline** during an active request. Module-level `@runnable` (the natural Python pattern) silently broke cross-thread trace linking because the snapshot was `None` at import time. ### Changes - `@runnable` now returns a `_RunnableWrapper` object with a `continue_tracing()` method - `continue_tracing()` captures the snapshot on the calling (parent) thread and returns a callable for use as `Thread` target — this enables module-level `@runnable` - `__call__` preserves the original behavior: uses the decoration-time snapshot for inline `@runnable` — **no breaking changes** ### Usage **Module-level (new, previously broken):** ```python @Runnable(op='/post') def post(): requests.post(...) @app.route('/') def hello(): thread = Thread(target=post.continue_tracing()) # snapshot captured here thread.start() ``` **Inline (unchanged, backward compatible):** ```python @app.route('/') def hello(): @Runnable(op='/post') # snapshot captured at decoration time def post(): requests.post(...) thread = Thread(target=post) thread.start() ``` Closes apache/skywalking#11605
Configuration menu - View commit details
-
Copy full SHA for 263a936 - Browse repository at this point
Copy the full SHA 263a936View commit details
Commits on Jun 25, 2026
-
Configuration menu - View commit details
-
Copy full SHA for fd4d626 - Browse repository at this point
Copy the full SHA fd4d626View commit details -
Configuration menu - View commit details
-
Copy full SHA for c3e4c89 - Browse repository at this point
Copy the full SHA c3e4c89View commit details -
fix(ci): pin docker/* actions to ASF-approved SHAs in publish-docker (a…
…pache#406) The publish-docker workflow used floating @V3 tags for docker/login-action, docker/setup-qemu-action, and docker/setup-buildx-action. The ASF GitHub Actions allow-list only approves specific SHAs for third-party actions, so the workflow was rejected at startup (startup_failure) on master pushes. This workflow only runs on push-to-master and release, never on PRs, so the rejection did not surface in PR CI — it first failed when apache#388 merged. Pin all three to the approved SHAs already used across the sibling ASF SkyWalking repos: - docker/login-action@650006c6... # v4.2.0 - docker/setup-qemu-action@06116385... # v4.1.0 - docker/setup-buildx-action@d7f5e7f5... # v4.1.0
Configuration menu - View commit details
-
Copy full SHA for 88d30ab - Browse repository at this point
Copy the full SHA 88d30abView commit details
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff f6bbda3...88d30ab