NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #1573 most downloaded on PyPI
A library for creating GraphQL APIs
Last release today
04 Oct 2026
Ships fairly regularly
a new release about every 3 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
8 years old
1125 releases · first in 2019
Switch from lia-web to cross-web: lia-web has been renamed to cross-web. Update imports from lia to cross_web accordingly.
Switch from lia-web to cross-web: lia-web has been renamed to cross-web. Update imports from lia to cross_web accordingly.
Releases contributed by @Antiz96 via #4079
Switch from lia-web to cross-web: lia-web has been renamed to cross-web. Update imports from lia to cross_web accordingly.
Contributed by Robin Candau via PR #4079
Fix compatibility with Python 3.14 when using the Pydantic integration with Pydantic V2.
One column per quarter.
Fix compatibility with Python 3.14 when using the Pydantic integration with Pydantic V2.
Previously, importing strawberry.experimental.pydantic on Python 3.14 would trigger:
UserWarning: Core Pydantic V1 functionality isn't compatible with Python 3.14 or greater.
This is now fixed by avoiding pydantic.v1 imports on Python 3.14+.
Releases contributed by @patrick91 via #4072
Fix compatibility with Python 3.14 when using the Pydantic integration with Pydantic V2.
Previously, importing strawberry.experimental.pydantic on Python 3.14 would trigger:
UserWarning: Core Pydantic V1 functionality isn't compatible with Python 3.14 or greater.
This is now fixed by avoiding pydantic.v1 imports on Python 3.14+.
Contributed by Patrick Arminio via PR #4072
Fixed a bug in the codegen where Relay Node's id field was incorrectly generated as _id in the output code.
Fixed a bug in the codegen where Relay Node's id field was incorrectly generated as _id in the output code.
The codegen now correctly respects the explicit graphql_name set via the @field(name="id") decorator, ensuring that the generated code uses id instead of the Python method name _id.
Releases contributed by @Ckk3 via #4053
Fixed a bug in the codegen where Relay Node's id field was incorrectly generated as _id in the output code.
The codegen now correctly respects the explicit graphql_name set via the @field(name="id") decorator, ensuring that the generated code uses id instead of the Python method name _id.
Contributed by Luis Gustavo via PR #4053
Fix mypy plugin issues related to new version of mypy. The TypeAlias class has one more required argument "module" in the mypy version >= 1.19.
Fix mypy plugin issues related to new version of mypy. The TypeAlias class has one more required argument "module" in the mypy version >= 1.19.
Releases contributed by @Ansud via #4060
Fix mypy plugin issues related to new version of mypy. The TypeAlias class has one more required argument "module" in the mypy version >= 1.19.
Contributed by Anton Zelenov via PR #4060
Change strawberry.http.base.BaseView.encode_json() type hint to str | bytes and adjust dependent code appropriately.
Change strawberry.http.base.BaseView.encode_json() type hint to str | bytes and adjust dependent code appropriately.
Releases contributed by @Brandieee via #4054
Change strawberry.http.base.BaseView.encode_json() type hint to str | bytes and adjust dependent code appropriately.
Set Content-Type to text/plain for exceptions so that these are displayed correctly.
Set Content-Type to text/plain for exceptions so that these are displayed
correctly.
Releases contributed by @mgorven via #4037
Set Content-Type to text/plain for exceptions so that these are displayed
correctly.
Contributed by Michael Gorven via PR #4037
This release changes _enum_definition to __strawberry_definition__, this is a follow up to previous internal changes. If you were relying on _enum_def
This release changes _enum_definition to __strawberry_definition__, this is a follow up to previous
internal changes. If you were relying on _enum_definition you should update your code to use __strawberry_definition__.
We also expose has_enum_definition to check if a type is a strawberry enum definition.
from enum import Enum
import strawberry
from strawberry.types.enum import StrawberryEnumDefinition, has_enum_definition
@strawberry.enum
class ExampleEnum(Enum):
pass
has_enum_definition(ExampleEnum) # True
# Now you can use ExampleEnum.__strawberry_definition__ to access the enum definition
Releases contributed by @Ckk3 via #3999
You must migrate to Federation v2. See the breaking changes documentation for detailed migration instructions.
This release removes support for Apollo Federation v1 and improves Federation v2 support with explicit version control and new directives.
enable_federation_2 parameter: Replaced with federation_version parameterenable_federation_2=TrueRemove the parameter:
# Before
schema = strawberry.federation.Schema(query=Query, enable_federation_2=True)
# After
schema = strawberry.federation.Schema(query=Query)
You must migrate to Federation v2. See the breaking changes documentation for detailed migration instructions.
schema = strawberry.federation.Schema(
query=Query, federation_version="2.5" # Specify a specific version if needed
)
@context, @fromContext, @cost, and @listSize directives (v2.7+)Releases contributed by @patrick91 via #4045
Nothing published for this version
Bumped minimum Typer version to fix strawberry CLI commands.
Bumped minimum Typer version to fix strawberry CLI commands.
Releases contributed by @valliu via #4049
Removed Transfer-Encoding: chunked header from multipart streaming responses. This fixes HTTP 405 errors on Vercel and other serverless platforms. The
Removed Transfer-Encoding: chunked header from multipart streaming responses. This fixes HTTP 405 errors on Vercel and other serverless platforms. The server/gateway will handle chunked encoding automatically when needed.
Releases contributed by @LouisAmon via #4047
Removed Transfer-Encoding: chunked header from multipart streaming responses. This fixes HTTP 405 errors on Vercel and other serverless platforms. The server/gateway will handle chunked encoding automatically when needed.
Contributed by Louis Amon via PR #4047
Update typing of variables in the test clients to match the actual flexibility of this field.
Update typing of variables in the test clients to match the actual flexibility of this field.
Releases contributed by @ben-xo via #4044
Update typing of variables in the test clients to match the actual flexibility of this field.
This release fixes the usage of strawberry.Maybe inside modules using from __future__ import annotations
This release fixes the usage of strawberry.Maybe inside modules using from __future__ import annotations
Releases contributed by @bellini666 via #4031
This release fixes the usage of strawberry.Maybe inside modules using from __future__ import annotations
Contributed by Thiago Bellini Ribeiro via PR #4031
…no longer maintained and may contain security vulnerabilities.
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
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.
Contributed by Thiago Bellini Ribeiro via PR #4018
Releases contributed by @rcybulski1122012 via #4017
Adds support for lazy unions.
Releases contributed by @rcybulski1122012 via #4017
Adds support for lazy unions.
Contributed by Radosław Cybulski via PR #4017
This release adds support for the upcoming Python 3.14
This release adds support for the upcoming Python 3.14
Releases contributed by @patrick91 via #3828
This release adds support for the upcoming Python 3.14
Contributed by Patrick Arminio via PR #3828
Fixed multipart subscription header parsing to properly handle optional boundary parameters and quoted subscription spec values. This improves compati
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:
boundary=graphql parameter optional in multipart subscription detectionsubscriptionSpec values (e.g., subscriptionSpec="1.0")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
We also deprecated the strawberry-graphql[debug-server] extra in favor of strawberry-graphql[cli]. Please update your dependencies accordingly.
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
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.
Contributed by Jonathan Ehwald via PR #4011
This release fixes mask errors to support strawberry execution results.
This release fixes mask errors to support strawberry execution results.
Releases contributed by @aryaniyaps via #3987
This release fixes mask errors to support strawberry execution results.
Contributed by Aryan Iyappan via PR #3987
In this release we removed the --log-operations option from the strawberry server command. The option only worked for WebSocket connections to the deb
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
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.
Contributed by Jonathan Ehwald via PR #3979
This release unifies the format of HTTP error response bodies across all HTTP view integrations. Previously, the Chalice integration used a custom JSO
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
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.
Contributed by Jonathan Ehwald via PR #3978
Breaking Change: The Maybe type definition has been changed from Union[Some[Union[T, None]], None] to Union[Some[T], None]. This means:
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
Nothing published for this version
Nothing published for this version
Nothing published for this version
This release removes some internal code in favour of using an external dependency, this will help us with maintaining the codebase in the future 😊
This release removes some internal code in favour of using an external dependency, this will help us with maintaining the codebase in the future 😊
Releases contributed by @patrick91 via #3967
This release removes some internal code in favour of using an external dependency, this will help us with maintaining the codebase in the future 😊
Contributed by Patrick Arminio via PR #3967
GraphQL query batching is now supported across all frameworks (sync and async) To enable query batching, add a valid batching_config to the schema con
GraphQL query batching is now supported across all frameworks (sync and async)
To enable query batching, add a valid batching_config to the schema configuration.
This makes your GraphQL API compatible with batching features supported by various client side libraries, such as Apollo GraphQL and Relay.
Example (FastAPI):
import strawberry
from fastapi import FastAPI
from strawberry.fastapi import GraphQLRouter
from strawberry.schema.config import StrawberryConfig
@strawberry.type
class Query:
@strawberry.field
def hello(self) -> str:
return "Hello World"
schema = strawberry.Schema(
Query, config=StrawberryConfig(batching_config={"max_operations": 10})
)
graphql_app = GraphQLRouter(schema)
app = FastAPI()
app.include_router(graphql_app, prefix="/graphql")
Example (Flask):
import strawberry
from flask import Flask
from strawberry.flask.views import GraphQLView
app = Flask(__name__)
@strawberry.type
class Query:
@strawberry.field
def hello(self) -> str:
return "Hello World"
schema = strawberry.Schema(
Query, config=StrawberryConfig(batching_config={"max_operations": 10})
)
app.add_url_rule(
"/graphql/batch",
view_func=GraphQLView.as_view("graphql_view", schema=schema),
)
if __name__ == "__main__":
app.run()
Note: Query Batching is not supported for multipart subscriptions
Releases contributed by @aryaniyaps via #3755
This release fixes the resolution of Generics when specializing using a union defined with Annotated, like in the example below:
This release fixes the resolution of Generics when specializing using a union
defined with Annotated, like in the example below:
from typing import Annotated, Generic, TypeVar, Union
import strawberry
T = TypeVar("T")
@strawberry.type
class User:
name: str
age: int
@strawberry.type
class ProUser:
name: str
age: float
@strawberry.type
class GenType(Generic[T]):
data: T
GeneralUser = Annotated[Union[User, ProUser], strawberry.union("GeneralUser")]
@strawberry.type
class Response(GenType[GeneralUser]): ...
@strawberry.type
class Query:
@strawberry.field
def user(self) -> Response: ...
schema = strawberry.Schema(query=Query)
Before this would raise a TypeError, now it works as expected.
Releases contributed by @bellini666 via #3950
This release adds experimental support for GraphQL's @defer and @stream directives, enabling incremental delivery of response data.
This release adds experimental support for GraphQL's @defer and @stream directives, enabling incremental delivery of response data.
Note: this only works when using Strawberry with graphql-core>=3.3.0a9.
@defer directive: Allows fields to be resolved asynchronously and delivered incrementally@stream directive: Enables streaming of list fields using the new strawberry.Streamable typestrawberry.Streamable[T]: A new generic type for defining streamable fields that work with @streamTo enable these experimental features, configure your schema with:
from strawberry.schema.config import StrawberryConfig
schema = strawberry.Schema(
query=Query, config=StrawberryConfig(enable_experimental_incremental_execution=True)
)
Releases contributed by @patrick91 via #3819
The old errors attribute is now deprecated but still available for backward compatibility.
This release renames the ExecutionContext.errors attribute to ExecutionContext.pre_execution_errors to better reflect its purpose. The old errors attribute is now deprecated but still available for backward compatibility.
The pre_execution_errors attribute specifically stores errors that occur during the pre-execution phase (parsing and validation), making the distinction clearer from errors that might occur during the actual execution phase.
For backward compatibility, accessing ExecutionContext.errors will now emit a deprecation warning and return the value of pre_execution_errors.
Releases contributed by @patrick91 via #3947
This release fixes an issue where DuplicatedTypeName exception would be raised for nested generics like in the example below:
This release fixes an issue where DuplicatedTypeName exception would be raised
for nested generics like in the example below:
from typing import Generic, TypeVar
import strawberry
T = TypeVar("T")
@strawberry.type
class Wrapper(Generic[T]):
value: T
@strawberry.type
class Query:
a: Wrapper[Wrapper[int]]
b: Wrapper[Wrapper[int]]
schema = strawberry.Schema(query=Query)
This piece of code and similar ones will now work correctly.
Releases contributed by @bellini666 via #3946
This release fixes an issue where DuplicatedTypeName exception would be raised
for nested generics like in the example below:
from typing import Generic, TypeVar
import strawberry
T = TypeVar("T")
@strawberry.type
class Wrapper(Generic[T]):
value: T
@strawberry.type
class Query:
a: Wrapper[Wrapper[int]]
b: Wrapper[Wrapper[int]]
schema = strawberry.Schema(query=Query)
This piece of code and similar ones will now work correctly.
Contributed by Thiago Bellini Ribeiro via PR #3946
This release fixes NameConverter to properly handle lazy types.
This release fixes NameConverter to properly handle lazy types.
Releases contributed by @rcybulski1122012 via #3944
This release fixes NameConverter to properly handle lazy types.
Contributed by Radosław Cybulski via PR #3944
Nothing published for this version
Nothing published for this version
This release adds support for lazy types in ConnectionExtension.
This release adds support for lazy types in ConnectionExtension.
Releases contributed by @rcybulski1122012 via #3941
This release adds support for lazy types in ConnectionExtension.
Contributed by Radosław Cybulski via PR #3941
In this release, we updated Strawberry to gracefully handle requests containing an invalid extensions parameter. Previously, such requests could resul
In this release, we updated Strawberry to gracefully handle requests containing
an invalid extensions parameter. Previously, such requests could result in
internal server errors. Now, Strawberry will return a 400 Bad Request response
with a clear error message, conforming to the GraphQL over HTTP specification.
Releases contributed by @DoctorJohn via #3943
In this release, we updated Strawberry to gracefully handle requests containing
an invalid extensions parameter. Previously, such requests could result in
internal server errors. Now, Strawberry will return a 400 Bad Request response
with a clear error message, conforming to the GraphQL over HTTP specification.
Contributed by Jonathan Ehwald via PR #3943
This release improves performance of argument conversion for lists of primitives.
This release improves performance of argument conversion for lists of primitives.
Releases contributed by @blothmann via #3773
This release improves performance of argument conversion for lists of primitives.
In this release, we updated Strawberry to gracefully handle requests containing an invalid variables parameter. Previously, such requests could result
In this release, we updated Strawberry to gracefully handle requests containing
an invalid variables parameter. Previously, such requests could result in
internal server errors. Now, Strawberry will return a 400 Bad Request response
with a clear error message, conforming to the GraphQL over HTTP specification.
Releases contributed by @DoctorJohn via #3932
In this release, we updated Strawberry to gracefully handle requests containing
an invalid variables parameter. Previously, such requests could result in
internal server errors. Now, Strawberry will return a 400 Bad Request response
with a clear error message, conforming to the GraphQL over HTTP specification.
Contributed by Jonathan Ehwald via PR #3932
In this release, we updated Strawberry to gracefully handle requests containing an invalid query parameter. Previously, such requests could result in
In this release, we updated Strawberry to gracefully handle requests containing
an invalid query parameter. Previously, such requests could result in internal
server errors, but now they will return a 400 Bad Request response with an
appropriate error message, conforming to the GraphQL over HTTP specification.
Releases contributed by @DoctorJohn via #3927
In this release, we updated Strawberry to gracefully handle requests containing
an invalid query parameter. Previously, such requests could result in internal
server errors, but now they will return a 400 Bad Request response with an
appropriate error message, conforming to the GraphQL over HTTP specification.
Contributed by Jonathan Ehwald via PR #3927
Fixes a bug that caused merged unions with duplicated entries to fail the schema validation when merging two strawberry.union types.
Fixes a bug that caused merged unions with duplicated entries to fail the schema validation when merging two
strawberry.union types.
Releases contributed by @erikwrede via #3923
Fixes a bug that caused merged unions with duplicated entries to fail the schema validation when merging two
strawberry.union types.
Contributed by Erik Wrede via PR #3923
In this release, we updated the aiohttp integration to handle aiohttp.ClientConnectionResetErrors, which can occur when a WebSocket connection is unex
In this release, we updated the aiohttp integration to handle
aiohttp.ClientConnectionResetErrors, which can occur when a WebSocket
connection is unexpectedly closed, gracefully.
Releases contributed by @DoctorJohn via #3922
In this release, we updated the aiohttp integration to handle
aiohttp.ClientConnectionResetErrors, which can occur when a WebSocket
connection is unexpectedly closed, gracefully.
Contributed by Jonathan Ehwald via PR #3922
Adds a new CLI command strawberry locate-definition that allows you to find the source location of a definition in the schema.
Adds a new CLI command strawberry locate-definition that allows you to find the source location of a definition in the schema.
strawberry locate-definition path.to.schema:schema ObjectName
strawberry locate-definition path.to.schema:schema ObjectName.fieldName
Results take the form of path/to/file.py:line:column, for example: src/models/user.py:45:12.
This can be used, for example, with the go to definition feature of VS Code's Relay extension (configured via the relay.pathToLocateCommand setting).
Releases contributed by @millar via #3902
This release adds compatibility with LibCST v1.8
This release adds compatibility with LibCST v1.8
Releases contributed by @patrick91 via #3921
This release adds compatibility with LibCST v1.8
Contributed by Patrick Arminio via PR #3921
Introduces an optional operation_extensions parameter throughout the GraphQL execution flow—adding it to execution entry points and embedding it into
Introduces an optional operation_extensions parameter throughout the GraphQL execution flow—adding it to execution entry points and embedding it into the ExecutionContext—so custom extensions can access per-operation metadata.
Releases contributed by @mdgilene via #3878
Introduces an optional operation_extensions parameter throughout the GraphQL execution flow—adding it to execution entry points and embedding it into the ExecutionContext—so custom extensions can access per-operation metadata.
Contributed by Matt Gilene via PR #3878
This release fixes an issue that caused schema generation with Maybe to fail when using lists, such as Maybe[List[User]].
This release fixes an issue that caused schema generation with Maybe to fail when using lists, such as Maybe[List[User]].
Releases contributed by @erikwrede via #3920
This release fixes an issue that caused schema generation with Maybe to fail when using lists, such as Maybe[List[User]].
Contributed by Erik Wrede via PR #3920
In this release, we fixed various edge cases around operation selection in GraphQL documents. Now, operation selection works consistently across all p
In this release, we fixed various edge cases around operation selection in GraphQL documents. Now, operation selection works consistently across all protocols, both in documents with single and multiple operations.
Releases contributed by @DoctorJohn via #3916
In this release, we fixed various edge cases around operation selection in GraphQL documents. Now, operation selection works consistently across all protocols, both in documents with single and multiple operations.
Contributed by Jonathan Ehwald via PR #3916
In this release, we updated the type hints for subscription_protocols across all HTTP view integrations. It's now consistently defined as Sequence[str
In this release, we updated the type hints for subscription_protocols across
all HTTP view integrations. It's now consistently defined as Sequence[str],
the minimum type required by Strawberry.
Releases contributed by @DoctorJohn via #3910
In this release, we updated the type hints for subscription_protocols across
all HTTP view integrations. It's now consistently defined as Sequence[str],
the minimum type required by Strawberry.
Contributed by Jonathan Ehwald via PR #3910
In this release, we replaced the usage of an undocumented AIOHTTP MultipartReader API with the intended public API.
In this release, we replaced the usage of an undocumented AIOHTTP
MultipartReader API with the intended public API.
Releases contributed by @DoctorJohn via #3906
In this release, we replaced the usage of an undocumented AIOHTTP
MultipartReader API with the intended public API.
Contributed by Jonathan Ehwald via PR #3906
This release fixes that the Chalice HTTP view integration did not set appropriate content-type headers for responses, as it's recommended by the Graph
This release fixes that the Chalice HTTP view integration did not set appropriate content-type headers for responses, as it's recommended by the GraphQL over HTTP specification.
Releases contributed by @DoctorJohn via #3904
This release fixes that the Chalice HTTP view integration did not set appropriate content-type headers for responses, as it's recommended by the GraphQL over HTTP specification.
Contributed by Jonathan Ehwald via PR #3904
Starting with this release, Strawberry will throw an error if one of your input types tries to inherit from one or more interfaces. This new error enf
Starting with this release, Strawberry will throw an error if one of your input types tries to inherit from one or more interfaces. This new error enforces the GraphQL specification that input types cannot implement interfaces.
The following code, for example, will now throw an error:
import strawberry
@strawberry.interface
class SomeInterface:
some_field: str
@strawberry.input
class SomeInput(SomeInterface):
another_field: int
Releases contributed by @scratchmex via #1254
This release modifies export-schema cli to include an EOF newline if --output option is provided. This allows better review in github.com for the gene
This release modifies export-schema cli to include an EOF newline if --output option is provided. This allows better review in github.com for the generated schema files.
Releases contributed by @yunkaiz via #3896
This release modifies export-schema cli to include an EOF newline if --output option is provided. This allows better review in github.com for the generated schema files.
Contributed by Yunkai Zhou via PR #3896
This release features a dedicated extension to disable introspection queries. Disabling introspection queries was already possible using the AddValida
This release features a dedicated extension to disable introspection queries.
Disabling introspection queries was already possible using the
AddValidationRules extension. However, using this new extension requires fewer
steps and makes the feature more discoverable.
import strawberry
from strawberry.extensions import DisableIntrospection
@strawberry.type
class Query:
@strawberry.field
def hello(self) -> str:
return "Hello, world!"
schema = strawberry.Schema(
Query,
extensions=[
DisableIntrospection(),
],
)
Releases contributed by @DoctorJohn via #3895
This release fixes an AttributeError that occurred when a fragment and an OperationDefinitionNode shared the same name, and the fragment appeared firs
This release fixes an AttributeError that occurred when a fragment and an OperationDefinitionNode shared the same name, and the fragment appeared first in the document.
The following example will now work as expected:
fragment UserAgent on UserAgentType {
id
}
query UserAgent {
userAgent {
...UserAgent
}
}
Releases contributed by @pre-commit-ci[bot] via #3893
This release fixes an AttributeError that occurred when a fragment and an OperationDefinitionNode shared the same name, and the fragment appeared first in the document.
The following example will now work as expected:
fragment UserAgent on UserAgentType {
id
}
query UserAgent {
userAgent {
...UserAgent
}
}
This Release contains fix of enum value was not working in generic container in lazy union.
This Release contains fix of enum value was not working in generic container in lazy union.
Releases contributed by @benzolium via #3883
This Release contains fix of enum value was not working in generic container in lazy union.
Added a new configuration option _unsafe_disable_same_type_validation that allows disabling the same type validation check in the schema converter. Th
Added a new configuration option _unsafe_disable_same_type_validation that allows disabling the same type validation check in the schema converter. This is useful in cases where you need to have multiple type definitions with the same name in your schema.
Example:
@strawberry.type(name="DuplicatedType")
class A:
a: int
@strawberry.type(name="DuplicatedType")
class B:
b: int
schema = strawberry.Schema(
query=Query,
types=[A, B],
config=strawberry.StrawberryConfig(_unsafe_disable_same_type_validation=True),
)
Note: This is an unsafe option and should be used with caution as it bypasses a safety check in the schema converter.
Releases contributed by @narmatov-asylbek via #3887
This release fixes that the create_type tool asked users to pass a name for fields without resolvers even when a name was already provided.
This release fixes that the create_type tool asked users to pass a name for
fields without resolvers even when a name was already provided.
The following code now works as expected:
import strawberry
from strawberry.tools import create_type
first_name = strawberry.field(name="firstName")
Query = create_type(f"Query", [first_name])
Releases contributed by @DoctorJohn via #3885
This release fixes that the create_type tool asked users to pass a name for
fields without resolvers even when a name was already provided.
The following code now works as expected:
import strawberry
from strawberry.tools import create_type
first_name = strawberry.field(name="firstName")
Query = create_type(f"Query", [first_name])
Contributed by Jonathan Ehwald via PR #3885
In this release, we improved some GraphQL over WS error messages. More precise error messages are now returned if Strawberry fails to find an operatio
In this release, we improved some GraphQL over WS error messages. More precise error messages are now returned if Strawberry fails to find an operation in the query document.
Releases contributed by @DoctorJohn via #3869
In this release, we improved some GraphQL over WS error messages. More precise error messages are now returned if Strawberry fails to find an operation in the query document.
Contributed by Jonathan Ehwald via PR #3869
This release fixes that the Strawberry debug server no longer supported WebSockets out of the box.
This release fixes that the Strawberry debug server no longer supported WebSockets out of the box.
Releases contributed by @DoctorJohn via #3872
This release fixes that the Strawberry debug server no longer supported WebSockets out of the box.
Contributed by Jonathan Ehwald via PR #3872
This release fixes an dependency issue with the Strawberry CLI and libcst.
This release fixes an dependency issue with the Strawberry CLI and libcst.
Releases contributed by @DoctorJohn via #3875
This release fixes an dependency issue with the Strawberry CLI and libcst.
Contributed by Jonathan Ehwald via PR #3875
This release resolves the issue of subscriptions started via the legacy graphql-ws WebSocket subprotocol getting stuck if a non-existing operationName
This release resolves the issue of subscriptions started via the legacy graphql-ws WebSocket subprotocol getting stuck if a non-existing operationName was specified.
Releases contributed by @DoctorJohn via #3858
This release resolves the issue of subscriptions started via the legacy graphql-ws WebSocket subprotocol getting stuck if a non-existing operationName was specified.
Contributed by Jonathan Ehwald via PR #3858
Your coding agent can read these notes before it upgrades. Set up the MCP server →