-
Notifications
You must be signed in to change notification settings - Fork 43
Update dependency com.netflix.graphql.dgs:graphql-dgs-spring-boot-starter to v9 #6
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Open
renovate
wants to merge
1
commit into
master
Choose a base branch
from
renovate/major-netflix-dgs.spring.version
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
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
4fcd0d2
to
fa4d63f
Compare
fa4d63f
to
3f7c319
Compare
47ed4b6
to
cb972c9
Compare
cb972c9
to
bdeb749
Compare
bdeb749
to
f566e57
Compare
f566e57
to
3f38977
Compare
3f38977
to
06ae618
Compare
06ae618
to
3b1dde6
Compare
146e511
to
bbe16d0
Compare
8192e02
to
1133182
Compare
1133182
to
8fd4b2c
Compare
eaa6e64
to
804cde6
Compare
3639508
to
ef23dbd
Compare
ef23dbd
to
fa485e8
Compare
fa485e8
to
3cf867d
Compare
f0b70bb
to
241c64e
Compare
241c64e
to
5971084
Compare
5971084
to
b7d3866
Compare
0767175
to
c46fe8a
Compare
c46fe8a
to
721fc08
Compare
f174016
to
b86a169
Compare
722690b
to
14bbc20
Compare
c0d5eca
to
2ae2e7f
Compare
2ae2e7f
to
81e5c66
Compare
029c0bf
to
c47067a
Compare
c47067a
to
949d1b8
Compare
949d1b8
to
beb91f8
Compare
6e7836b
to
be78171
Compare
be78171
to
da59a30
Compare
4a4c1d1
to
2377ac1
Compare
2377ac1
to
a8c0bb3
Compare
a8c0bb3
to
6d1603d
Compare
7627f48
to
33bf889
Compare
33bf889
to
72cbae0
Compare
72cbae0
to
43a0599
Compare
43a0599
to
8f30f26
Compare
# for free
to join this conversation on GitHub.
Already have an account?
# to comment
Labels
None yet
0 participants
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:
3.12.1
->9.2.2
Warning
Some dependencies could not be looked up. Check the Dependency Dashboard for more information.
Release Notes
Netflix/dgs-framework (com.netflix.graphql.dgs:graphql-dgs-spring-boot-starter)
v9.2.2
Compare Source
Ignore
builds/.kotlin
to not fail the build because of uncommitted changes.v9.2.0
Compare Source
What’s Changed
v9.1.3
Compare Source
What’s Changed
v9.1.2
Compare Source
What’s Changed
v9.1.1
Compare Source
What’s Changed
v9.1.0
Compare Source
What’s Changed
v9.0.4
Compare Source
What's Changed
PLEASE NOTE: the nullability fix on
GraphQLResponse.getRequestDetails
is technically a breaking change for any Kotlin usages. You will need to either properly handle the null checks, or add!!
wherever you use the method to keep the same (potentially incorrect) behavior.Full Changelog: Netflix/dgs-framework@v9.0.3...v9.0.4
v9.0.3
Compare Source
What’s Changed
v9.0.2
Compare Source
What’s Changed
v9.0.1
Compare Source
What’s Changed
v9.0.0
: Spring Boot 3.3 and GraphQL Java 22Compare Source
This release builds against Spring Boot 3.3, Spring GraphQL 1.3 and GraphQL Java 22 🎉
This is a major release because the upgrade to Boot 3.3 and GraphQL Java 22 are significant, and may require changes in your application code. There are no breaking changes in DGS itself though.
The changes in DGS itself are minimal: https://github.com/Netflix/dgs-framework/pull/1920
The most likely source of incompatibility are the changes in Instrumentation in GraphQL Java.
DGS 9.x is no longer compatible with Spring Boot 3.2 or below. It is however possible to use DGS 9 with Spring Boot 3.3 but with GraphQL Java 21 (the previous version).
v8.7.1
Compare Source
What’s Changed
v8.6.1
Compare Source
What’s Changed
v8.6.0
Compare Source
What’s Changed
This PR converts errors from graphql-java thrown prior to data fetcher processing, such as various Validation errors to use the TypedGraphQLError format to be consistent with the other errors handled in the DGS framework. The main change is to add additional
errorDetail
anderrorType
fields as part of extensions. Themessage
,location
,classification
are all preserved as is.We expect this will not be a breaking change unless users are depending on the exact string formatted error. An example of the updated error is shown below:
v8.5.8
Compare Source
What’s Changed
v8.5.7
Compare Source
What’s Changed
v8.5.6
Compare Source
What’s Changed
v8.5.5
Compare Source
What’s Changed
v8.5.4
Compare Source
What’s Changed
v8.5.3
Compare Source
What’s Changed
v8.5.2
Compare Source
What’s Changed
v8.5.0
Compare Source
The DGS and Spring GraphQL teams are super excited to introduce deep integration between the DGS framework and Spring GraphQL. This will bring the community together, and we can continue building the best possible GraphQL framework for Spring Boot in the future.
Special thanks to @kilink for being our first early adopter and contributing many bug fixes and performance improvements as part of this effort, and to @rstoyanchev and @bclozel from the Spring GraphQL team for partnering with us closely on integration between the frameworks.
Getting Started with DGS/Spring GraphQL
You can opt-in to use DGS/Spring GraphQL by replacing the starter dependency.
Replace
implementation "com.netflix.graphql.dgs:graphql-dgs-spring-boot-starter"
withimplementation "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter"
.You also need to add either Spring WebMVC or Spring WebFlux explicitly.
With this integration, it is technically possible to mix and match the DGS/Spring GraphQL programming models. However, to maintain consistency in your codebase and to take full advantage of DGS features, we recommend sticking with the DGS programming model. Additional features from Spring GraphQL will be available via existing Spring GraphQL extensions, such as multipart-spring-graphql and the https://github.com/apollographql/federation-jvm/pull/354 in the JVM Federation library.
Background - Two competing frameworks
The DGS Framework provides Java developers with a programming model on top of Spring Boot to create GraphQL services. Netflix open-sourced the DGS framework in 2021, and has been the widely adopted GraphQL Java framework by many companies.
Soon after we open-sourced the DGS framework, we learned about parallel efforts by the Spring team to develop a GraphQL framework for Spring Boot. The Spring GraphQL project was in the early stages at the time and provided a low-level of integration with graphql-java. Over the past year, however, Spring GraphQL has matured and is mostly at feature parity with the DGS Framework. We now have 2 competing frameworks that solve the same problems for our users.
Today, new users must choose between the DGS Framework or Spring GraphQL, thus missing out on features available in one framework but not the other. This is not an ideal situation for the GraphQL Java community.
For the maintainers of DGS and Spring GraphQL, it would be far more effective to collaborate on features and improvements instead of having to solve the same problem independently. Finally, a unified community would provide us with better channels for feedback.
Technical implementation
The details of the implementation are discussed in detail in the documentation.
Required Changes
The good news is that the new integration has been mostly a drop-in replacement, not requiring any major code changes for the user.
Async Dispatch
By default, Spring GraphQL uses async dispatch for handling HTTP GraphQL Requests when using WebMVC.
In this DGS Framework we have turned off this behavior by default to preserve existing functionality, since it requires existing code to be async aware. This implies servlet filters, tests etc. need to be also async aware.
You can turn on async behavior by setting the
dgs.graphql.spring.webmvc.asyncdispatch.enabled
to true.It is worth noting that with the Spring GraphQL integration, your MockMVC test set up does need to be updated.
Since web request processing is now based on async dispatching mechanism, we now require explicit handling for this in the test setup.
File Uploads
Support for file uploads will no longer be available by default in the DGS framework.
This is supported using an external dependency for Spring GraphQL via multipart-spring-graphql.
Schema Inspection
You can now inspect your schema using Spring GraphQL's [schema inspection] (https://docs.spring.io/spring-graphql/reference/request-execution.html#execution.graphqlsource.schema-mapping-inspection) feature for DGS data fetchers as well.
You can now inspect schema fields and validate existing DGS data fetcher/and or Spring GraphQL data fetcher registrations, to check if all schema fields are covered either by an explicitly registered DataFetcher, or a matching Java object property.
The inspection also performs a reverse check looking for DataFetcher registrations against schema fields that don't exist.
Performance
At Netflix, we tested the DGS/Spring GraphQL integration on some of our largest services. We have worked hard to make performance of the new integration on-par with the existing implementation. Performance (CPU, memory, latency) is now the same or better on all the services we have tested.
Known Gaps
At this time, we are lacking support for SSE based subscriptions. This is on the roadmap and will be made available depending on support in Spring GraphQL.
Configuration
There is some overlap between configuration properties for DGS and Spring GraphQL. Where properties overlap, we use the DGS property for the best backward compatibility. The following list is the overlapping properties.
dgs.graphql.schema-locations
spring.graphql.schema.locations
dgs.graphql.schema-locations
spring.graphql.schema.fileExtensions
dgs.graphql.schema-locations
includes the pathdgs.graphql.graphiql.enabled
spring.graphql.graphiql.enabled
dgs.graphql.graphiql.enabled
dgs.graphql.graphiql.path
spring.graphql.graphiql.path
dgs.graphql.graphiql.path
dgs.graphql.websocket.connection-init-timeout
spring.graphql.websocket.connection-init-timeout
New properties for Spring GraphQl integration are:
dgs.graphql.spring.webmvc.asyncdispatch.enabled
v8.4.4
Compare Source
What’s Changed
v8.4.3
Compare Source
What’s Changed
v8.4.2
Compare Source
What’s Changed
v8.4.1
Compare Source
What’s Changed
v8.4.0
Compare Source
What's Changed
Full Changelog: Netflix/dgs-framework@v8.3.1...v8.4.0
v8.3.1
Compare Source
What’s Changed
v8.3.0
Compare Source
What’s Changed
This release updates the framework to use a new major version of the federation library:
federation-graphql-java-support
to4.4.0
(https://github.com/apollographql/federation-jvm/releases/tag/v4.4.0) from the previous3.0.0
.There are changes to how the federated-tracing context is set up since deprecated API support for this is now dropped in the library. Besides this change, this release should be backwards compatible for DGS users. Please refer to their release notes for more details.
v8.2.5
Compare Source
What's Changed
New Contributors
Full Changelog: Netflix/dgs-framework@v8.2.4...v8.2.5
v8.2.4
Compare Source
What’s Changed
v8.2.3
Compare Source
What’s Changed
v8.2.2
Compare Source
What’s Changed
v8.2.1
Compare Source
What’s Changed
v8.2.0
Compare Source
What's Changed
Full Changelog: Netflix/dgs-framework@v8.1.1...v8.2.0
v8.1.1
Compare Source
What’s Changed
v8.1.0
Compare Source
What’s Changed
This release introduces a new configuration to enable ticker mode in the ScheduledExecutorService via
dgs.graphql.dataloaderTickerModeEnabled
. This uses the new ticker mode feature introduced in the3.2.1
release of java-dataloader and additional fixes in3.2.2
. This change allows the usage of chained dataloaders without the need to manually dispatch the loader calls using the ScheduledDataLoaderRegistry with ticker mode enabled.v8.0.3
Compare Source
What’s Changed
v8.0.2
Compare Source
What’s Changed
v8.0.1
Compare Source
What’s Changed
v8.0.0
Compare Source
This release updates the graphql-java version to 21.2. The main breaking change affects the usage of the already deprecated
DefaultExceptionHandler::onException
method. If you have defined your own custom exceptiConfiguration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, 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.