Repository navigation
Comparing changes
Open a pull request
base repository: mohanprasath-dev/sentry-python
base: master
head repository: getsentry/sentry-python
compare: master
- 17 commits
- 34 files changed
- 12 contributors
Commits on Oct 15, 2026
-
test(monitor): Stop background health checks in tests that drive the …
…monitor (getsentry#8032) ### Description This fixes the flaky `tests/test_monitor.py::test_segment_uses_downsampled_rate` (`assert 0.25 == 0.5`, [job](https://github.com/getsentry/sentry-python/actions/runs/38393542918/job/115282966684)). Its siblings `test_transaction_uses_downsampled_rate` and `test_monitor_unhealthy` have the same race. **Root cause** These tests call `monitor.run()` by hand and assert exact `downsample_factor` values. They also set `monitor.interval = 0.1`. The first `monitor.is_healthy()` starts the monitor's background thread, which then calls `run()` every 0.1 s as well. On a slow runner (the failure was in Gevent 3.10, where the test took about 0.34 s), the thread runs an extra unhealthy check before the sampling decision. The factor goes from 1 to 2, so the sample rate is 0.25. **Fix** These tests now call `monitor.kill()` instead of shortening the interval. The thread `is_healthy()` starts then exits right away, so only the test's own `run()` calls change the factor. The assertions are unchanged, and there are no retries, sleeps or skips. SDK code is unchanged; this was a test bug. **Reproduction:** getsentry/repro#62 (sentry-sdk 2.72.0, Python 3.12). With random gaps of 0–0.2 s before sampling, the rate was wrong in 55 of 100 iterations. With gaps under 0.1 s it was 0 of 100, and with the background thread stopped it was 0 of 100. **Original tests, local runs** (`py3.14-common`). Each run covered the 3 affected tests. A test-only `-p` plugin added a random wait before `start_transaction` / `traces.start_span` to imitate a slow runner; no test or SDK code was changed by it. - `master`, no wait: 10 of 10 runs passed. The race doesn't show up locally on its own. - `master`, 0–200 ms wait: **11 of 15 runs failed**. `test_segment_uses_downsampled_rate` failed 6 times and `test_transaction_uses_downsampled_rate` 8 times. - This branch, 0–200 ms wait: **40 of 40 runs passed**. The baseline per-test failure rate was about 40%, so 9 clean runs would already give 99% confidence. - This branch, 0–500 ms wait: **20 of 20 runs passed**. - Regression checks: `tests/test_monitor.py`, `tests/tracing/test_sampling.py` and `tests/tracing/test_decorator.py` all passed (109 tests). `ruff` is clean. I haven't run the full common suite or the gevent setup locally; CI covers those. **Not changed here:** `test_trace_decorator_no_trx` also failed once, with leftover monitor logs (`downsampling with a factor of 10`). The likely cause is in `tests/conftest.py::sentry_init`: `inner()` assigns `client` without `nonlocal`, so the `client.close()` in teardown never runs. Monitor threads from earlier tests (with the 0.1 s interval) then keep running. I'll handle that separately, because closing every test client affects the whole suite. #### Issues * resolves: getsentry#8031 <!-- junior-request-attribution:start --> via **johdax**. <!-- junior-request-attribution:end --> <!-- junior-session-footer:start --> <!-- junior-conversation-id:agent-dispatch%3Adispatch_6df7374375b237816e130534b6439833 --> -- [View Junior Session](https://junior-prod.sentry.dev/conversations/agent-dispatch%3Adispatch_6df7374375b237816e130534b6439833) [[Sentry]](https://sentry.sentry.io/explore/conversations/agent-dispatch%3Adispatch_6df7374375b237816e130534b6439833/?project=4510944073809921) <!-- junior-session-footer:end --> Co-authored-by: sentry-junior[bot] <264270552+sentry-junior[bot]@users.noreply.github.com> Co-authored-by: Johannes Daxböck <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for ab069a5 - Browse repository at this point
Copy the full SHA ab069a5View commit details
Commits on Oct 16, 2026
-
chore(deps): update github workflows (getsentry#8036)
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [actions/setup-java](https://redirect.github.com/actions/setup-java) ([changelog](https://redirect.github.com/actions/setup-java/compare/de7274f081f381c8f8158605e0321c36c376e2e6..b843ebf9b913146b38da2eaa7aeddf76074ae1ad)) | | digest | `de7274f` → `b843ebf` | | [actions/setup-java](https://redirect.github.com/actions/setup-java) ([changelog](https://redirect.github.com/actions/setup-java/compare/de7274f081f381c8f8158605e0321c36c376e2e6..b843ebf9b913146b38da2eaa7aeddf76074ae1ad)) | action | digest | `de7274f` → `b843ebf` | | [getsentry/coverage-action](https://redirect.github.com/getsentry/coverage-action) | | patch | `0.4.3` → `0.4.4` | | [getsentry/coverage-action](https://redirect.github.com/getsentry/coverage-action) | action | patch | `0.4.3` → `0.4.4` | | [java-jdk](https://adoptium.net) | uses-with | major | `21` → `25` | --- ### Release Notes <details> <summary>getsentry/coverage-action</summary> ### [`v0.4.4`](https://redirect.github.com/getsentry/coverage-action/blob/HEAD/CHANGELOG.md#044) [Compare Source](https://redirect.github.com/getsentry/coverage-action/compare/0.4.3...0.4.4) ##### New Features ✨ - (status) Add status-key input to namespace commit statuses by [@​tyrantkhan](https://redirect.github.com/tyrantkhan) in [#​118](https://redirect.github.com/getsentry/coverage-action/pull/118) ##### Internal Changes 🔧 - (dashboard) Freeze the artifact fixture clock by [@​MathurAditya724](https://redirect.github.com/MathurAditya724) in [#​120](https://redirect.github.com/getsentry/coverage-action/pull/120) - (release) Default the merge target to main by [@​MathurAditya724](https://redirect.github.com/MathurAditya724) in [#​121](https://redirect.github.com/getsentry/coverage-action/pull/121) - (status) Document and verify independent package statuses by [@​MathurAditya724](https://redirect.github.com/MathurAditya724) in [#​119](https://redirect.github.com/getsentry/coverage-action/pull/119) </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://redirect.github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/getsentry/sentry-python). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xNTYuMyIsInVwZGF0ZWRJblZlciI6IjQ0LjE1Ni4zIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbXX0=--> --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: sentry-junior[bot] <264270552+sentry-junior[bot]@users.noreply.github.com>
Configuration menu - View commit details
-
Copy full SHA for 304e044 - Browse repository at this point
Copy the full SHA 304e044View commit details -
chore(deps): update github workflows (getsentry#8045)
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [getsentry/craft](https://redirect.github.com/getsentry/craft) | action | minor | `2.34.1` → `2.35.0` | | [getsentry/craft](https://redirect.github.com/getsentry/craft) ([changelog](https://redirect.github.com/getsentry/craft/compare/3f2abdc5703191d12ef2cc013f792f1bd220f44d..7a7857552e2cdc08b502de96e6076849c01fba32)) | workflow | digest | `3f2abdc` → `7a78575` | | [java-jdk](https://adoptium.net) | uses-with | major | `21` → `25` | --- ### Release Notes <details> <summary>getsentry/craft</summary> ### [`v2.35.0`](https://redirect.github.com/getsentry/craft/blob/HEAD/CHANGELOG.md#2350) [Compare Source](https://redirect.github.com/getsentry/craft/compare/2.34.1...2.35.0) ##### New Features ✨ - (changelog) Add configurable AI summaries for CLI and Actions by [@​MathurAditya724](https://redirect.github.com/MathurAditya724) in [#​902](https://redirect.github.com/getsentry/craft/pull/902) - (distribution) Release native Craft with install and setup tools by [@​MathurAditya724](https://redirect.github.com/MathurAditya724) in [#​904](https://redirect.github.com/getsentry/craft/pull/904) ##### Bug Fixes 🐛 - (nuget) Pass --timeout to dotnet nuget push by [@​sentry-junior](https://redirect.github.com/sentry-junior) in [#​901](https://redirect.github.com/getsentry/craft/pull/901) ##### Internal Changes 🔧 - Add standalone Fossilize binaries and native smoke tests by [@​MathurAditya724](https://redirect.github.com/MathurAditya724) in [#​903](https://redirect.github.com/getsentry/craft/pull/903) </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://redirect.github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/getsentry/sentry-python). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xNjQuMSIsInVwZGF0ZWRJblZlciI6IjQ0LjE2NC4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbXX0=--> --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: sentry-junior[bot] <264270552+sentry-junior[bot]@users.noreply.github.com>
Configuration menu - View commit details
-
Copy full SHA for 0f7acd5 - Browse repository at this point
Copy the full SHA 0f7acd5View commit details
Commits on Oct 20, 2026
-
Configuration menu - View commit details
-
Copy full SHA for 641517a - Browse repository at this point
Copy the full SHA 641517aView commit details -
feat(arq): Add an option to monitor arq cron jobs (getsentry#8051)
Part of a series adding automatic Crons monitoring for the most-used job schedulers in each SDK. Check-ins for a monitor that doesn't exist yet are dropped, so today each monitor has to be created by hand with its schedule copied from the code. Sending the job's schedule as the monitor config lets Sentry create the monitor and keep it in sync. This adds `monitor_cron_jobs` to `ArqIntegration`, matching Celery's `monitor_beat_tasks`. When it's on, each `cron(...)` job sends check-ins with its schedule in the worker's timezone, so Sentry creates the monitor on the first run. The slug is the job name without arq's `cron:` prefix. It's off by default. ```python sentry_sdk.init( integrations=[ArqIntegration(monitor_cron_jobs=True, exclude_cron_jobs=["cleanup"])], ) ``` Jobs check in without a config when Crons can't express the schedule: a `second` other than 0, both `day` and `weekday` set, or a UTC offset that isn't a whole number of hours. Before arq 0.25, the config is only sent when the system timezone is UTC. Docs: getsentry/sentry-docs#20056Configuration menu - View commit details
-
Copy full SHA for a9553c4 - Browse repository at this point
Copy the full SHA a9553c4View commit details
Commits on Oct 21, 2026
-
chore(deps): bump uv from 0.13.0 to 0.13.4 (getsentry#8095)
Bumps [uv](https://github.com/astral-sh/uv) from 0.13.0 to 0.13.4. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/astral-sh/uv/releases">uv's releases</a>.</em></p> <blockquote> <h2>0.13.4</h2> <h2>Release Notes</h2> <p>Released on 2026-10-20.</p> <p>This release addresses <a href="https://github.com/astral-sh/uv/security/advisories/GHSA-hq85-5cpj-mr62">GHSA-hq85-5cpj-mr62</a>, which involves a root CA whose intermediate on the Web PKI have been compromised. Users are encouraged to upgrade immediately, as well as confirm that all other software that uses bundled CAs is also properly updated.</p> <h3>Preview features</h3> <ul> <li>Validate PEP 825 variant metadata and treat package versions with invalid metadata as unavailable under <code>wheel-variants</code> (<a href="https://redirect.github.com/astral-sh/uv/pull/22512">#22512</a>)</li> </ul> <h3>Other changes</h3> <ul> <li>Update the bundled Mozilla root certificates via <code>webpki-root-certs</code> 1.0.10 (<a href="https://redirect.github.com/astral-sh/uv/pull/22760">#22760</a>)</li> </ul> <h2>Install uv 0.13.4</h2> <h3>Install prebuilt binaries via shell script</h3> <pre lang="sh"><code>curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/uv/releases/download/0.13.4/uv-installer.sh | sh </code></pre> <h3>Install prebuilt binaries via powershell script</h3> <pre lang="sh"><code>powershell -ExecutionPolicy Bypass -c "irm https://releases.astral.sh/github/uv/releases/download/0.13.4/uv-installer.ps1 | iex" </code></pre> <h2>Download uv 0.13.4</h2> <table> <thead> <tr> <th>File</th> <th>Platform</th> <th>Checksum</th> </tr> </thead> <tbody> <tr> <td><a href="https://releases.astral.sh/github/uv/releases/download/0.13.4/uv-aarch64-apple-darwin.tar.gz">uv-aarch64-apple-darwin.tar.gz</a></td> <td>Apple Silicon macOS</td> <td><a href="https://releases.astral.sh/github/uv/releases/download/0.13.4/uv-aarch64-apple-darwin.tar.gz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://releases.astral.sh/github/uv/releases/download/0.13.4/uv-x86_64-apple-darwin.tar.gz">uv-x86_64-apple-darwin.tar.gz</a></td> <td>Intel macOS</td> <td><a href="https://releases.astral.sh/github/uv/releases/download/0.13.4/uv-x86_64-apple-darwin.tar.gz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://releases.astral.sh/github/uv/releases/download/0.13.4/uv-aarch64-pc-windows-msvc.zip">uv-aarch64-pc-windows-msvc.zip</a></td> <td>ARM64 Windows</td> <td><a href="https://releases.astral.sh/github/uv/releases/download/0.13.4/uv-aarch64-pc-windows-msvc.zip.sha256">checksum</a></td> </tr> <tr> <td><a href="https://releases.astral.sh/github/uv/releases/download/0.13.4/uv-i686-pc-windows-msvc.zip">uv-i686-pc-windows-msvc.zip</a></td> <td>x86 Windows</td> <td><a href="https://releases.astral.sh/github/uv/releases/download/0.13.4/uv-i686-pc-windows-msvc.zip.sha256">checksum</a></td> </tr> <tr> <td><a href="https://releases.astral.sh/github/uv/releases/download/0.13.4/uv-x86_64-pc-windows-msvc.zip">uv-x86_64-pc-windows-msvc.zip</a></td> <td>x64 Windows</td> <td><a href="https://releases.astral.sh/github/uv/releases/download/0.13.4/uv-x86_64-pc-windows-msvc.zip.sha256">checksum</a></td> </tr> <tr> <td><a href="https://releases.astral.sh/github/uv/releases/download/0.13.4/uv-aarch64-unknown-linux-gnu.tar.gz">uv-aarch64-unknown-linux-gnu.tar.gz</a></td> <td>ARM64 Linux</td> <td><a href="https://releases.astral.sh/github/uv/releases/download/0.13.4/uv-aarch64-unknown-linux-gnu.tar.gz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://releases.astral.sh/github/uv/releases/download/0.13.4/uv-i686-unknown-linux-gnu.tar.gz">uv-i686-unknown-linux-gnu.tar.gz</a></td> <td>x86 Linux</td> <td><a href="https://releases.astral.sh/github/uv/releases/download/0.13.4/uv-i686-unknown-linux-gnu.tar.gz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://releases.astral.sh/github/uv/releases/download/0.13.4/uv-powerpc64le-unknown-linux-gnu.tar.gz">uv-powerpc64le-unknown-linux-gnu.tar.gz</a></td> <td>PPC64LE Linux</td> <td><a href="https://releases.astral.sh/github/uv/releases/download/0.13.4/uv-powerpc64le-unknown-linux-gnu.tar.gz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://releases.astral.sh/github/uv/releases/download/0.13.4/uv-riscv64gc-unknown-linux-gnu.tar.gz">uv-riscv64gc-unknown-linux-gnu.tar.gz</a></td> <td>RISCV Linux</td> <td><a href="https://releases.astral.sh/github/uv/releases/download/0.13.4/uv-riscv64gc-unknown-linux-gnu.tar.gz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://releases.astral.sh/github/uv/releases/download/0.13.4/uv-s390x-unknown-linux-gnu.tar.gz">uv-s390x-unknown-linux-gnu.tar.gz</a></td> <td>S390x Linux</td> <td><a href="https://releases.astral.sh/github/uv/releases/download/0.13.4/uv-s390x-unknown-linux-gnu.tar.gz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://releases.astral.sh/github/uv/releases/download/0.13.4/uv-x86_64-unknown-linux-gnu.tar.gz">uv-x86_64-unknown-linux-gnu.tar.gz</a></td> <td>x64 Linux</td> <td><a href="https://releases.astral.sh/github/uv/releases/download/0.13.4/uv-x86_64-unknown-linux-gnu.tar.gz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://releases.astral.sh/github/uv/releases/download/0.13.4/uv-armv7-unknown-linux-gnueabihf.tar.gz">uv-armv7-unknown-linux-gnueabihf.tar.gz</a></td> <td>ARMv7 Linux</td> <td><a href="https://releases.astral.sh/github/uv/releases/download/0.13.4/uv-armv7-unknown-linux-gnueabihf.tar.gz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://releases.astral.sh/github/uv/releases/download/0.13.4/uv-aarch64-unknown-linux-musl.tar.gz">uv-aarch64-unknown-linux-musl.tar.gz</a></td> <td>ARM64 MUSL Linux</td> <td><a href="https://releases.astral.sh/github/uv/releases/download/0.13.4/uv-aarch64-unknown-linux-musl.tar.gz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://releases.astral.sh/github/uv/releases/download/0.13.4/uv-i686-unknown-linux-musl.tar.gz">uv-i686-unknown-linux-musl.tar.gz</a></td> <td>x86 MUSL Linux</td> <td><a href="https://releases.astral.sh/github/uv/releases/download/0.13.4/uv-i686-unknown-linux-musl.tar.gz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://releases.astral.sh/github/uv/releases/download/0.13.4/uv-riscv64gc-unknown-linux-musl.tar.gz">uv-riscv64gc-unknown-linux-musl.tar.gz</a></td> <td>RISCV MUSL Linux</td> <td><a href="https://releases.astral.sh/github/uv/releases/download/0.13.4/uv-riscv64gc-unknown-linux-musl.tar.gz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://releases.astral.sh/github/uv/releases/download/0.13.4/uv-x86_64-unknown-linux-musl.tar.gz">uv-x86_64-unknown-linux-musl.tar.gz</a></td> <td>x64 MUSL Linux</td> <td><a href="https://releases.astral.sh/github/uv/releases/download/0.13.4/uv-x86_64-unknown-linux-musl.tar.gz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://releases.astral.sh/github/uv/releases/download/0.13.4/uv-arm-unknown-linux-musleabihf.tar.gz">uv-arm-unknown-linux-musleabihf.tar.gz</a></td> <td>ARMv6 MUSL Linux (Hardfloat)</td> <td><a href="https://releases.astral.sh/github/uv/releases/download/0.13.4/uv-arm-unknown-linux-musleabihf.tar.gz.sha256">checksum</a></td> </tr> </tbody> </table> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/astral-sh/uv/blob/main/CHANGELOG.md">uv's changelog</a>.</em></p> <blockquote> <h2>0.13.4</h2> <p>Released on 2026-10-20.</p> <h3>Preview features</h3> <ul> <li>Validate PEP 825 variant metadata and treat package versions with invalid metadata as unavailable under <code>wheel-variants</code> (<a href="https://redirect.github.com/astral-sh/uv/pull/22512">#22512</a>)</li> </ul> <h3>Other changes</h3> <ul> <li>Update the bundled Mozilla root certificates via <code>webpki-root-certs</code> 1.0.10 (<a href="https://redirect.github.com/astral-sh/uv/pull/22760">#22760</a>)</li> </ul> <h2>0.13.3</h2> <p>Released on 2026-10-20.</p> <h3>Performance</h3> <ul> <li>Avoid severe <code>uv export</code> slowdowns in dependency graphs with extras (<a href="https://redirect.github.com/astral-sh/uv/pull/22750">#22750</a>)</li> </ul> <h2>0.13.2</h2> <p>Released on 2026-10-19.</p> <h3>Enhancements</h3> <ul> <li>Report all installed packages in <code>uv workspace metadata</code>, including packages outside the selected resolution (<a href="https://redirect.github.com/astral-sh/uv/pull/22395">#22395</a>)</li> <li>Include supported environment restrictions when exporting <code>pylock.toml</code> (<a href="https://redirect.github.com/astral-sh/uv/pull/22596">#22596</a>)</li> <li>Retry dropped GET and HEAD requests when fetching package and index data (<a href="https://redirect.github.com/astral-sh/uv/pull/22672">#22672</a>)</li> <li>Preserve encoding declarations in wheel data scripts that require shell launchers (<a href="https://redirect.github.com/astral-sh/uv/pull/22526">#22526</a>)</li> <li>Show causes and hints when <code>uv python find --script</code> cannot discover an interpreter, including with <code>-q</code> (<a href="https://redirect.github.com/astral-sh/uv/pull/22549">#22549</a>)</li> <li>Print valid ksh activation instructions and support non-relocatable environments under OpenBSD-derived ksh (<a href="https://redirect.github.com/astral-sh/uv/pull/22538">#22538</a>, <a href="https://redirect.github.com/astral-sh/uv/pull/22572">#22572</a>)</li> <li>Allow PEP 508 direct URLs, including Mercurial and extensionless archive URLs, in uv-build's <code>[build-system].requires</code> validation (<a href="https://redirect.github.com/astral-sh/uv/pull/22577">#22577</a>)</li> </ul> <h3>Python</h3> <ul> <li>Add PyPy 3.11.17 and 3.12.15 (<a href="https://redirect.github.com/astral-sh/uv/pull/22578">#22578</a>)</li> </ul> <h3>Preview features</h3> <ul> <li>Fetch and parse PEP 825 index-level variant metadata with <code>wheel-variants</code> (<a href="https://redirect.github.com/astral-sh/uv/pull/22509">#22509</a>, <a href="https://redirect.github.com/astral-sh/uv/pull/22511">#22511</a>)</li> </ul> <h3>Performance</h3> <ul> <li>Avoid exponential work when simplifying, traversing, and exporting complex dependency markers (<a href="https://redirect.github.com/astral-sh/uv/pull/22608">#22608</a>, <a href="https://redirect.github.com/astral-sh/uv/pull/22615">#22615</a>, <a href="https://redirect.github.com/astral-sh/uv/pull/22651">#22651</a>, <a href="https://redirect.github.com/astral-sh/uv/pull/22674">#22674</a>)</li> <li>Reduce the time and memory used to parse and store complex dependency markers (<a href="https://redirect.github.com/astral-sh/uv/pull/22675">#22675</a>, <a href="https://redirect.github.com/astral-sh/uv/pull/22676">#22676</a>, <a href="https://redirect.github.com/astral-sh/uv/pull/22681">#22681</a>)</li> <li>Reduce resolver memory use for large dependency graphs, forks, extras, and dependency groups (<a href="https://redirect.github.com/astral-sh/uv/pull/22565">#22565</a>, <a href="https://redirect.github.com/astral-sh/uv/pull/22625">#22625</a>)</li> <li>Speed up project discovery in large workspaces by caching member names (<a href="https://redirect.github.com/astral-sh/uv/pull/22635">#22635</a>)</li> <li>Reduce uv's binary size and speed up CycloneDX exports (<a href="https://redirect.github.com/astral-sh/uv/pull/22431">#22431</a>)</li> <li>Reduce <code>uv-build</code> binary size, including Linux x86_64 wheels (<a href="https://redirect.github.com/astral-sh/uv/pull/22539">#22539</a>, <a href="https://redirect.github.com/astral-sh/uv/pull/22573">#22573</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/astral-sh/uv/commit/7456b60bc6bc348e13e06e3691bf08e78d3aef54"><code>7456b60</code></a> Bump version to 0.13.4 (<a href="https://redirect.github.com/astral-sh/uv/issues/22761">#22761</a>)</li> <li><a href="https://github.com/astral-sh/uv/commit/0a7aa9ddf7009f6a7c5496eb7036ec7e93527ef7"><code>0a7aa9d</code></a> Switch back to env::args_os (<a href="https://redirect.github.com/astral-sh/uv/issues/22763">#22763</a>)</li> <li><a href="https://github.com/astral-sh/uv/commit/5bae848da3626fe9c6a2463339752e11666d37ae"><code>5bae848</code></a> Update certifi to 2026.10.19 (<a href="https://redirect.github.com/astral-sh/uv/issues/22762">#22762</a>)</li> <li><a href="https://github.com/astral-sh/uv/commit/158c9d35c592747ab6e94d4e66a0bb8f1b387c0c"><code>158c9d3</code></a> Bump webpki-root-certs to 1.0.10 (<a href="https://redirect.github.com/astral-sh/uv/issues/22760">#22760</a>)</li> <li><a href="https://github.com/astral-sh/uv/commit/5280ad3833e0a714a5a95ba435ff22419fc60843"><code>5280ad3</code></a> Parse and validate variant metadata (<a href="https://redirect.github.com/astral-sh/uv/issues/22512">#22512</a>)</li> <li><a href="https://github.com/astral-sh/uv/commit/8d1626698d1ad5eafd7d4427a4d893fc7c0d3960"><code>8d16266</code></a> Use indoc for multiline test strings (<a href="https://redirect.github.com/astral-sh/uv/issues/22723">#22723</a>)</li> <li><a href="https://github.com/astral-sh/uv/commit/502f93ca6145cbc78bfb9dd6bb37fa05340be0b3"><code>502f93c</code></a> Bump version to 0.13.3 (<a href="https://redirect.github.com/astral-sh/uv/issues/22752">#22752</a>)</li> <li><a href="https://github.com/astral-sh/uv/commit/0595a1120c1bbc71c89bf99b3c9b1edb7a37fc79"><code>0595a11</code></a> Revert optional-extra activation tracking in exports (<a href="https://redirect.github.com/astral-sh/uv/issues/22750">#22750</a>)</li> <li><a href="https://github.com/astral-sh/uv/commit/b2eb713620a60e4314df8647f93ddca2bd357820"><code>b2eb713</code></a> Deserialize build metadata contacts in one pass (<a href="https://redirect.github.com/astral-sh/uv/issues/22748">#22748</a>)</li> <li><a href="https://github.com/astral-sh/uv/commit/b98692400b73dc7236be47647e03f5d755b7525a"><code>b986924</code></a> Borrow the uv-build command argument (<a href="https://redirect.github.com/astral-sh/uv/issues/22747">#22747</a>)</li> <li>Additional commits viewable in <a href="https://github.com/astral-sh/uv/compare/0.13.0...0.13.4">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/getsentry/sentry-python/network/alerts). </details> Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Configuration menu - View commit details
-
Copy full SHA for cfce72f - Browse repository at this point
Copy the full SHA cfce72fView commit details -
meta: Update
AGENTS.md(getsentry#8077)Update with more specific instructions on how to do things in order to increase the reviewability and maintainability of the produced changes. Also removed the Key Paths section as agents are quite adept at grepping and figuring out where what lives.
Configuration menu - View commit details
-
Copy full SHA for f8b08b3 - Browse repository at this point
Copy the full SHA f8b08b3View commit details -
feat(rq): Add an option to monitor rq-scheduler jobs (getsentry#8053)
Part of a series adding automatic Crons monitoring for the most-used job schedulers in each SDK. Check-ins for a monitor that doesn't exist yet are dropped, so today each monitor has to be created by hand with its schedule copied from the code. Sending the job's schedule as the monitor config lets Sentry create the monitor and keep it in sync. This adds `monitor_cron_jobs` to `RqIntegration` for recurring jobs from rq-scheduler's `scheduler.cron(...)` and `scheduler.schedule(..., interval=...)`. Only the worker needs the option, and it sends the cron string or interval as the monitor config. The slug is the job `id`, and jobs without one share a monitor named after the function's import path. It's off by default. ```python sentry_sdk.init( integrations=[RqIntegration(monitor_cron_jobs=True, exclude_cron_jobs=["cleanup"])], ) ``` Jobs aren't monitored when Sentry may read the cron string differently (6 fields, `@daily`, `MON`, both day fields set), the interval isn't whole minutes, the job has `repeat`, or the worker's local timezone isn't UTC. RQ's built-in `rq cron` scheduler isn't covered. The rq test envs now install `rq-scheduler` for RQ 2.x. Docs: getsentry/sentry-docs#20058 --------- Co-authored-by: Claude <[email protected]>Configuration menu - View commit details
-
Copy full SHA for 4e19592 - Browse repository at this point
Copy the full SHA 4e19592View commit details -
feat(huey): Add an option to monitor Huey periodic tasks (getsentry#8052
) Part of a series adding automatic Crons monitoring for the most-used job schedulers in each SDK. Check-ins for a monitor that doesn't exist yet are dropped, so today each monitor has to be created by hand with its schedule copied from the code. Sending the job's schedule as the monitor config lets Sentry create the monitor and keep it in sync. This adds `monitor_periodic_tasks` to `HueyIntegration`, matching Celery's `monitor_beat_tasks`. When it's on, each `@huey.periodic_task` run sends check-ins with its `crontab(...)` schedule in UTC, so Sentry creates the monitor on the first run. The slug is the task name. It's off by default, and regular tasks are unaffected. ```python sentry_sdk.init( integrations=[HueyIntegration(monitor_periodic_tasks=True, exclude_periodic_tasks=["cleanup"])], ) ``` Tasks aren't monitored when they use a custom `validate_datetime`, restrict both `day` and `day_of_week`, or run on a Huey instance with `utc=False`. Docs: getsentry/sentry-docs#20057 --------- Co-authored-by: Claude <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 1c249d8 - Browse repository at this point
Copy the full SHA 1c249d8View commit details
Commits on Oct 22, 2026
-
fix(arq): Don't monitor cron jobs with unsupported schedules (getsent…
…ry#8098) Part of a series adding automatic Crons monitoring for the most-used job schedulers in each SDK. Check-ins for a monitor that doesn't exist yet are dropped, so today each monitor has to be created by hand with its schedule copied from the code. Sending the job's schedule as the monitor config lets Sentry create the monitor and keep it in sync. This is a quick fix to keep the arq integration behaviour in line with how other integrations work. Sorry for the churn! Follow-up to getsentry#8051. Cron jobs whose schedule Crons can't express are no longer monitored, instead of checking in without a config. This matches Celery beat, and the Huey and RQ integrations from getsentry#8052 and getsentry#8053. Docs: getsentry/sentry-docs#20056 Co-authored-by: Claude <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 68bc4dd - Browse repository at this point
Copy the full SHA 68bc4ddView commit details -
fix(celery): Don't round down beat schedule intervals (getsentry#7842)
### Description Fixes Celery beat interval schedules being rounded down. A 90-minute schedule was sent as "1 hour" and a 36-hour one as "1 day", so Sentry expected runs that never happened and raised false missed-check-in alerts. Intervals now use the largest unit that divides them evenly (90 minutes stays 90 minutes). Intervals that aren't a whole number of minutes, such as 90 seconds, send no monitor config and log a warning, like sub-minute intervals already do. Existing monitors with uneven intervals get the correct interval on their next check-in. For intervals that now send no config, new monitors aren't auto-created and existing ones keep their current schedule. ### Testing Unit tests for the interval conversion and the beat monitor config. --------- Co-authored-by: Claude <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 60116ac - Browse repository at this point
Copy the full SHA 60116acView commit details -
fix: Exclude litellm==1.107.0 from extras (getsentry#8104)
### Description That version [is vulnerable](https://safedep.io/litellm-pypi-compromise-credential-stealer-backdoor/#payload-2-the-backdoor-in-sitecustomizepy) so it would be great to exclude it from extras. To be honest, we don't use that extra but since we use poetry, the litellm version range shows up in our poetry.lock and it doesn't look good for our security team. Thanks! #### Issues * resolves: getsentry#8103 * resolves: PY-3035 #### 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) Co-authored-by: Jonny <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 25d265b - Browse repository at this point
Copy the full SHA 25d265bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 54160ae - Browse repository at this point
Copy the full SHA 54160aeView commit details -
Configuration menu - View commit details
-
Copy full SHA for 1f60813 - Browse repository at this point
Copy the full SHA 1f60813View commit details
Commits on Oct 23, 2026
-
Configuration menu - View commit details
-
Copy full SHA for adad594 - Browse repository at this point
Copy the full SHA adad594View commit details -
chore(deps-dev): bump certifi from 2026.7.22 to 2026.10.19 (getsentry…
…#8114) Bumps [certifi](https://github.com/certifi/python-certifi) from 2026.7.22 to 2026.10.19. <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/certifi/python-certifi/commit/662df63d7906df66f1f07c0751a3dfe9da14d914"><code>662df63</code></a> Restore unaffected emSign roots (<a href="https://redirect.github.com/certifi/python-certifi/issues/439">#439</a>) (<a href="https://redirect.github.com/certifi/python-certifi/issues/440">#440</a>)</li> <li><a href="https://github.com/certifi/python-certifi/commit/5cb238caeeb6c30ec1a7309ad3e16a5aa7b10ce8"><code>5cb238c</code></a> Remove emsign (<a href="https://redirect.github.com/certifi/python-certifi/issues/437">#437</a>)</li> <li><a href="https://github.com/certifi/python-certifi/commit/69494a764d0a08f90838d53d4b0fefd3e84045d6"><code>69494a7</code></a> Bump actions/download-artifact from 8.0.1 to 8.0.2 (<a href="https://redirect.github.com/certifi/python-certifi/issues/436">#436</a>)</li> <li><a href="https://github.com/certifi/python-certifi/commit/029c7b0913d79e2efb73a216fc5c5e13ef958536"><code>029c7b0</code></a> Bump actions/upload-artifact from 7.0.1 to 7.0.2 (<a href="https://redirect.github.com/certifi/python-certifi/issues/435">#435</a>)</li> <li><a href="https://github.com/certifi/python-certifi/commit/9d0a8f1f3a0d6b2e38d5773db7afe1a37e4527b6"><code>9d0a8f1</code></a> Add support for Python 3.15 (<a href="https://redirect.github.com/certifi/python-certifi/issues/432">#432</a>)</li> <li><a href="https://github.com/certifi/python-certifi/commit/db472abf0a37067cb4488f036f4c19adf6b6ec3c"><code>db472ab</code></a> Bump pypa/gh-action-pypi-publish from 1.14.1 to 1.14.2 (<a href="https://redirect.github.com/certifi/python-certifi/issues/431">#431</a>)</li> <li>See full diff in <a href="https://github.com/certifi/python-certifi/compare/2026.07.22...2026.10.19">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/getsentry/sentry-python/network/alerts). </details> Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Configuration menu - View commit details
-
Copy full SHA for 16d1a70 - Browse repository at this point
Copy the full SHA 16d1a70View commit details -
fix(aiohttp): Leave existing
baggageheader alone if it has existi……ng `sentry-` entries (getsentry#8116)
Configuration menu - View commit details
-
Copy full SHA for 9e4ba4c - Browse repository at this point
Copy the full SHA 9e4ba4cView 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 master...master