Skip to content

Latest commit

 

History

History
59 lines (46 loc) · 2.69 KB

milestone-1.md

File metadata and controls

59 lines (46 loc) · 2.69 KB

Roadmap: Version 1

Following on our experience in managing GraphQL APIs in production for more than a year, we've decided to build a brand new GraphQL Engine.

Here are the subjects we were working during 2018 and early 2019:

Communication and documentation

  • Define Open Source guidelines (contributing, code of conduct, issue template, PR template).
  • (API) Describe the API that will be used by the Tartiflette users.
    • (API) Engine constructor
    • (API) How to declare custom directives in the Engine Constructor.
    • (API) How to declare middlewares on a resolver.
    • (API) Executor implementation.
    • (API) Resolver implementation.
    • (API) Resolver - Info parameter.
  • (Website) Landing page for https://tartiflette.io
  • (Website) Publish documentation on https://tartiflette.io

Query Parser

  • Build communication interface between libgraphqlparser & Tartiflette through CFFI.
  • Build a Parser which parses a GraphQL Query and creates a list of Asynchronous Tasks.
  • Build an Executor which executes the Asynchronous Tasks list created by the Parser.

Executor

  • Bind the Types specified in the SDL to the Executor.
  • Typing resolver outputs
  • Error management
  • Abstract and Compound Types: Interfaces
  • Abstract and Compound Types: Unions
  • NodeDefinition: Check that the Type exists.
  • (Directive) Integrate the directive's execution in the Executor.
  • (Directive) introspection based on directives
  • Subscription Support

SDL - Schema Definition Language

  • Build a Parser which parse the Schema Definition Language and creates the associated schema and types as Python objects.
  • Think about custom Scalar API
  • (Introspection) Implement the __type Field.
  • (Introspection) Implement the __schemaField.
  • (Directive) Append directive information (from SDL) as metadata on Fields / Types.
  • (Directive) Implement the declaration of the custom directives into the Engine constructor.
  • (Directive) Implement @deprecated

Continuous integration

  • Run Code Quality checks + Tests
  • Automatize the integration of libgraphqlparser
  • Build & Publish artifact to pypi