First of all thank you for this great library! It's a pleasure to use it.
I just came across graphql-core-next: https://github.com/graphql-python/graphql-core-next, and I'm wondering if it's going to replace the current one, https://github.com/graphql-python/graphql-core?
Are there any plans and if yes, what will be the potential benefits?
@larsblumberg i just found GraphQL-core-next too. You should check the roadmap.
Hi @larsblumberg,
The plan (in the long term) is use graphql-core-next only. However there will be a period (probably long) while both libraries can be used indistinctly.
Right now the APIs for graphql-core and graphql-core-next are very similar, but not compatible at all.
We need both to be almost 100% compatible, so Graphene can start using them indistinctly.
For this to work, we would need to:
graphql_sync, from graphql-core-next to graphql-corePython 2 is coming to an end. There are a lot of features of Python 3 that we can't use direclty, such as:
By using graphql-core-next we will deprecate the usage of custom executors and promises, and take advantage of the Python 3 new features. While removing a lot of boilerplate code that was needed for Python 2/ 3 compatibility.
Hope this clarifies your questions!
I've been working with @Cito laying out a plan for a transition.
Here is what we decided:
Here is an update on graphql-core, on the modernized version based on graphql-core-next:
About 1476 of 1596 tests are now passing.
I will create a branch in graphql-core named modern with all the changes once all tests are passing.
Once that's achieved, I will work on the next version of Graphene (v3) that will support it, along with new awesome features.
@syrusakbary is there a public roadmap for the new features?
Here it is: https://github.com/graphql-python/graphene/blob/master/ROADMAP.md#graphene-3
(It should be getting more detailed as time passes)
GraphQL-core (modern) is now passing all tests for both Python 2.7 and Python 3.4+ 馃帀
That means that all the new features of the latest GraphQL spec (June 2018) and draft (Oct 2) will be available once a new release is scheduled.
https://github.com/graphql-python/graphql-core/tree/modern
There are few things left to do in order to be able to use it with Graphene:
gather option is required)snake_case fields represented externally with GraphQL with camelCase naminggraphql-backend for query execution (that abstracts the API of https://github.com/graphql-python/graphql-core/tree/master/graphql/backend in a new package)execute, execute_sync and subscribe methods to the GraphQLDocument@syrusakbary Thanks for your work and the update 馃憤
Small question, we were planing to move from -core to -core-next because we use asyncio and wanted to use updated graphql feature. But reading this it seems that you plan to incorporate the next into the modern branch then make it the "only" maintained repo.
So, should we wait until modern is ready, should we use -next, or 42?
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
Ftr and those following... Graphql core next will become v3 and is published as alpha at the moment. The rest will follow on the other repo ...
Most helpful comment
GraphQL-core (modern) is now passing all tests for both Python 2.7 and Python 3.4+ 馃帀
That means that all the new features of the latest GraphQL spec (June 2018) and draft (Oct 2) will be available once a new release is scheduled.
https://github.com/graphql-python/graphql-core/tree/modern
There are few things left to do in order to be able to use it with Graphene:
gatheroption is required)snake_casefields represented externally with GraphQL withcamelCasenaminggraphql-backendfor query execution (that abstracts the API of https://github.com/graphql-python/graphql-core/tree/master/graphql/backend in a new package)execute,execute_syncandsubscribemethods to theGraphQLDocument