|
| 1 | +# GraphQL WG Notes - December 2024 |
| 2 | + |
| 3 | +**Watch the replays:** |
| 4 | +[GraphQL Working Group Meetings on YouTube](https://www.youtube.com/playlist?list=PLP1igyLx8foH30_sDnEZnxV_8pYW3SDtb) |
| 5 | + |
| 6 | +Agenda: |
| 7 | +[https://github.com/graphql/graphql-wg/blob/main/agendas/2024/12-Dec/05-wg-primary.md](https://github.com/graphql/graphql-wg/blob/main/agendas/2024/12-Dec/05-wg-primary.md) |
| 8 | + |
| 9 | +1. Agree to Membership Agreement, Participation & Contribution Guidelines and |
| 10 | + Code of Conduct (1m, Host) |
| 11 | + - [Specification Membership Agreement](https://github.com/graphql/foundation) |
| 12 | + - [Participation Guidelines](https://github.com/graphql/graphql-wg#participation-guidelines) |
| 13 | + - [Contribution Guide](https://github.com/graphql/graphql-spec/blob/main/CONTRIBUTING.md) |
| 14 | + - [Code of Conduct](https://github.com/graphql/foundation/blob/master/CODE-OF-CONDUCT.md) |
| 15 | +2. Introduction of attendees (5m, Host) |
| 16 | +3. Determine volunteers for note taking (1m, Host) |
| 17 | +4. Review agenda (2m, Host) |
| 18 | +5. Check |
| 19 | + for[ ready for review agenda items](https://github.com/graphql/graphql-wg/issues?q=is%3Aissue+is%3Aopen+label%3A%22Ready+for+review+%F0%9F%99%8C%22+sort%3Aupdated-desc) |
| 20 | + (5m, Host) |
| 21 | +6. [Move January meeting to Jan 9?](https://github.com/graphql/graphql-wg/pull/1595) |
| 22 | + (1m, Benjie) |
| 23 | + - Group agreed |
| 24 | +7. TSC membership vote - open for nominations (2m, Host) |
| 25 | + - [Election process](https://github.com/graphql/graphql-wg/blob/main/GraphQL-TSC.md#election-process) |
| 26 | + - Anyone can self-nominate or nominate others |
| 27 | + - Lee to open the nomination form and share out |
| 28 | + - Andy, Kewei, Rob, Stephen, Uri’s terms are set to end (re-nomination is of |
| 29 | + course open to them) |
| 30 | +8. Add 'extensions' to request (2m, Benjie) |
| 31 | + - [RFC](https://github.com/graphql/graphql-spec/pull/976) - promote to RFC 2? |
| 32 | + (Does it actually _need_ any code changes?) |
| 33 | + - Benjie: Not really meaningful to spec - reserve space for tools/vendors to |
| 34 | + extend |
| 35 | + - Adds a challenge RE: various transports - defining it over and over again |
| 36 | + - Proposing (a) advance to RFC2 (b) acknowledge no code changes needed |
| 37 | + - Lee: seems like a slam-dunk change |
| 38 | +9. Make `deprecated.reason` non-null (5m, Martin) |
| 39 | + - spec |
| 40 | + edits:[ graphql/graphql-spec#1040](https://github.com/graphql/graphql-spec/pull/1040) |
| 41 | + - graphql-js pull |
| 42 | + request:[ graphql/graphql-js#4299 (review)](https://github.com/graphql/graphql-js/pull/4299#pullrequestreview-2455415595) |
| 43 | + - Martin: Did a PR to graphql-js |
| 44 | + - That’s all I have |
| 45 | + - Lee: repeating back, it sounds like since we’re saying that because |
| 46 | + `reason` has a default value, we should disallow the ability to use |
| 47 | + `null`-literal as a value, which is technically possible if `reason` is |
| 48 | + nullable |
| 49 | + - Matt: not possible to send a request with deprecated from clients, yes? |
| 50 | + - Lee: should only impact tooling |
| 51 | + - Lee: approved and merging - awaiting graphql-js maintainers |
| 52 | +10. Add a validation rule that operation types exist (5m, Benjie) |
| 53 | + - [RFC](https://github.com/graphql/graphql-spec/pull/955) - promote to RFC |
| 54 | + 2? |
| 55 | + - Proposal to add a new validation rule - does an operation type exist |
| 56 | + - Lee: agreed, suggests moving to “accepted” |
| 57 | + - Lee: will do offline review, want to accept and merge |
| 58 | + - |
| 59 | +11. Change 'original' to 'previous' to clarify multiple extensions (5m, Benjie) |
| 60 | + - [RFC](https://github.com/graphql/graphql-spec/pull/1123) - editorial; |
| 61 | + merge? |
| 62 | + - Benjie: When extending types, we use the term “original” but we allow for |
| 63 | + multiple extensions. This can be confusing. |
| 64 | + - This allows for something invalid: |
| 65 | + 1. union MyUnion = Foo |
| 66 | + 2. extend union MyUnion = Bar | Baz |
| 67 | + 3. extend union MyUnion = Bar | Qux |
| 68 | + - Let’s wait 2 weeks and then we can merge |
| 69 | +12. GraphQL-JS maintenance (10m, Jovi) |
| 70 | + - Who has access to Netlify and how can we disconnect it |
| 71 | + - Nobody knows on the call |
| 72 | + - Maybe Ivan? |
| 73 | + - Uri says he might have access 🎉 |
| 74 | + - What are our expectations of GraphQL.JS (frequency of publishing, docs, |
| 75 | + ...) |
| 76 | + - We’ve never declared LTS/EOL stuff |
| 77 | + - In practice, we’ve generally put our energy into new versions |
| 78 | + - Have we backported releases to prior majors? |
| 79 | + - Yes, recently with introspection fix |
| 80 | + - Lee: open to any reasonable proposal here |
| 81 | + - Matt: one bare minimum is when we switched from Flow to TS |
| 82 | + - Lenz: adding some concern to that - GraphQL versions can tend to take a |
| 83 | + long time - maybe majors released in the last two years - plenty of time |
| 84 | + to migrate over - could also be another time frame |
| 85 | + - Gives people some security |
| 86 | + - Jovi: for clarity, in our case, v16 would be immediately dropped |
| 87 | + - Lee: something like adding a time window |
| 88 | + - When do we want v17 |
| 89 | + - Jovi: Several specs ongoing |
| 90 | + - Rob: defer/stream in v17 - not exposed by regular execution function |
| 91 | + - If we were to release v17, we would not open up defer/stream - still |
| 92 | + experimental in that release |
| 93 | + - Yaacov: to clarify that post - where do we need to be in terms of our |
| 94 | + approval process to defer/stream to release v17? |
| 95 | + - Implicit in your answer, Rob, is that we could be anywhere |
| 96 | + - Let’s say we were ready after the holidays, could we move then? |
| 97 | + - Rob: I was more hesitant when we were more actively iterating in the |
| 98 | + past year |
| 99 | + - It’s still being behind the experimental function - giving ourselves the |
| 100 | + opportunity to change things if needed |
| 101 | + - Jeff: asked about the ability to keep w/ a previous incremental |
| 102 | + transport protocol with adopting v17 |
| 103 | + - Lenz: multiple flags might add bundle size, etc |
| 104 | + - Rob: might be hard to incentivize adopting if folks feel like they have |
| 105 | + something working already |
| 106 | + - Benjie: we can continue this discussion for sure - backports to v16 will |
| 107 | + be there for a while, nothing urgent |
| 108 | + - From chat via Yaacov: 4. is there a way to preserve both the old format |
| 109 | + and the current format of defer/stream? yes, technically, for sure 5. |
| 110 | + https://github.com/ardatan/graphql-tools/pull/6243 this PR allows |
| 111 | + toggles for the old spec format and the new format 6. (it's a PR to a |
| 112 | + fork of the executor maintained by the guild) 7. see this comment: 8. |
| 113 | + `ts 9. const result = await execute({ 10. ..., 11. incrementalPreset: 'v17.0.0-alpha.2', 12. }); 13. ` 14. |
| 114 | + [https://github.com/ardatan/graphql-tools/pull/6243#discussion_r1704241110](https://github.com/ardatan/graphql-tools/pull/6243#discussion_r1704241110) |
| 115 | + - Lenz: 15. The problem is that we either have to ship many different |
| 116 | + versions of HttpLink, which is very confusing for users, or one version |
| 117 | + that grows bigger and bigger that cannot treeshake. 16. I'm less |
| 118 | + concerned on the server side than on the client side |
| 119 | + - Should we start EOL'ing releases |
| 120 | +13. Implementations may not deprecate a field that the interface hasn't |
| 121 | + deprecated (10m, Benjie) |
| 122 | + - [RFC](https://github.com/graphql/graphql-spec/pull/1053) - promote to |
| 123 | + RFC2? |
| 124 | + - Lee to give inline feedback |
| 125 | +14. `@defer`/`@stream` updates (10m, Rob) |
| 126 | + - Editorial: move "Path" to it's own |
| 127 | + section[ graphql/graphql-spec#1129](https://github.com/graphql/graphql-spec/pull/1129)<span style="text-decoration:underline;"> |
| 128 | + </span> |
| 129 | + - Helps us reference that area in defer/stream down the line |
| 130 | + - Please continue |
| 131 | + reviewing[ graphql/graphql-spec#1124](https://github.com/graphql/graphql-spec/pull/1124)<span style="text-decoration:underline;"> |
| 132 | + </span> |
| 133 | + - Rob: Current stage is RFC1, a prior design was in RFC2 |
| 134 | + - Benjie: RFC2 is “preferred solution” and the current spec edits get us |
| 135 | + closer to that |
| 136 | + - Lee: generally in support of calling this RFC2 - pretty confident this is |
| 137 | + the right path |
| 138 | +15. Merge |
| 139 | + Lee's[ Editorial changes for Event Streams](https://github.com/graphql/graphql-spec/pull/1099)? |
| 140 | + (10m, Benjie) |
| 141 | + - Benjie: recap |
| 142 | +16. When `sourceStream` errors, yield a `{ errors: [...] }` response (5m, |
| 143 | + Benjie) |
| 144 | + - [RFC](https://github.com/graphql/graphql-spec/pull/1127) - promote to RFC |
| 145 | + 1? |
| 146 | + - Lenz: may impact current behavior for clients initiating restarts (longer |
| 147 | + conversation, refer to recording as I did not annotate the conversation) |
| 148 | +17. Fix CoerceArgumentValues()' hasValue (15m, Benjie) |
| 149 | + - [RFC](https://github.com/graphql/graphql-spec/pull/1056) - promote to |
| 150 | + RFC2? Merge as an editorial fix? |
| 151 | +18. Be explicit about list coercion (15m, Benjie) |
| 152 | + - [RFC](https://github.com/graphql/graphql-spec/pull/1058) - promote to |
| 153 | + RFC2? Merge as an editorial fix? |
| 154 | + - Lee to review |
| 155 | +19. Interface field argument default values (@yaacovCR, 30m) |
| 156 | + - Spec |
| 157 | + bug?[ graphql/graphql-spec#1121](https://github.com/graphql/graphql-spec/issues/1121) |
| 158 | + - (Yaacov talks through the PR) |
| 159 | + - Essentially: the identified gap may lead to runtime errors in ways that |
| 160 | + may betray the intent of the schema author |
| 161 | + - Benjie: (talks through their comment on the PR): essentially adding a |
| 162 | + default in a way that is non-breaking for clients, but with a |
| 163 | + recommendation of a stricter implementation that may require client-side |
| 164 | + changes RE: defaults |
| 165 | + - No bar for RFC0 so we can deem it so, RFC1 would entail spec wording |
| 166 | + adjustments |
0 commit comments