diff options
Diffstat (limited to 'CHANGELOG.md')
| -rw-r--r-- | CHANGELOG.md | 105 |
1 files changed, 86 insertions, 19 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index b9fc93f..6c3cd40 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,28 +6,94 @@ The format is based on and this project adheres to [Haskell Package Versioning Policy](https://pvp.haskell.org/). +## [0.11.0.0] - 2020-11-07 +### Changed +- `AST.Document.Selection` wraps additional new types: `Field`, `FragmentSpread` + and `InlineFragment`. Thus validation rules can be defined more concise. +- `AST.Document`: `Argument` and `Directive` contain token location. +- `AST.Document.Argument` contains the `Value` wrapped in the `Node`. +- `AST.Lexer.colon` and `AST.Lexer.at` ignore the result (it is always the +- same). +- `Validate.Validation`: `Validation.rules` was removed. `Validation.rules` + contained the list of rules, but the executed rules shouldn't know about other + rules. `rules` was a part of the `Validation` context to pass it easier + around, but since the rules are traversed once now and applied to all nodes in + the tree at the beginning, it isn't required anymore. +- `Validate.Validation.Error`: `path` is removed since it isn't possible to get + the path without executing the query. +- `Error.Error`: `path` added. It is currently always empty. +- `Validate.Validation.Path` was moved to `Error`. +- `Type.Schema.Schema`: data constructor is hidden, fields are accessible with + freestanding functions: `query`, `mutation`, `subscription`, `directives` and + `types`. + +### Added +- `Validate.Validation.Rule` constructors: + - `SelectionRule` + - `FragmentRule` + - `FragmentSpreadRule` + - `ArgumentsRule` + - `DirectivesRule` + - `VariablesRule` + - `FieldRule` +- `Validate.Rules`: + - `fragmentsOnCompositeTypesRule` + - `fragmentSpreadTargetDefinedRule` + - `fragmentSpreadTypeExistenceRule` + - `noUnusedFragmentsRule` + - `noFragmentCyclesRule` + - `uniqueArgumentNamesRule` + - `uniqueDirectiveNamesRule` + - `uniqueVariableNamesRule` + - `variablesAreInputTypesRule` + - `noUndefinedVariablesRule` + - `noUndefinedVariablesRule` + - `noUnusedVariablesRule` + - `uniqueInputFieldNamesRule` + - `fieldsOnCorrectTypeRule` + - `scalarLeafsRule` + - `knownArgumentNamesRule` + - `knownDirectiveNamesRule` + - `directivesInValidLocationsRule` + - `providedRequiredArgumentsRule` + - `providedRequiredInputFieldsRule` +- `AST.Document.Field`. +- `AST.Document.FragmentSpread`. +- `AST.Document.InlineFragment`. +- `AST.Document.Node`. +- `Type.In.Arguments`: Type alias for an argument map. +- `Type.Schema.Directive` and `Type.Schema.Directives` are directive definition + representation. +- `Type.Schema.schema`: Schema constructor. + +### Fixed +- Collecting existing types from the schema considers subscriptions. + +### Removed +- `AST.Document.Alias`. Use `AST.Document.Name` instead. + ## [0.10.0.0] - 2020-08-29 -## Changed +### Changed - `Test.Hspec.GraphQL.*`: replace `IO` in the resolver with any `MonadCatch`. - The `Location` argument of `AST.Document.Definition.ExecutableDefinition` was moved to `OperationDefinition` and `FragmentDefinition` since these are the actual elements that have a location in the document. - `Validate.Rules` get the whole validation context (AST and schema). -## Added +### Added - `Validate.Validation` contains data structures and functions used by the validator and concretet rules. - `Validate.Rules`: operation validation rules. ## [0.9.0.0] - 2020-07-24 -## Fixed +### Fixed - Location of a parse error is returned in a singleton array with key `locations`. - Parsing comments in the front of definitions. - Some missing labels were added to the parsers, some labels were fixed to refer to the AST nodes being parsed. -## Added +### Added - `AST` reexports `AST.Parser`. - `AST.Document.Location` is a token location as a line and column pair. - `Execute` reexports `Execute.Coerce`. @@ -43,7 +109,7 @@ and this project adheres to - `Test.Hspec.GraphQL` contains some test helpers. - `Validate` contains the validator and standard rules. -## Changed +### Changed - `Type.Out.Resolver`: Interface fields don't have resolvers, object fields have value resolvers, root subscription type resolvers need an additional resolver that creates an event stream. `Resolver` represents these differences @@ -67,7 +133,7 @@ and this project adheres to - The constraint of the base monad was changed to `MonadCatch` (and it implies `MonadThrow`). -## Removed +### Removed - `Trans.ActionT` is an unneeded layer of complexity. `Type.Out.Resolver` represents possible resolver configurations. - `Execute.executeWithName`. `Execute.execute` takes the operation name and @@ -334,16 +400,17 @@ and this project adheres to ### Added - Data types for the GraphQL language. -[0.10.0.0]: https://github.com/caraus-ecms/graphql/compare/v0.9.0.0...v0.10.0.0 -[0.9.0.0]: https://github.com/caraus-ecms/graphql/compare/v0.8.0.0...v0.9.0.0 -[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 -[0.5.1.0]: https://github.com/caraus-ecms/graphql/compare/v0.5.0.1...v0.5.1.0 -[0.5.0.1]: https://github.com/caraus-ecms/graphql/compare/v0.5.0.0...v0.5.0.1 -[0.5.0.0]: https://github.com/caraus-ecms/graphql/compare/v0.4.0.0...v0.5.0.0 -[0.4.0.0]: https://github.com/caraus-ecms/graphql/compare/v0.3...v0.4.0.0 -[0.3]: https://github.com/caraus-ecms/graphql/compare/v0.2.1...v0.3 -[0.2.1]: https://github.com/caraus-ecms/graphql/compare/v0.2...v0.2.1 -[0.2]: https://github.com/caraus-ecms/graphql/compare/v0.1...v0.2 +[0.11.0.0]: https://www.caraus.tech/projects/pub-graphql/repository/23/diff?rev=v0.11.0.0&rev_to=v0.10.0.0 +[0.10.0.0]: https://www.caraus.tech/projects/pub-graphql/repository/23/diff?rev=v0.10.0.0&rev_to=v0.9.0.0 +[0.9.0.0]: https://www.caraus.tech/projects/pub-graphql/repository/23/diff?rev=v0.9.0.0&rev_to=v0.8.0.0 +[0.8.0.0]: https://www.caraus.tech/projects/pub-graphql/repository/23/diff?rev=v0.8.0.0&rev_to=v0.7.0.0 +[0.7.0.0]: https://www.caraus.tech/projects/pub-graphql/repository/23/diff?rev=v0.7.0.0&rev_to=v0.6.1.0 +[0.6.1.0]: https://www.caraus.tech/projects/pub-graphql/repository/23/diff?rev=v0.6.1.0&rev_to=v0.6.0.0 +[0.6.0.0]: https://www.caraus.tech/projects/pub-graphql/repository/23/diff?rev=v0.6.0.0&rev_to=v0.5.1.0 +[0.5.1.0]: https://www.caraus.tech/projects/pub-graphql/repository/23/diff?rev=v0.5.1.0&rev_to=v0.5.0.1 +[0.5.0.1]: https://www.caraus.tech/projects/pub-graphql/repository/23/diff?rev=v0.5.0.1&rev_to=v0.5.0.0 +[0.5.0.0]: https://www.caraus.tech/projects/pub-graphql/repository/23/diff?rev=v0.5.0.0&rev_to=v0.4.0.0 +[0.4.0.0]: https://www.caraus.tech/projects/pub-graphql/repository/23/diff?rev=v0.4.0.0&rev_to=v0.3 +[0.3]: https://www.caraus.tech/projects/pub-graphql/repository/23/diff?rev=v0.3&rev_to=v0.2.1 +[0.2.1]: https://www.caraus.tech/projects/pub-graphql/repository/23/diff?rev=v0.2.1&rev_to=v0.2 +[0.2]: https://www.caraus.tech/projects/pub-graphql/repository/23/diff?rev=v0.2&rev_to=v0.1 |
