graphql / graphql/graphql-spec

Add a section about schema evolution?

Open
#1,169 6 comments 1 reaction 0 assignees View on GitHub
Dominant language
JavaScript
Stars
14.6k
Forks
1.2k
PR merge metrics
No merged PRs in 30d

Description

Currently the spec doesn’t say much about schema evolution ([this short paragraph](https://spec.graphql.org/draft/#sec-Validation.Type-System-Evolution)). Would it make sense to have it cover this topic more extensively?

For instance, an exhaustive enumeration of what is considered a breaking change or not.

E.g.:

- Adding a new type: not breaking
- Making a non nullable field nullable: breaking
- Adding a value to an enum: not breaking

As a client developer it is super important to know what changes can happen and what the code needs to be resilient to. At the moment this depends on a particular service’s policies, rules and customs. In certain projects there may even be no clear rules, making things fragile.

Having this as part of the spec would strengthen the contract between the client and the server, and help making schema evolution a bit less of a delicate topic?

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.