Skip to content

Commit b810839

Browse files
wu-shengclaude
andcommitted
fix: use minor.* wildcard in support_matrix for latest patch versions
Convention: '4.2.*' lets pip resolve to the latest 4.2.x patch release, instead of pinning to 4.2.0. Applied to all newly added/updated plugins. Update plugin-test and new-plugin skills to document this convention. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 2b581db commit b810839

6 files changed

Lines changed: 27 additions & 8 deletions

File tree

.claude/skills/new-plugin/SKILL.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,8 @@ from skywalking.trace.tags import TagHttpMethod, TagHttpURL, TagHttpStatusCode
3434
link_vector = ['<documentation URL>']
3535
support_matrix = {
3636
'<pip-package-name>': {
37-
'>=3.7': ['<version1>', '<version2>']
37+
'>=3.13': ['<version>.*'], # use minor.* to test latest patch
38+
'>=3.10': ['<older_version>.*', '<version>.*'],
3839
}
3940
}
4041
note = """"""

.claude/skills/plugin-test/SKILL.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,24 @@ docker build --build-arg BASE_PYTHON_IMAGE=3.11-slim \
135135

136136
Note: E2E tests require the `e2e` CLI tool from SkyWalking infra-e2e. They are typically only run in CI. Inform the user if they ask for E2E.
137137

138+
## Version Format in support_matrix
139+
140+
Use `.*` wildcard to test the **latest patch** of each minor version:
141+
```python
142+
support_matrix = {
143+
'falcon': {
144+
'>=3.13': ['4.2.*'], # pip resolves to latest 4.2.x (e.g., 4.2.1)
145+
'>=3.10': ['3.1.*', '4.2.*'],
146+
}
147+
}
148+
```
149+
150+
- `'4.2.*'` → pip installs `falcon==4.2.*` → resolves to latest 4.2.x patch
151+
- `'4.2'` → pip installs `falcon==4.2` → always 4.2.0 (misses patches)
152+
- `'4.*'` → pip installs `falcon==4.*` → latest 4.x entirely (too broad)
153+
154+
**Convention**: always use `minor.*` format (e.g., `'3.11.*'`, `'2.9.*'`, `'24.12.*'`) to get the latest patch release for each tested minor version.
155+
138156
## Step 4: Interpret Results
139157

140158
### Success

