Commit dd433bb
authored
Bump gunicorn from 24.1.1 to 25.0.0 (#12014)
Bumps [gunicorn](https://github.com/benoitc/gunicorn) from 24.1.1 to
25.0.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/benoitc/gunicorn/releases">gunicorn's
releases</a>.</em></p>
<blockquote>
<h2>Gunicorn 25.0.0</h2>
<h2>New Features</h2>
<ul>
<li>
<p><strong>Dirty Arbiters</strong>: Separate process pool for executing
long-running, blocking
operations (AI model loading, heavy computation) without blocking HTTP
workers
([PR <a
href="https://redirect.github.com/benoitc/gunicorn/issues/3460">#3460</a>](<a
href="https://redirect.github.com/benoitc/gunicorn/pull/3460">benoitc/gunicorn#3460</a>))</p>
<ul>
<li>Inspired by Erlang's dirty schedulers</li>
<li>Asyncio-based with Unix socket IPC</li>
<li>Stateful workers that persist loaded resources</li>
<li>New settings: <code>--dirty-app</code>,
<code>--dirty-workers</code>, <code>--dirty-timeout</code>,
<code>--dirty-threads</code>, <code>--dirty-graceful-timeout</code></li>
<li>Lifecycle hooks: <code>on_dirty_starting</code>,
<code>dirty_post_fork</code>,
<code>dirty_worker_init</code>, <code>dirty_worker_exit</code></li>
</ul>
</li>
<li>
<p><strong>Per-App Worker Allocation for Dirty Arbiters</strong>:
Control how many dirty workers
load each app for memory optimization with heavy models
([PR <a
href="https://redirect.github.com/benoitc/gunicorn/issues/3473">#3473</a>](<a
href="https://redirect.github.com/benoitc/gunicorn/pull/3473">benoitc/gunicorn#3473</a>))</p>
<ul>
<li>Set <code>workers</code> class attribute on DirtyApp (e.g.,
<code>workers = 2</code>)</li>
<li>Or use config format <code>module:class:N</code> (e.g.,
<code>myapp:HeavyModel:2</code>)</li>
<li>Requests automatically routed to workers with the target app</li>
<li>New exception <code>DirtyNoWorkersAvailableError</code> for graceful
error handling</li>
<li>Example: 8 workers × 10GB model = 80GB → with
<code>workers=2</code>: 20GB (75% savings)</li>
</ul>
</li>
<li>
<p><strong>HTTP/2 Support (Beta)</strong>: Native HTTP/2 (RFC 7540)
support for improved performance
with modern clients ([PR <a
href="https://redirect.github.com/benoitc/gunicorn/issues/3468">#3468</a>](<a
href="https://redirect.github.com/benoitc/gunicorn/pull/3468">benoitc/gunicorn#3468</a>))</p>
<ul>
<li>Multiplexed streams over a single connection</li>
<li>Header compression (HPACK)</li>
<li>Flow control and stream prioritization</li>
<li>Works with gthread, gevent, and ASGI workers</li>
<li>New settings: <code>--http-protocols</code>,
<code>--http2-max-concurrent-streams</code>,
<code>--http2-initial-window-size</code>,
<code>--http2-max-frame-size</code>,
<code>--http2-max-header-list-size</code></li>
<li>Requires SSL/TLS and h2 library: <code>pip install
gunicorn[http2]</code></li>
<li>New example: <code>examples/http2_gevent/</code> with Docker and
tests</li>
</ul>
</li>
<li>
<p><strong>HTTP 103 Early Hints</strong>: Support for RFC 8297 Early
Hints to enable browsers to
preload resources before the final response
([PR <a
href="https://redirect.github.com/benoitc/gunicorn/issues/3468">#3468</a>](<a
href="https://redirect.github.com/benoitc/gunicorn/pull/3468">benoitc/gunicorn#3468</a>))</p>
<ul>
<li>WSGI:
<code>environ['wsgi.early_hints'](https://github.com/benoitc/gunicorn/blob/HEAD/headers)</code>
callback</li>
<li>ASGI: <code>http.response.informational</code> message type</li>
<li>Works with both HTTP/1.1 and HTTP/2</li>
</ul>
</li>
<li>
<p><strong>uWSGI Protocol for ASGI Worker</strong>: The ASGI worker now
supports receiving requests
via the uWSGI binary protocol from nginx
([PR <a
href="https://redirect.github.com/benoitc/gunicorn/issues/3467">#3467</a>](<a
href="https://redirect.github.com/benoitc/gunicorn/pull/3467">benoitc/gunicorn#3467</a>))</p>
</li>
</ul>
<h2>Bug Fixes</h2>
<ul>
<li>Fix HTTP/2 ALPN negotiation for gevent and eventlet workers when
<code>do_handshake_on_connect</code> is False (the default). The TLS
handshake is now
explicitly performed before checking
<code>selected_alpn_protocol()</code>.</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/benoitc/gunicorn/commit/617a85ea91a439735b47d991dfbbe706dc2beb0b"><code>617a85e</code></a>
docs: update 25.0.0 release date to 2026-02-01</li>
<li><a
href="https://github.com/benoitc/gunicorn/commit/ee933f2e3092557dfe36074aa98f84bd6081622e"><code>ee933f2</code></a>
fix(asgi): quick shutdown on SIGINT/SIGQUIT, graceful on SIGTERM</li>
<li><a
href="https://github.com/benoitc/gunicorn/commit/98ef198baa98a359131aa301a44519754c161575"><code>98ef198</code></a>
docs: update security policy for maintained versions 24.1.1 and
25.0.0</li>
<li><a
href="https://github.com/benoitc/gunicorn/commit/911e333b4e18ce0cf4c9a4739f96f056153202c6"><code>911e333</code></a>
chore: replace RST with markdown, remove docs-lint and readthedocs
config</li>
<li><a
href="https://github.com/benoitc/gunicorn/commit/7ff671bca3b1995b00e0f9703444abf57fb45842"><code>7ff671b</code></a>
chore: replace README.rst with README.md, remove
modernization-plan.md</li>
<li><a
href="https://github.com/benoitc/gunicorn/commit/d5ab5dc6c1c117b71a21c354f18e760c320157c1"><code>d5ab5dc</code></a>
Merge pull request <a
href="https://redirect.github.com/benoitc/gunicorn/issues/3473">#3473</a>
from benoitc/feature/per-app-worker-allocation</li>
<li><a
href="https://github.com/benoitc/gunicorn/commit/d563a7e436267396b063a04ad76f4a326e6bba4e"><code>d563a7e</code></a>
chore: bump version to 25.0.0</li>
<li><a
href="https://github.com/benoitc/gunicorn/commit/86264ef90001f7d92a4dae1b19c832ab87156230"><code>86264ef</code></a>
docs: add per-app worker allocation to 25.0.0 changelog</li>
<li><a
href="https://github.com/benoitc/gunicorn/commit/c4fe116d71f55b35bf0865fd9cd806e2f235c746"><code>c4fe116</code></a>
docs: add per-app worker allocation documentation</li>
<li><a
href="https://github.com/benoitc/gunicorn/commit/1af599769f398dbeadbd5f83dabeab79a5d2a37d"><code>1af5997</code></a>
docs: regenerate settings.md</li>
<li>Additional commits viewable in <a
href="https://github.com/benoitc/gunicorn/compare/24.1.1...25.0.0">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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)
</details>
Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>1 parent cf97fe6 commit dd433bb
6 files changed
Lines changed: 113 additions & 113 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
25 | | - | |
| 25 | + | |
26 | 26 | | |
27 | 27 | | |
28 | 28 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
25 | | - | |
| 25 | + | |
26 | 26 | | |
27 | 27 | | |
28 | 28 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
9 | | - | |
10 | | - | |
| 9 | + | |
| 10 | + | |
11 | 11 | | |
12 | | - | |
| 12 | + | |
13 | 13 | | |
14 | | - | |
| 14 | + | |
15 | 15 | | |
16 | | - | |
| 16 | + | |
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
23 | | - | |
| 23 | + | |
24 | 24 | | |
25 | 25 | | |
26 | 26 | | |
27 | 27 | | |
28 | 28 | | |
29 | | - | |
30 | | - | |
| 29 | + | |
| 30 | + | |
31 | 31 | | |
32 | 32 | | |
33 | | - | |
34 | | - | |
| 33 | + | |
| 34 | + | |
35 | 35 | | |
36 | | - | |
| 36 | + | |
37 | 37 | | |
38 | 38 | | |
39 | 39 | | |
| |||
55 | 55 | | |
56 | 56 | | |
57 | 57 | | |
58 | | - | |
| 58 | + | |
59 | 59 | | |
60 | 60 | | |
61 | 61 | | |
62 | 62 | | |
63 | | - | |
| 63 | + | |
64 | 64 | | |
65 | 65 | | |
66 | 66 | | |
| |||
75 | 75 | | |
76 | 76 | | |
77 | 77 | | |
78 | | - | |
79 | | - | |
| 78 | + | |
| 79 | + | |
80 | 80 | | |
81 | 81 | | |
82 | | - | |
| 82 | + | |
83 | 83 | | |
84 | | - | |
85 | | - | |
| 84 | + | |
| 85 | + | |
86 | 86 | | |
87 | 87 | | |
88 | 88 | | |
| |||
96 | 96 | | |
97 | 97 | | |
98 | 98 | | |
99 | | - | |
100 | | - | |
| 99 | + | |
| 100 | + | |
101 | 101 | | |
102 | 102 | | |
103 | 103 | | |
| |||
112 | 112 | | |
113 | 113 | | |
114 | 114 | | |
115 | | - | |
116 | | - | |
| 115 | + | |
| 116 | + | |
117 | 117 | | |
118 | 118 | | |
119 | 119 | | |
120 | | - | |
121 | | - | |
| 120 | + | |
| 121 | + | |
122 | 122 | | |
123 | 123 | | |
124 | 124 | | |
| |||
133 | 133 | | |
134 | 134 | | |
135 | 135 | | |
136 | | - | |
| 136 | + | |
137 | 137 | | |
138 | | - | |
| 138 | + | |
139 | 139 | | |
140 | 140 | | |
141 | 141 | | |
142 | 142 | | |
143 | 143 | | |
144 | 144 | | |
145 | 145 | | |
146 | | - | |
| 146 | + | |
147 | 147 | | |
148 | 148 | | |
149 | | - | |
| 149 | + | |
150 | 150 | | |
151 | 151 | | |
152 | 152 | | |
153 | | - | |
154 | | - | |
| 153 | + | |
| 154 | + | |
155 | 155 | | |
156 | 156 | | |
157 | 157 | | |
| |||
173 | 173 | | |
174 | 174 | | |
175 | 175 | | |
176 | | - | |
177 | | - | |
| 176 | + | |
| 177 | + | |
178 | 178 | | |
179 | 179 | | |
180 | 180 | | |
181 | 181 | | |
182 | 182 | | |
183 | 183 | | |
184 | | - | |
185 | | - | |
| 184 | + | |
| 185 | + | |
186 | 186 | | |
187 | | - | |
| 187 | + | |
188 | 188 | | |
189 | 189 | | |
190 | | - | |
191 | | - | |
| 190 | + | |
| 191 | + | |
192 | 192 | | |
193 | | - | |
| 193 | + | |
194 | 194 | | |
195 | 195 | | |
196 | 196 | | |
197 | 197 | | |
198 | | - | |
199 | | - | |
| 198 | + | |
| 199 | + | |
200 | 200 | | |
201 | 201 | | |
202 | 202 | | |
| |||
206 | 206 | | |
207 | 207 | | |
208 | 208 | | |
209 | | - | |
| 209 | + | |
210 | 210 | | |
211 | 211 | | |
212 | 212 | | |
213 | | - | |
| 213 | + | |
214 | 214 | | |
215 | 215 | | |
216 | 216 | | |
217 | 217 | | |
218 | | - | |
| 218 | + | |
219 | 219 | | |
220 | 220 | | |
221 | 221 | | |
| |||
231 | 231 | | |
232 | 232 | | |
233 | 233 | | |
234 | | - | |
| 234 | + | |
235 | 235 | | |
236 | | - | |
| 236 | + | |
237 | 237 | | |
238 | 238 | | |
239 | 239 | | |
| |||
246 | 246 | | |
247 | 247 | | |
248 | 248 | | |
249 | | - | |
| 249 | + | |
250 | 250 | | |
251 | 251 | | |
252 | 252 | | |
253 | | - | |
254 | | - | |
| 253 | + | |
| 254 | + | |
255 | 255 | | |
256 | 256 | | |
257 | | - | |
| 257 | + | |
258 | 258 | | |
259 | 259 | | |
260 | 260 | | |
| |||
271 | 271 | | |
272 | 272 | | |
273 | 273 | | |
274 | | - | |
275 | | - | |
| 274 | + | |
| 275 | + | |
276 | 276 | | |
277 | | - | |
| 277 | + | |
278 | 278 | | |
279 | 279 | | |
280 | 280 | | |
281 | | - | |
| 281 | + | |
282 | 282 | | |
283 | 283 | | |
284 | 284 | | |
285 | | - | |
| 285 | + | |
286 | 286 | | |
287 | 287 | | |
288 | | - | |
289 | | - | |
| 288 | + | |
| 289 | + | |
290 | 290 | | |
291 | 291 | | |
292 | 292 | | |
| |||
0 commit comments