Skip to main content

· 2 min read
Donna Zhou

We’re formalising our release schedule to give the community a better idea of when to expect releases, what will be contained within them, and when important fixes will be backported.

General release schedule

caution

Since this blog post was published, we changed our release schedule from 4 times to 3 times per year.

Going forward, we plan to have 3 releases every year. We will alternate between releases containing breaking changes, and releases containing features and bugfixes (without breaking changes).

For example: our next release 20.1 will be in late March 2023, and this will be a feature and bugfix release without breaking changes. Therefore, we’re going to retain Java 8 in the 20.1 release. Our subsequent release will be around early July 2023 and will contain breaking changes, including upgrading to Java 11.

Security backports

We will backport critical bugfixes and security fixes for versions dating back 18 months. These fixes will be backported depending on severity and demand. As security fixes are time sensitive, we will release them on demand instead of waiting for the next release date.

Bugfix backports

We will backport important bug fixes at most 12 months. These fixes will be backported depending on the severity of the bug and demand.

Deprecations

When code is deprecated, we will wait at least 12 months before removing it.

Version numbering

We will continue to use major.minor version numbering.

A minor version can include bug fixes and features, but not breaking changes. A major version can include breaking changes.

Allowing for policy changes

The aim of this release policy to give the community a better indication of release dates, what is contained in releases, and when fixes will be backported. However, we may make a pragmatic decision to diverge from this policy when required. For example, a major and urgent breaking change could result in two breaking change releases in a row. If we diverge from this release policy, we’ll make it clear in the release notes.

· One min read
Andreas Marek

GraphQL Java will require Java 11 as a minimum Java version, starting from version 21.

With Java 8 being released over 8 years ago and Java 17 more than one year ago, we think now is the right time to upgrade the minimum Java version GraphQL Java is developed against.

This means starting with version 21 you need to use at least Java 11 to run GraphQL Java.

Depending on the feedback we get, we plan to release bugfix releases for version 20 for some time, but no longer than until end of 2023.

Please discuss and leave feedback here

· One min read
Donna Zhou

We are pleased to announce the release of graphql-java 20.0!

Special thanks to each of the 200+ contributors over the years, who have made this milestone possible.

We've added support for record-like property fetching, added performance improvements for PropertyDataFetcher and reduced object allocation.

Version 20 also introduces internationalization (i18n) for validation, parsing, and scalar coercion error messages. We have added German translations, and we would love to see more languages. If you would like to contribute, please open a pull request.

See the full release notes on GitHub.

· One min read
Donna Zhou

If you are building a GraphQL application with Spring, we recommend using the official Spring for GraphQL integration. This integration is a collaboration between the Spring and GraphQL Java teams, and is maintained by the Spring team. In May 2022, Spring for GraphQL 1.0 GA was released.

Use Spring Initializr to create a GraphQL application. For a quick tutorial, please see our Spring for GraphQL tutorial.

See also the Spring for GraphQL documentation and the repo on GitHub.

Before the official Spring for GraphQL integration was released, there were many other GraphQL integrations for Spring, including the similarly named GraphQL Java Spring project from the GraphQL Java team, published under the com.graphql-java and com.graphql-java-kickstart group IDs. Many tutorials are still referring to this unrelated project.

Please use the official integration named "Spring for GraphQL", published under org.springframework and related group IDs.

· One min read
Andreas Marek

We are happy to announce the availability of GraphQL Java 17.0. See 17.0 release notes for all the details.

At the same time we wanted to give an update regarding our LTS (Long Term Support) policy. Previously we maintained a LTS version of 9.x and after quite some time we announced 14.x as the next LTS.

The reality is that we didn't maintain 14.x really as a LTS version (we only released one bugfix release). This was mainly caused by the minimal community feedback and our limited time and resources.

Going forward we decided to no offer any LTS versions anymore. We will only actively maintain and bugfix the latest version (currently 17). We may backport critical bugfixes, but we are not committed to it.

If this is a huge problem for you or your Company and you are willing to help us with maintaining a LTS version you can reach us via email at hello at graphql-java dot com.