[ 
https://issues.apache.org/jira/browse/GROOVY-12042?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18092121#comment-18092121
 ] 

ASF GitHub Bot commented on GROOVY-12042:
-----------------------------------------

paulk-asert opened a new pull request, #2640:
URL: https://github.com/apache/groovy/pull/2640

   (no comment)




> Graduate groovy-ginq from incubating to stable
> ----------------------------------------------
>
>                 Key: GROOVY-12042
>                 URL: https://issues.apache.org/jira/browse/GROOVY-12042
>             Project: Groovy
>          Issue Type: Task
>            Reporter: Paul King
>            Priority: Major
>
> h2. GINQ graduation: work done
> GINQ has been incubating since 4.0.0 (~4.5 years, 494 spec tests, no semantic 
> churn). The roadmap
> (SQL backend [GEP-26], GEP-18 concurrency alignment, query continuation, 
> async sources) is entirely
> *additive* to the public surface, so graduating the stable parts now does not 
> constrain any future
> work. This graduates the user-facing surface while keeping only the 
> genuinely-unstable provider SPI
> (and the {{agg()}} hook) marked incubating.
> h3. Graduated -- {{@Incubating}} removed (stable user-facing surface)
> * (/) {{groovy.ginq.transform.GQ}} -- the {{@GQ}} annotation
> * (/) {{org.apache.groovy.ginq.GinqGroovyMethods}} -- the {{GQ}}/{{GQL}} 
> macros
> h3. Kept incubating -- the genuinely-unstable extension surface
> * {{org.apache.groovy.ginq.dsl.GinqAstVisitor}} -- the provider SPI contract 
> a custom walker implements ({{@Incubating}}, type level)
> * {{org.apache.groovy.ginq.dsl.GinqAstBaseVisitor}} -- the convenience base 
> for custom walkers ({{@Incubating}}, type level)
> * {{@GQ.astWalker()}} member -- {{@Incubating}} + javadoc cross-linking the 
> SPI (selector for a custom walker)
> * {{astWalker:}} macro config key -- code comment noting the SPI is 
> incubating (covers the {{GQ(astWalker: ...)}} path)
> * User guide "Customize GINQ" section -- INCUBATING note
> * {{agg()}} custom aggregation -- existing INCUBATING doc label left as-is
> h3. Files changed
> || File || Change ||
> | {{transform/GQ.java}} | {{@Incubating}} removed from the type; added to the 
> {{astWalker()}} member (+ import, + javadoc) |
> | {{GinqGroovyMethods.groovy}} | {{@Incubating}} removed from the class (+ 
> import); comment on the {{astWalker}} config key |
> | {{dsl/GinqAstVisitor.java}} | {{@Incubating}} added at type level (+ 
> import) |
> | {{dsl/GinqAstBaseVisitor.java}} | {{@Incubating}} added at type level (+ 
> import) |
> | {{spec/doc/ginq-userguide.adoc}} | INCUBATING note on the "Customize GINQ" 
> section |
> h3. Notes
> * The only {{Incubating}}/{{INCUBATING}} references left in GINQ are the 
> deliberate fences above (verified by grep); no unused imports.
> * Changes are compile-safe (annotation add/remove with no members used; 
> {{@Incubating}} is RUNTIME-retained on the SPI types, doc-only on the 
> {{SOURCE}}-retained {{@GQ}} member).
> * The runtime result surface ({{Queryable}}, {{GroupResult}}, 
> {{NamedRecord}}, {{Window}}, bound types) is already free of incubating 
> markers and is settled (the {{groupby...into}} group model landed in 
> [GROOVY-11915]); the SQL backend consumes it rather than changing it.
> h3. Deliberately not done (separate calls)
> * {{withoutBinaryCompatibilityChecks()}} in {{groovy-ginq/build.gradle}} -- 
> whether to enable bin-compat enforcement is a separate decision; recent 
> graduations (contracts, type checkers) left theirs off, so it was not flipped 
> here.
> * The {{provider:}} key introduced by [GEP-26] should carry the same 
> {{@Incubating}} marking until the SPI settles.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to