Skip to content

Commit 1c1c024

Browse files
DCPReverexperiandri
andcommitted
Added release notes for versons 2.0...3.0. (#544)
Co-authored-by: Andrii Chebukin <[email protected]>
1 parent cdf6e73 commit 1c1c024

File tree

1 file changed

+117
-50
lines changed

1 file changed

+117
-50
lines changed

RELEASE_NOTES.md

Lines changed: 117 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -1,166 +1,233 @@
1-
#### 0.0.1-beta - April 19 2016
1+
#### 0.0.1-beta - 2016-04-19
22
* Initial release
33

4-
#### 0.0.2-beta - September 1 2016
4+
#### 0.0.2-beta - 2016-09-01
55
* Introduced intermediate representation of GraphQL operation execution.
66
* Introduced ability to convert GraphQL query to LINQ.
77
* Replaced current asynchronous API resolver internals.
88
* Ability to use records as complex input variables.
99
* Minor bugfixes and performance optimizations.
1010

11-
### 0.0.3-beta - March 22 2018
11+
### 0.0.3-beta - 2018-03-22
1212
* Introduced a sample for GraphQL over WebSocket Protocol
1313
* Introduced support for Stream and Defer directives
1414
* Minor bugfixes.
1515

16-
### 0.0.4-beta - May 31 2018
16+
### 0.0.4-beta - 2018-05-31
1717
* Introduced support for middlewares in the execution pipeline.
1818
* Introduced new package, named FSharp.Data.GraphQL.Server.Middleware, with generic, built-in middlewares.
19-
* Introduced QueryWeightMiddleware, a generic execution middleware to measure query complexity and optionally block qurey execution with a threshold.
19+
* Introduced QueryWeightMiddleware, a generic execution middleware to measure query complexity and optionally block query execution with a threshold.
2020
* Introduced ObjectListFilterMiddleware, a generic schema compile middleware to add filter options to list fields of specific objects.
2121
* Changed GQLResponse object to be a Record, which supports a Metadata bag object, that can be used to hold custom information per query request.
2222
* Changed FieldDef interface to be able to support a Metadata bag object, that can be used to hold custom information per field.
2323
* ISchema TypeMap is now a mutable object, to ease schema customization through schema compile middlewares.
24-
* Fixing many minor errors when deferring or streaming results with Union and Enum types (specially when queried using fragments).
24+
* Fixing many minor errors when deferring or streaming results with Union and Enum types (especially when queried using fragments).
2525
* Deferred and streamed error results now are handled.
2626
* Added support for nested deferred and streamed results (currently does have a maximum degree of two nested operations).
2727

28-
### 0.0.4-beta01 - May 31 2018
28+
### 0.0.4-beta01 - 2018-05-31
2929
* Fix package dependency versions
3030

31-
### 0.0.5-beta - August 10 2018
31+
### 0.0.5-beta - 2018-08-10
3232
* Upgraded dependencies on Newtonsoft.Json to the latest version.
3333
* Changing subscription field definitions to have a generic output type - the output is not required to be a GraphQL type anymore.
3434
* Implemented experimental support for @live directive, through a subscription system.
3535
* Fixed a bug that caused an exception when ToString function is called on an empty NameValueLookup.
3636
* Added support for asynchronous subscription field definitions.
3737

38-
### 0.0.6-beta - August 10 2018
38+
### 0.0.6-beta - 2018-08-10
3939
* Fixes for introspection query
4040
* Use string identifier to publish to subscription
4141

42-
### 0.0.7-beta - September 17 2018
42+
### 0.0.7-beta - 2018-09-17
4343
* **Breaking Change:** Async Pub/Sub methods for subscription and live directive handler interfaces
4444
* Add Long Scalar definition
4545

46-
### 0.0.8-beta - October 27 2018
47-
* Add subscription field to intospection schema
46+
### 0.0.8-beta - 2018-10-27
47+
* Add subscription field to introspection schema
4848

49-
### 0.0.8-beta01 - October 28 2018
50-
* Add subscription field to intospection schema
49+
### 0.0.8-beta01 - 2018-10-28
50+
* Add subscription field to introspection schema
5151

52-
### 0.0.9 - November 2 2018
52+
### 0.0.9 - 2018-11-02
5353
* Fixed a bug where output def of a subscription field was not reachable for introspection.
5454

55-
### 0.0.10-beta - November 13 2018
55+
### 0.0.10-beta - 2018-11-13
5656
* Deferred and Streamed results now return their fields in the direct result as well. The value of those fields will be an empty list or null.
5757
* Live results now send the immediate result in the direct result, instead of the deferred result.
5858

59-
### 0.0.11-beta - November 21 2018
59+
### 0.0.11-beta - 2018-11-21
6060
* Deferred and Streamed results fixes for GQL interfaces.
6161

62-
### 0.0.12-beta - November 21 2018
62+
### 0.0.12-beta - 2018-11-21
6363
* Deferred and Streamed results fixes for GQL interfaces when at the top-level of query.
6464

65-
### 0.0.16-beta - January 3 2019
65+
### 0.0.16-beta - 2019-01-03
6666
* **Breaking Change** The `ISubscriptionProvider` interface now has additional methods to publish to subscriptions by tag.
6767
* **Breaking Change** Renamed interface methods in `ISubscriptionProvider` from XxAsync to AsyncXx to reserve the former for TPL extensions.
6868
* Fixes for stream and defer execution.
6969

70-
### 0.0.17-beta - January 11 2019
70+
### 0.0.17-beta - 2019-01-11
7171
* Execute deferred results in parallel.
7272

73-
### 0.0.18-beta - January 16 2019
73+
### 0.0.18-beta - 2019-01-16
7474
* Fix dispose of deferred/stream responses.
7575

76-
### 1.0.0-beta - April 27 2019
77-
* **Breaking Change** New type provider api! see samples/client-provider for details.
76+
### 1.0.0-beta - 2019-04-27
77+
* **Breaking Change** New type provider API! see samples/client-provider for details.
7878
* Fixes for #216 enum as a variable.
7979
* Upgraded paket and dependencies.
8080

81-
### 1.0.0-beta2 - April 27 2019
82-
* **Breaking Change** GraphQLProvider now makes Nullable graphql inputs optional method arguments instead of options
81+
### 1.0.0-beta2 - 2019-04-27
82+
* **Breaking Change** GraphQLProvider now makes Nullable GraphQL inputs optional method arguments instead of options
8383
* **Breaking Change** GraphQLProvider uses the operation name as the generated operation type's names. if no operation name is specified it uses "Operation" + the query string's hash
8484
* Make the type provider cross-targeting
8585
* **Breaking Change** Add postcompile phase to middleware interface
8686

87-
### 1.0.0-beta3 - May 10 2019
88-
* **Breaking Change** GraphQLProvider record types constructors now receives option arguments as optional arguments
87+
### 1.0.0-beta3 - 2019-05-10
88+
* **Breaking Change** GraphQLProvider record types constructors now receive option arguments as optional arguments
8989
* Revision on scalar types parsing - fixed some wrong behaviors such as parsing ints as floats
9090

91-
### 1.0.0-beta4 - May 13 2019
92-
* Fixing an bug when converting variable types to variables json in a query
91+
### 1.0.0-beta4 - 2019-05-13
92+
* Fixing a bug when converting variable types to variables json in a query
9393

94-
### 1.0.0-beta5 - May 13 2019
95-
* Fixing an bug when parsing json objects with no fields in serialization
94+
### 1.0.0-beta5 - 2019-05-13
95+
* Fixing a bug when parsing json objects with no fields in serialization
9696

97-
### 1.0.0-beta6 - May 17 2019
97+
### 1.0.0-beta6 - 2019-05-17
9898
* Changing constructors of provided types to have overloads instead of optional parameters (needed because of a limitation of the Type Provider SDK)
9999
* Adding support for field aliases
100100
* Operation result errors and custom data now are provided as their respective types instead of options (`Operation Error []` and `Map<string, obj>`)
101101

102-
### 1.0.0-beta7 - May 17 2019
102+
### 1.0.0-beta7 - 2019-05-17
103103
* Minor bug fixes
104104
* Fixing an error on overload constructor definition
105105

106-
### 1.0.0-beta8 - May 22 2019
106+
### 1.0.0-beta8 - 2019-05-22
107107
* Performance improvements
108108

109-
### 1.0.0-beta9 - May 22 2019
109+
### 1.0.0-beta9 - 2019-05-22
110110
* Fixing dependency issue on Server component
111111

112-
### 1.0.0-beta90 - May 29 2019
112+
### 1.0.0-beta90 - 2019-05-29
113113
* Fixing a wrong cast for System.Uri type
114114
* Adding support for file uploads through [GraphQL Multipart Request Spec](https://github.com/jaydenseric/graphql-multipart-request-spec)
115115
* Changing variable parameters of Run/AsyncRun methods to work as overloaded methods instead of one having optional parameters
116116
* Minor bug fixes
117117

118-
### 1.0.0 - July 4 2019
119-
* Changing the internal client of the Type provider (`System.Http.HttpClient`)
118+
### 1.0.0 - 2019-07-04
119+
* Changing the internal client of the Type provider (`System.Net.Http.HttpClient`)
120120
* Fixing several minor bugs of the file upload system in the client provider
121121
* Limiting the upload type of the client provider to be a scalar type (provider fails if it is not)
122122
* If an upload type is specified and it is not used in a query, client provider defaults to standard HTTP protocol instead of the multipart request
123123
* Implementing a validation system for queries based on the [GraphQL Spec](https://graphql.github.io/graphql-spec/June2018/#sec-Validation)
124124
* Making validation mandatory on the server component
125125
* Implemented a cache system for query validation on both server and client components
126126
* Client component can optionally disable query validation
127-
* Updating parser to support unamed operations alongside short handed queries
127+
* Updating parser to support unnamed operations alongside shorthand queries
128128
* Adding null value support for the AST Input Values (it was previously parsed as an Enum Value)
129129
* **Breaking Change** Renaming `FSharp.Data.GraphQL.Server.Middlewares` package to `FSharp.Data.GraphQL.Server.Middleware`
130130

131-
### 1.0.1 - July 5 2019
131+
### 1.0.1 - 2019-07-05
132132
* Adjusting package dependencies (`FParsec`, `System.Net.Http`, and `FSharp.Data.GraphQL.Server` are not locked anymore)
133133

134-
### 1.0.2 - August 19 2019
134+
### 1.0.2 - 2019-08-19
135135
* fixed false positive validation errors related to variable usage.
136136

137-
### 1.0.3 - March 3 2020
137+
### 1.0.3 - 2020-03-03
138138
* Correct printing of queries without names
139139
* Correct printing of ListValue and ObjectValue
140140
* Traverse list values in argument lists
141-
* Added test cases for object inputs for graphql functions
141+
* Added test cases for object inputs for GraphQL functions
142142

143143

144-
### 1.0.4 - March 22 2020
144+
### 1.0.4 - 2020-03-22
145145
* TypeProvider now treats custom scalars as strings
146146
* The Guid scalar was mapped to a DateTime
147147

148148

149-
### 1.0.5 - March 23 2020
149+
### 1.0.5 - 2020-03-23
150150
* Support opening static classes
151151
* Add additional case in client to support failed requests that don't return a path.
152152

153-
### 1.0.6 - December 15 2020
153+
### 1.0.6 - 2020-12-15
154154
* TypeProvider accepts IHttpClientFactory as input
155155

156-
### 1.0.7 - December 30 2020
156+
### 1.0.7 - 2020-12-30
157157
* Add static TypeProvider parameter `explicitOptionalParameters`.
158158

159-
### 1.0.8 - April 18 2021
159+
### 1.0.8 - 2021-04-18
160160
* Remove Desktop build
161161
* Update documentation and build tools
162162
* Upgrade build scripts
163163
* Migrate from netcoreapp2.0 to net5.0 for tests and samples
164164
* Target netstandard2.0 exclusively for Type Providers
165-
* Make FSharp.Data.GraphQL.Shared a Nuget package
166-
* Fix parser bug. Thanks to @njlr
165+
* Make FSharp.Data.GraphQL.Shared a NuGet package
166+
* Fix parser bug. Thanks to @njlr
167+
168+
### 2.0.0 - 2024-03-24
169+
* **Breaking Change** Migrated to .NET 6/7 and F# 7
170+
* **Breaking Change** Implemented GraphQL error handling using `IGQLError` interface instead of exceptions
171+
* **Breaking Change** Implemented parsing variables as `JsonElement`
172+
* **Breaking Change** Added `Type` suffix to all built-in GraphQL type definitions
173+
* **New Package** `FSharp.Data.GraphQL.Server.AspNetCore` for ASP.NET Core integration
174+
* Migrated from Paket and FAKE CLI to FAKE build project
175+
* Added `Path` to `ResolveFieldContext`
176+
* Added ability to deprecate fields defined with any combination of parameters (more overloads to the `Define` static class)
177+
* Added support of `Option` variable values for nullable input types
178+
* Added mapping of input query/AST lists to .NET array type in addition to F# list
179+
* Added input object validation with detailed error messages
180+
* Added `Define.WrappedScalar` for value object scalar definitions
181+
* Added coercion of nested input objects
182+
* Added support for `ValueOption` in `AutoField`
183+
* Improved WebSocket handling to eliminate large array allocations
184+
* Fixed nullable enum input handling
185+
* Fixed coercing enum type variables as F# discriminated unions
186+
* Fixed various introspection and default value encoding issues
187+
188+
### 2.1.0 - 2024-04-13
189+
* Improved server exception logging by including exception in log message
190+
* Documentation and README improvements
191+
192+
### 2.2.0 - 2024-05-08
193+
* Improved `AddGraphQLOptions`
194+
* Added Altair and GraphiQL to sample projects
195+
196+
### 2.2.1 - 2024-06-16
197+
* Fixed `JsonSerializerOptions` read-only instance error
198+
199+
### 3.0.0 - 2025-11-30
200+
* **Breaking Change** Migrated to .NET 8 and F# 9.0 with `FSharp.Core` 9.0.x
201+
* **Breaking Change** Updated scalar `CoerceOutput` signature to `objnull -> 'Primitive option`
202+
* **Breaking Change** Moved GraphQL error extensions to standard `extensions` field according to specification
203+
* **Breaking Change** Renamed `ObjectListFilter` type definition to `ObjectListFilterType`
204+
* **Breaking Change** Removed `ObjectListFilter.NoFilter` case
205+
* **Breaking Change** Reworked Relay types to enable async fetching and switched to `ValueOption`
206+
* **Breaking Change** `Giraffe` web framework integration moved to separate package
207+
* **New Package** `FSharp.Data.GraphQL.Server.Giraffe` for Giraffe web framework integration
208+
* **New Package** `FSharp.Data.GraphQL.Server.Oxpecker` for Oxpecker web framework integration
209+
* Removed unused Suave NuGet package
210+
* Added `Oxpecker` web framework support
211+
* Added per-field authorization sample using ASP.NET authorization policies
212+
* Added file upload support via GraphQL Multipart Request Spec with `FileData` type
213+
* Added `OfTypes` filter case for `ObjectListFilter` to filter union cases by type
214+
* Added `ObjectListFilter` value parsing from variables in addition to supported inline value
215+
* Added `ObjectListFilter` value parsing from inline object with variables
216+
* Added `ObjectListFilter` additional operators (`In`, `Contains`, `StartsWith`, `EndsWith`)
217+
* Added `StructNullable` to support `ValueOption` fields in input objects
218+
* Added case-insensitive input object fields and constructor parameters matching
219+
* Added ability to recognize if an input field is null or not present at all
220+
* Added ability to add errors to resolved fields
221+
* Added `FieldDef<'Val, 'Res>` type to support resolver-changing middlewares
222+
* Added GraphQL extensions support via `GQLMessageException`
223+
* Added more overloads to `AddGraphQLOptions` including additional converters
224+
* Added support for optional properties usage in non-Enumerable LINQ queries
225+
* Fixed `ID` type deserialization
226+
* Fixed `ObjectListFilter` `Contains` and `In` operators implementation for collections
227+
* Fixed generation of discriminator comparing expressions to be translatable to database queries
228+
* Fixed `IInputExecutionContext` resolution
229+
* Fixed `graphql-transport-ws` WebSocket implementation
230+
* Fixed ability to override `GraphQLRequestHandler<'Root>`
231+
* Fixed input object CLR property type validation against GraphQL scalar definitions
232+
* Migrated all solutions to SLNX format
233+
* Various performance optimizations and bug fixes

0 commit comments

Comments
 (0)