Skip to content

Commit 2fd41d9

Browse files
committed
Sync working groups
1 parent c549552 commit 2fd41d9

File tree

1 file changed

+57
-57
lines changed

1 file changed

+57
-57
lines changed

_data/wg.yaml

Lines changed: 57 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,62 @@
11
---
22
working-groups:
3+
- title: "Test classloading"
4+
board-url: "https://github.com/orgs/quarkusio/projects/30"
5+
short-description: 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.
6+
readme: |
7+
<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>
8+
<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>
9+
<blockquote>
10+
<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>
11+
</blockquote>
12+
<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>
13+
<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>
14+
<ul>
15+
<li>Point of contact: @holly-cummins (@<strong>Holly Cummins</strong> on Zulip)</li>
16+
<li>Proposal: https://github.com/quarkusio/quarkus/discussions/41867</li>
17+
<li>Discussion: <a href="https://quarkusio.zulipchat.com/#narrow/channel/187038-dev/topic/WG.20.2330.20Test.20Classloading.20chatter/">Zulip topic</a></li>
18+
</ul>
19+
status: on track
20+
completed: false
21+
last-activity: 2025-02-18
22+
last-update-date: 2025-02-04
23+
last-update: |
24+
We have the first clean CI! It resolves the following issues:
25+
26+
- https://github.com/quarkusio/quarkus/issues/45349
27+
- https://github.com/quarkusio/quarkus/issues/8446
28+
- https://github.com/quarkusio/quarkus/issues/42000
29+
- https://github.com/quarkusio/quarkus/issues/42006
30+
- https://github.com/quarkusio/quarkus/issues/44320
31+
32+
There are ~360 TODOs in the code. The following problems are introduced by the changes:
33+
34+
- Dev services start in the discovery phase (
35+
https://github.com/quarkusio/quarkus/issues/45785 )
36+
- Maven surefire.rerunFailingTestsCount option does not work in the case where there are test profiles or resources, unless the test order falls such that the failing test uses the last profile/resource (
37+
https://github.com/quarkusio/quarkus/issues/46048)
38+
point-of-contact: "@holly-cummins (@<strong>Holly Cummins</strong> on Zulip)"
39+
proposal: https://github.com/quarkusio/quarkus/discussions/41867
40+
discussion: https://quarkusio.zulipchat.com/#narrow/channel/187038-dev/topic/WG.20.2330.20Test.20Classloading.20chatter/
41+
- title: "Quarkus 3.15 LTS"
42+
board-url: "https://github.com/orgs/quarkusio/projects/28"
43+
short-description: This WG focuses on defining the issues we would like to have in the next-to-be LTS (Quarkus 3.14/3.15)
44+
readme: |
45+
<p>This working group uses a different board:</p>
46+
<ul>
47+
<li>The <code>under discussion</code> column contains the issues we would like to have in the next LTS but are still under consideration.</li>
48+
<li>The <code>out of scope</code> column contains the issues under discussion' that won't be included. The reason can be time or technical...</li>
49+
<li>The <code>in progress</code> means that the work has started and should be completed before the TLS cut date</li>
50+
<li>The <code>done</code> column means that the issues have been completed</li>
51+
</ul>
52+
status: staled
53+
completed: false
54+
last-activity: 2025-02-18
55+
last-update-date: 2024-10-28
56+
last-update: |
57+
Everything is fine for now.
58+
59+
There are discussions on defining a regular cadence release. We will communicate when we have more details.
360
- title: "Observability.Next"
461
board-url: "https://github.com/orgs/quarkusio/projects/42"
562
short-description: Observability.Next is a strategic initiative to modernize the observability stack within the Quarkus framework, aiming to streamline and enhance its ability to monitor and manage distributed systems.
@@ -73,44 +130,6 @@ working-groups:
73130
The initiative just started.
74131
point-of-contact: "@brunobat"
75132
proposal: https://github.com/quarkusio/quarkus/discussions/44423
76-
- title: "Test classloading"
77-
board-url: "https://github.com/orgs/quarkusio/projects/30"
78-
short-description: 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.
79-
readme: |
80-
<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>
81-
<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>
82-
<blockquote>
83-
<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>
84-
</blockquote>
85-
<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>
86-
<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>
87-
<ul>
88-
<li>Point of contact: @holly-cummins (@<strong>Holly Cummins</strong> on Zulip)</li>
89-
<li>Proposal: https://github.com/quarkusio/quarkus/discussions/41867</li>
90-
<li>Discussion: <a href="https://quarkusio.zulipchat.com/#narrow/channel/187038-dev/topic/WG.20.2330.20Test.20Classloading.20chatter/">Zulip topic</a></li>
91-
</ul>
92-
status: on track
93-
completed: false
94-
last-activity: 2025-02-06
95-
last-update-date: 2025-02-04
96-
last-update: |
97-
We have the first clean CI! It resolves the following issues:
98-
99-
- https://github.com/quarkusio/quarkus/issues/45349
100-
- https://github.com/quarkusio/quarkus/issues/8446
101-
- https://github.com/quarkusio/quarkus/issues/42000
102-
- https://github.com/quarkusio/quarkus/issues/42006
103-
- https://github.com/quarkusio/quarkus/issues/44320
104-
105-
There are ~360 TODOs in the code. The following problems are introduced by the changes:
106-
107-
- Dev services start in the discovery phase (
108-
https://github.com/quarkusio/quarkus/issues/45785 )
109-
- Maven surefire.rerunFailingTestsCount option does not work in the case where there are test profiles or resources, unless the test order falls such that the failing test uses the last profile/resource (
110-
https://github.com/quarkusio/quarkus/issues/46048)
111-
point-of-contact: "@holly-cummins (@<strong>Holly Cummins</strong> on Zulip)"
112-
proposal: https://github.com/quarkusio/quarkus/discussions/41867
113-
discussion: https://quarkusio.zulipchat.com/#narrow/channel/187038-dev/topic/WG.20.2330.20Test.20Classloading.20chatter/
114133
- title: "Quarkus 3.20 LTS"
115134
board-url: "https://github.com/orgs/quarkusio/projects/41"
116135
short-description: This working group aims to track the effort around the Quarkus 3.20 LTS version.
@@ -143,25 +162,6 @@ working-groups:
143162
deliverable: <a rel="nofollow" href="https://www.youtube.com/watch?v=9ALOZrlP7TE">Quarkus Insight</a>
144163
point-of-contact: "@mkouba (@<strong>Martin Kouba</strong> on Zulip)"
145164
proposal: https://github.com/quarkusio/quarkus/discussions/38473
146-
- title: "Quarkus 3.15 LTS"
147-
board-url: "https://github.com/orgs/quarkusio/projects/28"
148-
short-description: This WG focuses on defining the issues we would like to have in the next-to-be LTS (Quarkus 3.14/3.15)
149-
readme: |
150-
<p>This working group uses a different board:</p>
151-
<ul>
152-
<li>The <code>under discussion</code> column contains the issues we would like to have in the next LTS but are still under consideration.</li>
153-
<li>The <code>out of scope</code> column contains the issues under discussion' that won't be included. The reason can be time or technical...</li>
154-
<li>The <code>in progress</code> means that the work has started and should be completed before the TLS cut date</li>
155-
<li>The <code>done</code> column means that the issues have been completed</li>
156-
</ul>
157-
status: staled
158-
completed: false
159-
last-activity: 2024-12-16
160-
last-update-date: 2024-10-28
161-
last-update: |
162-
Everything is fine for now.
163-
164-
There are discussions on defining a regular cadence release. We will communicate when we have more details.
165165
- title: "Quarkus Config and IDEs"
166166
board-url: "https://github.com/orgs/quarkusio/projects/32"
167167
short-description: Let's define a format for the files containing the config model we will include in the jars for IDE consumption.

0 commit comments

Comments
 (0)