docs/en/setup/Plugins.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ or a limitation of SkyWalking auto-instrumentation (welcome to contribute!)
1313
### Plugin Support Table
1414
| Library | Python Version - Lib Version | Plugin Name |
1515
| :--- | :--- | :--- |
16-
| [aiohttp](https://docs.aiohttp.org) | Python >=3.10 - ['3.9', '3.11']; | `sw_aiohttp` |
16+
| [aiohttp](https://docs.aiohttp.org) | Python >=3.10 - ['3.9.*', '3.11.*']; | `sw_aiohttp` |
1717
| [aioredis](https://aioredis.readthedocs.io/) | Python >=3.7 - ['2.0.*']; | `sw_aioredis` |
1818
| [aiormq](https://pypi.org/project/aiormq/) | Python >=3.7 - ['6.3', '6.4']; | `sw_aiormq` |
1919
| [amqp](https://pypi.org/project/amqp/) | Python >=3.7 - ['2.6.1']; | `sw_amqp` |
@@ -24,7 +24,7 @@ or a limitation of SkyWalking auto-instrumentation (welcome to contribute!)
2424
| [django](https://www.djangoproject.com/) | Python >=3.13 - ['5.1']; Python >=3.10 - ['3.2']; | `sw_django` |
2525
| [elasticsearch](https://github.com/elastic/elasticsearch-py) | Python >=3.7 - ['7.13', '7.14', '7.15']; | `sw_elasticsearch` |
2626
| [hug](https://falcon.readthedocs.io/en/stable/) | Python >=3.11 - NOT SUPPORTED YET; Python >=3.10 - ['2.5', '2.6']; Python >=3.7 - ['2.4.1', '2.5', '2.6']; | `sw_falcon` |
27-
| [falcon](https://falcon.readthedocs.io/en/stable/) | Python >=3.13 - ['4.2']; Python >=3.10 - ['3.1', '4.2']; | `sw_falcon_v3` |
27+
| [falcon](https://falcon.readthedocs.io/en/stable/) | Python >=3.13 - ['4.2.*']; Python >=3.10 - ['3.1.*', '4.2.*']; | `sw_falcon_v3` |
2828
| [fastapi](https://fastapi.tiangolo.com) | Python >=3.7 - ['0.89.*', '0.88.*']; | `sw_fastapi` |
2929
| [flask](https://flask.palletsprojects.com) | Python >=3.14 - ['3.0']; Python >=3.10 - ['2.0']; | `sw_flask` |
3030
| [grpcio](https://grpc.io/docs/languages/python) | Python >=3.8 - ['1.*']; | `sw_grpc` |
@@ -46,7 +46,7 @@ or a limitation of SkyWalking auto-instrumentation (welcome to contribute!)
4646
| [redis](https://github.com/andymccurdy/redis-py/) | Python >=3.7 - ['3.5.*', '4.5.1']; | `sw_redis` |
4747
| [requests](https://requests.readthedocs.io/en/master/) | Python >=3.7 - ['2.26', '2.25']; | `sw_requests` |
4848
| [sanic](https://sanic.readthedocs.io/en/latest) | Python >=3.10 - NOT SUPPORTED YET; Python >=3.7 - ['20.12']; | `sw_sanic` |
49-
| [sanic](https://sanic.readthedocs.io/en/latest) | Python >=3.10 - ['23.12', '24.12']; | `sw_sanic_v2` |
49+
| [sanic](https://sanic.readthedocs.io/en/latest) | Python >=3.10 - ['23.12.*', '24.12.*']; | `sw_sanic_v2` |
5050
| [tornado](https://www.tornadoweb.org) | Python >=3.14 - ['6.4']; Python >=3.10 - ['6.0', '6.1']; | `sw_tornado` |
5151
| [urllib3](https://urllib3.readthedocs.io/en/latest/) | Python >=3.12 - NOT SUPPORTED YET; Python >=3.10 - ['1.26', '1.25']; | `sw_urllib3` |
5252
| [urllib3](https://urllib3.readthedocs.io/en/latest/) | Python >=3.12 - ['2.3', '2.0']; | `sw_urllib3_v2` |

skywalking/plugins/sw_aiohttp.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
link_vector = ['https://docs.aiohttp.org']
2525
support_matrix = {
2626
'aiohttp': {
27-
'>=3.10': ['3.9', '3.11'],
27+
'>=3.10': ['3.9.*', '3.11.*'],
2828
}
2929
}
3030
note = """"""

skywalking/plugins/sw_falcon_v3.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@
2424
link_vector = ['https://falcon.readthedocs.io/en/stable/']
2525
support_matrix = {
2626
'falcon': {
27-
'>=3.13': ['4.2'],
28-
'>=3.10': ['3.1', '4.2'],
27+
'>=3.13': ['4.2.*'],
28+
'>=3.10': ['3.1.*', '4.2.*'],
2929
}
3030
}
3131
note = """Falcon 3.x/4.x plugin. For legacy hug-based instrumentation, see sw_falcon."""

skywalking/plugins/sw_sanic_v2.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
link_vector = ['https://sanic.readthedocs.io/en/latest']
2929
support_matrix = {
3030
'sanic': {
31-
'>=3.10': ['23.12', '24.12'],
31+
'>=3.10': ['23.12.*', '24.12.*'],
3232
}
3333
}
3434
note = """Sanic 21.9+ plugin using signal listeners.

0 commit comments

Comments
 (0)