diff options
Diffstat (limited to 'CHANGELOG.md')
| -rw-r--r-- | CHANGELOG.md | 58 |
1 files changed, 55 insertions, 3 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index 03b0831..f42be0a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,7 +6,59 @@ The format is based on and this project adheres to [Haskell Package Versioning Policy](https://pvp.haskell.org/). -## [Unreleased] +## [0.8.0.0] - 2020-06-20 +### Fixed +- The parser rejects variables when parsing defaultValue (DefaultValue). The + specification defines default values as `Value` with `const` parameter and + constants cannot be variables. `AST.Document.ConstValue` was added, + `AST.Document.ObjectField` was modified. +- AST transformation should never fail. + * Arguments and fields with a missing variable as value should be left out. + * Invalid (recusrive or non-existing) fragments should be skipped. +- Argument value coercion. +- Variable value coercion. +- Result coercion. +- The executor should skip the fields missing in the object type and not fail. +- Merging subselections. + +### Changed +- `Schema.Resolver` was moved to `Type.Out`, it is a field and resolver function + pair. +- `AST.Core.Value` was moved into `Type.Definition`. These values are used only + in the execution and type system, it is not a part of the parsing tree. +- `Type` module is superseded by `Type.Out`. This module contains now only + exports from other module that complete `Type.In` and `Type.Out` exports. +- `Error.CollectErrsT` contains the new `Resolution` data structure. + `Resolution` represents the state used by the executor. It contains all types + defined in the schema and collects the thrown errors. + +### Added +- `Type.Definition` contains base type system definition, e.g. Enums and + Scalars. +- `Type.Schema` describes a schema. Both public functions that execute queries + accept a `Schema` now instead of a `HashMap`. The execution fails if the root + operation doesn't match the root Query type in the schema. +- `Type.In` and `Type.Out` contain definitions for input and output types. +- `Execute.Coerce` defines a typeclass responsible for input, variable value + coercion. It decouples us a bit from JSON since any format can be used to pass + query variables. Execution functions accept (`HashMap Name a`) instead of + `Subs`, where a is an instance of `VariableValue`. + +### Removed +- `Schema.scalar`, `Schema.wrappedScalar`. They accepted everything can be + converted to JSON and JSON is not suitable as an internal representation for + GraphQL. E.g. GraphQL distinguishes between Floats and Integers. +- `Schema.wrappedObject`, `Schema.object`, `Schema.resolversToMap`. There is no + need in special functions to construct field resolvers anymore, resolvers are + normal functions attached to the fields in the schema representation. +- `Schema.resolve` is superseded by `Execute.Execution`. +- `Error.runAppendErrs` isn't used anywhere. +- `AST.Core`: `Document`, `Directive`, `Field`, `Fragment`, `Selection`, `Alias` + `TypeCondition` were modified, moved into `Execute.Transform.Document` and + made private. These types describe intermediate representation used by the + executor internally. Moving was required to avoid cyclic dependencies between + the executor and type system. +- `AST.Core` doesn't reexports anything. ## [0.7.0.0] - 2020-05-11 ### Fixed @@ -20,7 +72,7 @@ and this project adheres to - `Trans.argument`. - Schema extension parser. - Contributing guidelines. -- `Schema.resolversToMap` (intended for to be used internally). +- `Schema.resolversToMap` (intended to be used internally). ### Changed - Rename `AST.Definition` into `AST.Document.ExecutableDefinition`. @@ -215,7 +267,7 @@ and this project adheres to ### Added - Data types for the GraphQL language. -[Unreleased]: https://github.com/caraus-ecms/graphql/compare/v0.6.1.0...HEAD +[0.8.0.0]: https://github.com/caraus-ecms/graphql/compare/v0.7.0.0...v0.8.0.0 [0.7.0.0]: https://github.com/caraus-ecms/graphql/compare/v0.6.1.0...v0.7.0.0 [0.6.1.0]: https://github.com/caraus-ecms/graphql/compare/v0.6.0.0...v0.6.1.0 [0.6.0.0]: https://github.com/caraus-ecms/graphql/compare/v0.5.1.0...v0.6.0.0 |
