|
1 | 1 | --- |
2 | 2 | working-groups: |
| 3 | + - title: "Quarkus Data" |
| 4 | + board-url: "https://github.com/orgs/quarkusio/projects/50" |
| 5 | + short-description: | |
| 6 | + The primary objective of this working group is to develop the next version of Panache, now known as Quarkus Data. |
| 7 | + readme: | |
| 8 | + <h1>Objective</h1> |
| 9 | + <p>The main objective of this working group is to bring forth the next version of Panache.</p> |
| 10 | + <h1>The Problem</h1> |
| 11 | + <p>Panache is great for many things, but over time, we realised the following limitations:</p> |
| 12 | + <ul> |
| 13 | + <li>We have three distinct versions: Hibernate ORM, Hibernate Reactive and Mongo (blocking and reactive)</li> |
| 14 | + <li>It is impossible to use the same entities with Hibernate ORM and Hibernate Reactive</li> |
| 15 | + <li>Stateless sessions are not supported</li> |
| 16 | + <li>Hibernate Processor annotations, and Jakarta Data are not supported</li> |
| 17 | + <li>We have triplicate types such as <code>Sort</code> and <code>Order</code> between Panache, ORM and Jakarta Data</li> |
| 18 | + <li>We have two ways to place entity query operations : on the entity itself, or in repositories</li> |
| 19 | + <li>Entity query operations require type-system hacks which makes them less type-safe than we want with <code>var</code> and <code>for-each</code> and especially with reactive operations.</li> |
| 20 | + </ul> |
| 21 | + <h1>The proposed Solution</h1> |
| 22 | + <p>We propose a new Panache version that will solve all these issues:</p> |
| 23 | + <ul> |
| 24 | + <li>Unify all variants in a single module, supporting blocking, reactive, stateless and stateful sessions</li> |
| 25 | + <li>Provide an entity toplevel class for each 4 modes of operation, yet allow access to the other modes</li> |
| 26 | + <li>Move all entity query operations from the entity class to the repository class</li> |
| 27 | + <li>Provide a repository toplevel class for each 4 modes of operation, yet allow access to the other modes</li> |
| 28 | + <li>Provide easy access to any type of repository by placing them as nested interfaces in the entity class, via a generated accessor on the entity metamodel class</li> |
| 29 | + <li>Provide out of the box accessors for the 4 modes of operation repositories on the entity metamodel class</li> |
| 30 | + <li>Support Jakarta Data and Hibernate Processor type-safe annotations</li> |
| 31 | + <li>Optional: Support of Mongo via the coming ORM JDBC support</li> |
| 32 | + <li>Optional: provide JD repository type alternatives for the missing three modes</li> |
| 33 | + <li>Optional: provide a way to convert Panache 1 to Panache.Next</li> |
| 34 | + </ul> |
| 35 | + <h1>Definition of Done</h1> |
| 36 | + <ul> |
| 37 | + <li>Deliver the new Panache extension as a <code>stable</code> state (after preview/experimental versions for feedback)</li> |
| 38 | + <li>Tests</li> |
| 39 | + <li>Documentation</li> |
| 40 | + <li>Codestart</li> |
| 41 | + <li>REST Data with Panache support</li> |
| 42 | + <li>Renarde support</li> |
| 43 | + <li>Quarkus Insights</li> |
| 44 | + </ul> |
| 45 | + <h1>Scope of Work</h1> |
| 46 | + <p>It is currently out of scope to retrofit this with the existing Panache modules. This will be a new module with no backward compatibility (although most type-unsafe operations will continue as-is, so you will be familiar with them).</p> |
| 47 | + <h1>Organizing the Work</h1> |
| 48 | + <h2>Communication and Transparency:</h2> |
| 49 | + <p>This will be done via GitHub issues on the Quarkus core project.</p> |
| 50 | + <h2>Expected Timeline:</h2> |
| 51 | + <p>Most of the R&D and design work has been completed over the last two years. Now remains the task of merging, documenting, testing, and tweaking it until it's complete.</p> |
| 52 | + <ul> |
| 53 | + <li>Point of contact: @FroMage (@<strong>Stephane Epardaud</strong> on Zulip)</li> |
| 54 | + <li>Proposal: https://github.com/quarkusio/quarkus/discussions/48949</li> |
| 55 | + <li>Discussion: <a href="https://quarkusio.zulipchat.com/#narrow/channel/187038-dev/topic/WG.20-.20Panache.2ENext/with/529258261">Zulip</a></li> |
| 56 | + <li>Deliverable: <a href="https://quarkus.io/blog/hibernate-panache-next/">Blog Post</a></li> |
| 57 | + </ul> |
| 58 | + status: on track |
| 59 | + lts: false |
| 60 | + completed: false |
| 61 | + last-activity: 2026-05-06 |
| 62 | + last-update-date: 2026-03-30 |
| 63 | + last-update: | |
| 64 | + Much of our work on Panache Next, soon to be renamed Quarkus Data, involved resolving several operation overload issues and refining Hibernate Reactive type signatures. We also enabled `StatelessSession` injection. Now, the team is tackling transaction propagation with Vert.x Context, allowing mixed `Session` and `StatelessSession`, and fixing projection failures with Kotlin value classes. |
| 65 | + |
| 66 | + (This status update was automatically generated using AI.) |
| 67 | + deliverable: <a rel="nofollow" href="https://quarkus.io/blog/hibernate-panache-next/">Blog Post</a> |
| 68 | + point-of-contact: "@FroMage (@<strong>Stephane Epardaud</strong> on Zulip)" |
| 69 | + proposal: https://github.com/quarkusio/quarkus/discussions/48949 |
| 70 | + discussion: https://quarkusio.zulipchat.com/#narrow/channel/187038-dev/topic/WG.20-.20Panache.2ENext/with/529258261 |
3 | 71 | - title: "Quarkus Terminal" |
4 | 72 | board-url: "https://github.com/orgs/quarkusio/projects/77" |
5 | 73 | short-description: | |
@@ -95,74 +163,6 @@ working-groups: |
95 | 163 | point-of-contact: "@maxandersen" |
96 | 164 | proposal: https://github.com/quarkusio/quarkus/discussions/53667 |
97 | 165 | discussion: https://quarkusio.zulipchat.com/#narrow/channel/187038-dev/topic/WG.20-.20Quarkus.20Terminal/with/587817394 |
98 | | - - title: "Quarkus Data" |
99 | | - board-url: "https://github.com/orgs/quarkusio/projects/50" |
100 | | - short-description: | |
101 | | - The primary objective of this working group is to develop the next version of Panache, now known as Quarkus Data. |
102 | | - readme: | |
103 | | - <h1>Objective</h1> |
104 | | - <p>The main objective of this working group is to bring forth the next version of Panache.</p> |
105 | | - <h1>The Problem</h1> |
106 | | - <p>Panache is great for many things, but over time, we realised the following limitations:</p> |
107 | | - <ul> |
108 | | - <li>We have three distinct versions: Hibernate ORM, Hibernate Reactive and Mongo (blocking and reactive)</li> |
109 | | - <li>It is impossible to use the same entities with Hibernate ORM and Hibernate Reactive</li> |
110 | | - <li>Stateless sessions are not supported</li> |
111 | | - <li>Hibernate Processor annotations, and Jakarta Data are not supported</li> |
112 | | - <li>We have triplicate types such as <code>Sort</code> and <code>Order</code> between Panache, ORM and Jakarta Data</li> |
113 | | - <li>We have two ways to place entity query operations : on the entity itself, or in repositories</li> |
114 | | - <li>Entity query operations require type-system hacks which makes them less type-safe than we want with <code>var</code> and <code>for-each</code> and especially with reactive operations.</li> |
115 | | - </ul> |
116 | | - <h1>The proposed Solution</h1> |
117 | | - <p>We propose a new Panache version that will solve all these issues:</p> |
118 | | - <ul> |
119 | | - <li>Unify all variants in a single module, supporting blocking, reactive, stateless and stateful sessions</li> |
120 | | - <li>Provide an entity toplevel class for each 4 modes of operation, yet allow access to the other modes</li> |
121 | | - <li>Move all entity query operations from the entity class to the repository class</li> |
122 | | - <li>Provide a repository toplevel class for each 4 modes of operation, yet allow access to the other modes</li> |
123 | | - <li>Provide easy access to any type of repository by placing them as nested interfaces in the entity class, via a generated accessor on the entity metamodel class</li> |
124 | | - <li>Provide out of the box accessors for the 4 modes of operation repositories on the entity metamodel class</li> |
125 | | - <li>Support Jakarta Data and Hibernate Processor type-safe annotations</li> |
126 | | - <li>Optional: Support of Mongo via the coming ORM JDBC support</li> |
127 | | - <li>Optional: provide JD repository type alternatives for the missing three modes</li> |
128 | | - <li>Optional: provide a way to convert Panache 1 to Panache.Next</li> |
129 | | - </ul> |
130 | | - <h1>Definition of Done</h1> |
131 | | - <ul> |
132 | | - <li>Deliver the new Panache extension as a <code>stable</code> state (after preview/experimental versions for feedback)</li> |
133 | | - <li>Tests</li> |
134 | | - <li>Documentation</li> |
135 | | - <li>Codestart</li> |
136 | | - <li>REST Data with Panache support</li> |
137 | | - <li>Renarde support</li> |
138 | | - <li>Quarkus Insights</li> |
139 | | - </ul> |
140 | | - <h1>Scope of Work</h1> |
141 | | - <p>It is currently out of scope to retrofit this with the existing Panache modules. This will be a new module with no backward compatibility (although most type-unsafe operations will continue as-is, so you will be familiar with them).</p> |
142 | | - <h1>Organizing the Work</h1> |
143 | | - <h2>Communication and Transparency:</h2> |
144 | | - <p>This will be done via GitHub issues on the Quarkus core project.</p> |
145 | | - <h2>Expected Timeline:</h2> |
146 | | - <p>Most of the R&D and design work has been completed over the last two years. Now remains the task of merging, documenting, testing, and tweaking it until it's complete.</p> |
147 | | - <ul> |
148 | | - <li>Point of contact: @FroMage (@<strong>Stephane Epardaud</strong> on Zulip)</li> |
149 | | - <li>Proposal: https://github.com/quarkusio/quarkus/discussions/48949</li> |
150 | | - <li>Discussion: <a href="https://quarkusio.zulipchat.com/#narrow/channel/187038-dev/topic/WG.20-.20Panache.2ENext/with/529258261">Zulip</a></li> |
151 | | - <li>Deliverable: <a href="https://quarkus.io/blog/hibernate-panache-next/">Blog Post</a></li> |
152 | | - </ul> |
153 | | - status: on track |
154 | | - lts: false |
155 | | - completed: false |
156 | | - last-activity: 2026-05-06 |
157 | | - last-update-date: 2026-03-30 |
158 | | - last-update: | |
159 | | - Much of our work on Panache Next, soon to be renamed Quarkus Data, involved resolving several operation overload issues and refining Hibernate Reactive type signatures. We also enabled `StatelessSession` injection. Now, the team is tackling transaction propagation with Vert.x Context, allowing mixed `Session` and `StatelessSession`, and fixing projection failures with Kotlin value classes. |
160 | | - |
161 | | - (This status update was automatically generated using AI.) |
162 | | - deliverable: <a rel="nofollow" href="https://quarkus.io/blog/hibernate-panache-next/">Blog Post</a> |
163 | | - point-of-contact: "@FroMage (@<strong>Stephane Epardaud</strong> on Zulip)" |
164 | | - proposal: https://github.com/quarkusio/quarkus/discussions/48949 |
165 | | - discussion: https://quarkusio.zulipchat.com/#narrow/channel/187038-dev/topic/WG.20-.20Panache.2ENext/with/529258261 |
166 | 166 | - title: "Quarkus 4" |
167 | 167 | board-url: "https://github.com/orgs/quarkusio/projects/51" |
168 | 168 | short-description: | |
|
0 commit comments