Skip to main content

Ariadne 0.17

· 2 min read

Ariadne 0.17 is a maintenance release that unpins Starlette requirement and removes use of deprecated CGI module in WSGI implementation.

Unpinned Starlette dependency

Ariadne relies on Starlette library for its ASGI implementation. In past releases Starlette dependency was always pinned to a specific version, which forced new Ariadne release whenever new Starlette minor version was released.

Starting with Ariadne 0.17, Starlette dependency is specified as <1.0. Reasoning for this is that Ariadne only uses Starlette's ASGI implementation and no other features and in last 4 years of project's existence there was a single case when Starlette's update forced Us to change our implementation - early in 2019.

Removed cgi dependency

cgi module is part of Python's standard library, providing utilities for writing HTTP servers. Ariadne's WSGI implementation used this module for extracting uploaded files from requests payloads.

Starting with Python 3.11, cgi module is now deprecated and Ariadne was moved to custom implementation using python-multipart library, and uploaded files are now instances of File class.

asgi-file-uploads optional dependency renamed to file-uploads

Because both ASGI and WSGI implementation now requires python-multipart library, asgi-file-uploads was renamed to file-uploads. To make upgrade easier, both names are currently supported by Ariadne, but projects dependencies should be changed for Ariadne 0.18 which will drop asgi-file-uploads.

Python 3.11

Starting with this release Ariadne is tested against Python 3.11.

CHANGELOG

  • Bumped starlette dependency in setup.py to <1.0.
  • Added Python 3.11 to test matrix.
  • Removed usage of deprecated cgi module.
  • Renamed asgi-file-uploads optional dependency to file-uploads.