aboutsummaryrefslogtreecommitdiff
path: root/CHANGELOG.md
diff options
context:
space:
mode:
Diffstat (limited to 'CHANGELOG.md')
-rw-r--r--CHANGELOG.md105
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