Skip to content

Commit 4e975a2

Browse files
committed
🤖 Release 0.326.0
This release fixes introspection for custom schema directives. Schema directives attached to types, fields, arguments, and other schema elements now appear in standard GraphQL introspection. Schema explorers, IDEs, code generators, and other tools can discover each directive's description, arguments, allowed locations, repeatability, and any input types it uses. Federation directives, including generated `@link` and `@composeDirective` applications, are discoverable in the same way. Federation directives and custom composed directives used on field arguments are also included in the generated subgraph metadata, so routers can recognize those argument annotations without additional schema configuration. A directive reused across the schema is defined only once. Input, enum, and scalar types referenced by directive arguments are now part of the schema and may appear in generated SDL even when they are not used by fields. Because these directives and argument types are now part of the runtime schema, their GraphQL names must be unique. Schema construction reports a clear error when different directive definitions share a name, a custom directive replaces a built-in directive such as `@skip`, or a directive argument type conflicts with another schema type. Compatible custom `@oneOf` definitions continue to use GraphQL's built-in directive. Strawberry now also resolves attached directive argument annotations during schema construction, so unresolved forward references are reported when the schema is created instead of later when its SDL is printed. [skip ci]
1 parent 073c4b4 commit 4e975a2

4 files changed

Lines changed: 33 additions & 40 deletions

File tree

CHANGELOG.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,37 @@
11
CHANGELOG
22
=========
33

4+
0.326.0 - 2026-08-31
5+
--------------------
6+
7+
This release fixes introspection for custom schema directives.
8+
9+
Schema directives attached to types, fields, arguments, and other schema elements
10+
now appear in standard GraphQL introspection. Schema explorers, IDEs, code
11+
generators, and other tools can discover each directive's description, arguments,
12+
allowed locations, repeatability, and any input types it uses. Federation directives,
13+
including generated `@link` and `@composeDirective` applications, are discoverable
14+
in the same way.
15+
16+
Federation directives and custom composed directives used on field arguments are
17+
also included in the generated subgraph metadata, so routers can recognize those
18+
argument annotations without additional schema configuration.
19+
20+
A directive reused across the schema is defined only once. Input, enum, and scalar
21+
types referenced by directive arguments are now part of the schema and may appear
22+
in generated SDL even when they are not used by fields.
23+
24+
Because these directives and argument types are now part of the runtime schema,
25+
their GraphQL names must be unique. Schema construction reports a clear error when
26+
different directive definitions share a name, a custom directive replaces a
27+
built-in directive such as `@skip`, or a directive argument type conflicts with
28+
another schema type. Compatible custom `@oneOf` definitions continue to use
29+
GraphQL's built-in directive. Strawberry now also resolves attached directive
30+
argument annotations during schema construction, so unresolved forward references
31+
are reported when the schema is created instead of later when its SDL is printed.
32+
33+
This release was contributed by [@patrick91](https://github.com/patrick91) in [#4598](https://github.com/strawberry-graphql/strawberry/pull/4598)
34+
435
0.325.0 - 2026-08-30
536
--------------------
637

RELEASE.md

Lines changed: 0 additions & 38 deletions
This file was deleted.

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "strawberry-graphql"
3-
version = "0.325.0"
3+
version = "0.326.0"
44
description = "A library for creating GraphQL APIs"
55
authors = [{ name = "Patrick Arminio", email = "patrick.arminio@gmail.com" }]
66
license = "MIT"

uv.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)