I asked AI for a summary of the oldest "Incubating" features. The two oldest involved Realm and MetaClassConstant. They were the features that motivated Jochen to create @Incubating in the first place! I don't think we progressed that work but maybe with AI we can consider it now. But that would be a Groovy 7 thing.
The next 8 rows are shown below: 1. 2017-03-28 - Macro methods: @Macro, MacroBuilder, MacroContext, MacroClass - Groovy 2.5.0 (@since 2.5.0) 2. 2018-02-16 - groovy.transform.options.PropertyHandler: pluggable handlers for @Immutable / property AST transforms (GROOVY-8477) - Groovy 2.5.0 (@since 2.5.0) 3. 2020-01-19 - JavaShell: in-memory Java compiler used by the Groovy Console's Java source mode - Groovy 3.0.x 4. 2020-01-23 - StringGroovyMethods.eachMatch: new @Incubating overload - Groovy 3.0.x 5. 2020-08-06 - groovy-contracts: @Requires, @Ensures, @Invariant - Groovy 4.0.0 6. 2020-08-19 - groovy-typecheckers: RegexChecker (later joined by NullChecker, FormatStringChecker, PurityChecker, ModifiesChecker) - Groovy 4.0.0 7. 2020-11-06 - GINQ: GinqGroovyMethods - Groovy 4.0.0 (@since 4.0.0) 8. 2021-05-04 - groovy-toml: TomlBuilder, TomlSlurper, TomlRuntimeException - Groovy 4.0.0 (@since 4.0.0) I am going to pick off some of those and see if we can stabilise. If anyone wants to help, please shout! I think a good set of criteria for removing incubating status would be: seems to be used, design seems stable, not a source of many bug issues in Jira, and doesn't seem to suffer from being under-specified. I am trying to create GEPs for major things we think need clearer specs, but that can proceed in parallel as we have time. There is no rush to remove the incubating status. No users have reported holding back from using particular features because they are still incubating. However, since we are adding more new features in 6, the length of "still incubating" list is growing longer, so it would be nice to prune off a few. Cheers, Paul.
