What's Changed
- Added read-only schema abstractions. by @michaelstaib in #8006
- Fixed type DataLOader to DataLoader by @michaelstaib in #8037
- [Fusion] Migrated Fragment Inlining Tests by @michaelstaib in #8039
- [Fusion] Migrated MergeSelectionSetRewriter Tests by @michaelstaib in #8040
- [Fusion] Migrated experimental execution planner parts. by @michaelstaib in #8043
- Aligned DataLoader options behavior. by @michaelstaib in #8044
- [Fusion] Fixed inverted condition in ValidationHelper by @glen-84 in #8046
- Ensure TypeModuleChangeMonitor is properly disposed by @tobias-tengler in #8041
- [Fusion] Merged selection sets in SelectedValueToSelectionSetRewriter by @glen-84 in #8051
- [Fusion] Skipped failing FieldSelectionMapParser test by @glen-84 in #8052
- [Fusion] Added post-merge validation rule "InterfaceFieldNoImplementationRule" by @glen-84 in #8019
- Used the correct xUnit packages in Cookie Crumble libraries by @glen-84 in #8054
- Fix flakey test by @tobias-tengler in #8056
- Added missing condition to TypeRegistry#Register by @glen-84 in #8058
- Added missing
Leave
method toFieldSelectionMapSyntaxVisitor
by @glen-84 in #8064 - Added
FieldSelectionMapValidator
by @glen-84 in #8066 - Used
TryGetField
inFieldSelectionMapValidator
by @glen-84 in #8067 - Scope OperationCache to RequestExecutor by @tobias-tengler in #8055
- [Fusion] Fixed
FieldSelectionMapValidator
, added more tests by @glen-84 in #8075 - Warmup new executor before replacing old one by @tobias-tengler in #8068
- Added section regarding
SingleOrDefaultMiddleware
to migration guide by @glen-84 in #8071 - [Fusion] Changed
@require(fields:)
to@require(field:)
by @glen-84 in #8077 - Remove Hot Reload Hooks by @michaelstaib in #8079
- [Fusion] Updated MergeUnionTypes to merge by union instead of intersection by @glen-84 in #8082
- Added NodaTime data tests by @glen-84 in #8080
- [Fusion] Updated the Fusion directives to align with the execution spec by @glen-84 in #8083
- [Fusion] Added source schema directive definitions by @glen-84 in #8085
- [Fusion] Set schema name from
@schemaName
directive by @glen-84 in #8086 - [Fusion] Added Fusion CLI by @glen-84 in #8090
- Fixed authorization type interceptor flow. by @michaelstaib in #8096
- Added oneof tests by @michaelstaib in #8098
- [Fusion] Added post-merge validation rule "RequireInvalidFieldsRule" by @glen-84 in #8092
- Fix nested sorting a new approach QueryContext by @Veribelll in #8061
- Clean SortInput postfix by @sunghwan2789 in #8045
- Add services to support complex sort handler by @sunghwan2789 in #8047
- Abandon Response Formatting Gracefully on Cancellation by @michaelstaib in #8078
- [Fusion] Added post-merge validation rule "NonNullInputFieldIsInaccessibleRule" by @glen-84 in #8102
- [Fusion] Added pre-merge validation rule "FieldWithMissingRequiredArgumentRule" by @glen-84 in #8103
- Add support for relative cursors. by @michaelstaib in #8048
- Avoided setting an implicit name for enum values with an explicit name by @glen-84 in #8108
- Do not overwrite Id Serializer with AddGlobalObjectIdentification by @tobias-tengler in #8107
- Fixed issues with ToPageAsync() and relative cursors. by @michaelstaib in #8110
- Fixed Source Generator Visual Studio 2022 incompatibility by @michaelstaib in #8112
- Added Docker Hub login step to CI and coverage workflows by @glen-84 in #8114
- Fixed Node id field can no longer be provided via an extension type by @michaelstaib in #8116
- Fixed DataLoader does not work with a class resolver for interface types. by @michaelstaib in #8117
- Fix flaky executor tests by @tobias-tengler in #8113
- Fixed concurrency issue when building selector expressions. by @michaelstaib in #8118
- Throw error when is implicitly bound as schema type. by @michaelstaib in #8119
- Fix invalid base64 ID parsing by @faddiv in #8101
- Updated node ID serializers to ensure correct padding while parsing by @glen-84 in #8123
- Updated ISelection.AsSelector to correctly handle the
nodes
field by @glen-84 in #8122 - Updated CI workflow to only run Docker Hub login step for local branches by @glen-84 in #8121
- Make
includeDeprecated
non nullable. by @michaelstaib in #8124 - Fixed GraphQL schema does not support operation validation. by @michaelstaib in #8125
- Added strict mode to Cookie Crumble by @glen-84 in #8126
- Updated Squadron packages by @glen-84 in #8127
- [OPA] Fix OPA middleware to comply with OPA V1 by @stoyanovskydmitry in #8084
- Set DOCKER_CONFIG environment variable in CI and coverage workflows by @glen-84 in #8128
- Downgraded Postgres Squadron by @michaelstaib in #8131
- Improved error message when query/mutation conventions are not enabled by @glen-84 in #8130
- Added page based connection type by @michaelstaib in #8132
- Refactored OPA authorization tests to work with a dynamic port by @glen-84 in #8133
- Do not apply @semanticNonNull to id fields by @tobias-tengler in #8136
- Added WebSocket payload formatter and options for GraphQL over WebSocket by @glen-84 in #8135
- Better error for invalid root type. by @michaelstaib in #8104
- Fixed issue where projections fallback was not possible. by @michaelstaib in #8139
- Added OTel blog post by @PascalSenn in #8140
- Updated Paging YouTube Episode by @michaelstaib in #8141
- Updated Nitro to Version 26.0.3 by @michaelstaib in #8142
- Skipped flaky test in Apollo WebSocketProtocolTests by @glen-84 in #8143
- Fixed issue with parameter replacement in queryable field handlers by @glen-84 in #8145
- Fixes various analyzer issues related to paging. by @michaelstaib in #8148
- Make TypeInterceptor.IsEnabled public by @tobias-tengler in #8149
- Updated Squadron.PostgreSql (0.23.0 -> 0.23.1) by @glen-84 in #8147
- Reduce totalCount requests when using relative cursors. by @michaelstaib in #8150
- Colocate Edge and Connection Type by @michaelstaib in #8152
- Added pageInfo as connection flag by @michaelstaib in #8153
- [Fusion] Added source schema validation rule "ProvidesInvalidFieldsRule" by @glen-84 in #8154
- Added additional checks to the SelectionSetValidator by @glen-84 in #8157
- [Fusion] Removed validation rule "RequireDirectiveInFieldArgumentRule" by @glen-84 in #8158
- [Fusion] Parsed
@require(field:)
as FieldSelectionMap by @glen-84 in #8159 - [Fusion] Added missing summaries to FieldSelectionMap node classes by @glen-84 in #8160
- [Fusion] Refactored validation rule "ExternalUnusedRule" by @glen-84 in #8161
- [Fusion] Renamed parameter
selectedSet
toselectionSet
by @glen-84 in #8162 - Allow for scalar overrides when using schema-first by @michaelstaib in #8164
- Relaxed type symbol check for connections. by @michaelstaib in #8165
- Fixed missing global:: in generated code by @michaelstaib in #8166
- [Fusion] Refactored validation rule "KeyInvalidFieldsRule" by @glen-84 in #8168
- [Fusion] Refactored selection set field events by @glen-84 in #8170
- [Fusion] Added tests for the FieldInSelectionSetValidator by @glen-84 in #8171
- [Fusion] Removed "extend" keyword from test theory data by @glen-84 in #8172
- [Fusion] Added missing rule summaries and synced test cases with spec by @glen-84 in #8174
- [Fusion] Skipped internal object types and fields when publishing events by @glen-84 in #8175
- [Fusion] Used existing
GetPossibleTypes
method by @glen-84 in #8176 - Removed outdated comments in StaticQueryAnalysisTests by @glen-84 in #8151
- Updated the DOCKER_CONFIG environment variable by @glen-84 in #8156
- [Fusion] Updated comment and theory data in
TypeKindMismatchRuleTests
by @glen-84 in #8180 - [Fusion] Avoided accessing property that can throw in Deconstruct method by @glen-84 in #8182
- [Fusion] Refactored
RequireInvalidFieldsRule
(no source schema access) by @glen-84 in #8183 - Updated Nitro to 26.0.4 by @michaelstaib in #8178
- Downgraded analyzer to support .NET 8 by @michaelstaib in #8186
- [Fusion] Updated
RequireInvalidFieldsRule
(disallow same schema) by @glen-84 in #8187 - [Fusion] Cleaned up extension classes by @glen-84 in #8188
- Added promise cache interceptor. by @michaelstaib in #8190
- [Fusion] Added post-merge validation rule "EnumTypeDefaultValueInaccessibleRule" by @glen-84 in #8192
- [Fusion] Added source schema validation rule "TypeDefinitionInvalidRule" by @glen-84 in #8194
- [Fusion] Replaced filtering with assertion in
MergeArgumentDefinitions
by @glen-84 in #8195 - [Fusion] Refactored rule "ExternalArgumentDefaultMismatchRule" by @glen-84 in #8196
- [Fusion] FieldSelectionMapParser support for Path.SelectedObjectValue by @glen-84 in #8203
- [Fusion] Changed
CompositionTestBase
toCompositionTestHelper
by @glen-84 in #8204 - [Fusion] Added source schema validation rule "IsInvalidFieldTypeRule" by @glen-84 in #8208
- [Fusion] Updated theory data in
RequireInvalidSyntaxRuleTests
by @glen-84 in #8209 - [Fusion] Added source schema validation rule "IsInvalidSyntaxRule" by @glen-84 in #8211
- [Fusion] Updated theory data in
IsInvalidSyntaxRuleTests
by @glen-84 in #8212 - [Fusion] Added source schema validation rule "IsInvalidUsageRule" by @glen-84 in #8214
- [Fusion] Added post-merge validation rule "IsInvalidFieldRule" by @glen-84 in #8217
- [Fusion] Refactored
RequireInvalidFieldsRule
(used source schemas) by @glen-84 in #8218 - Updated Squadron packages by @glen-84 in #8219
- Updated codecov/codecov-action and configuration by @glen-84 in #8206
- Add clarity to sentence in authentication.md by @daniel-brandenburg in #8220
- Updated Yarn (3.3.0 -> 4.8.1) by @glen-84 in #8198
- Unsubscribe from redis topic async by @dannyheard7 in #8200
- [Fusion] Added post-merge validation rule "ImplementedByInaccessibleRule" by @glen-84 in #8226
- Allow for IDocumentStore to provide document hash. by @michaelstaib in #8228
- [Fusion] Added support for shorthand
SelectedObjectField
in validator by @glen-84 in #8236 - Fix @semanticNonNull on mutation types by @tobias-tengler in #8239
- Fixed empty cursor string validation by @arekgwizdziel in #8240
- Fix ToPageAsync extension when using a child projection expression by @dannyheard7 in #8235
- Added a basic requirements planing. by @michaelstaib in #8243
- Removed BOM when writing exported schema by @glen-84 in #8244
- Removed the
HotChocolate.Data.AutoMapper
package by @glen-84 in #8246 - [Fusion] Excluded built-in source schema scalar types from being merged by @glen-84 in #8249
- Switched from LRU cache algorithm to clock cache algorithm by @michaelstaib in #8253
- Added cache diagnostics. by @michaelstaib in #8254
- Moved cache into separate caching package that is AOT compatible by @michaelstaib in #8255
- [Fusion] Avoid writing log entries as GraphQL comments when unnecessary by @glen-84 in #8257
- [Fusion] Fixed grammar in SourceSchemaMerger XML docs by @glen-84 in #8258
- [Fusion] Removed unreferenced types from the merged schema by @glen-84 in #8259
- Groundwork to align type systems. by @michaelstaib in #8247
- [Fusion] Added
requirements
argument to@fusion__requires
by @glen-84 in #8268 - Added v16 documentation by @glen-84 in #8275
- Disabled markdownlint rule MD059 by @glen-84 in #8286
- [Fusion] Fixed validation rule "EnumTypeDefaultValueInaccessibleRule" by @glen-84 in #8285
- Allow late binding of subscribe resolvers. by @michaelstaib in #8287
- fix: #8264 - fully qualified string not used for types in dataloader generator by @svihpinc in #8265
- Fixed schema initialization when type has field that returns list of objects. by @michaelstaib in #8288
- Added switch to disable the DateTime format check. by @michaelstaib in #8289
- Fixed URQL link by @CronKz in #8291
- [Fusion] Excluded overridden fields when merging by @glen-84 in #8298
- Fixed calculation of totalPages in CreateRelativeForwardCursors method by @glen-84 in #8295
- Allow more control over transport features. by @michaelstaib in #8296
- Escaped part separator in composite node ID string and GUID values by @glen-84 in #8300
- Fixed issues with the request middleware source generator by @glen-84 in #8274
- Fix @semanticNonNull on interface id fields by @tobias-tengler in #8305
- Introduced new execution abstractions. by @michaelstaib in #8267
- Fixed snapshot file names by @glen-84 in #8310
- Disallowed deprecation of fields not deprecated in the interface by @glen-84 in #8279
- Required s_ prefix for static field names by @glen-84 in #7958
- Updated EF Core and related packages by @glen-84 in #8245
- Updated validation to disallow skip/include on root subscription fields by @glen-84 in #8276
- Added migration section for #8276 by @glen-84 in #8277
- Updated tag name validation to allow hyphens and relax requirements by @glen-84 in #8304
- Fixed issues with regular expressions in scalar types by @glen-84 in #8309
- Added migration section for #8279 by @glen-84 in #8280
- [Fusion] Satisfiability validation by @glen-84 in #8294
- Removed duplicate analyzer test project by @glen-84 in #8314
- Fixed the HotChocolate.Core.slnx file by @glen-84 in #8316
- Renamed Types.Analyzer.Integration.Tests directory (Analyzers, plural) by @glen-84 in #8317
- Added .NET 10 by @glen-84 in #8248
- Updated code to use the ArgumentNullException throw helper by @glen-84 in #8319
- Updated code to use the ArgumentException throw helper by @glen-84 in #8320
- Updated code to use the ArgumentOutOfRangeException throw helper by @glen-84 in #8321
- Updated code to use the ObjectDisposedException throw helper by @glen-84 in #8322
- Reverted documentation changes in #8267 by @glen-84 in #8323
- Updated the naming of const and static fields by @glen-84 in #8326
- Added Fusion.CommandLine to solution by @glen-84 in #8328
- Updated code to use the range operator by @glen-84 in #8330
- Fixed some static field names by @glen-84 in #8331
- Disabled naming style warnings in WellKnownTypes class by @glen-84 in #8332
- Fixed bug in TopicFormatter by @glen-84 in #8333
- Updated code to remove trailing commas by @glen-84 in #8334
- Updated code to use the field keyword by @glen-84 in #8335
- [Fusion] Support union and input object type in composite schema by @tobias-tengler in #8283
- Updated code to use collection expressions by @glen-84 in #8336
- Switched to using slnx solution files by @glen-84 in #8337
- Updated code to remove unnecessary braces by @glen-84 in #8338
- Updated code to remove unnecessary conditional access by @glen-84 in #8339
- Updated code to remove unnecessary null coalescing by @glen-84 in #8340
- Updated code to remove unnecessary null-forgiving operator usage by @glen-84 in #8341
- Updated code to consistently order modifiers by @glen-84 in #8343
- Updated code to use pattern matching
not
operator by @glen-84 in #8344 - Updated code to prefer concrete values over
default
by @glen-84 in #8345 - Updated Roslynator (4.12.4 -> 4.13.1) by @glen-84 in #8346
- Updated code to remove unnecessary blank lines by @glen-84 in #8347
- Updated code to remove redundant 'ToString' calls by @glen-84 in #8348
- Added tests for schema keyword retention when description is present by @glen-84 in #8354
- Shared Execution Pipeline by @michaelstaib in #8329
- Updated code to prefer concrete values over
default
by @glen-84 in #8359 - Removed references to Skimmed by @glen-84 in #8360
- Added Fusion Execution Pipeline by @michaelstaib in #8357
- Fixed some grammatical errors by @glen-84 in #8364
- Fixed the subscription docs by @glen-84 in #8365
- Cleaned up snapshot files by @glen-84 in #8368
- Removed obsolete code by @glen-84 in #8369
- Centralized the Neutral Language configuration by @glen-84 in #8370
- Removed unnecessary usage of the [Service] attribute by @glen-84 in #8371
- Used global using everywhere for Xunit by @glen-84 in #8372
- Removed unnecessary
using
directives by @glen-84 in #8373 - Removed unnecessary casts by @glen-84 in #8375
- Added descriptions to executable definitions by @glen-84 in #8351
- Fixed issue when sorting by a top-level property after a nested property by @glen-84 in #8356
- Fixed DataLoader interface injection. by @michaelstaib in #8380
- Fixed formatting by @glen-84 in #8382
- Removed unused private members by @glen-84 in #8385
- Added
readonly
modifier by @glen-84 in #8386 - Converted (unnecessarily-) interpolated strings to concatenation by @glen-84 in #8387
- Removed unread private members by @glen-84 in #8388
- Ignore type members in TypeInspector by @tobias-tengler in #8389
- Used compound assignment by @glen-84 in #8390
- Removed unnecessary initialization by @glen-84 in #8392
- Fixed DefaultTopic TopicBufferFullMode Mapping by @michaelstaib in #8393
- Used constants instead of fields by @glen-84 in #8394
- Named all local variables using camelCase by @glen-84 in #8395
- Fixed naming of local constants by @glen-84 in #8396
- Added naming rule for internal and private fields by @glen-84 in #8397
- Simplified names by @glen-84 in #8398
- Fixed naming of private fields by @glen-84 in #8399
- Changed public constructors in abstract types to protected by @glen-84 in #8400
- Removed unnecessary suppressions by @glen-84 in #8401
- Removed unnecessary lambda expressions by @glen-84 in #8402
- [Fusion] Added basic query pipeline by @michaelstaib in #8362
- Updated .NET 10 to preview 5 by @glen-84 in #8404
- Remove CancellationToken from global state by @tobias-tengler in #8403
- Updated development packages by @glen-84 in #8405
- Fixed various analyzer errors by @glen-84 in #8417
- Removed unnecessary value assignments by @glen-84 in #8418
- Used inferred member names by @glen-84 in #8419
- Removed BOMs from C# files by @glen-84 in #8420
- Marked local variables as constants (where applicable) by @glen-84 in #8421
- Simplified member access by @glen-84 in #8422
- Ordered named arguments according to the order of parameters by @glen-84 in #8423
- Updated the FieldSelectionMapSyntaxSerializer to include commas by @glen-84 in #8424
- Add Fusion Transport Layer by @michaelstaib in #8410
New Contributors
- @Veribelll made their first contribution in #8061
- @stoyanovskydmitry made their first contribution in #8084
- @daniel-brandenburg made their first contribution in #8220
- @arekgwizdziel made their first contribution in #8240
- @svihpinc made their first contribution in #8265
Full Changelog: 15.1.7...16.0.0-p.4.0