This release has changes in the Federation plugin, introducing opt-in changes that will become the default in the next release (v0.17.95).
When configured, the federation plugin creates an entity resolver that accepts a list of representations, improving performance by reducing the number of individual resolver calls.
// IMPORTANT: The output slice order is critical and must match the input slice order exactly!
func (r *entityResolver) FindUserByIDs(ctx context.Context, reps []*entity.UserByIDsInput) ([]*model.User, error) {
output := make([]*model.User, len(reps))
for i, user := range reps {
output[i] = &model.User{
ID: user.ID,
Name: "User " + user.ID,
}
}
return output, nil
}
The @entityResolver directive enables optimization for entity resolver generation in GraphQL federation, and can be opted in by specifying multi: true as in:
type MultiHello @​key(fields: "name") @​entityResolver(multi: true)
Or you can enable this feature by default by setting the federation.options.entity_resolver_multi flag in your configuration:
Fix panic when resolver returns a nil pointer to a slice or any by @surbhi-singh in #4256
fix: @goEmbedInterface generating double-pointer getters for nullable fields by @adrianlungu in #4258
Update to golang.org/x/text@v0.40.0 and golang.org/x/sync@v0.22.0 and golang.org/x/tools@v0.48.0 and golang.org/x/net@v0.57.0 by @StevenACoffman in #4259
chore(deps): bump github.com/urfave/cli/v3 from 3.10.0 to 3.10.1 by @dependabot[bot] in #4246
chore(deps): bump actions/setup-go from 6.4.0 to 6.5.0 by @dependabot[bot] in #4244
chore(deps-dev): bump urql from 5.0.2 to 5.0.3 in /integration by @dependabot[bot] in #4245
chore(deps): bump golang.org/x/tools from 0.46.0 to 0.47.0 by @dependabot[bot] in #4247
This PR contains the following updates:
| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [github.com/99designs/gqlgen](https://github.com/99designs/gqlgen) | `v0.17.93` → `v0.17.94` |  |  |
---
### Release Notes
<details>
<summary>99designs/gqlgen (github.com/99designs/gqlgen)</summary>
### [`v0.17.94`](https://github.com/99designs/gqlgen/releases/tag/v0.17.94)
[Compare Source](https://github.com/99designs/gqlgen/compare/v0.17.93...v0.17.94)
#### Upcoming Potentially Breaking Changes Warning
This release has changes in the Federation plugin, introducing *opt-in* changes that will become the default in the *next* release (v0.17.95).
When configured, the federation plugin creates an entity resolver that accepts a list of *representations*, improving performance by reducing the number of individual resolver calls.
```
// IMPORTANT: The output slice order is critical and must match the input slice order exactly!
func (r *entityResolver) FindUserByIDs(ctx context.Context, reps []*entity.UserByIDsInput) ([]*model.User, error) {
output := make([]*model.User, len(reps))
for i, user := range reps {
output[i] = &model.User{
ID: user.ID,
Name: "User " + user.ID,
}
}
return output, nil
}
```
The [`@entityResolver`](https://gqlgen.com/recipes/federation/#using-entityresolver) directive enables optimization for entity resolver generation in GraphQL federation, and can be opted in by specifying `multi: true` as in:
```
type MultiHello @​key(fields: "name") @​entityResolver(multi: true)
```
Or you can enable this feature by default by setting the `federation.options.entity_resolver_multi` flag in your configuration:
```
federation:
filename: graph/federation.go
package: graph
version: 2
options:
entity_resolver_multi: true
```
#### What's Changed
- fix(federation): disambiguate colliding key-field Go names in multi-resolvers by [@​StevenACoffman](https://github.com/StevenACoffman) in [#​4241](https://github.com/99designs/gqlgen/pull/4241)
- fix(federation): return a positioned validation error for [@​key](https://github.com/key) referencing an undeclared field by [@​StevenACoffman](https://github.com/StevenACoffman) in [#​4249](https://github.com/99designs/gqlgen/pull/4249)
- Federation: per-entity [@​requires](https://github.com/requires) strategies with preloaded batch delivery by [@​StevenACoffman](https://github.com/StevenACoffman) in [#​4242](https://github.com/99designs/gqlgen/pull/4242)
- Update github.com/gqlparser/vektah/gqlparser/v2 to v2.5.36 by [@​StevenACoffman](https://github.com/StevenACoffman) in [#​4250](https://github.com/99designs/gqlgen/pull/4250)
- chore: drop dead vSlice predecl in codegen template by [@​c-tonneslan](https://github.com/c-tonneslan) in [#​4197](https://github.com/99designs/gqlgen/pull/4197)
- Disable scalar leaf suggestions when requested by [@​XuankangLin](https://github.com/XuankangLin) in [#​4252](https://github.com/99designs/gqlgen/pull/4252)
- feat(federation): per-field computed [@​requires](https://github.com/requires) via [@​computedRequires](https://github.com/computedRequires) by [@​StevenACoffman](https://github.com/StevenACoffman) in [#​4251](https://github.com/99designs/gqlgen/pull/4251)
- Fix panic when resolver returns a nil pointer to a slice or any by [@​surbhi-singh](https://github.com/surbhi-singh) in [#​4256](https://github.com/99designs/gqlgen/pull/4256)
- fix: `@goEmbedInterface` generating double-pointer getters for nullable fields by [@​adrianlungu](https://github.com/adrianlungu) in [#​4258](https://github.com/99designs/gqlgen/pull/4258)
- Update to golang.org/x/text\@​v0.40.0 and golang.org/x/sync\@​v0.22.0 and golang.org/x/tools\@​v0.48.0 and golang.org/x/net\@​v0.57.0 by [@​StevenACoffman](https://github.com/StevenACoffman) in [#​4259](https://github.com/99designs/gqlgen/pull/4259)
- chore(deps): bump github.com/urfave/cli/v3 from 3.10.0 to 3.10.1 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​4246](https://github.com/99designs/gqlgen/pull/4246)
- chore(deps): bump actions/setup-go from 6.4.0 to 6.5.0 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​4244](https://github.com/99designs/gqlgen/pull/4244)
- chore(deps-dev): bump urql from 5.0.2 to 5.0.3 in /integration by [@​dependabot](https://github.com/dependabot)\[bot] in [#​4245](https://github.com/99designs/gqlgen/pull/4245)
- chore(deps): bump golang.org/x/tools from 0.46.0 to 0.47.0 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​4247](https://github.com/99designs/gqlgen/pull/4247)
#### New Contributors
- [@​XuankangLin](https://github.com/XuankangLin) made their first contribution in [#​4252](https://github.com/99designs/gqlgen/pull/4252)
- [@​surbhi-singh](https://github.com/surbhi-singh) made their first contribution in [#​4256](https://github.com/99designs/gqlgen/pull/4256)
**Full Changelog**: <https://github.com/99designs/gqlgen/compare/v0.17.93...v0.17.94>
</details>
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **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.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNDMuMiIsInVwZGF0ZWRJblZlciI6IjQzLjI0My4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
This PR contains the following updates:
v0.17.93→v0.17.94Release Notes
99designs/gqlgen (github.com/99designs/gqlgen)
v0.17.94Compare Source
Upcoming Potentially Breaking Changes Warning
This release has changes in the Federation plugin, introducing opt-in changes that will become the default in the next release (v0.17.95).
When configured, the federation plugin creates an entity resolver that accepts a list of representations, improving performance by reducing the number of individual resolver calls.
The
@entityResolverdirective enables optimization for entity resolver generation in GraphQL federation, and can be opted in by specifyingmulti: trueas in:Or you can enable this feature by default by setting the
federation.options.entity_resolver_multiflag in your configuration:What's Changed
@goEmbedInterfacegenerating double-pointer getters for nullable fields by @adrianlungu in #4258New Contributors
Full Changelog: https://github.com/99designs/gqlgen/compare/v0.17.93...v0.17.94
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Enabled.
♻ 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 has been generated by Mend Renovate.
ℹ️ Artifact update notice
File name: go.mod
In order to perform the update(s) described in the table above, Renovate ran the
go getcommand, which resulted in the following additional change(s):Details:
github.com/vektah/gqlparser/v2v2.5.35->v2.5.36golang.org/x/netv0.56.0->v0.57.0golang.org/x/syncv0.21.0->v0.22.0golang.org/x/sysv0.46.0->v0.47.0golang.org/x/textv0.38.0->v0.40.0Coverage Report
Total coverage: 28%