graphql / graphql-wg Goto Github PK
View Code? Open in Web Editor NEWWorking group notes for GraphQL
Working group notes for GraphQL
The GraphQL Foundation recently stood up a devstats service to provide some insights to the GraphQL community: https://devstats.graphql.org
You can also evaluate "project health"
https://devstats.graphql.org/d/53/projects-health-table?orgId=1
If you're happy with this, we can make this the official source of project stats.
Our next step in the Input Union RFC process is to gather the individual solution champions for a working session where we can dive into the details of solutions and try to make some progress towards a proposed solution.
Our aim is to have this meeting about 1 week before the next general Working Group meeting:
Current champions: @leebyron @binaryseed @eapache @benjie
I plan on pushing for this RFC again, and need to resolve merge conflicts in the RFC and reference implementation but want to plan it so I don't have more conflicts to fix by the time people can look at it.
Has there been any out-of-band discussion about the next meeting? If so, could we get a new agenda item in the repo?
It was pointed out that the scalars subproject does not have a license currently. Lee suggested we'd use the OWFa license, but actioned himself to follow up with Brian to make sure licensing is done right.
Andreas: that's why I've opened this issue. graphql/graphql-scalars#7
Lee: GraphQL foundation gives us clear legal rules so people know how they can use these scalars.
Andreas: agreed; this is really nice.
ACTION - Lee: I'll follow up with Brian and make sure he's prioritising this.
Note: Action Item issues are reviewed and closed during Working Group
meetings.
I think some action items were missed from the notes, so we should go through the YouTube video and update the notes where relevant.
Note: Action Item issues are reviewed and closed during Working Group
meetings.
Create Q&A on most important details (contents, etc.)
assignee: Unclaimed
source: GraphQL Working Group Meeting 2019-07-03
Discussion related to limiting @defer/@stream to only fragments vs also allowing it on fields. This was explained well in WG, Rob agreed to add it to the RFC
ACTION - Rob: Rob: I'll update the RFC PR with a more thorough explanation and then we'll get that into the spec as well.
Note: Action Item issues are reviewed and closed during Working Group
meetings.
We’ve been experimenting with @defer and @stream at Facebook for a while now -- Lee first discussed the idea of @defer and @stream in 2016. Over the last three years, we've done a ton of iterations as we uncovered and resolved issues and edge cases following that initial approach. We're now seeing a renewed demand for these ideas in the open source community:
graphql/graphql-js#2318
graphql/graphql-js#2319
Given that Facebook’s increased internal usage makes us more confident in our approach, it seems like a good time to start a discussion of what the next steps would be. Opening this issue with some strategic questions:
Just as a continuation on disscusion that we had during WG.
A few actionable ideas so far are:
Would be great to hear other ideas?
Public docs at https://help.shopify.com/en/api/guides/bulk-operations/, but this is still experimental/beta.
At Shopify we've seen a lot of clients who need to fetch large quantities of data (e.g. all 10k products on a shop). We follow relay pagination, so typically they would do this via paginated requests (e.g. 100 requests for 100 products each) but this is inefficient in that it results in a lot of round-trips, a lot of query processing overhead, some concatenation logic on the client, etc.
As a better solution, we're experimenting with a subtle variant of our GraphQL schema (or perhaps more accurately a variant of the relay pagination spec?) where clients don't specify any of the regular first
/last
/before
/after
arguments. Instead, our server iterates over pages of the query transparently, and returns the total results (e.g. all 10k products) in a single file downloadable from S3 or similar storage hosts. Details are at the link above.
As a general pattern I think this might be something that is useful or at least interesting to the broader community, which is why I wanted to share it. There was some interesting conversation in the working group meeting over whether this was technically spec-compliant or not, and I'm also interested (if it works out long-term) in potentially working this into the spec. In my mind it's similar to subscriptions, in that it's an another variant on how the data actually gets returned, built on top of the same fundamental schema (normal queries are synchronous pull, subscriptions are synchronous push, and this bulk API is asynchronous pull).
We've also talked about variations of this approach where it's more explicitly not-spec-compliant, e.g. making a separate end-point for these requests which takes the graphql request in the normal way but just returns the ID of the job that was launched instead of any spec-compliant response.
Whatever thoughts or opinions you have, please share. We're obviously paying a lot of attention to what our clients think of this, but we also want to be good citizens if there is interest or concern from the GraphQL community.
Lee: Ivan, since you’ve been working on graphql.js change do you want to champion this spec change proposal?
Ivan: I need a native language speaker to review changes; I've pinged Benjie before and he's been really helpful with it.
Lee: ACTION - Ivan - get the GraphQL.js change in and organize updating the spec texts.
Note: Action Item issues are reviewed and closed during Working Group
meetings.
On the last WG we discussed "GraphQL over HTTP" spec and I've prepared a minimalistic draft:
https://gist.github.com/IvanGoncharov/021bdb39761e1c80b1fc698706b2ecf7
@leebyron But I'm not sure about the next steps.
Would you create "graphql/graphql-over-http" repo so I can submit this Draft as a PR?
Or should I create a personal repo and then move it afterward?
Schedule 10-15m meeting to discuss where graphql.org is today and brainstorm action items
assignee: @tanaypratap
source: GraphQL Working Group Meeting 2019-07-03
👋 - I kickstarted some discussion on twitter about a what could GraphiQL 2.0 (or, I guess 1.0 as it's still not there yet :D ) after exploring some wireframes.
We should schedule a one-off meeting to talk about:
Ivan: I should also contact Matt about Flow support because we need to figure out how to migrate to TypeScript without breaking Flow clients (at Facebook specifically)
Note: Action Item issues are reviewed and closed during Working Group
meetings.
Lee - For RFC to move forward, need to be clear about what problem we’re solving. Specify what this is for, and what this is not intended to be used for.
[ACTION - Mark] - clarify the above
Note: Action Item issues are reviewed and closed during Working Group
meetings.
[Regarding cutting a version of the spec]
Ivan: I've been merging stuff into the spec/etc; if you need me to stop let me know.
Lee: If you see that contributions come from new contributors, you can flag and let Brian know.
[...]
Ivan: if someone wants to help, adding a checklist in the issue template would be a great contribution
ACTION - Lee: mention this issue template idea to Brian
Note: Action Item issues are reviewed and closed during Working Group
meetings.
Rob - opened up a PR to GraphQL-over-HTTP; more eyes desired
[ACTION - GraphQL-over-HTTP WG] - Review graphql/graphql-over-http/pull/124
Note: Action Item issues are reviewed and closed during Working Group
meetings.
ACTION - Lee - read over this and make sure we're not missing anything, and perform the merge.
Lee: it should be clear that you can have scalars in your own domain that are only used in your domain.
Ivan: we should allow vendor URLs. It reduces our workload if people can use vendor-specific things - they'd be less pushy about pushing their scalars to be standard.
ACTION - Lee - make minor changes as a last patch before merging
Custom scalar PR: graphql/graphql-spec#649
Note: Action Item issues are reviewed and closed during Working Group
meetings.
RFC for introspection field for spec information
assignee: @eapache & @andimarek
source: GraphQL Working Group Meeting 2019-07-03
Lee: if we reach out I'd not be surprised if we found volunteers to make this happen.
Ivan: We need Andi to be involved in the conversation. Can we schedule a call to talk to Andi and have a conversation about how to proceed?
ACTION - schedule a call with Andi (hour and a half)
Note: Action Item issues are reviewed and closed during Working Group
meetings.
Lee: lets put a plan together for increasing bus factor. Two actions:
Start a Graphql.js specific call - focussed on strategy, not specific code(see #485)- List our contributor to GraphQL.js; specify “owners”. Who do we want to give review, but not yet merge capabilities? Keep it to a tight core set.
Note: Action Item issues are reviewed and closed during Working Group
meetings.
ACTION - Lee - give feedback on @defer/@stream spec
Note: Action Item issues are reviewed and closed during Working Group
meetings.
I'd like to start a discussion about when we should cut the next release of the GraphQL specification.
It has been 16 months since the last release, and some significant changes and iterative improvements have been made in that time. The previous two release have 20 months between them.
I'd like to return to an annualized and predictable schedule for specification releases.
Benjie - How to get recordings?
Lee - Zoom provides them after a few weeks as raw video files. Eventually we want to get them on youtube.
Ivan - The foundation guys have figured out how to publish on youtube!
Lee - let’s add youtube link to notes after the fact
Note: Action Item issues are reviewed and closed during Working Group
meetings.
We previously discussed the possibility of such spec and I went ahead and create MVP:
https://github.com/APIs-guru/graphql-over-http
It would be great if we adopt it under GraphQL Foundation as a complementary spec.
I'm still interested in collaborating but I would love if the community and industry leaders take a lead and we can form a subgroup to work on it.
Apologies if creating an issue is not the right approach for my question.
I was going through the meeting notes for August Meeting Notes.
There is a mention of discussion around improvements for gateway services.
Where can I find details about the discussion and next steps?
For example proposals if any, scope, timelines.
Thanks,
Navneet
Currently, WG scheduled for 2018-11-08
and that conflicts with 2nd day of GraphQL Summit:
https://github.com/graphql/graphql-wg/blob/master/agendas/2018-11-08.md
https://summit.graphql.com/
Would be great to move WG to either November 6th or 9th?
@leebyron Do you plan to organize special WG session similar to graphql-europe?
If so would be great to decide on the date so participants are able to buy plane tickets while they still cheap.
Re: Acceptance Criteria for Editorial Changes
Check maintainers of repository
assignee: @IvanGoncharov
source: GraphQL Working Group Meeting 2019-07-03
[ACTION - Lee] - Add RFC 2 tag to PR
[ACTION] - Add SHOULD statement to spec recommending that it is generally ill-advised to add @deprecated to a non-null argument or input field unless there is a default value provided.
[ACTION] - merge spec PR to master
[ACTION - Ivan] - Add schema validation to GraphQL.js that enforces @deprecated on nonnullMoved to #518
[ACTION - Evan] - talk to Shopify team and others to determine SHOULD vs MUST.Moved to #517
Note: Action Item issues are reviewed and closed during Working Group
meetings.
https://graphql-slack.herokuapp.com/ doesn't allow new registrations
it's linked to from the community docs: https://graphql.org/community/#slack-communities
i would have opened this in the documentation site repo, but this seemed more appropriate?
Lee: This was mostly meant to be an update. The next step is to draft an RFC that contains everything we discussed.
ACTION - Draft a new RFC that contains everything we discussed
Note: Action Item issues are reviewed and closed during Working Group
meetings.
Ivan: if we write a document with policies, we can have more people help with merging.
Lee: we can be more liberal with giving merge access to the WG repo. Anyone who's a frequent guest of these meetings we can give commit access to.
Ivan: especially the champions. You just promise to not merge anything in other people's RFCs, only in your RFC.
ACTION - Lee: make this happen
Note: Action Item issues are reviewed and closed during Working Group
meetings.
I originally added https://github.com/graphql/graphql-wg/blob/master/agendas/2018-07-13.md with the intent that this be a special session where as many people who can join in person in Berlin during GraphQL EU can do so. However the specific date of July 13th is only a starting suggestion.
I want to use this issue as a space for us to work out options for what day and time this session should occur so those planning travel can work around a concrete plan.
Write up vision for code page
assignee: @leebyron
source: GraphQL Working Group Meeting 2019-07-03
Go through notes for previous calls and create action items for them.
Note: @benjie already created all action items for the Sep2020 call, so Aug2020 is the next target 🎯
Ivan: TypeScript migration will be a breaking change. Let's discuss it on a call since not everyone's interested in JavaScript implementation. I think it's important to allow new contributors; Flow is a barrier for many people to contribute. TypeScript is easier, I've heard from many contributors.
[...]
Dotan: any issues, if you need help, we can put people to work on it with you. If you need help, we are here.
ACTION - Ivan - organize a call with Dotan to figure out a strategy.
Note: Action Item issues are reviewed and closed during Working Group
meetings.
We should definitely have June's up before the May WG, at least 👍
As reported by @kolobock in graphql/graphql-spec#448 (comment)
Ivan: validation for type system in chapter 3 requires uniqueness of type names, field names, etc; but we forgot to specify arguments were unique. It's not an editorial change, but pretty uncontroversial.
Lee: on the topic of having a process; we need to have a reference implementation before calling it final stage.
[...]
ACTION - Ivan - implement in GraphQL.js
Note: Action Item issues are reviewed and closed during Working Group
meetings.
Some issues maintained by the GraphQL foundation still point to Contributor Licence Agreements hosted by Facebook, i.e.:
We could either remove the requirement to sign a CLA, or provide means to do so via the foundation (if that is possible).
A related issue for libgraphqlparser is how to deal with "facebook" in namespaces, as changes are breaking.
How other working groups should be managed on GitHub?
Get involved: https://github.com/graphql/graphql-scalars
Note: Action Item issues are reviewed and closed during Working Group
meetings.
At the moment it's very hard to track which features will be included in the next release.
For example, the absolute majority of the community thinks that IDL is already a part of the spec since it is implemented in all major libraries. However, it's still not merged into a spec and there is no clear indication of this PR status.
I propose to define a pipeline for all the major changes with stages marked as labels applied to PRs. I suggest using TC39 process document as the base and adapt it to the specifics of GraphQL (reference implementation, WG, etc.).
It will give the community a sense of understanding on what's happening with GraphQL and allow library authors to do an educated decision on what experimental features they should support.
As for the editorial changes like grammar, examples, clarifications, etc. I propose to add separate simplified pipeline.
Should we discuss this at the next meeting?
Slides here
Discuss RFC adding introspection shortcuts to determine full typename and named type’s name (15m, Terrence)
[ACTION - Terrance] - describe the problem, look at the landscape of potential solutions, and figure out which ones are appropriate or not
https://github.com/graphql/graphql-wg/blame/master/notes/2020-05-07.md#L67
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.