-
Notifications
You must be signed in to change notification settings - Fork 124
Closed
Labels
Description
Background
Currently, we visit fields, variables, arguments, and object fields in DocumentNode, collect their return types and parent types, and turn them into schema coordinates. When a schema is modified, Hive creates a list of touched schema coordinates and checks in ClickHouse if a schema coordinate was registered or not and if it’s a breaking change or not.
This is too safe 🙂
There are scenarios where a change detected as a breaking change might not really be a breaking change. See https://github.com/kamilkisiela/graphql-breaking-changes
Some examples:
- Changing type
StringtoIDdoes not break clients (unless the scalar is used in a operation arguments definition - Changing
InttoInt!for an argument is not breaking if all operation argument usages already define it asInt! - Renaming an Object type is not breaking if the
__typenameis not used.
We want to be able to cover these kind of "safe" breaking changes with our breaking change detection.
Resources
klippx and jdollerickbijkerk