From 5ea4eb340a2d0a8b5c7b963007f7b414910a64f3 Mon Sep 17 00:00:00 2001 From: Benoit Chesneau Date: Thu, 22 Jan 2026 22:33:58 +0100 Subject: [PATCH] docs: Add 2026 changelog and modernize README --- README.rst | 76 +++++++++++++++++++-------------------- docs/content/2026-news.md | 37 +++++++++++++++++++ docs/content/news.md | 23 ++++++++++++ mkdocs.yml | 1 + 4 files changed, 98 insertions(+), 39 deletions(-) create mode 100644 docs/content/2026-news.md diff --git a/README.rst b/README.rst index ddb22b4d..f87cc4a6 100644 --- a/README.rst +++ b/README.rst @@ -1,5 +1,5 @@ Gunicorn --------- +======== .. image:: https://img.shields.io/pypi/v/gunicorn.svg?style=flat :alt: PyPI version @@ -13,60 +13,58 @@ Gunicorn :alt: Build Status :target: https://github.com/benoitc/gunicorn/actions/workflows/tox.yml -.. image:: https://github.com/benoitc/gunicorn/actions/workflows/lint.yml/badge.svg - :alt: Lint Status - :target: https://github.com/benoitc/gunicorn/actions/workflows/lint.yml - Gunicorn 'Green Unicorn' is a Python WSGI HTTP Server for UNIX. It's a pre-fork worker model ported from Ruby's Unicorn_ project. The Gunicorn server is broadly compatible with various web frameworks, simply implemented, light on server resource usage, and fairly speedy. -Feel free to join us in `#gunicorn`_ on `Libera.chat`_. +**New in v24**: Native ASGI support (beta) for async frameworks like FastAPI! + +Quick Start +----------- + +.. code-block:: bash + + pip install gunicorn + gunicorn myapp:app --workers 4 + +For ASGI applications (FastAPI, Starlette): + +.. code-block:: bash + + gunicorn myapp:app --worker-class asgi + +Features +-------- + +- WSGI support for Django, Flask, Pyramid, and any WSGI framework +- **ASGI support** (beta) for FastAPI, Starlette, Quart +- uWSGI binary protocol for nginx integration +- Multiple worker types: sync, gthread, gevent, eventlet, asgi +- Graceful worker process management +- Compatible with Python 3.12+ Documentation ------------- -The documentation is hosted at https://docs.gunicorn.org. +Full documentation at https://gunicorn.org -Installation ------------- +- `Quickstart `_ +- `Configuration `_ +- `Deployment `_ +- `Settings Reference `_ -Gunicorn requires **Python 3.x >= 3.10**. - -Install from PyPI:: - - $ pip install gunicorn - - -Usage ------ - -Basic usage:: - - $ gunicorn [OPTIONS] APP_MODULE - -Where ``APP_MODULE`` is of the pattern ``$(MODULE_NAME):$(VARIABLE_NAME)``. The -module name can be a full dotted path. The variable name refers to a WSGI -callable that should be found in the specified module. - -Example with test app:: - - $ cd examples - $ gunicorn --workers=2 test:app - - -Contributing ------------- - -See `our complete contributor's guide `_ for more details. +Community +--------- +- Report bugs on `GitHub Issues `_ +- Chat in `#gunicorn`_ on `Libera.chat`_ +- See `CONTRIBUTING.md `_ for contribution guidelines License ------- -Gunicorn is released under the MIT License. See the LICENSE_ file for more -details. +Gunicorn is released under the MIT License. See the LICENSE_ file for details. .. _Unicorn: https://bogomips.org/unicorn/ .. _`#gunicorn`: https://web.libera.chat/?channels=#gunicorn diff --git a/docs/content/2026-news.md b/docs/content/2026-news.md new file mode 100644 index 00000000..8a935dba --- /dev/null +++ b/docs/content/2026-news.md @@ -0,0 +1,37 @@ + +# Changelog - 2026 + +## 24.0.0 - 2026-XX-XX + +### New Features + +- **ASGI Worker (Beta)**: Native asyncio-based ASGI support for running async Python + frameworks like FastAPI, Starlette, and Quart without external dependencies + ([PR #3444](https://github.com/benoitc/gunicorn/pull/3444)) + - HTTP/1.1 with keepalive connections + - WebSocket support + - Lifespan protocol for startup/shutdown hooks + - Optional uvloop for improved performance + - New settings: `--asgi-loop`, `--asgi-lifespan`, `--root-path` + +- **uWSGI Binary Protocol**: Support for receiving requests from nginx via + `uwsgi_pass` directive, enabling efficient binary protocol communication + ([PR #3444](https://github.com/benoitc/gunicorn/pull/3444)) + - New settings: `--protocol uwsgi`, `--uwsgi-allow-from` + +- **Documentation Migration**: Migrated documentation from Sphinx to MkDocs + with Material theme for improved navigation and mobile experience + ([PR #3426](https://github.com/benoitc/gunicorn/pull/3426)) + +### Changes + +- Minimum Python version is now 3.12 +- Documentation now hosted at https://gunicorn.org + +### Breaking changes + +- Dropped support for Python versions before 3.12 + +!!! warning "ASGI Worker Beta" + The ASGI worker is a beta feature. While tested, the API and behavior + may change in future releases. Please report any issues on GitHub. diff --git a/docs/content/news.md b/docs/content/news.md index 1b7f0722..59e27c0a 100644 --- a/docs/content/news.md +++ b/docs/content/news.md @@ -1,6 +1,28 @@ # Changelog +## 24.0.0 - 2026-XX-XX + +### New Features + +- **ASGI Worker (Beta)**: Native asyncio-based ASGI support for running async Python + frameworks like FastAPI, Starlette, and Quart without external dependencies + - HTTP/1.1 with keepalive connections + - WebSocket support + - Lifespan protocol for startup/shutdown hooks + - Optional uvloop for improved performance + +- **uWSGI Binary Protocol**: Support for receiving requests from nginx via + `uwsgi_pass` directive + +- **Documentation Migration**: Migrated to MkDocs with Material theme + +### Breaking changes + +- Minimum Python version is now 3.12 + +--- + ## 23.0.0 - 2024-08-10 - minor docs fixes ([PR #3217](https://github.com/benoitc/gunicorn/pull/3217), [PR #3089](https://github.com/benoitc/gunicorn/pull/3089), [PR #3167](https://github.com/benoitc/gunicorn/pull/3167)) @@ -59,6 +81,7 @@ ## History +- [2026](2026-news.md) - [2024](2024-news.md) - [2023](2023-news.md) - [2021](2021-news.md) diff --git a/mkdocs.yml b/mkdocs.yml index 2cf23a68..ccf27e75 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -28,6 +28,7 @@ nav: - Settings: reference/settings.md - News: - Latest: news.md + - '2026': 2026-news.md - '2024': 2024-news.md - '2023': 2023-news.md - '2021': 2021-news.md