Ankush Menat 6d09a2e912 Merge upstream gunicorn 26.0.0 into Frappe fork
Reconcile the Frappe-specific gthread changes with upstream's major
26.0.0 release (HTTP/2, ASGI, lock-free main-thread event loop).

Conflict resolution:
- gunicorn/workers/gthread.py: reimplemented our features on top of
  upstream's rewritten event loop instead of merging line-by-line:
  - Per-request timeout + faulthandler traceback dump, tracked via an
    in-flight future set and keyed on exec_start_time so client-wait
    time (upstream's _DEFER path) is excluded and long-lived HTTP/2
    connections are exempt.
  - Adaptive slow/fast-lane queueing: the request-line peek/classify
    now reuses upstream's pending_conns poller-park mechanism, then
    dispatches to a fast or slow ThreadPoolExecutor.
  - Dropped our eventfd-based shutdown wakeup in favour of upstream's
    PollableMethodQueue.defer(), which already wakes the poller on
    SIGTERM.
- gunicorn/config.py: kept both new validators; our EnableAdaptiveQueueing
  and SlowRequestThreshold settings merged cleanly.
- README.rst was removed upstream (converted to README.md); ported an
  updated Fork Information section into README.md.
- tox.ini / .github/workflows/tox.yml: took upstream's Python matrix
  (it already drops the EoL versions our fork had pruned).

All gthread + routing tests pass (91), full suite 1976 passed / 263
skipped.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-30 12:28:45 +05:30
..
2026-05-05 08:35:19 +02:00
2026-05-28 16:33:54 +05:30
2026-02-06 08:21:18 +01:00

Generate Documentation

Requirements

Install the documentation dependencies with:

pip install -r requirements_dev.txt

This provides MkDocs with the Material theme and supporting plugins.

Build static HTML

mkdocs build

The rendered site is emitted into the site/ directory.

Preview locally

mkdocs serve

This serves the documentation at http://127.0.0.1:8000/ with live reload.