tag:github.com,2008:https://github.com/graphql-python/graphql-core/releasesRelease notes from graphql-core2026-03-05T16:13:23Ztag:github.com,2008:Repository/143207933/v3.3.0a122026-03-05T16:42:07Zv3.3.0a12<p>Alpha release GraphQL-core v3.3.0a12, based on GraphQL.js v17.0.0a7.</p>
<p>This patch-release supports Python 3.10 to 3.14.</p>
<p>Notable improvements since the last alpha release, in addition to the upstream improvements in v17.0.0.a7:</p>
<ul>
<li>Add serialization benchmark (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3786799895" data-permission-text="Title is private" data-url="https://github.com/graphql-python/graphql-core/issues/250" data-hovercard-type="pull_request" data-hovercard-url="/graphql-python/graphql-core/pull/250/hovercard" href="https://github.com/graphql-python/graphql-core/pull/250">#250</a>)</li>
<li>Use tuples instead of lists for all AST collection fields (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3786804193" data-permission-text="Title is private" data-url="https://github.com/graphql-python/graphql-core/issues/251" data-hovercard-type="pull_request" data-hovercard-url="/graphql-python/graphql-core/pull/251/hovercard" href="https://github.com/graphql-python/graphql-core/pull/251">#251</a>)</li>
<li>De-support Python 3.7 to 3.9 (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3786808352" data-permission-text="Title is private" data-url="https://github.com/graphql-python/graphql-core/issues/252" data-hovercard-type="pull_request" data-hovercard-url="/graphql-python/graphql-core/pull/252/hovercard" href="https://github.com/graphql-python/graphql-core/pull/252">#252</a>)</li>
<li>Make visitor immutable friendly (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3786810067" data-permission-text="Title is private" data-url="https://github.com/graphql-python/graphql-core/issues/253" data-hovercard-type="pull_request" data-hovercard-url="/graphql-python/graphql-core/pull/253/hovercard" href="https://github.com/graphql-python/graphql-core/pull/253">#253</a>)</li>
<li>Fix parser type safety for stricter AST types (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3787391026" data-permission-text="Title is private" data-url="https://github.com/graphql-python/graphql-core/issues/255" data-hovercard-type="pull_request" data-hovercard-url="/graphql-python/graphql-core/pull/255/hovercard" href="https://github.com/graphql-python/graphql-core/pull/255">#255</a>)</li>
<li>Convert AST nodes to frozen dataclasses (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3787398469" data-permission-text="Title is private" data-url="https://github.com/graphql-python/graphql-core/issues/256" data-hovercard-type="pull_request" data-hovercard-url="/graphql-python/graphql-core/pull/256/hovercard" href="https://github.com/graphql-python/graphql-core/pull/256">#256</a>)</li>
<li>Support custom async iterables (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3839660666" data-permission-text="Title is private" data-url="https://github.com/graphql-python/graphql-core/issues/258" data-hovercard-type="issue" data-hovercard-url="/graphql-python/graphql-core/issues/258/hovercard" href="https://github.com/graphql-python/graphql-core/issues/258">#258</a>)</li>
<li>Improve type hints using Self (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4005269602" data-permission-text="Title is private" data-url="https://github.com/graphql-python/graphql-core/issues/259" data-hovercard-type="pull_request" data-hovercard-url="/graphql-python/graphql-core/pull/259/hovercard" href="https://github.com/graphql-python/graphql-core/pull/259">#259</a>)</li>
</ul>
<p>Thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jkimbo/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jkimbo">@jkimbo</a> for sponsoring this project, and to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bellini666/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bellini666">@bellini666</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bigfootjon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bigfootjon">@bigfootjon</a> and <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/corydolphin/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/corydolphin">@corydolphin</a> for contributing to this release.</p>Citotag:github.com,2008:Repository/143207933/v3.2.82026-03-05T20:00:37Zv3.2.8<p>Patch-release GraphQL-core v3.2.8, based on GraphQL.js v16.9.0.</p>
<p>This patch-release supports Python 3.7 to 3.14.</p>
<p>One change has been backported from the v3.3 branch:</p>
<ul>
<li>Require non-empty directive locations</li>
</ul>
<p>Also, for backward compatibility, introspection.TypeResolvers is available again, as alias for TypeFields.</p>
<p>Thanks to all who are sponsoring me (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Cito/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Cito">@Cito</a>) for maintaining this project.</p>Citotag:github.com,2008:Repository/143207933/v3.3.0a112025-11-01T18:09:35Zv3.3.0a11<p>Alpha release GraphQL-core v3.3.0a11, based on GraphQL.js v17.0.0a5.</p>
<p>Notable improvements since the last alpha release:</p>
<ul>
<li>Python 3.14 is now officially supported</li>
<li>Enum values, input fields and schemas now keep extensions on sorting (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3549102538" data-permission-text="Title is private" data-url="https://github.com/graphql-python/graphql-core/issues/245" data-hovercard-type="pull_request" data-hovercard-url="/graphql-python/graphql-core/pull/245/hovercard" href="https://github.com/graphql-python/graphql-core/pull/245">#245</a>)</li>
<li>Various refactorings and changes concerning <code>@defer</code> and <code>@stream</code></li>
<li>Early execution on incremental delivery is now disabled by default</li>
<li>New recommended validation rule for max introspection depth</li>
<li>GraphQLEnumType values can now be specified via a callable</li>
</ul>
<p>Thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jkimbo/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jkimbo">@jkimbo</a> for sponsoring this project, and to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/erikwrede/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/erikwrede">@erikwrede</a> for contributing to this release.</p>Citotag:github.com,2008:Repository/143207933/v3.2.72025-11-01T22:48:16Zv3.2.7<p>Patch-release GraphQL-core v3.2.7, based on GraphQL.js v16.9.0.</p>
<p>This patch-release supports Python 3.7 to 3.14.</p>
<p>The following changes have been backported from the v3.3 branch:</p>
<ul>
<li>Keep extensions when sorting schemas</li>
<li>Introduce "recommended" validation rules</li>
<li>Implement OneOf Input Objects via <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/OneOf/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/OneOf">@OneOf</a> directive</li>
<li>Values can now be passed to GraphQLEnumType as a thunk</li>
<li>Solved issues with pickled schemas</li>
</ul>
<p>Thanks to all who are sponsoring me (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Cito/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Cito">@Cito</a>) for maintaining this project.</p>Citotag:github.com,2008:Repository/143207933/v3.3.0a102025-09-28T19:11:49Zv3.3.0a10<p>Alpha release GraphQL-core v3.3.0a10, still based on GraphQL.js v17.0.0a3.</p>
<p>Notable improvements since the last alpha release:</p>
<ul>
<li>Fixed attribute error on exception with bad <code>source</code> (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3340178236" data-permission-text="Title is private" data-url="https://github.com/graphql-python/graphql-core/issues/240" data-hovercard-type="pull_request" data-hovercard-url="/graphql-python/graphql-core/pull/240/hovercard" href="https://github.com/graphql-python/graphql-core/pull/240">#240</a>)</li>
<li>Add <code>@oneOf</code> support to introspection query (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3413850377" data-permission-text="Title is private" data-url="https://github.com/graphql-python/graphql-core/issues/241" data-hovercard-type="pull_request" data-hovercard-url="/graphql-python/graphql-core/pull/241/hovercard" href="https://github.com/graphql-python/graphql-core/pull/241">#241</a>)</li>
<li>Use AnyIO instead of pytest-asyncio for running async tests (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3418573930" data-permission-text="Title is private" data-url="https://github.com/graphql-python/graphql-core/issues/242" data-hovercard-type="pull_request" data-hovercard-url="/graphql-python/graphql-core/pull/242/hovercard" href="https://github.com/graphql-python/graphql-core/pull/242">#242</a>)</li>
<li>introduced <code>GraphQLWrappedResult</code> to avoid filtering in incremental delivery</li>
<li>Use uv instead of poetry as default packaging tool</li>
<li>Some performance improvements and refactorings from upstream</li>
<li>Various code cleanups</li>
</ul>
<p>Thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jkimbo/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jkimbo">@jkimbo</a> for sponsoring this project, and to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/agronholm/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/agronholm">@agronholm</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/erikwrede/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/erikwrede">@erikwrede</a> and <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/kimjh12/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/kimjh12">@kimjh12</a> for contributing to this release.</p>Citotag:github.com,2008:Repository/143207933/v3.3.0a92025-11-01T16:25:44Zv3.3.0a9<p>Alpha release GraphQL-core v3.3.0a9, based on GraphQL.js v17.0.0a3.</p>
<p>Notable improvements since the last alpha release:</p>
<ul>
<li>Allow nested defers at the same level</li>
<li>Skip empty subsequent results</li>
</ul>
<p>Thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/patrick91/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/patrick91">@patrick91</a> and <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jkimbo/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jkimbo">@jkimbo</a> for sponsoring this project.</p>Citotag:github.com,2008:Repository/143207933/v3.3.0a82025-05-24T20:05:52Zv3.3.0a8<p>Alpha release GraphQL-core v3.3.0a8, based on GraphQL.js v17.0.0a3.</p>
<p>Notable improvements since the last alpha release:</p>
<ul>
<li>Fix IntrospectionQuery type definition (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2856352101" data-permission-text="Title is private" data-url="https://github.com/graphql-python/graphql-core/issues/234" data-hovercard-type="pull_request" data-hovercard-url="/graphql-python/graphql-core/pull/234/hovercard" href="https://github.com/graphql-python/graphql-core/pull/234">#234</a>)</li>
<li>Cancel remaining fields on exceptions (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2948429503" data-permission-text="Title is private" data-url="https://github.com/graphql-python/graphql-core/issues/236" data-hovercard-type="issue" data-hovercard-url="/graphql-python/graphql-core/issues/236/hovercard" href="https://github.com/graphql-python/graphql-core/issues/236">#236</a> and <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3060666196" data-permission-text="Title is private" data-url="https://github.com/graphql-python/graphql-core/issues/238" data-hovercard-type="pull_request" data-hovercard-url="/graphql-python/graphql-core/pull/238/hovercard" href="https://github.com/graphql-python/graphql-core/pull/238">#238</a>)</li>
<li>Cancel remaining list and iterator items on exceptions</li>
<li>Cancel remaining type resolvers on exceptions</li>
<li>Suppress records for deferred fragments that are completely empty</li>
<li>Add support for <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/OneOf/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/OneOf">@OneOf</a> directives in print_schema</li>
</ul>
<p>Thanks again to the sponsors of this project, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/patrick91/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/patrick91">@patrick91</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jkimbo/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jkimbo">@jkimbo</a>, and to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/erikwrede/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/erikwrede">@erikwrede</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/magikmark/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/magikmark">@magikmark</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/mgorven/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/mgorven">@mgorven</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/sobolevn/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/sobolevn">@sobolevn</a> and <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/willemt/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/willemt">@willemt</a> for contributing to this release.</p>
<p>Sorry for lagging behind upstream a bit and not always responding as quickly as I want to.</p>Citotag:github.com,2008:Repository/143207933/v3.3.0a72025-05-24T19:50:32Zv3.3.0a7<p>Alpha release GraphQL-core v3.3.0a7, based on GraphQL.js v17.0.0a3.</p>
<p>Notable improvements since the last alpha release:</p>
<ul>
<li>This release also supports Python 3.13</li>
<li>New incremental response format using <code>id</code> and <code>subPath</code> and pending notifications</li>
<li>OneOf Input Objects via <code>@oneOf</code> directive</li>
<li>Speedup sorting and building/extending schema</li>
<li>Support for fourfold nested lists in introspection</li>
<li>Transform input objects used as default values (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1802951539" data-permission-text="Title is private" data-url="https://github.com/graphql-python/graphql-core/issues/206" data-hovercard-type="issue" data-hovercard-url="/graphql-python/graphql-core/issues/206/hovercard" href="https://github.com/graphql-python/graphql-core/issues/206">#206</a>)</li>
<li>Support deep copy of schema with directive with arg of custom type (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1974516481" data-permission-text="Title is private" data-url="https://github.com/graphql-python/graphql-core/issues/210" data-hovercard-type="issue" data-hovercard-url="/graphql-python/graphql-core/issues/210/hovercard" href="https://github.com/graphql-python/graphql-core/issues/210">#210</a>)</li>
<li>Allow injecting custom data to custom execution context (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2488923482" data-permission-text="Title is private" data-url="https://github.com/graphql-python/graphql-core/issues/226" data-hovercard-type="issue" data-hovercard-url="/graphql-python/graphql-core/issues/226/hovercard" href="https://github.com/graphql-python/graphql-core/issues/226">#226</a>)</li>
<li>ValidationAbortedError can now be imported (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2540642114" data-permission-text="Title is private" data-url="https://github.com/graphql-python/graphql-core/issues/227" data-hovercard-type="pull_request" data-hovercard-url="/graphql-python/graphql-core/pull/227/hovercard" href="https://github.com/graphql-python/graphql-core/pull/227">#227</a>)</li>
<li>Benchmarking with CodSpeed (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2599052960" data-permission-text="Title is private" data-url="https://github.com/graphql-python/graphql-core/issues/230" data-hovercard-type="pull_request" data-hovercard-url="/graphql-python/graphql-core/pull/230/hovercard" href="https://github.com/graphql-python/graphql-core/pull/230">#230</a>)</li>
</ul>
<p>Thanks again to the sponsors of this project, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/patrick91/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/patrick91">@patrick91</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jkimbo/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jkimbo">@jkimbo</a>, <a class="user-mention notranslate" data-hovercard-type="organization" data-hovercard-url="/orgs/getsentry/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/getsentry">@getsentry</a>, and to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/erikwrede/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/erikwrede">@erikwrede</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/menma1234/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/menma1234">@menma1234</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/patrick91/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/patrick91">@patrick91</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rafalp/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rafalp">@rafalp</a> and <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/trim21/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/trim21">@trim21</a> for contributing to this release.</p>
<p>Sorry for lagging behind upstream a bit and not always responding as quickly as I want to.</p>Citotag:github.com,2008:Repository/143207933/v3.2.62025-01-26T16:45:46Zv3.2.6<p>Patch-release GraphQL-core v3.2.6, based on GraphQL.js v16.8.2.</p>
<p>This patch-release supports Python 3.6 to 3.13. Notable fixes:</p>
<ul>
<li>Transform input objects used as default values (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1802951539" data-permission-text="Title is private" data-url="https://github.com/graphql-python/graphql-core/issues/206" data-hovercard-type="issue" data-hovercard-url="/graphql-python/graphql-core/issues/206/hovercard" href="https://github.com/graphql-python/graphql-core/issues/206">#206</a>)</li>
<li>Allow deep copy of schema with directive with args of custom type (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1974516481" data-permission-text="Title is private" data-url="https://github.com/graphql-python/graphql-core/issues/210" data-hovercard-type="issue" data-hovercard-url="/graphql-python/graphql-core/issues/210/hovercard" href="https://github.com/graphql-python/graphql-core/issues/210">#210</a>)</li>
</ul>
<p>Thanks to all who are sponsoring me (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Cito/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Cito">@Cito</a>) for maintaining this project.</p>Citotag:github.com,2008:Repository/143207933/v3.2.52024-10-13T18:30:08Zv3.2.5<p>Patch-release GraphQL-core v3.2.5, based on GraphQL.js v16.8.2.</p>
<p>This patch-release supports Python 3.6 to 3.13.</p>
<p>Thanks to all who are sponsoring me (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Cito/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Cito">@Cito</a>) for maintaining this project.</p>Cito