Releases: graphql-java/graphql-java
25.0.beta-5
This is another beta release for the upcoming version 25.
This beta-5 release includes improvements to the Profiler to make it easier to use and analyse. More documentation on the Profiler is to come.
A word of warning
While all features are tested and we consider them ready to be used, we don't guarantee that this is a stable version: this means there will be more breaking changes until we reach 25.0.
This version is intended for testing and providing feedback to the GraphQL Java team.
What's Changed
- Bump org.apache.groovy:groovy from 4.0.27 to 4.0.28 by @dependabot[bot] in #4066
- Bump com.fasterxml.jackson.core:jackson-databind from 2.19.1 to 2.19.2 by @dependabot[bot] in #4065
- Bump com.graphql-java:java-dataloader from 5.0.1 to 5.0.2 by @dependabot[bot] in #4064
- Bump io.projectreactor:reactor-core from 3.7.7 to 3.7.8 by @dependabot[bot] in #4062
- Bump com.google.errorprone:error_prone_core from 2.40.0 to 2.41.0 by @dependabot[bot] in #4067
- A smidge faster unwrap non-null by @bbakerman in #4059
- comment out the processor by default by @andimarek in #4071
- cleanup of no longer used Agent class by @andimarek in #4070
- Profiler tweaks for JSON serialisation by @dondonz in #4068
Full Changelog: v25.0.beta-4...v25.0.beta-5
25.0.beta-4
This is another beta release for the upcoming version 25.
The key change in this beta-4 release is a change to "Delayed" DataLoaders to greatly simplify the use of this feature. In an earlier beta release we tried out a "batch window" for DataLoaders depending on an async function, but in testing we've found this adds complexity, particularly if a server is not already using a ScheduledExecutorService. Note this does not affect the "Chained" DataLoader case where one DataLoader is dependent on another DataLoader in the same DataFetcher. More documentation is to come.
A word of warning
While all features are tested and we consider them ready to be used, we don't guarantee that this is a stable version: this means there will be more breaking changes until we reach 25.0.
This version is intended for testing and providing feedback to the GraphQL Java team.
What's Changed
- Support null query when running APQ request by @timward60 in #4049
- fix repeat until failure usage by @andimarek in #4054
- simplify delayed dataloader dispatching by not using a batch window by @andimarek in #4055
- Possibility to run JMH benchmarks without JAR build by @dfa1 in #4057
- Removing the GraphQL java agent by @andimarek in #4058
Full Changelog: v25.0-beta-3...v25.0.beta-4
24.2
This is a small bugfix release, to use the latest version of DataLoader that includes nullability annotation improvements. Thanks to the community to providing feedback.
See https://github.com/graphql-java/java-dataloader/releases/tag/v5.0.2 and https://github.com/graphql-java/java-dataloader/releases/tag/v5.0.1 for the details
What's Changed
Full Changelog: v24.1...v24.2
25.0.beta-3
This is another beta release for the upcoming version 25.
The key change in this beta-3 release is the addition of the Profiler, which will track interesting execution information such as DataLoader dispatch points, DataFetcher usage, and count of materialised values. You can opt into this via ExecutionInput. We'll have more documentation available ahead of the official release of v25.
A word of warning
While all features are tested and we consider them ready to be used, we don't guarantee that this is a stable version: this means there will be more breaking changes until we reach 25.0.
This version is intended for testing and providing feedback to the GraphQL Java team.
What's Changed
- Bump com.google.errorprone:error_prone_core from 2.39.0 to 2.40.0 by @dependabot[bot] in #4052
- adding Profiler by @andimarek in #3976
Full Changelog: v25.0.beta-2...v25.0-beta-3
25.0.beta-2
This is a beta release for the upcoming version 25.
A word of warning
While all features are tested and we consider them ready to be used, we don't guarantee that this is a stable version: this means there will be more breaking changes until we reach 25.0.
This version is intended for testing and providing feedback to the GraphQL Java team.
This 2nd beta release includes a few more commits than the 1st beta release, notably a nullability bugfix for DataLoader
What's Changed
- Bump com.graphql-java:java-dataloader from 5.0.0 to 5.0.1 by @dependabot in #4043
- This removes the FetchedValue wrapping by default by @bbakerman in #3924
- Improved access speed of isPossibleType by @bbakerman in #4040
- Improve Execution input nullability by @andimarek in #4046
- Removed more .streams() with our filterAndMap code by @bbakerman in #4044
Full Changelog: 25.0.beta-1...v25.0.beta-2
25.0.beta-1
This is a beta release for the upcoming version 25
.
A word of warning
While all features are tested and we consider them ready to be used, we don't guarantee that this is a stable version: this means there will be more breaking changes until we reach 25.0.
This version is intended for testing and providing feedback to the GraphQL Java team.
Changes
What's Changed
- Bump EnricoMi/publish-unit-test-result-action from 2.18.0 to 2.19.0 by @dependabot in #3906
- Add JSpecify nullability annotations to DataFetcherResult by @dondonz in #3891
- Clean up ReactiveSupport by @hantsy in #3908
- Remove unused import by @ngocnhan-tran1996 in #3905
- Bump com.tngtech.archunit:archunit-junit5 from 1.2.0 to 1.4.0 by @dependabot in #3907
- add dataloader performance test by @andimarek in #3913
- Fix and improve EngineRunning state by @andimarek in #3911
- move jmh tests into dedicated folder by @andimarek in #3916
- Revert "New spec validation: Subscriptions root field must not contain @Skip nor @include on root selection set" by @dondonz in #3917
- Bump org.junit.jupiter:junit-jupiter from 5.12.1 to 5.12.2 by @dependabot in #3915
- Bump com.google.code.gson:gson from 2.12.1 to 2.13.0 by @dependabot in #3914
- Bump io.projectreactor:reactor-core from 3.7.4 to 3.7.5 by @dependabot in #3923
- Large in memory query benchmark by @bbakerman in #3921
- Bad naming in runner by @bbakerman in #3928
- Bump com.google.code.gson:gson from 2.13.0 to 2.13.1 by @dependabot in #3937
- Bump com.fasterxml.jackson.core:jackson-databind from 2.18.3 to 2.19.0 by @dependabot in #3936
- avoid wrapping materialized fieldValueObject in a CompletableFuture by @samuelAndalon in #3943
- Test by @andimarek in #3946
- Test by @andimarek-atlassian in #3947
- reduce forks to 2 to make perf tests faster by @andimarek in #3948
- ResponseMapFactory #3857 by @dfa1 in #3894
- OSGI - Make org.jspecify.* imports optional by @schulm in #3949
- Specify nullness for some
graphql.schema.idl
classes by @mk868 in #3895 - fix case when a fragment is deferred and non deferred at the same time for overlapping fields by @andimarek in #3953
- Make JSpecify optional import more specific by @dondonz in #3959
- Retriveing singleton property fetchers will not create DataFetcherFactoryEnvironment objects by @bbakerman in #3942
- ExecutionStrategyParameters now has a direct transform without a Builder by @bbakerman in #3935
- ExecutionStepInfo now has a direct transform without a Builder by @bbakerman in #3934
- FpKit now longer uses streams for performance reasons by @bbakerman in #3932
- Implement toString/hashCode/equals for DataFetcherResult by @AlexandreCarlton in #3964
- add defer test case by @andimarek in #3967
- Add DataLoader 5.0.0 by @dondonz in #3958
- Introduce a filter and map imperative method to replace .stream() calls by @bbakerman in #3931
- Removing some of the Optional.map() and .stream() for performance reasons by @bbakerman in #3930
- Stop creating NonNullableFieldValidator every for every object or list field by @bbakerman in #3929
- Enable DataLoader chaining (nesting) by @andimarek in #3872
- Avoid rare TCK test failure by @andimarek in #3975
- Bump com.tngtech.archunit:archunit-junit5 from 1.4.0 to 1.4.1 by @dependabot in #3957
- A generalised configuration mechanism by @bbakerman in #3945
- update gradle wrapper validation by @andimarek in #3982
- Bump io.projectreactor:reactor-core from 3.7.5 to 3.7.6 by @dependabot in #3977
- deterministic SourceLocation serialization by @jbellenger in #3987
- make dataloader work inside defer blocks by @andimarek in #3980
- Bump EnricoMi/publish-unit-test-result-action from 2.19.0 to 2.20.0 by @dependabot in #3990
- Add ArchUnit rule to ban javax & JetBrains nullability annotations by @dondonz in #3985
- Query generator by @felipe-gdr in #3979
- upgrade antlr by @andimarek in #3997
- a bit more efficient load in case the strategy doesn't fit by @andimarek in #4001
- Bump org.apache.groovy:groovy-json from 4.0.26 to 4.0.27 by @dependabot in #3998
- Bump org.junit.jupiter:junit-jupiter from 5.12.2 to 5.13.0 by @dependabot in #3999
- Response factory as config by @bbakerman in #3950
- Bump org.apache.groovy:groovy from 4.0.26 to 4.0.27 by @dependabot in #4000
- minimize work done when chained dataloaders are disabled by @andimarek in #4003
- ensure DFEImpl graphql context is never null by @andimarek in #4004
- make DFE more nullable aware by @andimarek in #4005
- add method to parse field definition from Parser by @andimarek in #4006
- DataLoader dispatching for Subscriptions by @andimarek in #3988
- Add the new Sonatype URL by @dondonz in #4009
- Adding errorprone support and fix chained dataloader bug by @bbakerman in #4002
- Bump net.bytebuddy:byte-buddy from 1.17.5 to 1.17.6 by @dependabot in #4012
- Bump net.bytebuddy:byte-buddy-agent from 1.17.5 to 1.17.6 by @dependabot in #4013
- Bump io.projectreactor:reactor-core from 3.7.6 to 3.7.7 by @dependabot in #4014
- Bump com.fasterxml.jackson.core:jackson-databind from 2.19.0 to 2.19.1 by @dependabot in #4015
- Bump org.junit.jupiter:junit-jupiter from 5.13.0 to 5.13.1 by @dependabot in #4007
- Bump com.google.errorprone:error_prone_core from 2.37.0 to 2.39.0 by @dependabot in #4030
- Bump net.ltgt.errorprone from 4.2.0 to 4.3.0 by @dependabot in #4031
- Bump com.gradleup.shadow from 8.3.6 to 8.3.7 by @dependabot in #4029
- Bump org.jetbrains.kotlin.jvm from 2.1.21 to 2.2.0 by @dependabot in #4018
- Added support for Flow publishers coming back from the subscription field data fetcher by @bbakerman in #3910
- Bump org.junit.jupiter:junit-jupiter from 5.13.1 to 5.13.2 by @dependabot in #4032
- A few adjustments in the QueryGenerator util by @felipe-gdr in #4011
- Bump com.uber.nullaway:nullaway from 0.12.6 to 0.12.7 by @dependabot in #4019
- Add interface addition event in SchemaDiff by @mgadda in #3984
- Added Unit test cases for Pair.java by @surajdm123 in #4036
- Added Unit Test cases for EscapeUtil by @surajdm123 in #4035
- Added a read only copy of a type registry for performance reasons by @bbakerman in #4021
- A more memory efficient AstPrinter by @bbakerman in https://github.com/graphql-java/graphql-java/pul...
24.1
This is bugfix release for 24.
Main change is #3994: If you have defer enabled (an experimental feature) and use data loaders for mutations your requests would hang, because the data loaders are not dispatched correctly.
Additionally this release contains #3995.
Cheers
What's Changed
- bugfix: fix mutations data loading dispatching when defer is enabled by @andimarek in #3994
- Deterministic source location backport 24 by @andimarek in #3995
Full Changelog: v24.0...v24.1
24.0
24.0 is a breaking change
This release is an unexpected breaking change release. It was made to help propagate a fix in the DataLoader library
In DataLoader version 4.0.0 we introduced immutability into the DataLoaderOptions
class, which was a good thing.
However it left the old mutative setXXX
methods in place and made them immutable. This was a mistake. This leads to bugs at runtime for example
DataLoaderOptions options = DataLoaderOptions.newOptions();
if (maxBatchSize != BatchLoader.UNSET_BATCH_SIZE) {
options.setMaxBatchSize(maxBatchSize);
}
return options.setCacheMap(cache);
The above code would continue to compile but the setMaxBatchSize()
would never take affected at runtime with the immutable support.
So to help address this bug a DataLoader version 5.0.0 was released and it has removed the setXXX
methods and requires the Builder
methods to be used to ensure that code that relied on the old mutative methods now break at compile time and not at runtime.
In turn we have released this new version of graphql-java - we have designated it a breaking change because of this transitive DataLoader breaking change
We consider v23.x poisoned and we don't recommend you use it because of the latent bug above.
But the release notes of 23 are still relevant when you upgrade from 22: https://github.com/graphql-java/graphql-java/releases/tag/v23.0
Small performance fixes
There are also a set of small performance oriented fixes that have gone out in this release.
What's Changed
- 24.x Cherry pick JSpecify OSGI config by @dondonz in #3960
- 24.x Backport of avoid wrapping materialised value by @dondonz in #3962
- Upgrade to DataLoader 5.0.0 by @dondonz in #3961
- Cherry pick DataFetcherResult helpers by @dondonz in #3965
- Cherry pick PR 3942 To add singleton to factory method by @dondonz in #3968
- Cherry pick PR 3935 by @dondonz in #3969
- Cherry pick 3934 for execution step info builder changes by @dondonz in #3970
- Cherry pick 3932 to remove streams from FPKit by @dondonz in #3971
- Cherry pick 3931 imperative filters by @dondonz in #3972
- Cherry pick 3930 remove optional streams by @dondonz in #3973
- Cherry pick PR 3929 reduce nonnullablefieldvalidator allocations by @dondonz in #3974
Full Changelog: v23.1...v24.0
22.4
A very small release that backports an improvement to avoid wrapping materialized fieldValueObject
in a CompletableFuture
#3943
This change will shortly be released in the new 24.0 release. This is only a backport.
What's Changed
- avoid wrapping materialized fieldValueObject in a completable future by @samuelAndalon in #3944
Full Changelog: v22.3...v22.4
23.1
Do Not Use
Version 23.x is considered poisoned and we don't recommend you upgrade to it
See the release notes of v24 for more details on what this is the case.
Previous release notes
This reverts a bug in 23.0 introduced in #3871.
Please use 23.1, and not 23.0.
Update: we will shortly release 24.0, which replaces the 23 line of releases. Please do not use any v23 releases going forward.