fix(deps): update dependency strawberry-graphql-django to v0.89.2 - #51
Open
renovate[bot] wants to merge 1 commit into
Open
renovate[bot] wants to merge 1 commit into
renovate[bot] wants to merge 1 commit into
Conversation
renovate
Bot
force-pushed
the
renovate/strawberry-graphql-django-0.x
branch
from
May 1, 2025 11:39
90bbc18 to
599e7de
Compare
renovate
Bot
force-pushed
the
renovate/strawberry-graphql-django-0.x
branch
2 times, most recently
from
May 6, 2025 12:28
8272e17 to
d441361
Compare
renovate
Bot
force-pushed
the
renovate/strawberry-graphql-django-0.x
branch
2 times, most recently
from
May 24, 2025 10:54
e54dc55 to
d547cf4
Compare
renovate
Bot
force-pushed
the
renovate/strawberry-graphql-django-0.x
branch
from
June 8, 2025 13:41
d547cf4 to
540644c
Compare
renovate
Bot
force-pushed
the
renovate/strawberry-graphql-django-0.x
branch
from
June 16, 2025 20:30
540644c to
eeb07cf
Compare
renovate
Bot
force-pushed
the
renovate/strawberry-graphql-django-0.x
branch
from
July 16, 2025 17:52
eeb07cf to
663b022
Compare
renovate
Bot
force-pushed
the
renovate/strawberry-graphql-django-0.x
branch
from
July 19, 2025 14:01
663b022 to
5b56e9c
Compare
renovate
Bot
force-pushed
the
renovate/strawberry-graphql-django-0.x
branch
from
July 20, 2025 09:55
5b56e9c to
e0f1f20
Compare
renovate
Bot
force-pushed
the
renovate/strawberry-graphql-django-0.x
branch
from
July 26, 2025 14:52
e0f1f20 to
b9dde91
Compare
renovate
Bot
force-pushed
the
renovate/strawberry-graphql-django-0.x
branch
2 times, most recently
from
August 13, 2025 17:38
aa3542a to
3d8ef27
Compare
renovate
Bot
force-pushed
the
renovate/strawberry-graphql-django-0.x
branch
from
August 19, 2025 13:59
3d8ef27 to
bc664f0
Compare
renovate
Bot
force-pushed
the
renovate/strawberry-graphql-django-0.x
branch
from
August 24, 2025 13:07
bc664f0 to
0b84557
Compare
renovate
Bot
force-pushed
the
renovate/strawberry-graphql-django-0.x
branch
from
August 31, 2025 10:06
0b84557 to
1c6a5a8
Compare
renovate
Bot
force-pushed
the
renovate/strawberry-graphql-django-0.x
branch
from
October 12, 2025 12:41
1c6a5a8 to
531f767
Compare
renovate
Bot
force-pushed
the
renovate/strawberry-graphql-django-0.x
branch
from
October 14, 2025 16:48
531f767 to
48d4706
Compare
renovate
Bot
force-pushed
the
renovate/strawberry-graphql-django-0.x
branch
from
December 4, 2025 02:48
aeacd0b to
1080ba2
Compare
renovate
Bot
force-pushed
the
renovate/strawberry-graphql-django-0.x
branch
from
December 6, 2025 18:06
1080ba2 to
fbf8cc2
Compare
renovate
Bot
force-pushed
the
renovate/strawberry-graphql-django-0.x
branch
from
December 7, 2025 01:13
fbf8cc2 to
743eeca
Compare
renovate
Bot
force-pushed
the
renovate/strawberry-graphql-django-0.x
branch
from
December 8, 2025 23:13
743eeca to
101d7fe
Compare
renovate
Bot
force-pushed
the
renovate/strawberry-graphql-django-0.x
branch
from
December 26, 2025 17:07
101d7fe to
9da5806
Compare
renovate
Bot
force-pushed
the
renovate/strawberry-graphql-django-0.x
branch
from
December 28, 2025 14:07
9da5806 to
a21c5aa
Compare
renovate
Bot
force-pushed
the
renovate/strawberry-graphql-django-0.x
branch
2 times, most recently
from
January 4, 2026 17:45
f9c64e3 to
1fab5b9
Compare
renovate
Bot
force-pushed
the
renovate/strawberry-graphql-django-0.x
branch
from
January 9, 2026 20:42
1fab5b9 to
a6e39e9
Compare
renovate
Bot
force-pushed
the
renovate/strawberry-graphql-django-0.x
branch
from
January 17, 2026 12:55
a6e39e9 to
a088c3d
Compare
renovate
Bot
force-pushed
the
renovate/strawberry-graphql-django-0.x
branch
from
January 18, 2026 14:09
a088c3d to
c7b7c8c
Compare
renovate
Bot
force-pushed
the
renovate/strawberry-graphql-django-0.x
branch
from
January 27, 2026 22:45
c7b7c8c to
58e588f
Compare
renovate
Bot
force-pushed
the
renovate/strawberry-graphql-django-0.x
branch
from
February 2, 2026 21:49
58e588f to
c18636d
Compare
renovate
Bot
force-pushed
the
renovate/strawberry-graphql-django-0.x
branch
2 times, most recently
from
February 15, 2026 13:42
04dc53e to
abe3361
Compare
renovate
Bot
force-pushed
the
renovate/strawberry-graphql-django-0.x
branch
from
February 18, 2026 18:27
abe3361 to
2d6d13a
Compare
Contributor
Author
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
==0.47.1→==0.89.2Release Notes
strawberry-graphql/strawberry-django (strawberry-graphql-django)
v0.89.2Compare Source
Fix nullable connections (e.g. when guarded by a permission extension) eagerly
fetching the entire table before the connection applied its pagination. The
return type is now unwrapped from
StrawberryOptional/other containers so thequeryset evaluation stays deferred and the connection can apply a
LIMIT.This release was contributed by @rcybulski1122012 in #953
v0.89.1Compare Source
Permission extensions are now fully compatible with
strawberry-graphql >= 0.326.0, which enforces strict type uniqueness for custom schema directives during schema construction.Previously,
DjangoPermissionExtension.schema_directivecreated a new anonymousAutoDirectiveclass on every extension instantiation without caching it on the underlying class.When the same permission extension (e.g.
IsSuperuser(),IsAuthenticated(), or custom subclasses) was attached to multiple fields, Strawberry raised aValueErrorreporting duplicate directive definitions for the same directive name.The generated
AutoDirectiveclass is now cached onself.__class__via__dict__.get():This ensures a single, reusable schema directive type is created per extension class, eliminating duplicate directive collisions while preserving full isolation across subclasses and maintaining backward compatibility with older Strawberry versions.
This release was contributed by @daudln in #951
Additional contributors: @bellini666, @Copilot, @pre-commit-ci[bot]
v0.89.0Compare Source
Require Strawberry GraphQL 0.322.2 or newer, which fixes Relay pagination when combining
firstwithbefore. Update compatibility tests for the corrected pagination behavior and make schema comparisons independent of top-level definition order.Update GraphQL-core 3.3 compatibility for the 3.3.0rc0 execution API, preserving resolve-info context and adapting fragment and variable values used by the query optimizer.
This release was contributed by @patrick91 in #955
Additional contributors: @pre-commit-ci[bot]
v0.88.1Compare Source
Permission extensions are now fully compatible with
strawberry-graphql >= 0.326.0, which enforces strict type uniqueness for custom schema directives during schema construction.Previously,
DjangoPermissionExtension.schema_directivecreated a new anonymousAutoDirectiveclass on every extension instantiation without caching it on the underlying class.When the same permission extension (e.g.
IsSuperuser(),IsAuthenticated(), or custom subclasses) was attached to multiple fields, Strawberry raised aValueErrorreporting duplicate directive definitions for the same directive name.The generated
AutoDirectiveclass is now cached onself.__class__via__dict__.get():This ensures a single, reusable schema directive type is created per extension class, eliminating duplicate directive collisions while preserving full isolation across subclasses and maintaining backward compatibility with older Strawberry versions.
This release was contributed by @daudln in #949
Additional contributors: @Copilot, @bellini666, @pre-commit-ci[bot]
v0.88.0Compare Source
Allow mutations with Django error handling to return interfaces by expanding them to their concrete implementations.
This release was contributed by @Guflly in #939
Additional contributors: @bellini666
v0.87.1Compare Source
Fix the query optimizer dropping a manually applied
select_relatedfrom theonly()mask when another field on the same model shares its name as aprefix without a
__boundary (e.g.companyvscompany_branch). Thispreviously made Django raise
FieldError: cannot be both deferred and traversed using select_related at the same timewhenever only the longersibling was selected in the query.
This release was contributed by @cjcontreras in #945
v0.87.0Compare Source
Resolve prefetch-optimized nested connections on the event loop instead of
paying a
sync_to_asyncthread hop per parent node: the nested-connectiondefault resolver, the queryset hook for prefetch-optimized querysets and
totalCountserved from the prefetched window annotation no longer touchthe database, so they no longer need a worker thread.
This release was contributed by @rcybulski1122012 in #932
Additional contributors: @Copilot
v0.86.8Compare Source
The built-in toolbar script is now compatible with django-debug-toolbar 7.0.0,
which renders the toolbar inside a shadow DOM by default.
Previously, all DOM queries targeted
#djDebugdirectly on the document,which broke under shadow DOM isolation —
querySelectorcannot pierce a shadowboundary.
Using a
getDebugElement()helper that locates#djDebugviathe shadow root of its parent element (
#djDebugRoot):This also handles the
USE_SHADOW_DOM = Falsefallback gracefully, keepingbackward compatibility with older versions of the toolbar.
This release was contributed by @daudln in #926
Additional contributors: @bellini666, @pre-commit-ci[bot], @Copilot
v0.86.7Compare Source
Honor the
DEFAULT_PK_FIELD_NAMEsetting (and per-fieldkey_attr) whenresolving existing instances in mutation inputs. Previously
_parse_pkread theinput value under
key_attrbut always looked the instance up bypk=, sorelation inputs and bare-id updates that reference an object by a configured
non-pk field raised
DoesNotExistor matched the wrong row. Filters alreadyhonored the setting; mutations now do too. The default
pk-based path isunchanged.
This release was contributed by @ayushin in #928
v0.86.6Compare Source
Fix an N+1 on
totalCountof nested connections optimized by prefetching:parents whose prefetched first-page partition came back empty issued one
COUNT(*)query each, even though an empty first page already proves thetotal count is 0.
This release was contributed by @rcybulski1122012 in #931
Additional contributors: @Copilot
v0.86.5Compare Source
Document the Django validation cache extension and its Django cache backend options.
This release was contributed by @w3lld1 in #934
v0.86.4Compare Source
@strawberry_django.typetypes no longer overwriteis_type_ofmethods in superclasses.Instead, the superclass' result will be taken into account as well.
This release was contributed by @diesieben07 in #922
v0.86.3Compare Source
Connection resolvers can now be annotated with a
QuerySet[Model]return typeinstead of being forced to widen it to
Iterable[Model]:Previously this raised
RelayWrongResolverAnnotationErrorbecause Django'sQuerySet[Model]collapses to the bareQuerySetclass, which the relayannotation check did not recognize as iterable.
This release was contributed by @bellini666 in #920
v0.86.2Compare Source
Resolving a Relay node's
idno longer goes throughsync_to_asyncon every call.resolve_id/resolve_id_attrnow read the primary key directly off the in-memoryinstance, removing an unnecessary thread hop (and contextvars copy) in async contexts.
The deferred-field fallback still bridges database access safely.
This release was contributed by @bellini666 in #921
v0.86.1Compare Source
Fix
offset_paginatedfields applying the filter pipeline twice per resolution.StrawberryOffsetPaginatedExtension.resolveforwardsfilters/order/paginationto the inner resolver (so extensions and custom resolvers can access them), but then
re-applied them on the queryset the resolver returned. Filters, permission filtering
and the optimizer pass all ran twice; for a filter spanning a multivalued relation
the second
.filter()duplicated the relation JOINs, which can grow the intermediaterow count quadratically and turn a sub-second query into a multi-minute one.
The queryset returned by the inner resolver is now passed straight to
resolve_paginated, matching the behavior of relay connection fields.This release was contributed by @aprams in #916
v0.86.0Compare Source
DateFilterLookup,TimeFilterLookupandDatetimeFilterLookupno longer require a type parameter, matchingStrFilterLookup. The generated GraphQL input names also lose their type prefix (e.g.DateDateFilterLookupbecomesDateFilterLookup).Migrating:
StrFilterLookup[str],DateFilterLookup[datetime.date], etc. The bare lookup now works; the bracket form still resolves to the same class but emits aDeprecationWarning.DatetimeFilterLookup.dateand.timenow acceptDate/Timevalues (previously typed asInt, which never matched Django's__date/__timetransforms).TimeFilterLookup.dateand.timewere removed. Django's__date/__timetransforms don't apply toTimeField.This release was contributed by @bellini666 in #910
v0.85.0Compare Source
Breaking change:
PAGINATION_MAX_LIMITnow defaults to100instead ofNone, so clients canno longer request more than 100 rows in a single page by default.
Previously, the cap was off and
PAGINATION_DEFAULT_LIMITonly applied when the client omitted thelimit, which let any client send
limit: 9999999and receive the full table in one response.To restore the old behavior, set
PAGINATION_MAX_LIMITtoNoneinSTRAWBERRY_DJANGO(not recommended for production).
This release was contributed by @bellini666 in #909
Additional contributors: @Copilot
v0.84.0Compare Source
Propagate child-type
only=hints through method resolvers that declare therelation via
select_related. Previously they were silently dropped, causingdeferred loads or
KeyErrors on descriptors without a deferred-load fallback(e.g.
djmoney.MoneyField) once the parent'sselect_relatedreached past asingle hop.
child.extra_datais now included in the parent's first SELECT.This release was contributed by @bellini666 in #905
v0.83.0Compare Source
Drop support for Django 4.2.
Drop support for Django 5.0.
Drop support for Django 5.1.
This release was contributed by @p-r-a-v-i-n in #897
v0.82.1Compare Source
Fix
FieldErrorwhen using the optimizer withdjango-polymorphicmodels.The optimizer now uses the CamelCase model name for polymorphic optimization hints (e.g.,
ArtProject___fieldinstead ofapp_label__artproject___field). This ensures thatdjango-polymorphiccorrectly handles mismatched optimization hints during the realization of mixed querysets by raising anAssertionError(which it catches) instead of an unhandledFieldError. This change also avoids potential name collisions with lowercase reverse relations in multi-table inheritance.A
polymorphicoptional dependency extra has been added, which sets the lower limit version to4.0.0. Install withpip install strawberry-graphql-django[polymorphic]to pull indjango-polymorphic.This release was contributed by @valkrypton in #894
Additional contributors: @bellini666
v0.82.0Compare Source
Fix
FieldExtensionarguments being silently lost onStrawberryDjangoField.When a
FieldExtensionappended arguments tofield.argumentsin itsapply()method, the arguments worked withstrawberry.fieldbut silently disappeared withstrawberry_django.field. This was because the mixin chain (Pagination → Ordering → Filters → Base) created a new list on every.argumentsaccess, so.append()mutated a temporary copy.Added a caching
argumentsproperty toStrawberryDjangoFieldso that the first access computes and caches the full arguments list, and subsequent accesses (including.append()from extensions) operate on the same cached list.This release was contributed by @bellini666 in #892
v0.81.0Compare Source
Fix
StrFilterLookupso it can be used without a type parameter (e.g.,name: StrFilterLookup | None). Previously this raisedTypeError: "StrFilterLookup" is generic, but no type has been passedat schema build time.This release was contributed by @bellini666 in #891
v0.80.0Compare Source
Add support for graphql-core 3.3.x alongside existing 3.2.x support.
The minimum supported version of strawberry-graphql has been increased to 0.310.1.
When using the graphql-core 3.3.x series, the minimum supported version is 3.3.0a12.
This release was contributed by @bellini666 in #850
v0.79.2Compare Source
Fix docs example for
process_filterscustom filter method whereprefixwas missing a trailing__, causing DjangoFieldError. Also add aUserWarninginprocess_filters()when a non-empty prefix doesn't end with__to help users catch this mistake early.This release was contributed by @Ckk3 in #883
v0.79.1Compare Source
Fix FK
_idfields (e.g.color_id: auto) in input types failing withmutations.create(). Previously,prepare_create_update()didn't recognize FK attnames, causing the value to be silently dropped andfull_clean()to fail. Now attname fields are mapped and their raw PK values are passed through directly.This release was contributed by @bellini666 in #880
v0.79.0Compare Source
Pass
Infoinstead ofGraphQLResolveInfoto callables provided inprefetch_relatedandannotatearguments ofstrawberry_django.field.This is technically a breaking change because the argument type passed to these callables has changed. However,
Infoacts as a proxy forGraphQLResolveInfoand is compatible with the utilities typically used within prefetch or annotate functions, such asoptimize.This release was contributed by @rcybulski1122012 in #872
v0.78.0Compare Source
Add
skip_queryset_filterparameter tofilter_field()for declaring virtual (non-filtering) fields on filter types.Fields marked with
skip_queryset_filter=Trueappear in the GraphQL input type but are not applied as database filters. They are accessible viaself.<field>in custom filter methods, making them useful for passing parameters like thresholds or configuration values.This release was contributed by @bellini666 in #876
v0.77.0Compare Source
Automatically inject FK fields into
.only()on user-providedPrefetchquerysetswhen the
onlyoptimization is enabled.This prevents N+1 queries caused by Django re-fetching the FK field needed to match
prefetched rows back to parent objects.
The optimizer now correctly resolves reverse relations by
related_nameand restrictsFK injection to
ManyToOneRel,OneToOneRel, andGenericRelation.This release was contributed by @bellini666 in #874
v0.76.2Compare Source
Fix N+1 queries when using
optimize()inside aPrefetchobject with.only()optimization. The optimizer now correctly auto-adds the FK field needed by Django to match prefetched objects back to their parent.This release was contributed by @bellini666 in #873
v0.76.1Compare Source
Fix optimizer skipping optimization entirely for aliased fields. When a GraphQL query uses aliases for the same field (e.g.,
a: milestones { id }andb: milestones { id }), the optimizer now merges them into a single prefetch instead of skipping optimization, preventing N+1 queries.Aliases with different arguments (e.g.,
a: issues(filters: {search: "Foo"})andb: issues(filters: {search: "Bar"})) are still skipped, since a single prefetch cannot satisfy both filter sets and optimizing one would produce wrong results for the other.This release was contributed by @bellini666 in #871
v0.76.0Compare Source
Add native federation support via
strawberry_django.federationmodule.New decorators that combine
strawberry_djangofunctionality with Apollo Federation:strawberry_django.federation.type- Federation-aware Django type with auto-generatedresolve_referencestrawberry_django.federation.interface- Federation-aware Django interfacestrawberry_django.federation.field- Federation-aware Django field with directives like@external,@requires,@providesExample usage:
The auto-generated
resolve_referencemethods support composite keys and multiple keys, and integrate with the query optimizer.Note: This release requires
strawberry-graphql>=0.303.0.v0.75.3Compare Source
Add support for strawberry-graphql 0.307.x.
Also, the deprecated
asserts_errorsparameter has been removed from test clientquery()methods. Useassert_no_errorsinstead.This release was contributed by @bellini666 in #870
Additional contributors: @Copilot
v0.75.2Compare Source
Fixes compatibility with
strawberry-graphql>=0.296.0by ensuring properInfotype resolution.Infois now imported at runtime and resolver arguments include explicit type annotations.This aligns with the updated behavior where parameter injection is strictly type-hint based rather than name-based.
Before, resolvers relying on implicit name-based injection could fail under newer Strawberry versions.
After this change, resolvers work correctly with the stricter type-based injection system introduced in newer releases.
This release was contributed by @daudln in #866
Additional contributors: @pre-commit-ci[bot]
v0.75.1Compare Source
Fix
DuplicatedTypeNameerrors when usingFilterLookup[str]by:StrFilterLookupfrom the top-levelstrawberry_djangomoduleFilterLookup[str]orFilterLookup[uuid.UUID]Users should migrate from:
To:
This release was contributed by @bellini666 in #851
v0.75.0Compare Source
Adds support for Django-style relationship traversal in
strawberry_django.field(field_name=...)usingLOOKUP_SEP(__). You can now flatten related objects or scalar fields without custom resolvers.Examples:
The traversal returns
Noneif an intermediate relationship isNone. Documentation and tests cover the new behavior, including optimizer query counts.This release was contributed by @bellini666 in #852
v0.74.3Compare Source
v0.74.2Compare Source
Fix offset pagination extensions so they receive pagination, order, and filter
arguments consistently with connection fields. This allows extensions to inspect
filters for permission/validation while keeping resolvers tolerant of missing
params.
v0.74.1Compare Source
Pagination
pageInfo.limitnow returns the actual limit applied (after defaults and max caps), not the raw request value.For example, with
PAGINATION_DEFAULT_LIMIT=20,PAGINATION_MAX_LIMIT=50:{ fruits(pagination: { limit: null }) { pageInfo { limit } } }Before:
{ "data": { "fruits": { "pageInfo": { "limit": null } } } }After:
{ "data": { "fruits": { "pageInfo": { "limit": 20 } } } }Also fixes
limit: nullto usePAGINATION_DEFAULT_LIMITinstead ofPAGINATION_MAX_LIMIT.This release was contributed by @bellini666 in #848
v0.74.0Compare Source
Add configurable
PAGINATION_MAX_LIMITsetting to cap pagination requests, preventing clients from requesting unlimited data vialimit: nullor excessive limits.This addresses security and performance concerns by allowing projects to enforce a maximum number of records that can be requested through pagination.
Configuration:
When set, any client request with
limit: null, negative limits, or limits exceeding the configured maximum will be capped toPAGINATION_MAX_LIMIT. Defaults toNone(unlimited) for backward compatibility, though setting a limit is recommended for production environments.Works with both offset-based and window-based pagination.
This release was contributed by @bellini666 in #847
v0.73.1Compare Source
This release fixes a bug, which caused nested prefetch_related hints to get incorrectly merged
in certain cases.
This release was contributed by @diesieben07 in #839
v0.73.0Compare Source
Nothing changed, testing the new release process using
autopub.v0.72.2Compare Source
Nothing changed, testing the new release process using
autopub.This release was contributed by @bellini666 in #837
v0.72.0Compare Source
v0.71.0Compare Source
v0.70.1Compare Source
v0.70.0Compare Source
v0.69.0Compare Source
v0.68.0Compare Source
v0.67.2Compare Source
v0.67.1Compare Source
v0.67.0Compare Source
v0.66.2Compare Source
v0.66.1Compare Source
v0.66.0Compare Source
v0.65.1Compare Source
v0.65.0Compare Source
v0.64.0Compare Source
v0.63.0Compare Source
v0.62.0Compare Source
v0.61.0Compare Source
v0.60.0Compare Source
v0.59.1Compare Source
v0.59.0Compare Source
v0.58.0Compare Source
v0.57.1Compare Source
v0.57.0Compare Source
v0.56.0Compare Source
v0.55.2Compare Source
v0.55.1Compare Source
v0.55.0Compare Source
v0.54.0Compare Source
v0.53.3Compare Source
v0.53.2Compare Source
v0.53.1Compare Source
v0.53.0Compare Source
v0.52.1Compare Source
v0.52.0Compare Source
v0.51.0Compare Source
v0.50.0Compare Source
v0.49.1Compare Source
v0.49.0Compare Source
v0.48.0Compare Source
v0.47.2Compare Source
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.