Releases: strawberry-graphql/strawberry
🍓 0.284.0
This release drops support for Python 3.9, which reached its end-of-life (EOL)
in October 2025. The minimum supported Python version is now 3.10.
We strongly recommend upgrading to Python 3.10 or a newer version, as older
versions are no longer maintained and may contain security vulnerabilities.
Releases contributed by @bellini666 via #4018
🍓 0.283.3
🍓 0.283.2
🍓 0.283.1
Fixed multipart subscription header parsing to properly handle optional boundary parameters and quoted subscription spec values. This improves compatibility with different GraphQL clients that may send headers in various formats.
Key improvements:
- Made the
boundary=graphql
parameter optional in multipart subscription detection - Added proper quote stripping for
subscriptionSpec
values (e.g.,subscriptionSpec="1.0"
) - Enhanced test coverage for different header format scenarios
Example of supported headers:
Accept: multipart/mixed;boundary=graphql;subscriptionSpec=1.0,application/json
Accept: multipart/mixed;subscriptionSpec="1.0",application/json
Releases contributed by @LouisAmon via #4002
🍓 0.283.0
In this release, we renamed the strawberry server
command to strawberry dev
to better reflect its purpose as a development server.
We also deprecated the strawberry-graphql[debug-server]
extra in favor of
strawberry-graphql[cli]
. Please update your dependencies accordingly.
Releases contributed by @DoctorJohn via #4011
🍓 0.282.0
🍓 0.281.0
In this release we removed the --log-operations
option from the
strawberry server
command. The option only worked for WebSocket connections to
the debug server, and had limited utility.
Removing this option allowed us to remove the undocumented debug
option from
all HTTP view integrations and WebSocket protocol implementation, simplifying
the codebase.
Releases contributed by @DoctorJohn via #3979
🍓 0.280.0
This release unifies the format of HTTP error response bodies across all HTTP
view integrations. Previously, the Chalice integration used a custom JSON body
response different from the plain string used by other integrations. Now, all
integrations will return a plain string for HTTP error responses.
Releases contributed by @DoctorJohn via #3978
🍓 0.279.0
This release changes the strawberry.Maybe
type to provide a more consistent and intuitive API for handling optional fields in GraphQL inputs.
Breaking Change: The Maybe
type definition has been changed from Union[Some[Union[T, None]], None]
to Union[Some[T], None]
. This means:
Maybe[str]
now only accepts string values or absent fields (refuses explicit null)Maybe[str | None]
accepts strings, null, or absent fields (maintains previous behavior)
This provides a cleaner API where if field is not None
consistently means "field was provided" for all Maybe fields. A codemod is available to automatically migrate your code: strawberry upgrade maybe-optional
See the breaking changes documentation for migration details.
Releases contributed by @patrick91 via #3961