All Versions
Latest Version
Avg Release Cycle
38 days
Latest Release
1312 days ago

Changelog History
Page 1

  • v1.3.0 Changes

    December 08, 2020

    [1.3.0] - 2020-12-08

    โž• Added

    • Setup a CodeQL analysis Github Action
    • ISSUE-457 - Add a coerce_list_concurrently parameter to create_engine, Engine. __init__ & Engine.cook to control whether or not output list should be coerced concurrently
    • ISSUE-457 - Add a concurrently parameter to both @Resolver & @Subscription in order to control whether or not the output list of the decorated field should be coerced concurrently

    ๐Ÿ›  Fixed

    • ๐Ÿ›  Fix link issue on 1.2.0 changelog (thanks @mkniewallner)
    • ๐Ÿ›  Fix year reference for 1.2.0 changelog (thanks @garyd203)
    • ๐Ÿ‘Œ Improve documentation (thanks @dkbarn)
    • ๐Ÿ›  Fix typo (thanks @mazzi)
    • โž• Add clarification on the breaking change on output list coercion introduced with the 1.2.0 version (thanks @garyd203)
    • 0๏ธโƒฃ ISSUE-457 - Output list are now coerced concurrently by default (breaking the change made on 1.2.0)

    ๐Ÿ”„ Changed

    • โฌ†๏ธ Upgrade black from 19.10b0 to 20.8b1
    • โฌ†๏ธ Upgrade isort from 4.3.21 to 5.6.4
    • โฌ†๏ธ Upgrade lark-parser from 0.8.5 to 0.11.1
    • โฌ†๏ธ Upgrade pylint from 2.5.2 to 2.6.0
    • โฌ†๏ธ Upgrade pytest-asyncio from 0.12.0 to 0.14.0
    • โฌ†๏ธ Upgrade pytest-cov from 2.8.1 to 2.10.1
    • โฌ†๏ธ Upgrade pytest-xdist from 1.32.0 to 2.1.0
    • โฌ†๏ธ Upgrade pytest from 5.4.1 to 6.1.2
  • v1.2.1 Changes

    May 06, 2020

    [1.2.1] - 2020-05-06

    ๐Ÿ›  Fixed

    • ISSUE-381 - Now pre_output_coercion hooks are called when OBJECT types are retrieved through an UNION or an INTERFACE. Furthermore UNION/INTERFACE hooks are also called before the Object ones are called.

    ๐Ÿ”„ Changed

    • โœ… pytest is now in version 2.5.2
  • v1.2.0 Changes

    May 02, 2020

    [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.
    • 0๏ธโƒฃ 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.

  • v1.1.3 Changes

    February 19, 2020

    [1.1.3] - 2020-02-18

    ๐Ÿ›  Fixed

    • Correctly implement comparisons on extension types. Thanks @mkniewallner
    • ๐Ÿ›  Fix typo in some private function names. Thanks @mkniewallner
  • v1.1.2 Changes

    February 05, 2020

    [1.1.2] - 2020-02-05

    ๐Ÿ”„ Changed

    • โšก๏ธ Update pytest to 5.3.5
    • โšก๏ธ Update lark-parser to 0.8.1

    ๐Ÿ›  Fixed

    • Typo (Varibable -> Variable) in error messages (Thanks @davestone)
    • Typo (Exists -> Exist) in error messages (Thanks @garyd203)
    • ISSUE-345 - Now support correctly class method for on_subscription_execution.
  • v1.1.1 Changes

    October 10, 2019

    [1.1.1] - 2019-10-10

    ๐Ÿ”„ Changed

    โšก๏ธ Update some Test Framework dependencies:

    • โšก๏ธ Update pytest to 5.2.1
    • โšก๏ธ Update pytest-xdist to 1.30.0
    • โšก๏ธ Update pytest-co to 2.81

    โšก๏ธ Update dependencies:

    • โšก๏ธ Update lark-parser to 0.7.7

    โšก๏ธ Update libgraphqlparser to HEAD of abu/remove_python2 branch.

    ๐Ÿ›  Fixed

    • ISSUE-301 - CtypeGen should not bother you anymore.
  • v1.1.0 Changes

    October 07, 2019

    [1.1.0] - 2019-10-03

    โž• Added

    • ISSUE-134 - Adding two new hooks for directives:
      • on_schema_execution which is called for each Query/Mutation executed
      • on_schema_subscription which is called for each Subscription executed

    ๐Ÿ“š See documentation for more details

    ๐Ÿ”„ Changed

    ๐Ÿ›  Fixed

    • โšก๏ธ Replace and operator for or operator in the Mutation.updateRecipe tutorial resolver condition - ISSUE-298 thrown by @helio-correia
    • Take into account the value filled in into the error_coercer parameter at Engine initialization - ISSUE-309
  • v1.0.0 Changes

    September 20, 2019

    [1.0.0] - 2019-09-20

    โž• Added

    • ๐Ÿ“„ ISSUE-122 - Implementation of a new @TypeResolver decorator to allow the resolution of the concrete type of a result linked to an abstract type (union or interface) in a generic way (more detail here)
    • ๐Ÿ“„ ISSUE-122 - Implementation of a new type_resolver parameter on the @Resolver decorator to allow the resolution of the concrete type of the field result linked to the resolved field abstract type (union or interface) (more detail here)
    • 0๏ธโƒฃ ISSUE-122 - Implementation of a new custom_default_type_resolver parameter on the create_engine function and the __init__ and cook method of the Engine class. This parameter allow to override the default type resolver provided by Tartiflette to resolve the concrete type of abstract type fields (more detail here)
    • A new GraphQLInputField type has been implemented to more clearly distinguish the difference between an argument and an input field and be closer to the GraphQL specification
    • ๐ŸŽ The parsing of the same query and its validation is now cached to improve performance when the same query is played regularly
    • ๐Ÿ‘ ISSUE-278 - Support for extend syntax in SDL

    ๐Ÿ”„ Changed

    โฌ†๏ธ Bump the libgraphqlparser submodule to latest master commits so we can now support triple quoted strings as litteral values for parameters.
    Note : It's important to have at least bison in version >= 3 on your system before installing tartiflette.

    โฌ†๏ธ Bump the lark-parser package to version 0.7.3

    โšก๏ธ ISSUE-121 - The grammar used by the lark parser used in the SDL parsing has been updated to conform to the June 2018 GraphQL specification

    ๐Ÿ“œ ISSUE-121 - Both SDL and query parsing does now focus only on the parsing part and returns an instance of DocumentNode that can be treated generically

    Built-in Tartiflette SDL parts (introspection types, directives, scalars...) have been modified to add descriptions on the various built-in types in order to make the introspection queries more complete

    ๐ŸŽ In order to solve the performance issues related to the execution of introspection requests, we proceeded to a big work of pre-compute of the various fields of introspection at the initialization of the Tartiflette engine in order to answer as quickly as possible to the introspection queries

    ๐ŸŽ In order to improve performance and thus reduce the execution time of queries, the majority of coercion algorithms are now pre-computed for each type, scalar, directive, etc. at engine initialization

    The values of the variables are now computed before executing the requested operation (as specified in the GraphQL specification). This allows us to execute the requested operation only if variables coercion doesn't return any errors.

    Note : it is important to note that the computing of values of the variables includes the entire coercion process as well as the execution of potential directives applied on the scalar or input fields of the variable type:

    • directives will only be executed once when calculating the value of each variable and no longer at each occurrence of the variable in the query

    - if a directive returns an error at coercion time of a variable, the whole operation will not be executed, when previously, only the field where the variable is used would have been in error

    ISSUE-216 - An important work on error handling has been done. Error messages are now more explicit and relevant. In addition, the keys path and locations in error items should now also be more relevant and accurate than before

    ๐Ÿ‘€ The error_coercer parameter now expects an asynchronous function instead of a synchronous function (see the migration guide for more information)

    ๐Ÿ‘€ The shape of the info parameter accessible in particular in the resolvers and some hooks of directives has been completely changed (see the migration guide for more information)

    ๐Ÿ‘€ The @Subscription decorator no longer has its specific default resolver. This means that the messages returned by @Subscription will no longer be wrapped with the field name as before (when the field doesn't have a dedicated @Resolver) (see the migration guide for more information)

    ๐Ÿ‘€ We now make a strong distinction between non-supplied values and null values. This is to avoid passing the null value when a value has not been supplied (especially for arguments) (see the migration guide for more information)

    The signature of the following directives hook methods has been changed to on_argument_execution, on_post_input_coercion and on_pre_output_coercion (see the migration guide for more information)

    ๐Ÿ“š Scalar definition now requires the implementation of a third parse_literal method (see the migration guide for more information or documentation on scalar)

    ๐Ÿ›  Fixed

    • ๐Ÿ›  The type of the __Type.kind field has been fixed for __ TypeKind! instead of __TypeKind in the built-in introspection SDL
    • The optional argument includeDeprecated defined on the __Type.enumValues and __ Type.fields introspection fields is now functional and allows to filter the result respectively to the deprecations of enum values or fields
    • The directives applied to input fields are now calling the on_post_input_coercion directive hook instead of on_argument_execution
    • The coercion of the arguments is fully functional and the directives applied to the arguments of another directives are now well triggered and computed
    • ๐Ÿ›  In some specific and complex cases, the @if and @skip built-in directives could behave unexpectedly and undesirably, their behaviour has been fixed
    • ๐Ÿ‘ ISSUE-277 - Abstract types are better handled especially the interfaces that are now executed and resolved correctly when using fragment and the __typename field
    • Bakes schema objects after extensions baking - ISSUE-292 thrown by @remorses
    • ๐Ÿ‘€ Code Smells seen by
  • v0.12.5 Changes

    August 30, 2019

    [0.12.5] - 2019-08-30

    ๐Ÿ”„ Changed

    • ๐Ÿ“š Documentation has relative links instead of absolute ones.
  • v0.12.4 Changes

    August 08, 2019

    [0.12.4] - 2019-08-08

    ๐Ÿ›  Fixed

    • ISSUE-270 - Some Float var where mistaken as Int