Skip to content

chore(api): update all dependencies (develop) (major)

RenovateBot requested to merge renovate/develop-api-major-all-dependencies into develop

This MR contains the following updates:

Package Type Update Change
cryptography (changelog) dependencies major ==41.0.7 -> ==44.0.0
django (changelog) dependencies major 4.2.18 -> 5.1.5
django-allauth (source, changelog) dependencies major 0.63.6 -> 65.3.1
django-auth-ldap (changelog) dependencies major ==4.8.0 -> ==5.1.0
django-cleanup (changelog) dependencies major ==8.1.0 -> ==9.0.0
django-debug-toolbar (changelog) dev major ==4.4.6 -> ==5.0.1
django-oauth-toolkit dependencies major 2.4.0 -> 3.0.1
faker (changelog) dev major ==23.3.0 -> ==33.3.1
flake8 (changelog) dev major ==3.9.2 -> ==7.1.1
gunicorn (changelog) dependencies major ==21.2.0 -> ==23.0.0
pycountry (changelog) dependencies major 23.12.11 -> 24.6.1
pytest-cov (changelog) dev major ==4.1.0 -> ==6.0.0
sentry-sdk (changelog) dependencies major ==1.45.1 -> ==2.20.0
troi (changelog) dependencies major ==2024.12.4.0 -> ==2025.1.10.0
watchdog (changelog) dependencies major ==4.0.2 -> ==6.0.0

Release Notes

pyca/cryptography (cryptography)

v44.0.0

Compare Source

v43.0.3

Compare Source

v43.0.1

Compare Source

v43.0.0

Compare Source

v42.0.8

Compare Source

v42.0.7

Compare Source

v42.0.6

Compare Source

v42.0.5

Compare Source

v42.0.4

Compare Source

v42.0.3

Compare Source

v42.0.2

Compare Source

v42.0.1

Compare Source

v42.0.0

Compare Source

django/django (django)

v5.1.5

Compare Source

v5.1.4

Compare Source

v5.1.3

Compare Source

v5.1.2

Compare Source

v5.1.1

Compare Source

v5.1

Compare Source

v5.0.11

Compare Source

v5.0.10

Compare Source

v5.0.9

Compare Source

v5.0.8

Compare Source

v5.0.7

Compare Source

v5.0.6

Compare Source

v5.0.5

Compare Source

v5.0.4

Compare Source

v5.0.3

Compare Source

v5.0.2

Compare Source

v5.0.1

Compare Source

v5.0

Compare Source

allauth/django-allauth (django-allauth)

v65.3.1

Compare Source

v65.3.0

Compare Source

v65.2.0

Compare Source

v65.1.0

Compare Source

v65.0.2

Compare Source

v65.0.1

Compare Source

v65.0.0

Compare Source

v64.2.1

Compare Source

v64.2.0

Compare Source

v64.1.0

Compare Source

v64.0.0

Compare Source

django-auth-ldap/django-auth-ldap (django-auth-ldap)

v5.1.0

Compare Source

What's Changed

Full Changelog: https://github.com/django-auth-ldap/django-auth-ldap/compare/5.0.0...5.1.0

v5.0.0

Compare Source

Breaking changes

An LDAPError during an LDAP search operation would cause the library to assume an empty result set. When mirroring groups, only a portion of a user groups would be mirrored. Allowing them to proceed with authentication may then break application access controls, as membership to a group (imagine an exclude group) would be missing.

The library now systematically sends the ldap_error django signal. If an LDAPError occurs during an operation, the operation is aborted. In particular, when mirroring groups (LDAPUser._mirror_groups), an AuthenticationFailed might now be raised.

See https://github.com/django-auth-ldap/django-auth-ldap/issues/378 for details.

What else changed

Full Changelog: https://github.com/django-auth-ldap/django-auth-ldap/compare/4.8.0...5.0.0

un1t/django-cleanup (django-cleanup)

v9.0.0

Compare Source

[9.0.0] - 2024-09-18

django-commons/django-debug-toolbar (django-debug-toolbar)

v5.0.1

Compare Source

What's Changed

There were no functional changes in this version.

MRs

Full Changelog: https://github.com/django-commons/django-debug-toolbar/compare/5.0.0...5.0.1

v5.0.0

Compare Source

What's Changed

Please note that Django Debug Toolbar has now moved into the Django Commons organization.

Changelog
  • Added Python 3.13 to the CI matrix.
  • Removed support for Python 3.8 as it has reached end of life.
  • Converted to Django Commons PyPI release process.
  • Fixed a crash which occurred when using non-str static file values.
  • Documented experimental async support.
  • Improved troubleshooting doc for incorrect mime types for .js static files
  • Support async applications and ASGI from Google Summer of Code Project 2024 <https://summerofcode.withgoogle.com/programs/2024/projects/iXVvyGYp>__.
  • Added Django 5.1 to the CI matrix.
  • Added support for the LoginRequiredMiddleware introduced in Django 5.1.
  • Support select and explain buttons for UNION queries on PostgreSQL.
  • Fixed internal toolbar requests being instrumented if the Django setting FORCE_SCRIPT_NAME was set.
  • Increase opacity of show Debug Toolbar handle to improve accessibility.
  • Changed the RedirectsPanel to be async compatible.
  • Increased the contrast of text with dark mode enabled.
  • Add translations for Bulgarian and Korean.
  • Update translations for several languages.
  • Include new translatable strings for translation.
  • Fixed a crash which happened in the fallback case when session keys cannot be sorted.
