Skip to content

Conversation

@egoodwinx
Copy link

@egoodwinx egoodwinx commented Oct 8, 2025

@linux-foundation-easycla
Copy link

linux-foundation-easycla bot commented Oct 8, 2025

CLA Signed

The committers listed above are authorized under a signed CLA.

@netlify
Copy link

netlify bot commented Oct 8, 2025

Deploy Preview for graphql-spec-draft ready!

Name Link
🔨 Latest commit 28e9bbc
🔍 Latest deploy log https://app.netlify.com/projects/graphql-spec-draft/deploys/697ac206bd507300088fcd28
😎 Deploy Preview https://deploy-preview-1196--graphql-spec-draft.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

Copy link
Contributor

@martinbonnin martinbonnin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for looking into this! Few comments below

Copy link
Member

@benjie benjie left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A little editorial

@martinbonnin martinbonnin changed the title add initial outline for field extensions Add initial outline for field extensions Jan 26, 2026
@martinbonnin martinbonnin added the 💭 Strawman (RFC 0) RFC Stage 0 (See CONTRIBUTING.md) label Jan 26, 2026
@martinbonnin martinbonnin changed the title Add initial outline for field extensions Field extensions: spec edits Jan 26, 2026
@martinbonnin martinbonnin removed the 💭 Strawman (RFC 0) RFC Stage 0 (See CONTRIBUTING.md) label Jan 26, 2026
Comment on lines +1106 to +1108
#### Field Extensions

Field extensions are used to represent a field which has been extended from some
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: move this before the Type Validation and do not mention "Field extensions"?

Instead make a part of "type extension"?

Comment on lines +1134 to +1136
2. The default argument definitions may not be changed or removed.
3. The description may be added if none exists, or must match the existing
description exactly
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we either:

  1. allow both descriptions and defaultValues if they match exactly.
    or
  2. forbid both descriptions and defaultValues in object extensions.

Slight preference for 1. because it's consistent with what we do for checking the type. But I can see how 2. is maybe simpler to implement.

Comment on lines +1137 to +1140
4. The deprecation reason may be added if none exists, or must match the
existing reason exactly
5. Directives may be added but cannot conflict with existing non-repeatable
directives
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we should remove 4. as a sub-case of 5. @deprecated is not repeatable so it's not valid to add @deprecated from a type extension, even if it's the exact same deprecation reason.

Comment on lines +1114 to +1115
In this example, we can deprecate the field `field` on type `Query` by using a
field extension:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same here. I'd phrase that as a "type extension that adds deprecation to the type fields":

Suggested change
In this example, we can deprecate the field `field` on type `Query` by using a
field extension:
In this example, we can deprecate the field `field` on type `Query` by adding a `@deprecated` directive through a type extension:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants