Skip to content

chore(deps): update dependency gunicorn to v25.2.0#49

Open
renovate[bot] wants to merge 1 commit intomainfrom
renovate/gunicorn-25.x
Open

chore(deps): update dependency gunicorn to v25.2.0#49
renovate[bot] wants to merge 1 commit intomainfrom
renovate/gunicorn-25.x

Conversation

@renovate
Copy link
Contributor

@renovate renovate bot commented Feb 6, 2026

This PR contains the following updates:

Package Change Age Confidence
gunicorn (changelog) ==25.0.1==25.2.0 age confidence

Release Notes

benoitc/gunicorn (gunicorn)

v25.2.0: Gunicorn 25.2.0

Compare Source

New Features
  • Fast HTTP Parser (gunicorn_h1c 0.4.1): Integrate new exception types and limit parameters from gunicorn_h1c 0.4.1 for both WSGI and ASGI workers
    • Requires gunicorn_h1c >= 0.4.1 for http_parser='fast'
    • Falls back to Python parser in auto mode if version not met
    • Proper HTTP status codes for limit errors (414, 431)
Bug Fixes
  • uWSGI Async Workers: Fix InvalidUWSGIHeader: incomplete header error when using gevent or gthread workers with uwsgi protocol behind nginx. (#​3552, PR #​3554)

  • FileWrapper Iterator Protocol: Add __iter__ and __next__ methods to FileWrapper for full PEP 3333 compliance. (#​3396, PR #​3550)

Performance
  • ASGI HTTP Parser Optimizations: Improve ASGI worker HTTP parsing performance
    • Read chunks in 64-byte blocks instead of 1 byte at a time
    • Reuse BytesIO buffers with truncate/seek instead of creating new objects
    • Use bytearray.find() directly instead of converting to bytes first
    • Use index-based iteration for header parsing instead of list.pop(0)

v25.1.0: Gunicorn 25.1.0

Compare Source

New Features
  • Control Interface (gunicornc): Add interactive control interface for managing
    running Gunicorn instances, similar to birdc for BIRD routing daemon
    (PR #​3505)

    • Unix socket-based communication with JSON protocol
    • Interactive mode with readline support and command history
    • Commands: show all/workers/dirty/config/stats/listeners
    • Worker management: worker add/remove/kill, dirty add/remove
    • Server control: reload, reopen, shutdown
    • New settings: --control-socket, --control-socket-mode, --no-control-socket
    • New CLI tool: gunicornc for connecting to control socket
    • See Control Interface Guide for details
  • Dirty Stash: Add global shared state between workers via dirty.stash
    (PR #​3503)

    • In-memory key-value store accessible by all workers
    • Supports get, set, delete, clear, keys, and has operations
    • Useful for sharing state like feature flags, rate limits, or cached data
  • Dirty Binary Protocol: Implement efficient binary protocol for dirty arbiter IPC
    using TLV (Type-Length-Value) encoding
    (PR #​3500)

    • More efficient than JSON for binary data
    • Supports all Python types: str, bytes, int, float, bool, None, list, dict
    • Better performance for large payloads
  • Dirty TTIN/TTOU Signals: Add dynamic worker scaling for dirty arbiters
    (PR #​3504)

    • Send SIGTTIN to increase dirty workers
    • Send SIGTTOU to decrease dirty workers
    • Respects minimum worker constraints from app configurations
Changes
  • ASGI Worker: Promoted from beta to stable
  • Dirty Arbiters: Now marked as beta feature
Documentation
  • Fix Markdown formatting in /configure documentation

v25.0.3

Compare Source

What's Changed

Bug Fixes
  • Fix RuntimeError when StopIteration raised in ASGI coroutine (#​3484)
  • Fix passing maxsplit in re.split() as positional argument (deprecated in Python 3.13)
Documentation
  • Updated sponsorship section and homepage

Full Changelog: benoitc/gunicorn@25.0.2...25.0.3

v25.0.2: Release 25.0.2

Compare Source

Bug Fixes

  • Fix ASGI concurrent request failures through nginx proxy by normalizing
    sockaddr tuples to handle both 2-tuple (IPv4) and 4-tuple (IPv6) formats
    (PR #​3485)

  • Fix graceful disconnect handling for ASGI worker to properly handle
    client disconnects without raising exceptions
    (PR #​3485)

  • Fix lazy import of dirty module for gevent compatibility - prevents
    import errors when concurrent.futures is imported before gevent monkey-patching
    (PR #​3483)

Changes

  • Refactor: Extract _normalize_sockaddr utility function for consistent
    socket address handling across workers

  • Add license headers to all Python source files

  • Update copyright year to 2026 in LICENSE and NOTICE files


Configuration

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

🚦 Automerge: Enabled.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


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

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot force-pushed the renovate/gunicorn-25.x branch from f58e28a to 791f06e Compare February 7, 2026 17:40
@renovate renovate bot changed the title chore(deps): update dependency gunicorn to v25.0.2 chore(deps): update dependency gunicorn to v25.0.3 Feb 7, 2026
@renovate renovate bot force-pushed the renovate/gunicorn-25.x branch from 791f06e to 50e9da7 Compare February 13, 2026 14:46
@renovate renovate bot changed the title chore(deps): update dependency gunicorn to v25.0.3 chore(deps): update dependency gunicorn to v25.1.0 Feb 13, 2026
@renovate renovate bot changed the title chore(deps): update dependency gunicorn to v25.1.0 chore(deps): update dependency gunicorn to v25.2.0 Mar 25, 2026
@renovate renovate bot force-pushed the renovate/gunicorn-25.x branch from 50e9da7 to adabd10 Compare March 25, 2026 01:49
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.

0 participants