MRs

Google Summer of Code - Async project

This release contains the changes for async compatibility for the majority of panels. This is the result of the Google Summer of Code project by @​salty-ivy. A massive thank you 💚 and a round of applause 👏 is due to Aman!

New Contributors

Full Changelog: https://github.com/django-commons/django-debug-toolbar/compare/4.4.6...5.0.0

jazzband/django-oauth-toolkit (django-oauth-toolkit)

v3.0.1

Compare Source

Fixed
  • #​1491 Fix migration error when there are pre-existing Access Tokens.

v3.0.0

Compare Source

WARNING - POTENTIAL BREAKING CHANGES
  • Changes to the AbstractAccessToken model require doing a manage.py migrate after upgrading.
  • If you use swappable models you will need to make sure your custom models are also updated (usually manage.py makemigrations).
  • Old Django versions below 4.2 are no longer supported.
  • A few deprecations warned about in 2.4.0 (#​1345) have been removed. See below.
Added
  • #​1366 Add Docker containerized apps for testing IDP and RP.
  • #​1454 Added compatibility with LoginRequiredMiddleware introduced in Django 5.1.
Changed
  • Many documentation and project internals improvements.
  • #​1446 Use generic models pk instead of id. This enables, for example, custom swapped models to have a different primary key field.
  • #​1447 Update token to TextField from CharField. Removing the 255 character limit enables supporting JWT tokens with additional claims. This adds a SHA-256 token_checksum field that is used to validate tokens.
  • #​1450 Transactions wrapping writes of the Tokens now rely on Django's database routers to determine the correct database to use instead of assuming that 'default' is the correct one.
  • #​1455 Changed minimum supported Django version to >=4.2.
Removed
Fixed
  • #​1444, #​1476 Fix several 500 errors to instead raise appropriate errors.
  • #​1469 Fix ui_locales request parameter triggers AttributeError under certain circumstances
Security
joke2k/faker (faker)

v33.3.1

Compare Source

  • Fix nl_BE Bank Provider (BBAN, IBAN, SWIFT). Thanks @​AliYmn.

v33.3.0

Compare Source

  • Add support for Zulu (zu_ZA) address provider and corresponding tests. Thanks @​AliYmn.

v33.2.0

Compare Source

v33.1.3

Compare Source

  • Fix type annotation on Python 3.8.

v33.1.2

Compare Source

v33.1.1

Compare Source

  • Fix address number output issue in ko_KR address provider. Thanks @​semi-yu.

v33.1.0

Compare Source

v33.0.0

Compare Source

  • Revert "Make pytest fixture session-scoped".

v32.1.0

Compare Source

v32.0.0

Compare Source

v31.0.0

Compare Source

  • Remove Collection[str] type from ElementTypes. Thanks @​tvuotila.

v30.10.0

Compare Source

  • Add jobs for locale de_AT; added methods job_female and job_male. Thanks @​ChristinaRau.

v30.9.0

Compare Source

v30.8.2

Compare Source

  • Revert "Add decorator to optionally format dates as string.".

v30.8.1

Compare Source

  • Fix month_in_guj.

v30.8.0

Compare Source

v30.7.0

Compare Source

v30.6.0

Compare Source

v30.5.0

Compare Source

  • Add Providers for ka_GE locale. Thanks @​onesch.

v30.4.0

Compare Source

  • Add separate male/female names along with prefix/suffix for hi_IN locale. Thanks @​wh0th3h3llam1.

v30.3.0

Compare Source

v30.2.0

Compare Source

  • Cache Factory._find_provider_class module look-ups. Thanks @​huonw.

v30.1.0

Compare Source

  • Add PIN Code range and union territories in en_IN address provider. Thanks @​wh0th3h3llam1.

v30.0.0

Compare Source

  • Force the slug always be generated with ASCII characters. Thanks @​Pandede.

v29.0.0

Compare Source

  • Fix pydecimal distribution when called with a range across 0. Thanks @​AlexLitvino.

v28.4.1

Compare Source

  • Fix issue where Faker does not properly convert min/max float values to Decimal. Thanks @​bdjellabaldebaran.

v28.4.0

Compare Source

v28.3.0

Compare Source

v28.2.0

Compare Source

v28.1.0

Compare Source

  • Fix Incorrect City Spelling in uk_UA locale. Thanks @​ch4zzy.

v28.0.0

Compare Source

  • Fix pydecimal handling of positive keyword. Thanks @​tahzeer.

v27.4.0

Compare Source

v27.3.0

Compare Source

v27.2.0

Compare Source

v27.1.0

Compare Source

v27.0.0

Compare Source

  • Re-introduce part_of_speech argument to words() method.

v26.3.0

Compare Source

  • Extend ro_RO company localization with prefixes. Thanks @​DDSNA.

v26.2.0

Compare Source

  • Add Swahili (sw) provider for generating Swahili names. Thanks @​5uru.

v26.1.0

Compare Source

v26.0.0

Compare Source

v25.9.2

Compare Source

  • Remove duplicate entry in currency provider.

v25.9.1

Compare Source

  • Change pydecimal type hint for min_value, max_value to allow ints. Thanks @​parsariyahi.

v25.9.0

Compare Source

  • Add support for Nigerian Yoruba names and surnames (yo_NG). Thanks @​5uru.

v25.8.0

Compare Source

  • Add handshake emoji with different color variations to emoji provider list. Thanks @​tamkc.

v25.7.0

Compare Source

v25.6.0

Compare Source

v25.5.0

Compare Source

v25.4.0

Compare Source

v25.3.0

Compare Source

v25.2.0

Compare Source

  • Update VAT generation in nl_BE to align with correct Belgian format. Thanks @​JorisSpruyt.

v25.1.0

Compare Source

v25.0.1

Compare Source

  • Add type stub file to setup.py.

v25.0.0

Compare Source

v24.14.1

Compare Source

  • Include type stubs in release.

v24.14.0

Compare Source

v24.13.0

Compare Source

v24.12.0

Compare Source

  • Remove offensive word from pl_PL lorem provider. Thanks @​Rey092.

v24.11.0

Compare Source

v24.10.0

Compare Source

  • Update list of first_name_* and last_name in pt_BR PersonProvider. Thanks @​dclobato.

v24.9.0

Compare Source

v24.8.0

Compare Source

  • Fix wrong pricetag format in ru_RU locale. Thanks @​Pandede.

v24.7.1

Compare Source

  • Fix previous release issue.

v24.7.0

Compare Source

v24.6.0

Compare Source

v24.5.0

Compare Source

v24.4.0

Compare Source

v24.3.0

Compare Source

v24.2.1

Compare Source

v24.2.0

Compare Source

  • Add uk-UA credit card provider. Thanks @​lozik4.
  • Upgrade uk_UA person provider. Thanks @​lozik4.

v24.1.1

Compare Source

v24.1.0

Compare Source

  • Add Grenville to land_coords in geo provider. Thanks @​lozik4.
  • Fix Kyiv name. Thanks @​lozik4.

v24.0.0

Compare Source

  • Fix returning random data for person provider in et_EE locale when the same seed value is set. Thanks @​AlexLitvino.
pycqa/flake8 (flake8)

v7.1.1

Compare Source

v7.1.0

Compare Source

v7.0.0

Compare Source

v6.1.0

Compare Source

v6.0.0

Compare Source

v5.0.4

Compare Source

v5.0.3

Compare Source

v5.0.2

Compare Source

v5.0.1

Compare Source

v5.0.0

Compare Source

v4.0.1

Compare Source

v4.0.0

Compare Source

benoitc/gunicorn (gunicorn)

v23.0.0

Compare Source

Gunicorn 23.0.0 has been released. This version improve HTTP 1.1. support and which improve safety

You're invited to upgrade asap your own installation.

23.0.0 - 2024-08-10

  • minor docs fixes (🇵🇷3217, 🇵🇷3089, 🇵🇷3167)
  • worker_class parameter accepts a class (🇵🇷3079)
  • fix deadlock if request terminated during chunked parsing (🇵🇷2688)
  • permit receiving Transfer-Encodings: compress, deflate, gzip (🇵🇷3261)
  • permit Transfer-Encoding headers specifying multiple encodings. note: no parameters, still (🇵🇷3261)
  • sdist generation now explicitly excludes sphinx build folder (🇵🇷3257)
  • decode bytes-typed status (as can be passed by gevent) as utf-8 instead of raising TypeError (🇵🇷2336)
  • raise correct Exception when encounting invalid chunked requests (🇵🇷3258)
  • the SCRIPT_NAME and PATH_INFO headers, when received from allowed forwarders, are no longer restricted for containing an underscore (🇵🇷3192)
  • include IPv6 loopback address [::1] in default for :ref:forwarded-allow-ips and :ref:proxy-allow-ips (🇵🇷3192)

** NOTE **

  • The SCRIPT_NAME change mitigates a regression that appeared first in the 22.0.0 release
  • Review your :ref:forwarded-allow-ips setting if you are still not seeing the SCRIPT_NAME transmitted
  • Review your :ref:forwarder-headers setting if you are missing headers after upgrading from a version prior to 22.0.0

** Breaking changes **

  • refuse requests where the uri field is empty (🇵🇷3255)
  • refuse requests with invalid CR/LR/NUL in heade field values (🇵🇷3253)
  • remove temporary --tolerate-dangerous-framing switch from 22.0 (🇵🇷3260)
  • If any of the breaking changes affect you, be aware that now refused requests can post a security problem, especially so in setups involving request pipe-lining and/or proxies.

Fix CVE-2024-1135

v22.0.0: Gunicorn 22.0 has been released

Compare Source

Gunicorn 22.0.0 has been released. This version fix the numerous security vulnerabilities. You're invited to upgrade asap your own installation.

Changes:

22.0.0 - 2024-04-17
===================

- use `utime` to notify workers liveness
- migrate setup to pyproject.toml
- fix numerous security vulnerabilities in HTTP parser (closing some request smuggling vectors)
- parsing additional requests is no longer attempted past unsupported request framing
- on HTTP versions < 1.1 support for chunked transfer is refused (only used in exploits)
- requests conflicting configured or passed SCRIPT_NAME now produce a verbose error
- Trailer fields are no longer inspected for headers indicating secure scheme
- support Python 3.12

** Breaking changes **

- minimum version is Python 3.7
- the limitations on valid characters in the HTTP method have been bounded to Internet Standards
- requests specifying unsupported transfer coding (order) are refused by default (rare)
- HTTP methods are no longer casefolded by default (IANA method registry contains none affected)
- HTTP methods containing the number sign (#) are no longer accepted by default (rare)
- HTTP versions < 1.0 or >= 2.0 are no longer accepted by default (rare, only HTTP/1.1 is supported)
- HTTP versions consisting of multiple digits or containing a prefix/suffix are no longer accepted
- HTTP header field names Gunicorn cannot safely map to variables are silently dropped, as in other software
- HTTP headers with empty field name are refused by default (no legitimate use cases, used in exploits)
- requests with both Transfer-Encoding and Content-Length are refused by default (such a message might indicate an attempt to perform request smuggling)
- empty transfer codings are no longer permitted (reportedly seen with really old & broken proxies)

** SECURITY **

- fix CVE-2024-1135
  1. Documentation is available there: https://docs.gunicorn.org/en/stable/news.html
  2. Packages: https://pypi.org/project/gunicorn/
flyingcircusio/pycountry (pycountry)

v24.6.1

Compare Source

  • Breaking change: Reverted the fallback to name when country common_name or official_name attributes not available, which was added in 23.12.11.

  • Fixed import of importlib_metadata to importlib.metadata

  • Fixed bug causing parent subdivision codes to be returned with additional country code preceding (i.e. GB-GB-ENG instead of GB-ENG)

  • Update to iso-codes 4.16.0. (Thanks to musicinmybrain!)

pytest-dev/pytest-cov (pytest-cov)

v6.0.0

Compare Source

  • Updated various documentation inaccuracies, especially on subprocess handling.
  • Changed fail under checks to use the precision set in the coverage configuration. Now it will perform the check just like coverage report would.
  • Added a --cov-precision cli option that can override the value set in your coverage configuration.
  • Dropped support for now EOL Python 3.8.

v5.0.0

Compare Source

  • Removed support for xdist rsync (now deprecated). Contributed by Matthias Reichenbach in #&#8203;623 <https://github.com/pytest-dev/pytest-cov/pull/623>_.
  • Switched docs theme to Furo.
  • Various legacy Python cleanup and CI improvements. Contributed by Christian Clauss and Hugo van Kemenade in #&#8203;630 <https://github.com/pytest-dev/pytest-cov/pull/630>, #&#8203;631 <https://github.com/pytest-dev/pytest-cov/pull/631>, #&#8203;632 <https://github.com/pytest-dev/pytest-cov/pull/632>_ and #&#8203;633 <https://github.com/pytest-dev/pytest-cov/pull/633>_.
  • Added a pyproject.toml example in the docs. Contributed by Dawn James in #&#8203;626 <https://github.com/pytest-dev/pytest-cov/pull/626>_.
  • Modernized project's pre-commit hooks to use ruff. Initial POC contributed by Christian Clauss in #&#8203;584 <https://github.com/pytest-dev/pytest-cov/pull/584>_.
  • Dropped support for Python 3.7.
getsentry/sentry-python (sentry-sdk)

v2.20.0

Compare Source

v2.19.2

Compare Source

Various fixes & improvements

v2.19.1

Compare Source

Various fixes & improvements

v2.19.0

Compare Source

Various fixes & improvements

v2.18.0

Compare Source

Various fixes & improvements

v2.17.0

Compare Source

Various fixes & improvements

v2.16.0

Compare Source

Integrations
  • Bottle: Add failed_request_status_codes (#​3618) by @​szokeasaurusrex

    You can now define a set of integers that will determine which status codes should be reported to Sentry.

    sentry_sdk.init(
        integrations=[
            BottleIntegration(
                failed_request_status_codes={403, *range(500, 600)},
            )
        ]
    )

    Examples of valid failed_request_status_codes:

    • {500} will only send events on HTTP 500.
    • {400, *range(500, 600)} will send events on HTTP 400 as well as the 5xx range.
    • {500, 503} will send events on HTTP 500 and 503.
    • set() (the empty set) will not send events for any HTTP status code.

    The default is {*range(500, 600)}, meaning that all 5xx status codes are reported to Sentry.

  • Bottle: Delete never-reached code (#​3605) by @​szokeasaurusrex

  • Redis: Remove flaky test (#​3626) by @​sentrivana

  • Django: Improve getting psycopg3 connection info (#​3580) by @​nijel

  • Django: Add SpotlightMiddleware when Spotlight is enabled (#​3600) by @​BYK

  • Django: Open relevant error when SpotlightMiddleware is on (#​3614) by @​BYK

  • Django: Support http_methods_to_capture in ASGI Django (#​3607) by @​sentrivana

    ASGI Django now also supports the http_methods_to_capture integration option. This is a configurable tuple of HTTP method verbs that should create a transaction in Sentry. The default is ("CONNECT", "DELETE", "GET", "PATCH", "POST", "PUT", "TRACE",). OPTIONS and HEAD are not included by default.

    Here's how to use it:

    sentry_sdk.init(
        integrations=[
            DjangoIntegration(
                http_methods_to_capture=("GET", "POST"),
            ),
        ],
    )
Miscellaneous

v2.15.0

Compare Source

Integrations
  • Configure HTTP methods to capture in ASGI/WSGI middleware and frameworks (#​3531) by @​antonpirker

    We've added a new option to the Django, Flask, Starlette and FastAPI integrations called http_methods_to_capture. This is a configurable tuple of HTTP method verbs that should create a transaction in Sentry. The default is ("CONNECT", "DELETE", "GET", "PATCH", "POST", "PUT", "TRACE",). OPTIONS and HEAD are not included by default.

    Here's how to use it (substitute Flask for your framework integration):

    sentry_sdk.init(
        integrations=[
          FlaskIntegration(
              http_methods_to_capture=("GET", "POST"),
          ),
      ],
    )
  • Django: Allow ASGI to use drf_request in DjangoRequestExtractor (#​3572) by @​PakawiNz

  • Django: Don't let RawPostDataException bubble up (#​3553) by @​sentrivana

  • Django: Add sync_capable to SentryWrappingMiddleware (#​3510) by @​szokeasaurusrex

  • AIOHTTP: Add failed_request_status_codes (#​3551) by @​szokeasaurusrex

    You can now define a set of integers that will determine which status codes should be reported to Sentry.

    sentry_sdk.init(
        integrations=[
            AioHttpIntegration(
                failed_request_status_codes={403, *range(500, 600)},
            )
        ]
    )

    Examples of valid failed_request_status_codes:

    • {500} will only send events on HTTP 500.
    • {400, *range(500, 600)} will send events on HTTP 400 as well as the 5xx range.
    • {500, 503} will send events on HTTP 500 and 503.
    • set() (the empty set) will not send events for any HTTP status code.

    The default is {*range(500, 600)}, meaning that all 5xx status codes are reported to Sentry.

  • AIOHTTP: Delete test which depends on AIOHTTP behavior (#​3568) by @​szokeasaurusrex

  • AIOHTTP: Handle invalid responses (#​3554) by @​szokeasaurusrex

  • FastAPI/Starlette: Support new failed_request_status_codes (#​3563) by @​szokeasaurusrex

    The format of failed_request_status_codes has changed from a list of integers and containers to a set:

    sentry_sdk.init(
        integrations=StarletteIntegration(
            failed_request_status_codes={403, *range(500, 600)},
        ),
    )

    The old way of defining failed_request_status_codes will continue to work for the time being. Examples of valid new-style failed_request_status_codes:

    • {500} will only send events on HTTP 500.
    • {400, *range(500, 600)} will send events on HTTP 400 as well as the 5xx range.
    • {500, 503} will send events on HTTP 500 and 503.
    • set() (the empty set) will not send events for any HTTP status code.

    The default is {*range(500, 600)}, meaning that all 5xx status codes are reported to Sentry.

  • FastAPI/Starlette: Fix failed_request_status_codes=[] (#​3561) by @​szokeasaurusrex

  • FastAPI/Starlette: Remove invalid failed_request_status_code tests (#​3560) by @​szokeasaurusrex

  • FastAPI/Starlette: Refactor shared test parametrization (#​3562) by @​szokeasaurusrex

Miscellaneous

v2.14.0

Compare Source

Various fixes & improvements

v2.13.0

Compare Source

Various fixes & improvements
  • New integration: Ray (#​2400) (#​2444) by @​glowskir

    Usage: (add the RayIntegration to your sentry_sdk.init() call and make sure it is called in the worker processes)

    import ray
    
    import sentry_sdk
    from sentry_sdk.integrations.ray import RayIntegration
    
    def init_sentry():
        sentry_sdk.init(
            dsn="...",
            traces_sample_rate=1.0,
            integrations=[RayIntegration()],
        )
    
    init_sentry()
    
    ray.init(
        runtime_env=dict(worker_process_setup_hook=init_sentry),
    )

    For more information, see the documentation for the Ray integration.

  • New integration: Litestar (#​2413) (#​3358) by @​KellyWalker

    Usage: (add the LitestarIntegration to your sentry_sdk.init())

    from litestar import Litestar, get
    
    import sentry_sdk
    from sentry_sdk.integrations.litestar import LitestarIntegration
    
    sentry_sdk.init(
        dsn="...",
        traces_sample_rate=1.0,
        integrations=[LitestarIntegration()],
    )
    
    @&#8203;get("/")
    async def index() -> str:
        return "Hello, world!"
    
    app = Litestar(...)

    For more information, see the documentation for the Litestar integration.

  • New integration: Dramatiq from @​jacobsvante (#​3397) by @​antonpirker Usage: (add the DramatiqIntegration to your sentry_sdk.init())

    import dramatiq
    
    import sentry_sdk
    from sentry_sdk.integrations.dramatiq import DramatiqIntegration
    
    sentry_sdk.init(
        dsn="...",
        traces_sample_rate=1.0,
        integrations=[DramatiqIntegration()],
    )
    
    @&#8203;dramatiq.actor(max_retries=0)
    def dummy_actor(x, y):
        return x / y
    
    dummy_actor.send(12, 0)

    For more information, see the documentation for the Dramatiq integration.

  • New config option: Expose custom_repr function that precedes safe_repr invocation in serializer (#​3438) by @​sl0thentr0py

    See: https://docs.sentry.io/platforms/python/configuration/options/#custom-repr

  • Profiling: Add client SDK info to profile chunk (#​3386) by @​Zylphrex

  • Serialize vars early to avoid living references (#​3409) by @​sl0thentr0py

  • Deprecate hub-based sessions.py logic (#​3419) by @​szokeasaurusrex

  • Deprecate is_auto_session_tracking_enabled (#​3428) by @​szokeasaurusrex

  • Add note to generated yaml files (#​3423) by @​sentrivana

  • Slim down MR template (#​3382) by @​sentrivana

  • Use new banner in readme (#​3390) by @​sentrivana

v2.12.0

Compare Source

Various fixes & improvements

v2.11.0

Compare Source

Various fixes & improvements
  • Add disabled_integrations (#​3328) by @​sentrivana

    Disabling individual integrations is now much easier. Instead of disabling all automatically enabled integrations and specifying the ones you want to keep, you can now use the new disabled_integrations config option to provide a list of integrations to disable:

    import sentry_sdk
    from sentry_sdk.integrations.flask import FlaskIntegration
    
    sentry_sdk.init(

Do not use the Flask integration even if Flask is installed.

  disabled_integrations=[
      FlaskIntegration(),
  ],

)


- Use operation name as transaction name in Strawberry (#&#8203;3294) by @&#8203;sentrivana
- WSGI integrations respect `SCRIPT_NAME` env variable (#&#8203;2622) by @&#8203;sarvaSanjay
- Make Django DB spans have origin `auto.db.django` (#&#8203;3319) by @&#8203;antonpirker
- Sort breadcrumbs by time before sending (#&#8203;3307) by @&#8203;antonpirker
- Fix `KeyError('sentry-monitor-start-timestamp-s')` (#&#8203;3278) by @&#8203;Mohsen-Khodabakhshi
- Set MongoDB tags directly on span data (#&#8203;3290) by @&#8203;0Calories
- Lower logger level for some messages (#&#8203;3305) by @&#8203;sentrivana and @&#8203;antonpirker
- Emit deprecation warnings from `Hub` API (#&#8203;3280) by @&#8203;szokeasaurusrex
- Clarify that `instrumenter` is internal-only (#&#8203;3299) by @&#8203;szokeasaurusrex
- Support Django 5.1 (#&#8203;3207) by @&#8203;sentrivana
- Remove apparently unnecessary `if` (#&#8203;3298) by @&#8203;szokeasaurusrex
- Preliminary support for Python 3.13 (#&#8203;3200) by @&#8203;sentrivana
- Move `sentry_sdk.init` out of `hub.py` (#&#8203;3276) by @&#8203;szokeasaurusrex
- Unhardcode integration list (#&#8203;3240) by @&#8203;rominf
- Allow passing of PostgreSQL port in tests (#&#8203;3281) by @&#8203;rominf
- Add tests for `@ai_track` decorator (#&#8203;3325) by @&#8203;colin-sentry
- Do not include type checking code in coverage report (#&#8203;3327) by @&#8203;antonpirker
- Fix test_installed_modules (#&#8203;3309) by @&#8203;szokeasaurusrex
- Fix typos and grammar in a comment (#&#8203;3293) by @&#8203;szokeasaurusrex
- Fixed failed tests setup (#&#8203;3303) by @&#8203;antonpirker
- Only assert warnings we are interested in (#&#8203;3314) by @&#8203;szokeasaurusrex

v2.10.0

Compare Source

Various fixes & improvements

v2.9.0

Compare Source

Various fixes & improvements

v2.8.0

Compare Source

Various fixes & improvements

v2.7.1

Compare Source

Various fixes & improvements

v2.7.0

Compare Source

v2.6.0

Compare Source

v2.5.1

Compare Source

This change fixes a regression in our cron monitoring feature, which caused cron checkins not to be sent. The regression appears to have been introduced in version 2.4.0.

We recommend that all users, who use Cron monitoring and are currently running sentry-python ≥2.4.0, upgrade to this release as soon as possible!

Other fixes & improvements

v2.5.0

Compare Source

Various fixes & improvements
  • Allow to configure status codes to report to Sentry in Starlette and FastAPI (#​3008) by @​sentrivana

    By passing a new option to the FastAPI and Starlette integrations, you're now able to configure what status codes should be sent as events to Sentry. Here's how it works:

    from sentry_sdk.integrations.starlette import StarletteIntegration
    from sentry_sdk.integrations.fastapi import FastApiIntegration
    
    sentry_sdk.init(

...

  integrations=[
      StarletteIntegration(
          failed_request_status_codes=[403, range(500, 599)],
      ),
      FastApiIntegration(
          failed_request_status_codes=[403, range(500, 599)],
      ),
  ]

)


`failed_request_status_codes` expects a list of integers or containers (objects that allow membership checks via `in`)
of integers. Examples of valid `failed_request_status_codes`:

- `[500]` will only send events on HTTP 500.
- `[400, range(500, 599)]` will send events on HTTP 400 as well as the 500-599 range.
- `[500, 503]` will send events on HTTP 500 and 503.

The default is `[range(500, 599)]`.

See the [FastAPI](https://docs.sentry.io/platforms/python/integrations/fastapi/) and [Starlette](https://docs.sentry.io/platforms/python/integrations/starlette/) integration docs for more details.

- Support multiple keys with `cache_prefixes` (#&#8203;3136) by @&#8203;sentrivana
- Support integer Redis keys (#&#8203;3132) by @&#8203;sentrivana
- Update SDK version in CONTRIBUTING.md (#&#8203;3129) by @&#8203;sentrivana
- Bump actions/checkout from 4.1.4 to 4.1.5 (#&#8203;3067) by @&#8203;dependabot

v2.4.0

Compare Source

Various fixes & improvements

v2.3.1

Compare Source

Various fixes & improvements

v2.3.0

Compare Source

Various fixes & improvements

v2.2.1

Compare Source

Various fixes & improvements

v2.2.0

Compare Source

New features
  • Celery integration now sends additional data to Sentry to enable new features to guage the health of your queues
  • Added a new integration for Cohere
  • Reintroduced the last_event_id function, which had been removed in 2.0.0
Other fixes & improvements

v2.1.1

Compare Source

v2.1.0

Compare Source

v2.0.1

Compare Source

Various fixes & improvements

v2.0.0

Compare Source

This is the first major update in a long time!

We dropped support for some ancient languages and frameworks (Yes, Python 2.7 is no longer supported). Additionally we refactored a big part of the foundation of the SDK (how data inside the SDK is handled).

We hope you like it!

For a shorter version of what you need to do, to upgrade to Sentry SDK 2.0 see: https://docs.sentry.io/platforms/python/migration/1.x-to-2.x

New Features
  • Additional integrations will now be activated automatically if the SDK detects the respective package is installed: Ariadne, ARQ, asyncpg, Chalice, clickhouse-driver, GQL, Graphene, huey, Loguru, PyMongo, Quart, Starlite, Strawberry.
  • Added new API for custom instrumentation: new_scope, isolation_scope. See the Deprecated section to see how they map to the existing APIs.
Changed

(These changes are all backwards-incompatible. Breaking Change (if you are just skimming for that phrase))

  • The Pyramid integration will not capture errors that might happen in authenticated_userid() in a custom AuthenticationPolicy class.
  • The method need_code_loation of the MetricsAggregator was renamed to need_code_location.
  • The BackgroundWorker thread used to process events was renamed from raven-sentry.BackgroundWorker to sentry-sdk.BackgroundWorker.
  • The reraise function was moved from sentry_sdk._compat to sentry_sdk.utils.
  • The _ScopeManager was moved from sentry_sdk.hub to sentry_sdk.scope.
  • Moved the contents of tracing_utils_py3.py to tracing_utils.py. The start_child_span_decorator is now in sentry_sdk.tracing_utils.
  • The actual implementation of get_current_span was moved to sentry_sdk.tracing_utils. sentry_sdk.get_current_span is still accessible as part of the top-level API.
  • sentry_sdk.tracing_utils.add_query_source(): Removed the hub parameter. It is not necessary anymore.
  • sentry_sdk.tracing_utils.record_sql_queries(): Removed the hub parameter. It is not necessary anymore.
  • sentry_sdk.tracing_utils.get_current_span() does now take a scope instead of a hub as parameter.
  • sentry_sdk.tracing_utils.should_propagate_trace() now takes a Client instead of a Hub as first parameter.
  • sentry_sdk.utils.is_sentry_url() now takes a Client instead of a Hub as first parameter.
  • sentry_sdk.utils._get_contextvars does not return a tuple with three values, but a tuple with two values. The copy_context was removed.
  • If you create a transaction manually and later mutate the transaction in a configure_scope block this does not work anymore. Here is a recipe on how to change your code to make it work: Your existing implementation:
    transaction = sentry_sdk.transaction(...)

later in the code execution:

with sentry_sdk.configure_scope() as scope:
    scope.set_transaction_name("new-transaction-name")
```

needs to be changed to this:
```python
transaction = sentry_sdk.transaction(...)

later in the code execution:

scope = sentry_sdk.get_current_scope()
scope.set_transaction_name("new-transaction-name")
```
  • The classes listed in the table below are now abstract base classes. Therefore, they can no longer be instantiated. Subclasses can only be instantiated if they implement all of the abstract methods.

    Show table
    Class Abstract methods
    sentry_sdk.integrations.Integration setup_once
    sentry_sdk.metrics.Metric add, serialize_value, and weight
    sentry_sdk.profiler.Scheduler setup and teardown
    sentry_sdk.transport.Transport capture_envelope
Removed

(These changes are all backwards-incompatible. Breaking Change (if you are just skimming for that phrase))

  • Removed support for Python 2 and Python 3.5. The SDK now requires at least Python 3.6.
  • Removed support for Celery 3.*.
  • Removed support for Django 1.8, 1.9, 1.10.
  • Removed support for Flask 0.*.
  • Removed support for gRPC < 1.39.
  • Removed support for Tornado < 6.
  • Removed last_event_id() top level API. The last event ID is still returned by capture_event(), capture_exception() and capture_message() but the top level API sentry_sdk.last_event_id() has been removed.
  • Removed support for sending events to the /store endpoint. Everything is now sent to the /envelope endpoint. If you're on SaaS you don't have to worry about this, but if you're running Sentry yourself you'll need version 20.6.0 or higher of self-hosted Sentry.
  • The deprecated with_locals configuration option was removed. Use include_local_variables instead. See https://docs.sentry.io/platforms/python/configuration/options/#include-local-variables.
  • The deprecated request_bodies configuration option was removed. Use max_request_body_size. See https://docs.sentry.io/platforms/python/configuration/options/#max-request-body-size.
  • Removed support for user.segment. It was also removed from the trace header as well as from the dynamic sampling context.
  • Removed support for the install method for custom integrations. Please use setup_once instead.
  • Removed sentry_sdk.tracing.Span.new_span. Use sentry_sdk.tracing.Span.start_child instead.
  • Removed sentry_sdk.tracing.Transaction.new_span. Use sentry_sdk.tracing.Transaction.start_child instead.
  • Removed support for creating transactions via sentry_sdk.tracing.Span(transaction=...). To create a transaction, please use sentry_sdk.tracing.Transaction(name=...).
  • Removed sentry_sdk.utils.Auth.store_api_url.
  • sentry_sdk.utils.Auth.get_api_url's now accepts a sentry_sdk.consts.EndpointType enum instead of a string as its only parameter. We recommend omitting this argument when calling the function, since the parameter's default value is the only possible sentry_sdk.consts.EndpointType value. The parameter exists for future compatibility.
  • Removed tracing_utils_py2.py. The start_child_span_decorator is now in sentry_sdk.tracing_utils.
  • Removed the sentry_sdk.profiler.Scheduler.stop_profiling method. Any calls to this method can simply be removed, since this was a no-op method.
Deprecated

do something


After:

```python
import sentry_sdk

with sentry_sdk.start_span(...):

### do something
  • Hub cloning is deprecated.

    Before:

    with Hub(Hub.current) as hub:

do something with the cloned hub


After:

```python
import sentry_sdk

with sentry_sdk.isolation_scope() as scope:

### do something with the forked scope
  • configure_scope is deprecated. Use the new isolation scope directly via get_isolation_scope() instead.

    Before:

    with configure_scope() as scope:

do something with scope


After:

```python
from sentry_sdk import get_isolation_scope

scope = get_isolation_scope()
metabrainz/troi-recommendation-playground (troi)

v2025.1.10.0

Compare Source

v2025.1.3.0

Compare Source

gorakhargosh/watchdog (watchdog)

v6.0.0: 6.0.0

Compare Source

Breaking Changes

  • [inotify] Use of select.poll() instead of deprecated select.select(), if available. (#​1078)
  • [utils] Removed the unused echo_class() function from the echo module.
  • [utils] Removed the unused echo_instancemethod() function from the echo module.
  • [utils] Removed the unused echo_module() function from the echo module.
  • [utils] Removed the unused is_class_private_name() function from the echo module.
  • [utils] Removed the unused is_classmethod() function from the echo module.
  • [utils] Removed the unused is_method(met() function from the echo module.
  • [utils] Removed the unused method_name() function from the echo module.
  • [utils] Removed the unused name() function from the echo module.
  • [watchmedo] Removed the --trace CLI argument from the watchmedo log command, useless since events are logged by default at the LoggerTrick class level.

Other Changes

  • Pin test dependecies.
  • [docs] Add typing info to quick start. (#​1082)
  • [inotify] Fix reading inotify file descriptor after closing it. (#​1081)
  • [utils] The stop_signal keyword-argument type of the AutoRestartTrick class can now be either a signal.Signals or an int.
  • [utils] Added the __repr__() method to the Trick class.
  • [watchmedo] Fixed Mypy issues.
  • [watchmedo] Added the __repr__() method to the HelpFormatter class.
  • [windows] Fixed Mypy issues.

💟 Thanks to our beloved contributors: @​g-pichler, @​ethan-vanderheijden, @​nhairs, @​BoboTiG

v5.0.3: 5.0.3

Compare Source

  • [inotify] Improve cleaning up Inotify threads, and add eventlet test cases (#​1070)

💟 Thanks to our beloved contributors: @​ethan-vanderheijden, @​BoboTiG

v5.0.2: 5.0.2

Compare Source

  • Enable OS specific Mypy checks (#​1064)
  • [watchmedo] Fix tricks argument type of schedule_tricks() (#​1063)

💟 Thanks to our beloved contributors: @​gnought, @​BoboTiG

v5.0.1: 5.0.1

Compare Source

  • [kqueue] Fix TypeError: kqueue.control() only accepts positional parameters (#​1062)

💟 Thanks to our beloved contributors: @​apoirier, @​BoboTiG

v5.0.0: 5.0.0

Compare Source

Breaking Changes

  • Drop support for Python 3.8 (#​1055)
  • [core] Enforced usage of proper keyword-arguments (#​1057)
  • [core] Renamed the BaseObserverSubclassCallable class to ObserverType (#​1055)
  • [inotify] Renamed the inotify_event_struct class to InotifyEventStruct (#​1055)
  • [inotify] Renamed the UnsupportedLibc exception to UnsupportedLibcError (#​1057)
  • [inotify] Removed the InotifyConstants.IN_CLOSE constant (#​1046)
  • [watchmedo] Renamed the LogLevelException exception to LogLevelError (#​1057)
  • [watchmedo] Renamed the WatchdogShutdown exception to WatchdogShutdownError (#​1057)
  • [windows] Renamed the FILE_NOTIFY_INFORMATION class to FileNotifyInformation (#​1055)
  • [windows] Removed the unused WATCHDOG_TRAVERSE_MOVED_DIR_DELAY constant (#​1057)

Other Changes

  • [core] Enable disallow_untyped_calls Mypy rule (#​1055)
  • [core] Enable disallow_untyped_defs Mypy rule (#​1060)
  • [core] Improve typing references for events (#​1040)
  • [inotify] Add support for IN_CLOSE_NOWRITE events. A FileClosedNoWriteEvent event will be fired, and its on_closed_no_write() dispatcher has been introduced (#​1046)

💟 Thanks to our beloved contributors: @​BoboTiG


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Enabled.

♻️ Rebasing: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.

👻 Immortal: This MR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this MR, check this box

This MR has been generated by Renovate Bot.

Merge request reports

Loading