Skip to content

Commit 6805045

Browse files
committed
Sync working groups
1 parent 1ad68b1 commit 6805045

File tree

1 file changed

+53
-53
lines changed

1 file changed

+53
-53
lines changed

_data/wg.yaml

Lines changed: 53 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,58 @@
11
---
22
working-groups:
3+
- title: "Dev Services Lifecycle"
4+
board-url: "https://github.com/orgs/quarkusio/projects/49"
5+
short-description: |
6+
This working group will define and implement a consistent and configurable lifecycle model for Dev Services. It will shift the startup to the correct phase, enable optional reuse across dev and test modes, and clarify teardown and sharing behavior. The goal is to improve the developer experience.
7+
readme: |
8+
<p>This working group was formed to address long-standing inconsistencies and pain points in the Dev Services lifecycle within Quarkus. Dev Services are essential for simplifying local development and testing by automatically provisioning runtime dependencies (e.g., databases, message brokers), but their current lifecycle behavior leads to confusion and inefficiencies. Most notably, they are started during the augmentation phase, which conflicts with their inherently runtime-oriented nature and causes issues with newer efforts such as the test classloading revamp.</p>
9+
<p>The primary goal of this group is to define and implement a consistent, runtime-aligned lifecycle model for Dev Services. This includes shifting their startup to a phase after augmentation but before the application begins execution, ensuring better alignment with the runtime environment. A critical focus will also be on enabling optional reuse of Dev Services across dev and test modes — including reuse between repeated test executions — to reduce startup time and improve the iterative development experience.</p>
10+
<p>The group's scope covers several strategic areas: formalizing when and how Dev Services are started, reused, or stopped; defining rules for discoverability and sharing between profiles or processes; and avoiding resource leaks or accidental retention. It explicitly excludes broader orchestration features (such as service dependency graphs) and unrelated feature enhancements.</p>
11+
<p>The working group will produce a set of deliverables to support the new model. These include one or more Architecture Decision Records (ADRs) describing the new lifecycle model, the implementation of lifecycle logic in Quarkus Core, and updates to both user-facing and contributor documentation. Additionally, enhancements to the Dev Services development model will make it easier for extension authors to adopt and follow the new lifecycle standards. A public communication effort (e.g., blog posts or demos) will also be used to showcase the improvements.</p>
12+
<ul>
13+
<li>Point of contact: @holly-cummins (@<strong>Holly Cummins</strong> on Zulip), @ozangunalp (@<strong>Ozan Günalp</strong> on Zulip )</li>
14+
<li>Proposal: https://github.com/quarkusio/quarkus/discussions/47683</li>
15+
<li>Discussion: <a href="https://quarkusio.zulipchat.com/#narrow/channel/187038-dev">Zulip</a>)</li>
16+
</ul>
17+
status: on track
18+
lts: false
19+
completed: false
20+
last-activity: 2025-05-19
21+
last-update-date: 2025-05-05
22+
last-update: |
23+
Worgking group started.
24+
point-of-contact: "@holly-cummins (@<strong>Holly Cummins</strong> on Zulip), @ozangunalp (@<strong>Ozan Günalp</strong> on Zulip )"
25+
proposal: https://github.com/quarkusio/quarkus/discussions/47683
26+
discussion: https://quarkusio.zulipchat.com/#narrow/channel/187038-dev
27+
- title: "Test classloading"
28+
board-url: "https://github.com/orgs/quarkusio/projects/30"
29+
short-description: |
30+
The goal of this working group is to rewrite Quarkus's test classloading, so that tests are run in the same classloader as the application under tests, and Quarkus extensions can do "Quarkus-y" manipulations of test classes.
31+
readme: |
32+
<p>At the moment, Quarkus tests are invoked using one classloader, and then executed in a different classloader. This mostly works well, but means some use cases don't work: extensions cannot manipulate test classes in the same way that they do normal application classes. For example, anything run via a JUnit @TestTemplate test case will see the un-transformed class.</p>
33+
<p>It also means we have extra user-facing complexity, such as the QuarkusTest*Callbacks](https://quarkus.io/guides/getting-started-testing#enrichment-via-quarkustestcallback):</p>
34+
<blockquote>
35+
<p>While it is possible to use JUnit Jupiter callback interfaces like BeforeEachCallback, you might run into classloading issues because Quarkus has to run tests in a custom classloader which JUnit is not aware of.</p>
36+
</blockquote>
37+
<p>A final benefit is a reduction in the internal complexity of our code. Hopping between classloaders during test execution takes a lot of work, and adds a lot of code! It also is brittle in places. For example, because the hop between classloaders relies on serialization in some cases, it's becoming harder to do as the JVM tightens up security restrictions. We used to rely on xstream, but that stopped working in Java 17. In https://github.com/quarkusio/quarkus/pull/40601, @dmlloyd moved us to use the JBoss Serializer, which works better, but might still be affected by future restrictions on class access.</p>
38+
<p>The goal of this working group is to allow test classes to fully participate in the 'quarkification' of classes. The mechanism for this is probably just to load the test classes with the classloader we intend to run them with, so that JUnit sees the 'correct' version of the class.</p>
39+
<ul>
40+
<li>Point of contact: @holly-cummins (@<strong>Holly Cummins</strong> on Zulip)</li>
41+
<li>Proposal: https://github.com/quarkusio/quarkus/discussions/41867</li>
42+
<li>Discussion: <a href="https://quarkusio.zulipchat.com/#narrow/channel/187038-dev/topic/WG.20.2330.20Test.20Classloading.20chatter/">Zulip topic</a></li>
43+
</ul>
44+
status: on track
45+
lts: false
46+
completed: false
47+
last-activity: 2025-05-19
48+
last-update-date: 2025-04-28
49+
last-update: |
50+
In the last month, the WG - Test classloading successfully closed significant issues related to classloader behavior, including fixing ServiceLoader errors and NullPointerExceptions that impacted test discovery. However, several issues were opened, focusing on recurring ServiceConfigurationErrors and additional classloader-related concerns. The team also initiated communications with the first blog detailing test classloading changes. This ongoing work aims to enhance Quarkus's test environment by ensuring proper classloader interactions and minimizing errors during testing.
51+
52+
(This status update was automatically generated using AI.)
53+
point-of-contact: "@holly-cummins (@<strong>Holly Cummins</strong> on Zulip)"
54+
proposal: https://github.com/quarkusio/quarkus/discussions/41867
55+
discussion: https://quarkusio.zulipchat.com/#narrow/channel/187038-dev/topic/WG.20.2330.20Test.20Classloading.20chatter/
356
- title: "Gizmo 2"
457
board-url: "https://github.com/orgs/quarkusio/projects/43"
558
short-description: |
@@ -57,59 +110,6 @@ working-groups:
57110
last-update-date: 2025-04-01
58111
last-update: |
59112
In the last month, the WG - Quarkus 3.15 LTS closed two issues: one regarding the assignment of random ports in the configuration and another updating the Kafka client version to 3.7.2 to address CVE-2024-56128. No new issues were opened, reflecting a commitment to resolving important topics for the upcoming LTS release.
60-
- title: "Test classloading"
61-
board-url: "https://github.com/orgs/quarkusio/projects/30"
62-
short-description: |
63-
The goal of this working group is to rewrite Quarkus's test classloading, so that tests are run in the same classloader as the application under tests, and Quarkus extensions can do "Quarkus-y" manipulations of test classes.
64-
readme: |
65-
<p>At the moment, Quarkus tests are invoked using one classloader, and then executed in a different classloader. This mostly works well, but means some use cases don't work: extensions cannot manipulate test classes in the same way that they do normal application classes. For example, anything run via a JUnit @TestTemplate test case will see the un-transformed class.</p>
66-
<p>It also means we have extra user-facing complexity, such as the QuarkusTest*Callbacks](https://quarkus.io/guides/getting-started-testing#enrichment-via-quarkustestcallback):</p>
67-
<blockquote>
68-
<p>While it is possible to use JUnit Jupiter callback interfaces like BeforeEachCallback, you might run into classloading issues because Quarkus has to run tests in a custom classloader which JUnit is not aware of.</p>
69-
</blockquote>
70-
<p>A final benefit is a reduction in the internal complexity of our code. Hopping between classloaders during test execution takes a lot of work, and adds a lot of code! It also is brittle in places. For example, because the hop between classloaders relies on serialization in some cases, it's becoming harder to do as the JVM tightens up security restrictions. We used to rely on xstream, but that stopped working in Java 17. In https://github.com/quarkusio/quarkus/pull/40601, @dmlloyd moved us to use the JBoss Serializer, which works better, but might still be affected by future restrictions on class access.</p>
71-
<p>The goal of this working group is to allow test classes to fully participate in the 'quarkification' of classes. The mechanism for this is probably just to load the test classes with the classloader we intend to run them with, so that JUnit sees the 'correct' version of the class.</p>
72-
<ul>
73-
<li>Point of contact: @holly-cummins (@<strong>Holly Cummins</strong> on Zulip)</li>
74-
<li>Proposal: https://github.com/quarkusio/quarkus/discussions/41867</li>
75-
<li>Discussion: <a href="https://quarkusio.zulipchat.com/#narrow/channel/187038-dev/topic/WG.20.2330.20Test.20Classloading.20chatter/">Zulip topic</a></li>
76-
</ul>
77-
status: on track
78-
lts: false
79-
completed: false
80-
last-activity: 2025-05-19
81-
last-update-date: 2025-04-28
82-
last-update: |
83-
In the last month, the WG - Test classloading successfully closed significant issues related to classloader behavior, including fixing ServiceLoader errors and NullPointerExceptions that impacted test discovery. However, several issues were opened, focusing on recurring ServiceConfigurationErrors and additional classloader-related concerns. The team also initiated communications with the first blog detailing test classloading changes. This ongoing work aims to enhance Quarkus's test environment by ensuring proper classloader interactions and minimizing errors during testing.
84-
85-
(This status update was automatically generated using AI.)
86-
point-of-contact: "@holly-cummins (@<strong>Holly Cummins</strong> on Zulip)"
87-
proposal: https://github.com/quarkusio/quarkus/discussions/41867
88-
discussion: https://quarkusio.zulipchat.com/#narrow/channel/187038-dev/topic/WG.20.2330.20Test.20Classloading.20chatter/
89-
- title: "Dev Services Lifecycle"
90-
board-url: "https://github.com/orgs/quarkusio/projects/49"
91-
short-description: |
92-
This working group will define and implement a consistent and configurable lifecycle model for Dev Services. It will shift the startup to the correct phase, enable optional reuse across dev and test modes, and clarify teardown and sharing behavior. The goal is to improve the developer experience.
93-
readme: |
94-
<p>This working group was formed to address long-standing inconsistencies and pain points in the Dev Services lifecycle within Quarkus. Dev Services are essential for simplifying local development and testing by automatically provisioning runtime dependencies (e.g., databases, message brokers), but their current lifecycle behavior leads to confusion and inefficiencies. Most notably, they are started during the augmentation phase, which conflicts with their inherently runtime-oriented nature and causes issues with newer efforts such as the test classloading revamp.</p>
95-
<p>The primary goal of this group is to define and implement a consistent, runtime-aligned lifecycle model for Dev Services. This includes shifting their startup to a phase after augmentation but before the application begins execution, ensuring better alignment with the runtime environment. A critical focus will also be on enabling optional reuse of Dev Services across dev and test modes — including reuse between repeated test executions — to reduce startup time and improve the iterative development experience.</p>
96-
<p>The group's scope covers several strategic areas: formalizing when and how Dev Services are started, reused, or stopped; defining rules for discoverability and sharing between profiles or processes; and avoiding resource leaks or accidental retention. It explicitly excludes broader orchestration features (such as service dependency graphs) and unrelated feature enhancements.</p>
97-
<p>The working group will produce a set of deliverables to support the new model. These include one or more Architecture Decision Records (ADRs) describing the new lifecycle model, the implementation of lifecycle logic in Quarkus Core, and updates to both user-facing and contributor documentation. Additionally, enhancements to the Dev Services development model will make it easier for extension authors to adopt and follow the new lifecycle standards. A public communication effort (e.g., blog posts or demos) will also be used to showcase the improvements.</p>
98-
<ul>
99-
<li>Point of contact: @holly-cummins (@<strong>Holly Cummins</strong> on Zulip), @ozangunalp (@<strong>Ozan Günalp</strong> on Zulip )</li>
100-
<li>Proposal: https://github.com/quarkusio/quarkus/discussions/47683</li>
101-
<li>Discussion: <a href="https://quarkusio.zulipchat.com/#narrow/channel/187038-dev">Zulip</a>)</li>
102-
</ul>
103-
status: on track
104-
lts: false
105-
completed: false
106-
last-activity: 2025-05-15
107-
last-update-date: 2025-05-05
108-
last-update: |
109-
Worgking group started.
110-
point-of-contact: "@holly-cummins (@<strong>Holly Cummins</strong> on Zulip), @ozangunalp (@<strong>Ozan Günalp</strong> on Zulip )"
111-
proposal: https://github.com/quarkusio/quarkus/discussions/47683
112-
discussion: https://quarkusio.zulipchat.com/#narrow/channel/187038-dev
113113
- title: "OIDC improvements"
114114
board-url: "https://github.com/orgs/quarkusio/projects/46"
115115
short-description: |

0 commit comments

Comments
 (0)