|
| 1 | +--- |
| 2 | +title: "GraphQL spec releases are not important" |
| 3 | +date: 2021-02-12T09:00:00+10:00 |
| 4 | +author: Andreas Marek |
| 5 | +draft: false |
| 6 | +--- |
| 7 | + |
| 8 | +Every once in a while somebody asks which version of the GraphQL spec GraphQL Java supports. |
| 9 | +The general answer is: the current draft. |
| 10 | + |
| 11 | +The bigger question behind this is: what is the information you want get out of this question? |
| 12 | +Why do you ask this question? |
| 13 | + |
| 14 | +The thing is: spec releases are not really important and people misinterpret what they mean. |
| 15 | + |
| 16 | +# Evolution of the spec process |
| 17 | + |
| 18 | +The GraphQL spec has five releases so far: |
| 19 | + |
| 20 | +- two in 2015 (including the first published version) |
| 21 | +- two in 2016 |
| 22 | +- one in 2018 |
| 23 | + |
| 24 | +As you can see in the first two years spec releases where quite frequently, but after the one in 2018, |
| 25 | +there has not been a release. |
| 26 | + |
| 27 | +2017 was also the year the [GraphQL Working Group](https://github.com/graphql/graphql-wg) was established. |
| 28 | +This group is the main forum to evolve the spec since then. Over time this group established a very high bar |
| 29 | +for every PR to be merged into the spec. (See the [Contributing guidelines](https://github.com/graphql/graphql-spec/blob/main/CONTRIBUTING.md)) |
| 30 | + |
| 31 | +With this high standard set, nearly all implementations (including GraphQL Java) started to implement every |
| 32 | +merged PR instead of waiting for a big release. Because they are very confident this change will be released |
| 33 | +in this form, it is safe to implement it right away. |
| 34 | + |
| 35 | +This treatment of merged PRs as de-factor releases is now an established rule in the GraphQL community. |
| 36 | +This explains why the whole GraphQL ecosystem has evolved a lot since 2018, even without a release. |
| 37 | + |
| 38 | +__A release is not needed anymore if every merged PR is like a mini release.__ |
| 39 | + |
| 40 | +Future releases are more like an |
| 41 | +[opportunity to look back and promote the work since the last release.](https://github.com/graphql/graphql-wg/blob/main/notes/2021-02-04.md#promoting-and-documenting-spec-release-5m-brian) |
| 42 | + |
| 43 | +I personally hope that we make this de-facto rule, that evey PR is a mini release, more official. |
| 44 | +We should not use the word "draft" any more, but every merged PR should automatically result in a |
| 45 | +new GraphQL spec version which is formally approved by the [GraphQL TSC.](https://github.com/graphql/graphql-wg/blob/main/GraphQL-TSC.md) |
| 46 | + |
| 47 | +Coming back to the question: "Which spec version of GraphQL is supported"? |
| 48 | +I hope by now it is clear why this question is probably not really helpful. |
| 49 | + |
| 50 | +It is better to think about certain features you want to discuss instead referring to the spec releases. |
| 51 | + |
| 52 | +# Feedback or questions |
| 53 | +We use [GitHub Discussions](https://github.com/graphql-java/graphql-java/discussions) for general feedback and questions. |
| 54 | + |
| 55 | +You can also contact us on Twitter: [@graphql_java](https://twitter.com/graphql_java) |
| 56 | + |
| 57 | +You can also checkout our [Workshops](/workshops) for more possibilities to learn about GraphQL |
| 58 | +and GraphQL Java. |
| 59 | + |
| 60 | + |
| 61 | + |
0 commit comments