|
1 | 1 | --- |
2 | 2 | working-groups: |
| 3 | + - title: "Panache.Next" |
| 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. |
| 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 | + </ul> |
| 57 | + status: on track |
| 58 | + lts: false |
| 59 | + completed: false |
| 60 | + last-activity: 2025-10-17 |
| 61 | + last-update-date: 2025-09-08 |
| 62 | + last-update: | |
| 63 | + On track, @FroMage is still working on Panache 2. |
| 64 | + point-of-contact: "@FroMage (@<strong>Stephane Epardaud</strong> on Zulip)" |
| 65 | + proposal: https://github.com/quarkusio/quarkus/discussions/48949 |
| 66 | + discussion: https://quarkusio.zulipchat.com/#narrow/channel/187038-dev/topic/WG.20-.20Panache.2ENext/with/529258261 |
3 | 67 | - title: "Quarkus 4" |
4 | 68 | board-url: "https://github.com/orgs/quarkusio/projects/51" |
5 | 69 | short-description: | |
@@ -179,70 +243,6 @@ working-groups: |
179 | 243 | point-of-contact: "@mkouba (@<strong>Martin Kouba</strong> on Zulip)" |
180 | 244 | proposal: https://github.com/quarkusio/quarkus/discussions/46627 |
181 | 245 | discussion: https://quarkusio.zulipchat.com/#narrow/channel/187038-dev/topic/Gizmo.202.2Ex.20WG.20chat |
182 | | - - title: "Panache.Next" |
183 | | - board-url: "https://github.com/orgs/quarkusio/projects/50" |
184 | | - short-description: | |
185 | | - The primary objective of this working group is to develop the next version of Panache. |
186 | | - readme: | |
187 | | - <h1>Objective</h1> |
188 | | - <p>The main objective of this working group is to bring forth the next version of Panache.</p> |
189 | | - <h1>The Problem</h1> |
190 | | - <p>Panache is great for many things, but over time, we realised the following limitations:</p> |
191 | | - <ul> |
192 | | - <li>We have three distinct versions: Hibernate ORM, Hibernate Reactive and Mongo (blocking and reactive)</li> |
193 | | - <li>It is impossible to use the same entities with Hibernate ORM and Hibernate Reactive</li> |
194 | | - <li>Stateless sessions are not supported</li> |
195 | | - <li>Hibernate Processor annotations, and Jakarta Data are not supported</li> |
196 | | - <li>We have triplicate types such as <code>Sort</code> and <code>Order</code> between Panache, ORM and Jakarta Data</li> |
197 | | - <li>We have two ways to place entity query operations : on the entity itself, or in repositories</li> |
198 | | - <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> |
199 | | - </ul> |
200 | | - <h1>The proposed Solution</h1> |
201 | | - <p>We propose a new Panache version that will solve all these issues:</p> |
202 | | - <ul> |
203 | | - <li>Unify all variants in a single module, supporting blocking, reactive, stateless and stateful sessions</li> |
204 | | - <li>Provide an entity toplevel class for each 4 modes of operation, yet allow access to the other modes</li> |
205 | | - <li>Move all entity query operations from the entity class to the repository class</li> |
206 | | - <li>Provide a repository toplevel class for each 4 modes of operation, yet allow access to the other modes</li> |
207 | | - <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> |
208 | | - <li>Provide out of the box accessors for the 4 modes of operation repositories on the entity metamodel class</li> |
209 | | - <li>Support Jakarta Data and Hibernate Processor type-safe annotations</li> |
210 | | - <li>Optional: Support of Mongo via the coming ORM JDBC support</li> |
211 | | - <li>Optional: provide JD repository type alternatives for the missing three modes</li> |
212 | | - <li>Optional: provide a way to convert Panache 1 to Panache.Next</li> |
213 | | - </ul> |
214 | | - <h1>Definition of Done</h1> |
215 | | - <ul> |
216 | | - <li>Deliver the new Panache extension as a <code>stable</code> state (after preview/experimental versions for feedback)</li> |
217 | | - <li>Tests</li> |
218 | | - <li>Documentation</li> |
219 | | - <li>Codestart</li> |
220 | | - <li>REST Data with Panache support</li> |
221 | | - <li>Renarde support</li> |
222 | | - <li>Quarkus Insights</li> |
223 | | - </ul> |
224 | | - <h1>Scope of Work</h1> |
225 | | - <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> |
226 | | - <h1>Organizing the Work</h1> |
227 | | - <h2>Communication and Transparency:</h2> |
228 | | - <p>This will be done via GitHub issues on the Quarkus core project.</p> |
229 | | - <h2>Expected Timeline:</h2> |
230 | | - <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> |
231 | | - <ul> |
232 | | - <li>Point of contact: @FroMage (@<strong>Stephane Epardaud</strong> on Zulip)</li> |
233 | | - <li>Proposal: https://github.com/quarkusio/quarkus/discussions/48949</li> |
234 | | - <li>Discussion: <a href="https://quarkusio.zulipchat.com/#narrow/channel/187038-dev/topic/WG.20-.20Panache.2ENext/with/529258261">Zulip</a></li> |
235 | | - </ul> |
236 | | - status: on track |
237 | | - lts: false |
238 | | - completed: false |
239 | | - last-activity: 2025-10-07 |
240 | | - last-update-date: 2025-09-08 |
241 | | - last-update: | |
242 | | - On track, @FroMage is still working on Panache 2. |
243 | | - point-of-contact: "@FroMage (@<strong>Stephane Epardaud</strong> on Zulip)" |
244 | | - proposal: https://github.com/quarkusio/quarkus/discussions/48949 |
245 | | - discussion: https://quarkusio.zulipchat.com/#narrow/channel/187038-dev/topic/WG.20-.20Panache.2ENext/with/529258261 |
246 | 246 | - title: "Test classloading" |
247 | 247 | board-url: "https://github.com/orgs/quarkusio/projects/30" |
248 | 248 | short-description: | |
|
0 commit comments