Skip to content

1.2.0

Compare
Choose a tag to compare
@github-actions github-actions released this 02 May 18:19
· 256 commits to master since this release
0c1cda3

[1.2.0] - 2020-04-30

Added

  • ISSUE-363 - Add an optional query_cache_decorator argument at engine initialisation allowing to forward a custom decorator to use to cache query parsing.
  • ISSUE-362 - Add an optional json_loader argument to engine creation APIs so json loader can be customized.
  • ISSUE-361 - Add an optional custom_default_arguments_coercer argument at engine initialisation to override the callable used to coerce arguments.
  • ISSUE-361 - Add an optional arguments_coercer to @Directive, @Subscription & @Resolver decorator to override the callable used to coerce arguments on the decorated directive/field.

Changed

  • ISSUE-356 - Removed dependencies on flex and bison for installing Tartiflette. cmake is still necessary.
  • ISSUE-361 - Coerce lists (input, literal, output) synchronously to avoid creation of too many asyncio tasks.
  • ISSUE-365 - Forward the InputValueDefinitionNode to the on_argument_execution hook.

    Note: this brings a break changes from previous versions, to upgrade to
    this version you'll have to update your on_argument_execution methods:

    @Directive("MyDirective")
    class MyDirective:
        async def on_argument_execution(
            self,
            directive_args: Dict[str, Any],
            next_directive: Callable,
            parent_node: Union["FieldNode", "DirectiveNode"],
    +       argument_definition_node: "InputValueDefinitionNode",
    -       argument_node: "ArgumentNode",
    +       argument_node: Optional["ArgumentNode"],
            value: Any,
            ctx: Optional[Any],
        ) -> Any:
            # Write your business logic here
    -       return next_directive(parent_node, argument_node, value, ctx)
    +       return next_directive(parent_node, argument_definition_node, argument_node, value, ctx)

Fixed

  • ISSUE-370 - Fix EnumValue uniqueness in schema definition validation rule. It should now throw the correct error in the correct case.

    enum anEnum {
        A
        A
        B
    }

    Will throw a GraphQLSchemaError exception at engine build time. You can't have duplicates values.

    But now:

    type X {
        afield:String
    }
    
    enum anEnum {
        Value1
        X
    }

    Doesn't throw a GraphQLSchemaError for the use of X as an EnumValue. This was a buggy schema error detection

  • ISSUE-372 - Fix SDL Validation, Now ObjectFollowInterface validator validate field arguments and allows for field type to be covariant of the interface defined type.

  • Typing on the documentation related to the argument_node argument on the on_argument_execution directive hook.