Release notes for Groovy 6.0

Groovy 6 builds upon existing features of earlier versions of Groovy. In addition, it incorporates numerous new features and streamlines various legacy aspects of the Groovy codebase.

Note
WARNING: Material on this page is still under development! We are currently working on alpha versions of Groovy 6.0 with a goal of gathering feedback on the language changes from our community. In addition, early versions assist other projects and tool vendors within the Groovy ecosystem to begin assessing the impact of moving to/supporting Groovy 6.0. Caution should be exercised if using new features as the details may change before final release. Some features described here as "incubating" may become stable before 6.0.0 final is released, others are expected to remain incubating for version 6. We don’t recommend using alpha versions or incubating features for production systems.

Highlights

TBD

Under exploration

  • Annotations in more places (source only), e.g. @Parallel, @Invariant on for loops

  • Grapes/Grab users can choose Maven Resolver or Ivy

  • Java compatibility: Module import declarations, additional destructuring

  • Improve REPL further (think nushell)

  • Performance

  • Spec improvements

  • Further subprojects, e.g. maybe GPars

  • async/await like functionality

JDK requirements

Groovy 6 requires JDK17+ to build and JDK17 is the minimum version of the JRE that we support. Groovy 6 has been tested on JDK versions 17 through 25.

More information

You can browse all the tickets closed for Groovy 6.0 in JIRA.