Skip to content

[do not merge] Testing sync - #8230

Merged
sentrivana merged 12 commits into
major/3.0from
ivana/major/test-merge
Nov 9, 2026
Merged

sentrivana merged 12 commits into
major/3.0from
ivana/major/test-merge

Conversation

@sentrivana

Copy link
Copy Markdown
Collaborator

No description provided.

sentrivana and others added 12 commits November 5, 2026 09:28
…den (#8185)

### Description
If there's an incoming sampling decision, `traces_sample_rate` is
irrelevant and shouldn't overwrite the sampling rate in the DSC.

There are cases where we do want to override the incoming sampling
decision, but only in cases where the SDK actually uses a different
sample rate for some reason (`traces_sampler`).

#### Issues
Closes #8182

#### Reminders
- Please add tests to validate your changes, and lint your code using
`uv run ruff`.
- Add GH Issue ID _&_ Linear ID (if applicable)
- PR title should use [conventional
commit](https://develop.sentry.dev/engineering-practices/commit-messages/#type)
style (`feat:`, `fix:`, `ref:`, `meta:`)
- For external contributors:
[CONTRIBUTING.md](https://github.com/getsentry/sentry-python/blob/master/CONTRIBUTING.md),
[Sentry SDK development docs](https://develop.sentry.dev/sdk/), [Discord
community](https://discord.gg/Ww9hbqr)
Include reasoning parts in `gen_ai.output.messages` based on Anthropic thinking blocks.

Extend `EXAMPLE_MESSAGE` in tests to include a thinking part when a supported library version is installed.
Stop re-using `EXAMPLE_MESSAGE` in streaming responses and create two fixtures to reduce duplication among streaming responses in tests.
Accumulate thinking output in the same format as the nonstreaming path so `_set_output_data()` can format the thinking parts as reasoning parts that the product understands.
Turns on Warden incremental review for `find-bugs`, `code-review`,
`skill-scanner`. On each push, these skills now skip hunks that an
earlier clean run on the same PR already reviewed, instead of
re-reviewing the whole PR. Other skills in this repo keep full review.

Warden falls back to a full review when there is no usable baseline:
first push, force push, config or skill change, or an earlier run that
requested changes or had failures. This needs the org base config to set
`incrementalApp = "sentry-warden"` (getsentry/.github#223); until that
lands, Warden warns and keeps doing full reviews.

<!-- junior-request-attribution:start -->
via **Jeffrey Hung**.
<!-- junior-request-attribution:end -->

<!-- junior-session-footer:start -->
<!-- junior-conversation-id:slack%3AD0AH1TP6CHJ%3A1793906366.333339 -->

--

[View
Session](https://junior-prod.sentry.dev/conversations/slack%3AD0AH1TP6CHJ%3A1793906366.333339)
[[Sentry]](https://sentry.sentry.io/explore/conversations/slack%3AD0AH1TP6CHJ%3A1793906366.333339/?project=4510944073809921)

<!-- junior-session-footer:end -->

Co-authored-by: sentry-junior[bot] <264270552+sentry-junior[bot]@users.noreply.github.com>
Co-authored-by: Jeffrey Hung <jeffrey.hung@sentry.io>
…8198)

### Description

Marks functions wrapped with `@sentry_sdk.monitor`, so scheduler
integrations can skip jobs that already send their own check-ins. The
arq integration now does this, so those jobs don't report twice.

Also moves arq's time zone lookup into `sentry_sdk/crons/utils.py` so
other cron integrations can share it, and stops sending names that
aren't IANA zones (like tzlocal's `local`), which Sentry would reject.

This is the base for
#7840 (APScheduler),
which uses both.

### Testing

New arq test for a `@sentry_sdk.monitor` cron job. The existing arq time
zone tests cover the helper.
### Description

Removes `ContinuousScheduler.pause()` from
`sentry_sdk/profiler/continuous_profiler.py` (3 lines). It's a stub that
only raises `NotImplementedError`, and nothing implements it or calls
it.

#2830 (Jun 2024, "Introduce continuous profiling mode") added it next to
`ensure_running()` and `teardown()`. Unlike those two, no subclass ever
overrode it, and the SDK never called it. The stub makes it look like
the continuous profiler can be paused, but it can't.

**Evidence**
- `git grep -nw pause` on `master` finds only the definition. Nothing in
`sentry_sdk/`, `tests/`, `scripts/` or `docs/` refers to it.
- `ThreadContinuousScheduler` and `GeventContinuousScheduler`, the only
subclasses, override `ensure_running()` and `teardown()` but not
`pause()`.
- `git log -S "def pause"` finds only #2830. `git log -S ".pause("`
across `sentry_sdk` and `tests` finds no commits, so it has never had a
caller.
- `ContinuousScheduler` isn't exported from `sentry_sdk.profiler`
(`__all__` lists only the transaction-profiler schedulers) and isn't
documented.
- No open PR or issue mentions it. #7275 also touches
`continuous_profiler.py`, but in different hunks
(`ThreadContinuousScheduler.__init__`).

**Why it's safe**
- `ContinuousScheduler` is an internal class. The method is unreachable,
so behavior doesn't change, and no public API or documented behavior is
affected.

**Checks**
- `uv run ruff check` / `ruff format --check` on `sentry_sdk/profiler`:
clean
- `uv run --group typing mypy sentry_sdk`: no issues
- `TESTPATH=tests/profiler uv run tox -e py3.14-common`: 106 passed, 69
skipped. The skipped tests are the gevent cases, which need gevent
installed.

#### Issues
None. Found by the weekly sentry-python removal scout.

<!-- junior-request-attribution:start -->
via [automation
`sched_65eed06cc199036c2b13411096f412d4`](https://junior-prod.sentry.dev/automations/sched_65eed06cc199036c2b13411096f412d4)
· Run ID `sched_65eed06cc199036c2b13411096f412d4:1794211200000`.
<!-- junior-request-attribution:end -->

<!-- junior-session-footer:start -->
<!--
junior-conversation-id:agent-dispatch%3Adispatch_0096be51ec4ca0f294d1b5786520632b
-->

--

[View
Session](https://junior-prod.sentry.dev/conversations/agent-dispatch%3Adispatch_0096be51ec4ca0f294d1b5786520632b)
[[Sentry]](https://sentry.sentry.io/explore/conversations/agent-dispatch%3Adispatch_0096be51ec4ca0f294d1b5786520632b/?project=4510944073809921)

<!-- junior-session-footer:end -->

Co-authored-by: sentry-junior[bot] <264270552+sentry-junior[bot]@users.noreply.github.com>
find-bugs overlaps code-review, so this consolidates Warden on one
bug-finding skill.

This repo already runs code-review on the same PR triggers, so this only
drops the duplicate skill.

<!-- junior-request-attribution:start -->
via @dcramer.
<!-- junior-request-attribution:end -->

<!-- junior-session-footer:start -->
<!-- junior-conversation-id:agent%3A002d98fb2946503b1e169e66abf9b139 -->

--

[View
Session](https://junior-prod.sentry.dev/conversations/agent%3A002d98fb2946503b1e169e66abf9b139)
[[Sentry]](https://sentry.sentry.io/explore/conversations/agent%3A002d98fb2946503b1e169e66abf9b139/?project=4510944073809921)

<!-- junior-session-footer:end -->

Co-authored-by: sentry-junior[bot] <264270552+sentry-junior[bot]@users.noreply.github.com>
Co-authored-by: David Cramer <23610+dcramer@users.noreply.github.com>
…ackages (#8215)

### Description
`package_version()` in `sentry_sdk/utils.py` rebuilt the full
installed-package mapping on every call: `_get_installed_modules()`
iterates `importlib.metadata.distributions()` (parsing every installed
distribution's metadata), and `package_version` additionally
re-normalized that whole mapping per call. Integrations call
`package_version` during `sentry_sdk.init()` to check minimum versions,
so in environments with a few hundred installed packages this scan
measurably slowed SDK startup.

This change makes `package_version` look up the single requested
distribution with `importlib.metadata.version()` instead:

- Top-level guarded `from importlib import metadata as
importlib_metadata` (no inline imports, per the repo guidelines);
`PackageNotFoundError` maps to `None`, matching the previous behaviour
for missing packages.
- The existing `_get_installed_modules()` scan remains as the fallback
for environments without `importlib.metadata` (Python < 3.8), so
supported old interpreters keep working.
- Name handling is unchanged: the requested name is PEP 503-normalized
first, which is also how `importlib.metadata.version()` resolves
distribution names.

Tests in `tests/test_utils.py`:
- `test_package_version_installed_package` asserts an installed package
(`pytest`) resolves to the same parsed version as `importlib.metadata`.
- `test_package_version_does_not_scan_all_installed_packages`
monkeypatches `_get_installed_modules` to fail if invoked (the only way
to assert the scan no longer happens) and asserts both hit and miss
lookups still work.

Validation:
- `TESTPATH=tests/test_utils.py uv run tox -e py3.12-common -- -k
package_version` — 3 passed.
- `uv run ruff check` / `ruff format --check` on the changed files —
clean.
- `uv run --group typing mypy sentry_sdk` — no issues in 203 files.

#### Issues
* resolves: #8190

#### Reminders
- Tests added and linted with `uv run ruff` as requested.
- PR title uses conventional-commit style.

Co-authored-by: Adityaaa <144815351+addydude@users.noreply.github.com>
@sentrivana
sentrivana changed the base branch from master to major/3.0 November 9, 2026 13:12
@github-actions

github-actions Bot commented Nov 9, 2026

Copy link
Copy Markdown
Contributor

Coverage Results 📊

✅ 57871 passed | ⏭️ 3012 skipped | Total: 60883 | Pass Rate: 95.05% | Execution Time: 154m 24s

All tests are passing successfully.

✅ Patch coverage is 88.79% (2852 of 3212 changed executable lines covered; target 80%).
Project statement coverage is 90.36% (up 0.02 percentage points from base (4cf1ee5) to head (427d6e8)).

Changed files with executable lines (143)
File Patch coverage Changed executable lines
sentry_sdk/integrations/aws_lambda/_handler.py 19.10% 17/89 covered; missed: 43, 45, 46, 59, 60, 62, 63, 65, 66, 67, 69, 70, 72, 76, 78, 79, 80, 81, 82, 83, 91, 95, 99, 107, 109, 112, 113, 115, 116, 117, 118, 119, 120, 121, 125, 126, 127, 131, 132, 133, 134, 135, 139, 140, 144, 145, 146, 147, 149, 154, 156, 168, 169, 170, 171, 172, 173, 174, 176, 190, 191, 192, 197, 198, 199, 200, 201, 205, 206, 208, 209, 211
sentry_sdk/integrations/aws_lambda/_runtime.py 22.00% 11/50 covered; missed: 23, 25, 26, 28, 29, 31, 32, 33, 37, 41, 42, 43, 47, 68, 70, 72, 76, 77, 78, 79, 82, 101, 102, 103, 104, 106, 109, 110, 112, 115, 117, 121, 122, 123, 124, 125, 126, 127, 138
sentry_sdk/integrations/aws_lambda/_request.py 69.86% 51/73 covered; missed: 19, 25, 27, 28, 29, 31, 32, 33, 35, 68, 76, 77, 78, 82, 83, 91, 92, 93, 97, 98, 101, 120; partial branches: 18, 22, 67, 75, 88, 90, 95, 96, 119
sentry_sdk/integrations/langchain.py 90.26% 139/154 covered; missed: 237, 274, 388, 405, 414, 492, 501, 507, 522, 528, 548, 591, 592, 598, 1244; partial branches: 236, 273, 285, 387, 404, 413, 491, 500, 506, 521, 527, 547
sentry_sdk/integrations/ray.py 33.33% 11/33 covered; missed: 92, 94, 95, 104, 105, 106, 107, 108, 109, 111, 130, 134, 135, 138, 139, 140, 141, 143, 160, 161, 162, 163; partial branches: 129
sentry_sdk/integrations/aws_lambda/init.py 36.36% 12/33 covered; missed: 24, 28, 29, 30, 34, 36, 37, 41, 43, 47, 49, 52, 53, 57, 62, 63, 64, 65, 67, 69, 74
sentry_sdk/integrations/mcp.py 93.55% 87/93 covered; missed: 279, 283, 355, 359, 403, 405; partial branches: 278, 282, 288, 354, 358, 366, 371, 386, 389, 393, 395, 398, 447, 449
sentry_sdk/integrations/anthropic.py 76.92% 30/39 covered; missed: 517, 519, 521, 525, 530, 756, 855, 1073, 1175; partial branches: 529, 755, 854, 1072, 1174
sentry_sdk/integrations/google_genai/init.py 80.65% 50/62 covered; missed: 76, 106, 139, 140, 142, 144, 170, 243, 262, 263, 264, 265; partial branches: 75, 242
sentry_sdk/integrations/socket.py 59.09% 13/22 covered; missed: 59, 96, 107, 108, 114, 115, 116, 117, 118; partial branches: 58, 68, 95, 105, 112
sentry_sdk/integrations/gcp.py 7.14% 1/14 covered; missed: 88, 89, 100, 104, 105, 131, 132, 134, 225, 226, 230, 231, 237
sentry_sdk/integrations/openai_agents/patches/runner.py 80.95% 34/42 covered; missed: 152, 173, 178, 179, 196, 201, 202, 203; partial branches: 151, 164, 169, 193
sentry_sdk/integrations/litestar.py 85.00% 34/40 covered; missed: 169, 184, 186, 204, 206, 272; partial branches: 168, 183, 185, 203, 205
sentry_sdk/integrations/asyncpg.py 86.21% 25/29 covered; missed: 216, 217, 244, 245; partial branches: 113, 212, 240, 247, 250
sentry_sdk/integrations/pydantic_ai/spans/ai_client.py 86.11% 31/36 covered; missed: 330, 331, 332, 333, 334; partial branches: 295, 300, 305, 323
sentry_sdk/integrations/mistral.py 92.31% 48/52 covered; missed: 321, 325, 441, 445; partial branches: 320, 324, 440, 444
sentry_sdk/integrations/openai_agents/spans/ai_client.py 87.10% 27/31 covered; missed: 227, 228, 239, 255; partial branches: 225, 230, 238, 254
sentry_sdk/integrations/otlp.py 87.10% 27/31 covered; missed: 154, 158, 180, 219; partial branches: 149, 153, 157, 174
sentry_sdk/integrations/pydantic_ai/spans/invoke_agent.py 100.00% 41/41 covered; partial branches: 65, 69, 77, 95, 103, 111, 113, 121
sentry_sdk/integrations/openai_agents/patches/agent_run.py 58.33% 7/12 covered; missed: 60, 225, 232, 254, 263; partial branches: 104, 182
sentry_sdk/integrations/quart.py 86.84% 33/38 covered; missed: 105, 107, 108, 148, 149; partial branches: 190, 200
sentry_sdk/integrations/aiohttp.py 95.45% 63/66 covered; missed: 331, 332, 333; partial branches: 169, 263, 330
sentry_sdk/integrations/asgi.py 86.49% 32/37 covered; missed: 244, 246, 248, 249, 254; partial branches: 230
sentry_sdk/integrations/django/init.py 94.92% 56/59 covered; missed: 805, 824, 900; partial branches: 590, 804, 823
sentry_sdk/integrations/openai.py 96.84% 92/95 covered; missed: 413, 524, 794; partial branches: 585, 604, 793
sentry_sdk/integrations/starlette.py 93.48% 43/46 covered; missed: 109, 165, 801; partial branches: 164, 540, 738
sentry_sdk/integrations/typesafe.py 90.00% 18/20 covered; missed: 289, 375; partial branches: 253, 288, 339, 374
sentry_sdk/integrations/sqlalchemy.py 86.67% 13/15 covered; missed: 169, 173; partial branches: 82, 150, 164
sentry_sdk/_init_implementation.py 89.47% 17/19 covered; missed: 21, 33; partial branches: 20, 32
sentry_sdk/integrations/aiomysql.py 100.00% 21/21 covered; partial branches: 98, 102, 146, 150
sentry_sdk/integrations/chalice.py 94.29% 33/35 covered; missed: 97, 141; partial branches: 96, 100
sentry_sdk/integrations/cohere.py 81.82% 18/22 covered; missed: 144, 149, 158, 260
sentry_sdk/integrations/django/caching.py 97.37% 37/38 covered; missed: 62; partial branches: 61, 81, 108
sentry_sdk/integrations/django/templates.py 77.78% 7/9 covered; missed: 58, 92; partial branches: 57, 91
sentry_sdk/integrations/django/views.py 84.62% 11/13 covered; missed: 25, 75; partial branches: 24, 74
sentry_sdk/integrations/langgraph.py 97.37% 37/38 covered; missed: 275; partial branches: 118, 137, 272
sentry_sdk/integrations/openai_agents/init.py 96.77% 30/31 covered; missed: 133; partial branches: 90, 116, 126
sentry_sdk/client.py 93.55% 29/31 covered; missed: 420, 421; partial branches: 846
sentry_sdk/integrations/boto3/_utils.py 95.00% 19/20 covered; missed: 33; partial branches: 32, 36
sentry_sdk/integrations/flask.py 66.67% 6/9 covered; missed: 48, 142, 143
sentry_sdk/integrations/google_genai/utils.py 88.46% 23/26 covered; missed: 711, 720, 909
sentry_sdk/integrations/grpc/aio/client.py 87.50% 14/16 covered; missed: 90, 93; partial branches: 89
sentry_sdk/integrations/grpc/client.py 85.71% 12/14 covered; missed: 64, 67; partial branches: 63
sentry_sdk/integrations/starlite.py 87.50% 14/16 covered; missed: 155, 247; partial branches: 154
sentry_sdk/scope.py 100.00% 66/66 covered; partial branches: 745, 1480, 1522
sentry_sdk/data_collection.py 83.33% 5/6 covered; missed: 260; partial branches: 259
sentry_sdk/integrations/celery/init.py 100.00% 37/37 covered; partial branches: 105, 365
sentry_sdk/integrations/django/asgi.py 90.00% 9/10 covered; missed: 181; partial branches: 180
sentry_sdk/integrations/django/middleware.py 80.00% 4/5 covered; missed: 80; partial branches: 79
sentry_sdk/integrations/django/transactions.py 71.43% 5/7 covered; missed: 16, 17
sentry_sdk/integrations/google_genai/streaming.py 84.62% 11/13 covered; missed: 115, 119
sentry_sdk/integrations/grpc/server.py 66.67% 4/6 covered; missed: 62, 63
sentry_sdk/integrations/huggingface_hub.py 93.33% 28/30 covered; missed: 232, 427
sentry_sdk/integrations/pure_eval.py 33.33% 1/3 covered; missed: 24, 30
sentry_sdk/integrations/pyramid.py 86.67% 13/15 covered; missed: 78, 79
sentry_sdk/integrations/pyreqwest.py 100.00% 19/19 covered; partial branches: 139, 163
sentry_sdk/integrations/strawberry.py 97.67% 42/43 covered; missed: 271; partial branches: 270
sentry_sdk/integrations/tornado.py 100.00% 46/46 covered; partial branches: 134, 136
sentry_sdk/traces.py 96.67% 58/60 covered; missed: 293, 678
sentry_sdk/tracing_utils.py 100.00% 29/29 covered; partial branches: 140, 292
sentry_sdk/utils.py 95.12% 39/41 covered; missed: 1406, 1983
sentry_sdk/api.py 91.67% 11/12 covered; missed: 178
sentry_sdk/integrations/arq.py 100.00% 14/14 covered; partial branches: 189
sentry_sdk/integrations/asyncio.py 87.50% 7/8 covered; missed: 164
sentry_sdk/integrations/boto3/_services/kinesis.py 100.00% 20/20 covered; partial branches: 21
sentry_sdk/integrations/boto3/_services/sqs.py 100.00% 20/20 covered; partial branches: 35
sentry_sdk/integrations/boto3/_services/stepfunctions.py 100.00% 38/38 covered; partial branches: 57
sentry_sdk/integrations/bottle.py 100.00% 11/11 covered; partial branches: 118
sentry_sdk/integrations/dramatiq.py 100.00% 17/17 covered; partial branches: 170
sentry_sdk/integrations/falcon.py 100.00% 15/15 covered; partial branches: 97
sentry_sdk/integrations/httpx.py 100.00% 40/40 covered; partial branches: 177
sentry_sdk/integrations/httpx2.py 100.00% 40/40 covered; partial branches: 177
sentry_sdk/integrations/litellm.py 100.00% 14/14 covered; partial branches: 124
sentry_sdk/integrations/logging.py 100.00% 29/29 covered; partial branches: 148
sentry_sdk/integrations/loguru.py 100.00% 14/14 covered; partial branches: 154
sentry_sdk/integrations/openai_agents/patches/error_tracing.py 100.00% 3/3 covered; partial branches: 58
sentry_sdk/integrations/pymongo.py 100.00% 24/24 covered; partial branches: 108
sentry_sdk/integrations/redis/modules/queries.py 100.00% 10/10 covered; partial branches: 55
sentry_sdk/integrations/redis/utils.py 100.00% 7/7 covered; partial branches: 107
sentry_sdk/integrations/rq.py 100.00% 15/15 covered; partial branches: 124
sentry_sdk/integrations/sanic.py 100.00% 32/32 covered; partial branches: 186
sentry_sdk/integrations/threading.py 50.00% 1/2 covered; missed: 65
sentry_sdk/integrations/wsgi.py 100.00% 38/38 covered; partial branches: 425
sentry_sdk/profiler/continuous_profiler.py 50.00% 1/2 covered; missed: 84
sentry_sdk/_compat.py 100.00% 4/4 covered
sentry_sdk/_span_batcher.py 100.00% 11/11 covered
sentry_sdk/_types.py 100.00% 1/1 covered
sentry_sdk/ai/utils.py 100.00% 2/2 covered
sentry_sdk/consts.py 100.00% 76/76 covered
sentry_sdk/envelope.py 100.00% 1/1 covered
sentry_sdk/feature_flags.py 100.00% 3/3 covered
sentry_sdk/integrations/init.py 100.00% 3/3 covered
sentry_sdk/integrations/_asgi_common.py 100.00% 20/20 covered
sentry_sdk/integrations/_wsgi_common.py 100.00% 11/11 covered
sentry_sdk/integrations/ariadne.py 100.00% 9/9 covered
sentry_sdk/integrations/aws_lambda/consts.py 100.00% 5/5 covered
sentry_sdk/integrations/beam.py 100.00% 7/7 covered
sentry_sdk/integrations/boto3/_client.py 100.00% 12/12 covered
sentry_sdk/integrations/boto3/_context.py 100.00% 1/1 covered
sentry_sdk/integrations/boto3/_instrumentation.py 100.00% 28/28 covered
sentry_sdk/integrations/boto3/_services/dynamodb.py 100.00% 10/10 covered
sentry_sdk/integrations/boto3/services/lambda.py 100.00% 10/10 covered
sentry_sdk/integrations/boto3/_services/registry.py 100.00% 9/9 covered
sentry_sdk/integrations/boto3/_services/s3.py 100.00% 45/45 covered
sentry_sdk/integrations/boto3/_services/secretsmanager.py 100.00% 26/26 covered
sentry_sdk/integrations/boto3/_services/sns.py 100.00% 10/10 covered
sentry_sdk/integrations/boto3/consts.py 100.00% 2/2 covered
sentry_sdk/integrations/clickhouse_driver.py 100.00% 19/19 covered
sentry_sdk/integrations/dedupe.py 100.00% 5/5 covered
sentry_sdk/integrations/django/signals_handlers.py 100.00% 4/4 covered
sentry_sdk/integrations/django/tasks.py 100.00% 4/4 covered
sentry_sdk/integrations/executing.py 100.00% 1/1 covered
sentry_sdk/integrations/fastapi.py 100.00% 14/14 covered
sentry_sdk/integrations/gql.py 100.00% 3/3 covered
sentry_sdk/integrations/graphene.py 100.00% 12/12 covered
sentry_sdk/integrations/grpc/init.py 100.00% 2/2 covered
sentry_sdk/integrations/grpc/aio/server.py 100.00% 10/10 covered
sentry_sdk/integrations/huey.py 100.00% 16/16 covered
sentry_sdk/integrations/launchdarkly.py 100.00% 9/9 covered
sentry_sdk/integrations/openai_agents/patches/models.py 100.00% 9/9 covered
sentry_sdk/integrations/openai_agents/spans/init.py 100.00% 1/1 covered
sentry_sdk/integrations/openai_agents/spans/execute_tool.py 100.00% 8/8 covered
sentry_sdk/integrations/openai_agents/spans/invoke_agent.py 100.00% 8/8 covered
sentry_sdk/integrations/openai_agents/utils.py 100.00% 15/15 covered
sentry_sdk/integrations/openfeature.py 100.00% 5/5 covered
sentry_sdk/integrations/pydantic_ai/init.py 100.00% 46/46 covered
sentry_sdk/integrations/pydantic_ai/spans/init.py 100.00% 1/1 covered
sentry_sdk/integrations/pydantic_ai/spans/execute_tool.py 100.00% 10/10 covered
sentry_sdk/integrations/pydantic_ai/spans/utils.py 100.00% 5/5 covered
sentry_sdk/integrations/pydantic_ai/utils.py 100.00% 10/10 covered
sentry_sdk/integrations/redis/init.py 100.00% 7/7 covered
sentry_sdk/integrations/redis/_async_common.py 100.00% 15/15 covered
sentry_sdk/integrations/redis/_sync_common.py 100.00% 9/9 covered
sentry_sdk/integrations/redis/modules/caches.py 100.00% 7/7 covered
sentry_sdk/integrations/redis/redis.py 100.00% 3/3 covered
sentry_sdk/integrations/rust_tracing.py 100.00% 12/12 covered
sentry_sdk/integrations/spark/spark_driver.py 100.00% 8/8 covered
sentry_sdk/integrations/statsig.py 100.00% 1/1 covered
sentry_sdk/integrations/stdlib.py 100.00% 32/32 covered
sentry_sdk/integrations/trytond.py 100.00% 11/11 covered
sentry_sdk/integrations/typer.py 100.00% 5/5 covered
sentry_sdk/integrations/unleash.py 100.00% 5/5 covered
sentry_sdk/transport.py 100.00% 3/3 covered
Coverage diff
@@            Coverage Diff             @@
##        master     #8230       +/-##
==========================================
+ Coverage    90.34%    90.36%    +0.02%
==========================================
  Files          203       199        -4
  Tracked lines     26931     21337     -5594
  Branches     10058      7378     -2680
==========================================
- Hits         24331     19281     -5050
+ Misses        2600      2056      -544
+ Partials      1517      1234      -283

Generated by Coverage Action

@sentrivana
sentrivana merged commit 427d6e8 into major/3.0 Nov 9, 2026
155 of 156 checks passed
@sentrivana
sentrivana deleted the ivana/major/test-merge branch November 9, 2026 13:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants