graphql / graphql/graphql-js

[Idea] Release testing for graphql-js

Open
#2,172 0 comments 0 reactions 0 assignees View on GitHub
needs exploration
Dominant language
TypeScript
Stars
20.3k
Forks
2.1k
Avg merge
44m
Merged PRs (30d)
6

Description

## Motivation

GraphQL-js is being used by multiple vendors in many different ways - as tooling etc.
Each vendor may strictly rely on features described in specification as well as on internals of the GraphQL-js implemementation. Release process and feature inclusion are very limited because every change can be breaking change and individual impact of the change can be hard to measure. Moving to typescript could help but it can also mean that semver versions can change quite fast.

## Possible solution 1

Introduce a new repository where major providers can contribute their code with:

- unit/integrations tests executing various elements of the graphql-js
- the schema examples that should be parsed
- some form of executable

## Possible solution 2

Allow developers and software companies to contribute their schema to some new repository that will aggregate industry examples for complex schema use cases etc.

This could be also great opportunity to aggregate all vendor based schemas in one place for purpose of testing and checking changes.

Both ideas/repositories can be used on releases of the graphql-js. Vendors could provide whatever they need to be checked.

## Possible drawbacks

This type of automation is already possible by tracking releases in graphql-js, however it is decentralized.

Some vendors may stop maintaining their tests and this could become an liability for core graphql-js developers.

Example schemas may contain a lots of repetitions and do not provide value to devs

Community will not want their schema being public. ( Some schemas are public and others can be obfuscated )

## Examples from other libs

### Typescript

When TypeScript releases a new version they will execute every test in their @types repository that contains custom typings.

### Node.js/NPM

Every Node.js and NPM release executes unit tests from the top 1000 packages on the NPM to ensure that they are not broken by release.

## Notes

I checked repository and could not find any duplicate.

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.