|
| 1 | +# GraphQL WG Notes - December 2023 |
| 2 | + |
| 3 | +**Watch the replays:** |
| 4 | +[GraphQL Working Group Meetings on YouTube](https://www.youtube.com/playlist?list=PLP1igyLx8foH30_sDnEZnxV_8pYW3SDtb) |
| 5 | + |
| 6 | +# Primary |
| 7 | + |
| 8 | +Agenda: |
| 9 | +https://github.com/graphql/graphql-wg/blob/main/agendas/2023/12-Dec/07-wg-primary.md |
| 10 | + |
| 11 | +## Determine volunteers for note taking (1m, Benjie) |
| 12 | + |
| 13 | +- Alex Reilly |
| 14 | + |
| 15 | +## Review agenda (2m, Benjie) |
| 16 | + |
| 17 | +- Done |
| 18 | + |
| 19 | +## Updates from the group formerly known as the Client Controlled Nullability WG (5m, Alex) |
| 20 | + |
| 21 | +- CCN is on hold, replaced by True Nullability |
| 22 | +- CCN WG is now “Nullability WG” |
| 23 | +- Alex: should we remove the feature from GraphQL-js? |
| 24 | +- Ivan: provide in PR a strong reason why flag is being removed, then remove it. |
| 25 | + It’s good to clean up failed experiments. We should probably clean up some |
| 26 | + others too. |
| 27 | + |
| 28 | +## Subcommittee to work on standardizing distributed schemas (15m, Jeff) |
| 29 | + |
| 30 | +- There has been a lot of new excitement across the community around |
| 31 | + standardizing on an approach for working with distributed schemas, ranging |
| 32 | + from Open Federation to Fusion |
| 33 | +- We (Apollo) are excited about these developments, and are looking forward to |
| 34 | + working with others on this standardization approach |
| 35 | +- We haven't seen the afore mentioned standardization efforts be brought to the |
| 36 | + Working Group yet, so we'd like to get the ball rolling and start discussions |
| 37 | +- Should we start |
| 38 | + the[ composite schema](https://github.com/graphql/composite-schemas-wg) |
| 39 | + subcommittee back up, to collaborate more closely? Or would folks like to |
| 40 | + explore an alternative approach? |
| 41 | + - Benjie reopened composite schema working group |
| 42 | +- Regardless, let's get the discussions going - super exciting! |
| 43 | +- Needed less time than expected, was able to clarify issues prior to the |
| 44 | + meeting |
| 45 | + |
| 46 | +## Review previous meeting's action items (30m, Benjie) |
| 47 | + |
| 48 | +- [#1345](https://github.com/graphql/graphql-wg/issues/1345) - everyone review |
| 49 | + default value validation |
| 50 | + - Sufficient review time has |
| 51 | + elapsed;[ RFC](https://github.com/graphql/graphql-spec/pull/793) is at stage |
| 52 | + 2 already - needs GraphQL.js merge for stage 3 |
| 53 | + - No objections, RFC moves forward |
| 54 | +- [#695](https://github.com/graphql/graphql-wg/issues/695) - no @skip/@include |
| 55 | + on subscriptions - raise GraphQL.js PR |
| 56 | + - [GraphQL.js PR](https://github.com/graphql/graphql-js/pull/3974) raised |
| 57 | + - Can we bump[ RFC](https://github.com/graphql/graphql-spec/pull/860) to RFC2? |
| 58 | + - No objections, moves forward to RFC2 |
| 59 | +- [#1331](https://github.com/graphql/graphql-wg/issues/1331) - if interface |
| 60 | + field deprecated, then object field should be deprecated |
| 61 | + - [Spec PR](https://github.com/graphql/graphql-spec/pull/1053) |
| 62 | + and[ GraphQL.js PR](https://github.com/graphql/graphql-js/pull/3986) raised |
| 63 | + - Advance to RFC1? |
| 64 | + - No objections, RFC moves forward |
| 65 | +- [#1336](https://github.com/graphql/graphql-wg/issues/1336) - coercing variable |
| 66 | + values in lists; clarify spec text |
| 67 | + - Discussed December 2022, but the issue was misinterpreted; it relates to |
| 68 | + variables inside lists, not in arguments directly |
| 69 | + - Spec editorial |
| 70 | + PR:[ fix bug in list coercion example table](https://github.com/graphql/graphql-spec/pull/1057/files) |
| 71 | + - Agenda item below: "Detail variables in list input coercion rules" |
| 72 | + - Concerns that people may have implemented GraphQL engines incorrectly based |
| 73 | + on the example provided rather than the language as the spec |
| 74 | + - PR will be left open another week so people can respond |
| 75 | +- [#1414](https://github.com/graphql/graphql-wg/issues/1414) - example of |
| 76 | + executing selection set serially, readers expect an operation; clarify |
| 77 | + - Spec editorial |
| 78 | + PR:[ define "selection set" and clarify examples in section 6](https://github.com/graphql/graphql-spec/pull/1032) |
| 79 | + - Previously didn’t have a definition of what a selection set is |
| 80 | + - Looking for approval from a few TSC members before merging |
| 81 | +- [#1337](https://github.com/graphql/graphql-wg/issues/1337) - forbid nullable |
| 82 | + variable with default in non-nullable position |
| 83 | + - Agenda item below: "Introduce Strict and Legacy All Variable Usages Are |
| 84 | + Allowed validation rules" |
| 85 | + - Meets criteria for RFC1, moves forward |
| 86 | +- [#1413](https://github.com/graphql/graphql-wg/issues/1413) - close all aging |
| 87 | + action items |
| 88 | + - [Stale closed items](https://github.com/graphql/graphql-wg/issues?q=is%3Aissue+is%3Aclosed+sort%3Aupdated-desc+label%3Astale+) |
| 89 | + - Note: not all items closed were "action items" |
| 90 | +- [All open action items (by last update)](https://github.com/graphql/graphql-wg/issues?q=is%3Aissue+is%3Aopen+label%3A%22Action+item+%3Aclapper%3A%22+sort%3Aupdated-desc) |
| 91 | +- [All open action items (by meeting)](https://github.com/graphql/graphql-wg/projects?type=classic&query=is%3Aopen+sort%3Aupdated-desc) |
| 92 | + |
| 93 | +## Fix bug in CoerceArgumentValues() algorithm (10m, Benjie) |
| 94 | + |
| 95 | +- [Spec PR](https://github.com/graphql/graphql-spec/pull/1056) |
| 96 | +- No GraphQL.js PR needed, GraphQL.js already implements the correct behavior |
| 97 | +- Spec bug: RFC process, or editorial? |
| 98 | +- Walked through the Spec PR |
| 99 | +- Graphql.js and graphql.net don’t suffer from this bug. Their implementations |
| 100 | + do not strictly follow the text of the spec. |
| 101 | +- Moves forward to RFC1. |
| 102 | + |
| 103 | +## Detail variables in list input coercion rules (15m, Benjie) |
| 104 | + |
| 105 | +- [Spec PR](https://github.com/graphql/graphql-spec/pull/1058) |
| 106 | +- GraphQL.js already implements the correct behavior? |
| 107 | +- Previously discussed (but incorrectly interpreted) in December |
| 108 | + 2022:[ https://github.com/graphql/graphql-wg/blob/main/notes/2022/2022-12.md?rgh-link-date=2023-07-08T08%3A09%3A10Z#field-error-resulting-from-insufficient-validation-of-variables-15m-benjie](https://github.com/graphql/graphql-wg/blob/main/notes/2022/2022-12.md?rgh-link-date=2023-07-08T08%3A09%3A10Z#field-error-resulting-from-insufficient-validation-of-variables-15m-benjie) |
| 109 | +- Not really changing behavior, just defining the status quo... Editorial, or |
| 110 | + RFC process? |
| 111 | +- Moving to RFC1. |
| 112 | +- Benjie: Has anyone been bitten by this issue? |
| 113 | + - Matt: Yes, but most of my product people don’t use lists. This feature is |
| 114 | + underused, so it’s also under-specced. |
| 115 | + |
| 116 | +## Introduce Strict and Legacy All Variable Usages Are Allowed validation rules (15m, Benjie) |
| 117 | + |
| 118 | +- [Spec PR](https://github.com/graphql/graphql-spec/pull/1059) |
| 119 | +- Aim: before I go about implementing this in GraphQL.js, are we agreed this is |
| 120 | + the right solution? RFC1? |
| 121 | +- Question: should we enable the new algorithm by default in the next major bump |
| 122 | + of GraphQL.js, and enable users to opt-in to the old version if they need to? |
| 123 | +- Reviewed Spec PR |
| 124 | +- We need a good migration story where we make it opt in one release, and then |
| 125 | + opt out the next release |
| 126 | +- Michael: opt-in/out on a per-request basis (e.g. via a header) |
| 127 | +- It’s important that all existing queries continue to work against an existing |
| 128 | + server as its schema evolves |
| 129 | +- Moved to RFC1 |
| 130 | +- Looking for an alternative solution, none brought up in the meeting other than |
| 131 | + doing nothing and allowing the bug to continue to exist |
0 commit comments