What's Changed
- Updated target frameworks by @glen-84 in #7471
- Removed StarWars template by @glen-84 in #7490
- Allow page to not exist. by @michaelstaib in #7498
- Enable EnsureAllNodesCanBeResolved by default by @tobias-tengler in #7494
- Remove duplicate call to
GetCustomAttributes
by @Cyberboss in #7497 - Ensured correct culture is set on tests to match culture dependent snapshots by @jarlef in #7496
- Fixed typo in Build.Environment.cs by @glen-84 in #7495
- Fixed analyzer issues by @glen-84 in #7493
- Moved templates into parent directory by @glen-84 in #7492
- Fixed code warning in testing tools. by @michaelstaib in #7499
- Used CookieCrumble in more test projects by @glen-84 in #7461
- Disabled FS3261 by @glen-84 in #7501
- Fixed LoadRequired for multiple keys. by @michaelstaib in #7507
- Ignore nullability for ToConnection helper. by @michaelstaib in #7508
- Fixed a case where a schema path with unix paths (/) would cause the schema file to be added twice on windows machines by @david-driscoll in #7505
- Fixed EfQueryableCursorPagingHandler (hasNextPage & hasPreviousPage) by @CronKz in #7506
- Added a generic version of the ID descriptor method by @glen-84 in #7503
- Allow Access To Nitro by @PascalSenn in #7513
- Fixed issue with the DataLoader registration. by @michaelstaib in #7512
- Removed roadmap by @glen-84 in #7510
- Renamed DataLoader cache methods by @glen-84 in #7516
- Removed the Azure in-process function template by @glen-84 in #7515
- Add Vary + s-maxage to CacheControl directive for efficient CDN caching by @rickardp in #6047
- Upgraded MongoDB Driver to 2.29.0 by @sunghwan2789 in #7517
- Added dotnet 9 to dev container by @CronKz in #7523
- Reworked Default Security Policies by @michaelstaib in #7524
- Fixed parser error when selection-set is missing an EndBrace. by @michaelstaib in #7526
- Switched on oneof by default. by @michaelstaib in #7525
- Added DataLoader group generator. by @michaelstaib in #7528
- Added DataLoader group refinements. by @michaelstaib in #7529
- Added Helper to convert a ISelection to an Expression. by @michaelstaib in #7531
- Removed usage of always() and !cancelled() in workflows by @glen-84 in #7533
- Added more security policy options. by @michaelstaib in #7534
- Fixed issue when required data was present in query. by @michaelstaib in #7536
- Reverted unintentional changes to blog and documentation by @glen-84 in #7537
- Included tag directive in Apollo Federation import list by @glen-84 in #7421
- Added more node ID value serializers. by @michaelstaib in #7538
- Renamed ToSelectorExpression() to AsSelector() by @michaelstaib in #7539
- Added ToConnection mapping overloads by @michaelstaib in #7540
- Added nullability awareness to projections. by @michaelstaib in #7541
- Improved selector when using batching. by @michaelstaib in #7542
- Added inheritance support to new projections engine. by @michaelstaib in #7546
- Allow selector to be null when using Select. by @michaelstaib in #7547
- Fixed issue with errors in mutation convention when explicitly bindun… by @michaelstaib in #7548
- Fixed issue with DataLoader groups and selector injection. by @michaelstaib in #7549
- Added more fine grained control over the persisted operation pipeline. by @michaelstaib in #7550
- Fixed issue when projection on node fields. by @michaelstaib in #7551
- Fixed infer arguments when using lookup. by @michaelstaib in #7552
- Fixed node field projections when nothing is selected. by @michaelstaib in #7554
- Added flags for node and nodes field. by @michaelstaib in #7556
- Fixed request context cleanup by @PascalSenn in #7558
- Reworked Persisted Operation Options by @michaelstaib in #7560
- Update Npgsql Packages by @michaelstaib in #7561
- fusion.md: Clarify when fusion or subgraph app id is required by @bbrandt in #7559
- Fixed issue where the selector is not correctly set. by @michaelstaib in #7562
- Added Codecov configuration file to set the mode to informational by @glen-84 in #7564
- Simplified Codecov coverage upload by @glen-84 in #7565
- Website: Introducing Nitro by @rstaib in #7566
- Used non-escaped text from XML doc summary for descriptions by @glen-84 in #7563
- Pinned Source Generator Packages by @michaelstaib in #7567
- Website: Cookie Consent Fix by @rstaib in #7568
- Improved field selection error messages by @glen-84 in #7573
- Renamed Banana Cake Pop to Nitro by @glen-84 in #7553
- Added support for n:m projections in DataLoader. by @michaelstaib in #7577
- Removed unnecessary Service attribute usage from v14 documentation by @glen-84 in #7576
- Added more overloads for list selects. by @michaelstaib in #7578
- Fixed read-only property projection issue. by @michaelstaib in #7579
- Added migration section for MutationResult -> FieldResult by @glen-84 in #7580
- Allow branching on paging and selection DataLoader. by @michaelstaib in #7581
- Added migration section for IOperationDocumentStorage by @glen-84 in #7582
- Removed Startup class usage from documentation by @glen-84 in #7583
- Refined Slicing Argument Validation by @michaelstaib in #7584
- [Fusion] Support type-system directives by @tobias-tengler in #7585
- Added the other NuGet packages to the Nitro migration section by @glen-84 in #7587
- Added SSH server for JetBrains Gateway with Codespaces. by @michaelstaib in #7592
- Fixed incorrect handling of IntermediateOutputPath by using GraphQLCodeGenerationRoot consistently by @heathprovost in #7590
- Fixed issue with global context data being disposed to early. by @michaelstaib in #7593
- Added predicates to DataLoader by @PascalSenn in #7589
- Removed Apollo Tracing documentation by @glen-84 in #7595
- Updated instructions for disabling cost limit enforcement by @glen-84 in #7594
- Added event hook for document not found in storage. by @michaelstaib in #7596
- Updated Nitro to 20.0.2 by @michaelstaib in #7597
- Updated packages by @glen-84 in #7608
- Fixed issue with defer path when defers are nested. by @michaelstaib in #7605
- Fixed issue with predicates and selectors in generated DataLoader. by @michaelstaib in #7610
- Fixed issue with global state when using deferred execution and scoped services. by @michaelstaib in #7611
- Ensures that FieldResult has errors declared. by @michaelstaib in #7612
- Added required keyed services breaking change to migration guide by @glen-84 in #7603
- Required keyed services to be registered instead of returning null by @glen-84 in #7602
- Treat nullable warnings as errors everywhere by @glen-84 in #7613
- Reworked Fusion Metadata by @michaelstaib in #7363
- Enable AOT Analyzer for Fusion by @michaelstaib in #7614
- Allow control over interfaces of generated DataLoader. by @michaelstaib in #7621
- Fixed issue that is caused by an internal predicate builder. by @michaelstaib in #7640
- Updated cspell.json by @glen-84 in #7639
- Updated the Security section in the v14 blog post by @glen-84 in #7637
- Added migration sections for Dependency Injection and Entity Framework by @glen-84 in #7634
- Updated screenshots for Nitro by @glen-84 in #7591
- Removed HotChocolate.Types.FSharp by @glen-84 in #7619
- Updated the issue templates to set the type instead of applying a label by @glen-84 in #7616
- Fixed issue that caused compile errors on generated DataLoader code. by @michaelstaib in #7647
- Fixed typos in dataloader docs / improve grammatical consistency by @lemonez in #7645
- Updated the Dependency Injection and Entity Framework documentation by @glen-84 in #7604
- Fixed issue that closed stream when using StreamWriter in SyntaxPrinter.PrintToAsync by @glen-84 in #7657
- Mark v14 docs as stable by @tobias-tengler in #7622
- Added missing ParallelExecutable flag to node and nodes fields by @glen-84 in #7661
- [Fusion] Fixed composition of spec directives by @tobias-tengler in #7643
- Adds newsletter october by @PascalSenn in #7662
- Change RequireSlicingArgs default to false. by @michaelstaib in #7666
- Updated Node.js by @glen-84 in #7673
- Fixed incorrect TotalCount when no data is returned by @glen-84 in #7671
- Improved Noda Time scalar type descriptions by @glen-84 in #7665
- Fixed incorrect TotalCount for MongoDB by @glen-84 in #7669
- Fixed incorrect ResolverParameterKind for GetScopedState/SetLocalState by @glen-84 in #7670
- Passed the correct argument to SetSlicedQuery in CursorPagingHandler by @glen-84 in #7667
- Remove TrueNullability prototype by @tobias-tengler in #7675
- Improve automatic mocking by @tobias-tengler in #7676
- Used pure resolver for errors field in custom mutation payloads by @glen-84 in #7691
- Updated MongoDB Driver to 3.0.0 by @glen-84 in #7684
- Replaced static calls to SnapshotExtensions.AddResult in MongoDB tests by @glen-84 in #7689
- Fixed issue with extracting predicates from IFilterContext. by @michaelstaib in #7693
- Added "AddDataLoader<TService, TImplementation>" overload that takes a factory by @danielreynolds1 in #7674
- Fixed issue with the nodeid serializer registration. by @michaelstaib in #7698
- Only cache authorization policies if permitted by policy provider by @tobias-tengler in #7705
- Fixed parsing issue in Utf8GraphQLRequestParser#ParseStringOrNull by @glen-84 in #7703
- Restored and updated error filter documentation by @glen-84 in #7700
- Fixed issue with non-deterministic order of automatic type registrations by @glen-84 in #7708
- [Fusion] Fixed duplicated selections by @tobias-tengler in #7677
- Fixed duplicated documentation text by @glen-84 in #7707
- Fixed CS9258 by @glen-84 in #7713
- Added v15 documentation by @glen-84 in #7715
- Fixed incorrect Strawberry Shake URL in v14 documentation by @glen-84 in #7714
- Updated to .NET 9.0.100 SDK by @michaelstaib in #7726
- Fixed URL-safe ID serialization by @PascalSenn in #7724
- Returned error for unsupported enumerable value types in paging handlers by @glen-84 in #7712
- Fixed issue when accept:/ and operation is a subscription. by @michaelstaib in #7732
- Support nodes field for automatic mocking by @tobias-tengler in #7728
- [Fusion] Add tests for @remove by @tobias-tengler in #7727
- @semanticNonNull support by @tobias-tengler in #7681
- Added v15 migration document by @glen-84 in #7716
- Changed the runtime type for LocalDateType, LocalTimeType, and DateType by @glen-84 in #7717
- Updated snapshots by @glen-84 in #7733
- Updated "Persisted operations" documentation by @glen-84 in #7734
- Added migration section for OnlyAllowPersistedOperations option change by @glen-84 in #7735
- Fixed integration tests for Windows users by @CronKz in #7683
- Enforced specific format for LocalDateType, LocalTimeType, and DateType by @glen-84 in #7722
- Added migration section for runtime type changes by @glen-84 in #7721
- Added migration section for LocalDate/LocalTime/Date enforced format by @glen-84 in #7723
- Added link to "Migrate from 14 to 15" page by @glen-84 in #7738
- Updated references to previous persisted operation options by @glen-84 in #7737
- Added Fusion 15 base project structure. by @michaelstaib in #7743
- Include net9.0 tools in StrawberryShake package by @TylerSiegrist in #7710
- Prevented type descriptions from being overwritten while merging by @glen-84 in #7751
- Updated to .NET 9 GA by @glen-84 in #7748
- Updated the workflows to run on all main version branches by @glen-84 in #7746
- Restructured Fusion Projects by @michaelstaib in #7755
- Removed unnecessary properties from Fusion-vnext property files by @glen-84 in #7761
- Fixed websockets message corruption after cancellation by @sunghwan2789 in #7768
- Fix xml method description when dictionary args present by @smbecker in #7765
- Replaced static calls on SnapshotExtensions class by @glen-84 in #7771
- Split Cookie Crumble into multiple libraries by @glen-84 in #7774
- Added support for variables to new operation planner. by @michaelstaib in #7780
- Refactor CookieCrumble to abstract test frameworks by @stuartjbrown in #6537
- [Fusion vNext] Add plan serialization by @tobias-tengler in #7785
- Adds Fusion Documentation by @PascalSenn in #7789
- Update NITRO CLI Documentation by @PascalSenn in #7762
- Fixed Quick Start Guide In the Docs by @PascalSenn in #7790
- Adds Fusion Aspire Documentation by @PascalSenn in #7791
- Adds fusion node documentation by @PascalSenn in #7792
- Added CookieCrumble.TUnit by @glen-84 in #7784
- Added support for between both cursors by @sunghwan2789 in #7800
- Added ability to mark requests as warmup by @tobias-tengler in #7798
- Corrected AssemblyName/RootNamespace in Fusion-vnext Composition project by @glen-84 in #7795
- Added CookieCrumble.TUnit to Fusion-vnext by @glen-84 in #7794
- Fixed client complete aborting websocket that is sending by @sunghwan2789 in #7793
- Update .NET SDKs in build.sh by @cimnine in #7775
- Fixed unreachable code errors by @glen-84 in #7802
- Added "AddDataLoader<TService, TImplementation>" executor overload that takes a factory by @danielreynolds1 in #7803
- [Fusion vNext] Add support for @Skip / @include by @tobias-tengler in #7788
- Added support for taking between both cursors in ef by @CronKz in #7806
- Allowed built-in scalars and directives to be parsed by the SchemaParser by @glen-84 in #7809
- Added initial structure for Fusion vNext Composition by @glen-84 in #7807
- [Fusion] Add lookup requirements. by @michaelstaib in #7804
- [Fusion] Enrich Operation Plan Snapshots by @michaelstaib in #7816
- [Fusion vNext] Add more tests and fix minor issues by @tobias-tengler in #7814
- Added '@' prefix when exporting directives in Apollo. by @danielreynolds1 in #7812
- Fixed source-generated class names by @CronKz in #7819
- Refactored Fusion Composition validation by @glen-84 in #7821
- [Fusion vNext] Add support for
@skip
/@include
on fragments by @tobias-tengler in #7808 - Adds request cost overrides. by @michaelstaib in #7818
- Added Azure Blob Storage as storage backend for Persisted Operations by @michaelstaib in #7830
- Ensure that the execution batching provider is disposed. by @michaelstaib in #7831
- Adds support for async service scope in request executor by @PascalSenn in #7826
- Fixed batching completes before all responses are returned. by @michaelstaib in #7832
- Fixed options monitor race condition. by @michaelstaib in #7833
- Use the new .NET api to check for nullable reference types by @huysentruitw in #7827
- Fixed initialization race-condition in generated code. by @michaelstaib in #7834
- Made AddAuthorizeDirectiveType public for customizations. by @michaelstaib in #7836
- Updated the XML doc summary for DisallowedInaccessibleElementsRule by @glen-84 in #7839
- Fixed parameter order in OutputFieldTypesNotMergeable method by @glen-84 in #7837
- Added
ValidationHelper.IsExternal
method for Fusion Composition by @glen-84 in #7840 - [Fusion] Added pre-merge validation rule
ExternalMissingOnBaseRule
by @glen-84 in #7842 - [Fusion] Improve Inlining Rewriter by @michaelstaib in #7838
- Added CookieCrumble.Xunit3 by @glen-84 in #7846
- Updated Fusion-vnext test projects to use xUnit v3 instead of TUnit by @glen-84 in #7847
- Added CookieCrumble Module Source Generator by @michaelstaib in #7851
- Fixed CookieCrumble Project Configuration. by @michaelstaib in #7854
- [Fusion] Added pre-merge validation rule
ExternalArgumentDefaultMismatch
by @danielreynolds1 in #7844 - [docs] Change "two main benefits" to "several benefits" by @Daniel15 in #7857
- [Fusion] Improved composition errors by @glen-84 in #7856
- Updated the documentation to use the
ChilliCream.Nitro.Fusion
package by @glen-84 in #7862 - Access formatters more efficiently. by @michaelstaib in #7863
- Updated package references in the gateway templates by @glen-84 in #7861
- [Fusion] Added pre-merge validation rule "ExternalUnusedRule" by @glen-84 in #7864
- [Fusion] Added pre-merge validation rule "RootMutationUsedRule" by @glen-84 in #7865
- Added Fusion Cost Analyzer Improvements. by @michaelstaib in #7867
- [Fusion] Added pre-merge validation rule "RootQueryUsedRule" by @glen-84 in #7866
- [Fusion] Added pre-merge validation rule "RootSubscriptionUsedRule" by @glen-84 in #7868
- [Fusion] Aligned Root(Mutation|Query|Subscription)Used rules with spec by @glen-84 in #7870
- [Fusion] Added pre-merge validation rule "KeyFieldsSelectInvalidTypeRule" by @glen-84 in #7871
- [Fusion] Added pre-merge validation rule "KeyDirectiveInFieldsArgumentRule" by @glen-84 in #7872
- [Fusion] Added pre-merge validation rule "KeyFieldsHasArgumentsRule" by @glen-84 in #7873
- [Fusion] Added pre-merge validation rule "KeyInvalidFieldsRule" by @glen-84 in #7874
- [Fusion] Miscellaneous changes to composition by @glen-84 in #7875
- [Fusion] Added pre-merge validation rule "KeyInvalidSyntaxRule" by @glen-84 in #7880
- [Fusion] Added pre-merge validation rule "ProvidesDirectiveInFieldsArgumentRule" by @glen-84 in #7881
- [Fusion] Added pre-merge validation rule "ExternalOnInterfaceRule" by @danielreynolds1 in #7882
- [Fusion] Added pre-merge validation rule "ProvidesFieldsHasArgumentsRule" by @glen-84 in #7884
- [Fusion] Added pre-merge validation rule "ProvidesFieldsMissingExternalRule" by @glen-84 in #7885
- [Fusion] Added pre-merge validation rule "QueryRootTypeInaccessibleRule" by @glen-84 in #7886
- [Fusion] Added pre-merge validation rule "ProvidesOnNonCompositeFieldRule" by @danielreynolds1 in #7883
- [Fusion] Added pre-merge validation rule "RequireDirectiveInFieldsArgumentRule" by @glen-84 in #7887
- [Fusion] Added pre-merge validation rule "RequireInvalidFieldsTypeRule" by @glen-84 in #7888
- [Fusion] Added pre-merge validation rule "LookupShouldHaveNullableReturnTypeRule" by @danielreynolds1 in #7889
- [Fusion] Added pre-merge validation rule "LookupMustNotReturnListRule" by @danielreynolds1 in #7890
- [Fusion] Adds interface support to type system. by @michaelstaib in #7893
- Resolved issue in SchemaParser that prevented default values parsing in Input Objects by @danielreynolds1 in #7895
- [Fusion] Added pre-merge validation rule "InputFieldDefaultMismatchRule" by @danielreynolds1 in #7891
- [Fusion] Added pre-merge validation rule "RequireInvalidSyntaxRule" by @glen-84 in #7898
- [Fusion] Added pre-merge validation rule "InputFieldTypesMergeableRule" by @danielreynolds1 in #7900
- Fixed wrong casing in
stage edit --configuration
sample by @PascalSenn in #7904 - Fixed algolia search css by @PascalSenn in #7905
- [Fusion] Added pre-merge validation rule "EnumTypesInconsistentRule" by @danielreynolds1 in #7901
- Renamed "EnumTypesInconsistentRule" to "EnumValuesMismatchRule" by @glen-84 in #7906
- [Fusion] Added pre-merge validation rule "ProvidesInvalidSyntaxRule" by @glen-84 in #7907
- [Fusion] Added pre-merge validation rule "OverrideFromSelfRule" by @glen-84 in #7909
- [Fusion] Added pre-merge validation rule "OverrideOnInterfaceRule" by @glen-84 in #7910
- [Fusion] Added pre-merge validation rule "KeyInvalidFieldsTypeRule" by @glen-84 in #7913
- [Fusion] Added pre-merge validation rule "ProvidesInvalidFieldsTypeRule" by @glen-84 in #7914
- [Fusion] Added pre-merge validation rule "InputWithMissingRequiredFieldsRule" by @glen-84 in #7915
- [Fusion] Added pre-merge validation rule "FieldArgumentTypesMergeableRule" by @glen-84 in #7916
- Fixed nitro cli stage edit documentation by @PascalSenn in #7912
- Added generic NamedType helper. by @michaelstaib in #7923
- [Fusion] Miscellaneous changes to composition (part 2) by @glen-84 in #7920
- Updated xunit.v3 (1.0.0 -> 1.0.1) by @glen-84 in #7926
- [Fusion] Restructure composition by @glen-84 in #7927
- Added FieldSelectionMap parser by @glen-84 in #7211
- Correctly handle
null
for lists of nullable value-type IDs by @tobias-tengler in #7933 - Fixed the wording in comment by @JesseXia in #7928
- Renamed parameter in FieldSelectionMapSyntaxVisitor class by @glen-84 in #7936
- Added ISyntaxNodeProvider to Skimmed type system member definitions by @glen-84 in #7938
- Support @include/@Skip for non-nullable fields by @timward60 in #7918
- Reworked the invalid GraphQL name error message. by @michaelstaib in #7939
- Do not inline total count by default into paging queries. by @michaelstaib in #7942
- Fixed issues with IsSelected and composite lists. by @michaelstaib in #7941
- Added support for total count to ToBatchPageAsync. by @michaelstaib in #7944
- Ensure that all collections are ordered. by @michaelstaib in #7946
- [Fusion] Corrected the root namespace of the composition tests project by @glen-84 in #7945
- [Fusion] Renamed SyntaxException to FieldSelectionMapSyntaxException by @glen-84 in #7947
- Reworked the type inititialization flow. by @michaelstaib in #7953
- adjust support page by @PascalSenn in #7961
- adds documentation for JWT authentication over WebSockets by @PascalSenn in #7955
- Allow for error tracing on background tasks. by @michaelstaib in #7952
- Added DataContext for simpler access of selections, filters and sorting. by @michaelstaib in #7957
- Update CursorParser to use '' as escape instead of ':' by @onionhammer in #7962
- Move Data APIs into GreenDonut by @michaelstaib in #7964
- Moved LocalDate/LocalTime to HotChocolate.Types and added LocalDateTime by @glen-84 in #7749
- Added documentation for LocalDate/LocalDateTime/LocalTime changes by @glen-84 in #7750
New Contributors
- @Cyberboss made their first contribution in #7497
- @CronKz made their first contribution in #7506
- @rickardp made their first contribution in #6047
- @heathprovost made their first contribution in #7590
- @lemonez made their first contribution in #7645
- @smbecker made their first contribution in #7765
- @stuartjbrown made their first contribution in #6537
- @JesseXia made their first contribution in #7928
Full Changelog: 14.3.0...15.0.0-rc.1