Next Python SDK major - #5005
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #5005 +/- ##
===========================================
+ Coverage 70.55% 83.76% +13.21%
===========================================
Files 180 180
Lines 18077 18080 +3
Branches 3008 3009 +1
===========================================
+ Hits 12754 15145 +2391
+ Misses 4432 1943 -2489
- Partials 891 992 +101
|
Codecov Results 📊✅ 92713 passed | ❌ 1 failed | ⏭️ 5195 skipped | Total: 97909 | Pass Rate: 94.69% | Execution Time: 336m 34s 📊 Comparison with Base Branch
➕ New Tests (1)View new tests
➖ Removed Tests (1)View removed tests
❌ Failed Tests
|
| File | Patch % | Lines |
|---|---|---|
| sentry_sdk/integrations/aws_lambda.py | 0.00% | |
| sentry_sdk/integrations/otlp.py | 86.67% | |
| sentry_sdk/_init_implementation.py | 88.89% | |
| sentry_sdk/client.py | 71.43% | |
| sentry_sdk/integrations/django/transactions.py | 71.43% | |
| sentry_sdk/integrations/pure_eval.py | 33.33% | |
| sentry_sdk/integrations/asyncio.py | 66.67% | |
| sentry_sdk/integrations/chalice.py | 87.50% | |
| sentry_sdk/integrations/flask.py | 50.00% | |
| sentry_sdk/integrations/starlette.py | 83.33% | |
| sentry_sdk/profiler/continuous_profiler.py | 50.00% |
Coverage diff
@@ Coverage Diff @@
## main #PR +/-##
==========================================
+ Coverage 89.99% 90.31% +0.32%
==========================================
Files 193 185 -8
Lines 24946 23593 -1353
Branches 9000 8552 -448
==========================================
+ Hits 22451 21308 -1143
- Misses 2495 2285 -210
- Partials 1435 1381 -54Generated by Codecov Action
Semver Impact of This PR⚪ None (no version bump detected) 📋 Changelog PreviewThis is how your changes will appear in the changelog. New Features ✨
Bug Fixes 🐛Anthropic
Documentation 📚
Internal Changes 🔧
Other
🤖 This preview updates automatically when you update the PR. |
Add `UnraisablehookIntegration` to the default integrations list.
Stop raising exceptions `from None` in the ASGI and asyncio integrations. Closes #5624
Remove everything hub related, including all sorts of compatibility shims around hubs/scopes. Also remove deprecated session methods. `configure_scope` and `push_scope` removal coming in a future PR. #### Issues Closes #5001
The integration requires additional configuration which should be intentional on the user's part. #### Issues Closes #4993
- Remove everything in `integrations/opentelemetry` (`SentrySpanProcessor`, `SentryPropagator`, etc.) - Remove associated test files and CI config - Move old propagator functions and consts that we were using in `OTLPIntegration` to the OTLP propagator directly - Remove `instrumenter` Note: `NoOpSpan` was not removed because it makes mypy blow up. Not worth the effort as we'll anyway get rid of it when dropping transaction based tracing. #### Issues Closes #6932
### Description The API is deprecated and slated for removal in 3.0. #### Issues Closes #5019 #### 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)
### Description Remove the deprecated API. #### Issues Closes #5018
### Description Most of the entries in our extras list serve as a way to communicate/enforce the lower boundary of the respective framework that we support. This creates a parallel system to the version checks we already have in each integration. Some extras, however, define extra dependencies or specific extras that are required for an integration to work correctly (e.g. the Flask integration needs `blinker` to work properly). In that case, keep the extra. #### Issues Closes #6259
### Description The LaunchDarkly client is a [singleton](https://launchdarkly.com/docs/sdk/server-side/python#initialize-the-client). As such, it doesn't make sense to provide a way to patch a specific client only. This allows us to get rid of the integation `__init__`, which is always good: integrations are meant to be setup via `setup_once`. #### Issues Closes #7040 #### 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)
- drop old chalice from ci - bump min version in `integrations/__init__.py`
We're now enforcing Tornado > 6, so compat code for older versions is not needed anymore
Fixes for things that the bots [surfaced](#5005) on the major branch: - some version checks were too late (after patching) - fix TrytondWSGI integration name/`_MIN_VERSIONS` entry mismatch Also, changed the warning of the `DidNotEnable` message from "X not installed" to "X not installed or incompatible".
Strawberry is not auto-enabling in 3.0 anymore, so this guard is not necessary.
### Description Remove the `@ai_track` decorator and associated tests #### Issues Part of #6894
### Description The actual compat code was removed with the contextvars shim. Just test utils remain. #### Issues Closes #4997
Drop support for redis-py<[4.2](https://pypi.org/project/redis/4.2.0/): - remove redis cluster legacy (it was moved directly into redis-py in 4.1) - remove deprecated `max_data_size` integration option - remove conditional patching of async client and pipeline -- just patch always (they're available from 4.2+) - use the Redis class instead of StrictRedis (which is just an alias)
### Description - drop experimental options if they have a top-level replacement - remove `start_profile_session` and `stop_profile_session` (replaced by `start_profile` and `stop_profile`) There is a `continuous_profiling_auto_start` experimental option without a top-level replacement. There's also a `try_autostart_continuous_profiler` function that says it should be deprecated in favor of "auto lifecycle". There is no auto lifecycle as far as I can tell. Or is this referring to `lifecycle=trace`? Leaving this as is for now... #### Issues Closes #6946
- Remove `skipif`s that are not necessary anymore (because they skip running the test case against framework versions we've now dropped) - Remove flaky skipped threading test
We're preparing our next major on this branch.
The project is tracked in Linear. If you don't have access, we'll try to tag issues belonging to the project with the
SDK3.0 label on GitHub so that you can follow along.Context
You might have read this announcement about us discontinuing work on a 3.0. This is referring to the work done on the
potel-basebranch, which included two types of changes: a huge refactor of our tracing code on the one hand, and various unrelated changes, improvements and fixes on the other. We're dropping the huge refactor part, and only porting the rest, to a new branch and eventually a new 3.0 release.Changes