Skip to content

Commit 46182fa

Browse files
committed
Sync working groups
1 parent a1ea1fd commit 46182fa

1 file changed

Lines changed: 91 additions & 91 deletions

File tree

_data/wg.yaml

Lines changed: 91 additions & 91 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,96 @@
11
---
22
working-groups:
3+
- title: "Spring-Style Testing"
4+
board-url: "https://github.com/orgs/quarkusio/projects/60"
5+
short-description: |
6+
Enable Spring developers to migrate to Quarkus with minimal friction by exploring and providing compatibility layers for the most common Spring testing patterns. So they don’t need to rewrite their existing tests.
7+
readme: |
8+
<h3>Problem Statement</h3>
9+
<ul>
10+
<li>Spring developers rely heavily on testing constructs like @SpringBootTest, MockMvc, TestRestTemplate, and slice-based testing.</li>
11+
<li>Quarkus, while offering its own solid testing ecosystem (e.g., @QuarkusTest, RestAssured, and Continuous Testing), doesn’t align with Spring-style testing by default.</li>
12+
<li>This mismatch forces developers to rewrite or adapt tests when switching to Quarkus.</li>
13+
<li>Reducing this friction aligns with Quarkus’s goal of enabling Spring developers to migrate without starting from scratch.</li>
14+
</ul>
15+
<h3>Proposed Solution</h3>
16+
<ol>
17+
<li>Survey and identify the Spring testing APIs and techniques most widely used, across unit, controller (HTTP), and integration tests.</li>
18+
<li>Map these to their closest equivalents in Quarkus testing infrastructure (e.g., @QuarkusTest, @QuarkusIntegrationTest, RestAssured).</li>
19+
<li>Prototype mechanisms that allow Spring-style tests to run with minimal or no modifications in Quarkus (e.g., helper annotations, compatibility layer, quarkiverse library, tooling adaptation).</li>
20+
<li>Define a realistic scope—supporting the most used constructs only (not all of Spring’s testing API).</li>
21+
</ol>
22+
<h3>Definition of Done</h3>
23+
<p>The WG will be considered complete when the following are delivered:</p>
24+
<ul>
25+
<li>A prioritized list of Spring testing patterns (usage-informed).</li>
26+
<li>A mapping document detailing how each pattern corresponds to Quarkus approaches.</li>
27+
<li>A working prototype or POC illustrating compatibility (e.g., a mini-project demonstrating Spring tests running in Quarkus).</li>
28+
<li>PRs to Quarkus implementing support or helper utilities.</li>
29+
<li>A migration-style guide/documentation (“How to run your Spring tests in Quarkus”).</li>
30+
<li>A community-facing artifact (e.g., blog post, talk, or demo).</li>
31+
</ul>
32+
<h3>Scope</h3>
33+
<h3>In Scope</h3>
34+
<ul>
35+
<li>Inventory &amp; prioritization of widely-used Spring testing APIs (unit, HTTP controller, integration).</li>
36+
<li>Feasibility analysis and prototyping for compatibility.</li>
37+
<li>Documentation drafting and an example project.</li>
38+
<li>Coordination and communication (issues, discussion threads, milestones).</li>
39+
</ul>
40+
<p>⠀</p>
41+
<h3>Out of Scope</h3>
42+
<ul>
43+
<li>Full support for the entire Spring testing API surface; treating edge cases is not critical.</li>
44+
<li>Deep re-architecting of Quarkus’s testing engine.</li>
45+
<li>UI-level or highly niche Spring testing scenarios.</li>
46+
</ul>
47+
<hr />
48+
<ul>
49+
<li>Point of contact: @edeandrea, @aureamunoz , @mkouba</li>
50+
<li>Discussion: <a href="https://quarkusio.zulipchat.com/#narrow/channel/187038-dev/topic/WG.20-.20Spring-Style.20Testing.20Compatibility.20for.20Quarkus/with/539471996">Zulip</a></li>
51+
<li>Proposal: https://github.com/quarkusio/quarkus/discussions/49964</li>
52+
</ul>
53+
status: on track
54+
lts: false
55+
completed: false
56+
last-activity: 2026-05-12
57+
last-update-date: 2026-03-30
58+
last-update: |
59+
We've completed our initial exploration into the various testing approaches used by Spring developers. Currently, no new issues are open for the working group.
60+
61+
(This status update was automatically generated using AI.)
62+
point-of-contact: "@edeandrea, @aureamunoz , @mkouba"
63+
proposal: https://github.com/quarkusio/quarkus/discussions/49964
64+
discussion: https://quarkusio.zulipchat.com/#narrow/channel/187038-dev/topic/WG.20-.20Spring-Style.20Testing.20Compatibility.20for.20Quarkus/with/539471996
65+
- title: "Test classloading"
66+
board-url: "https://github.com/orgs/quarkusio/projects/30"
67+
short-description: |
68+
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.
69+
readme: |
70+
<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>
71+
<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>
72+
<blockquote>
73+
<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>
74+
</blockquote>
75+
<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>
76+
<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>
77+
<ul>
78+
<li>Point of contact: @holly-cummins (@<strong>Holly Cummins</strong> on Zulip)</li>
79+
<li>Proposal: https://github.com/quarkusio/quarkus/discussions/41867</li>
80+
<li>Discussion: <a href="https://quarkusio.zulipchat.com/#narrow/channel/187038-dev/topic/WG.20.2330.20Test.20Classloading.20chatter/">Zulip topic</a></li>
81+
</ul>
82+
status: on track
83+
lts: false
84+
completed: false
85+
last-activity: 2026-05-12
86+
last-update-date: 2026-03-30
87+
last-update: |
88+
We've addressed a specific issue where custom Quarkus Test Class orderers weren't being respected. Currently, no new issues are open for the group.
89+
90+
(This status update was automatically generated using AI.)
91+
point-of-contact: "@holly-cummins (@<strong>Holly Cummins</strong> on Zulip)"
92+
proposal: https://github.com/quarkusio/quarkus/discussions/41867
93+
discussion: https://quarkusio.zulipchat.com/#narrow/channel/187038-dev/topic/WG.20.2330.20Test.20Classloading.20chatter/
394
- title: "Quarkus 4"
495
board-url: "https://github.com/orgs/quarkusio/projects/51"
596
short-description: |
@@ -1337,97 +1428,6 @@ working-groups:
13371428
point-of-contact: "@mkouba, @ozangunalp"
13381429
proposal: https://github.com/quarkusio/quarkus/discussions/53202
13391430
discussion: https://quarkusio.zulipchat.com/#narrow/channel/187038-dev/topic/wg-unified-events/with/581622437
1340-
- title: "Spring-Style Testing"
1341-
board-url: "https://github.com/orgs/quarkusio/projects/60"
1342-
short-description: |
1343-
Enable Spring developers to migrate to Quarkus with minimal friction by exploring and providing compatibility layers for the most common Spring testing patterns. So they don’t need to rewrite their existing tests.
1344-
readme: |
1345-
<h3>Problem Statement</h3>
1346-
<ul>
1347-
<li>Spring developers rely heavily on testing constructs like @SpringBootTest, MockMvc, TestRestTemplate, and slice-based testing.</li>
1348-
<li>Quarkus, while offering its own solid testing ecosystem (e.g., @QuarkusTest, RestAssured, and Continuous Testing), doesn’t align with Spring-style testing by default.</li>
1349-
<li>This mismatch forces developers to rewrite or adapt tests when switching to Quarkus.</li>
1350-
<li>Reducing this friction aligns with Quarkus’s goal of enabling Spring developers to migrate without starting from scratch.</li>
1351-
</ul>
1352-
<h3>Proposed Solution</h3>
1353-
<ol>
1354-
<li>Survey and identify the Spring testing APIs and techniques most widely used, across unit, controller (HTTP), and integration tests.</li>
1355-
<li>Map these to their closest equivalents in Quarkus testing infrastructure (e.g., @QuarkusTest, @QuarkusIntegrationTest, RestAssured).</li>
1356-
<li>Prototype mechanisms that allow Spring-style tests to run with minimal or no modifications in Quarkus (e.g., helper annotations, compatibility layer, quarkiverse library, tooling adaptation).</li>
1357-
<li>Define a realistic scope—supporting the most used constructs only (not all of Spring’s testing API).</li>
1358-
</ol>
1359-
<h3>Definition of Done</h3>
1360-
<p>The WG will be considered complete when the following are delivered:</p>
1361-
<ul>
1362-
<li>A prioritized list of Spring testing patterns (usage-informed).</li>
1363-
<li>A mapping document detailing how each pattern corresponds to Quarkus approaches.</li>
1364-
<li>A working prototype or POC illustrating compatibility (e.g., a mini-project demonstrating Spring tests running in Quarkus).</li>
1365-
<li>PRs to Quarkus implementing support or helper utilities.</li>
1366-
<li>A migration-style guide/documentation (“How to run your Spring tests in Quarkus”).</li>
1367-
<li>A community-facing artifact (e.g., blog post, talk, or demo).</li>
1368-
</ul>
1369-
<h3>Scope</h3>
1370-
<h3>In Scope</h3>
1371-
<ul>
1372-
<li>Inventory &amp; prioritization of widely-used Spring testing APIs (unit, HTTP controller, integration).</li>
1373-
<li>Feasibility analysis and prototyping for compatibility.</li>
1374-
<li>Documentation drafting and an example project.</li>
1375-
<li>Coordination and communication (issues, discussion threads, milestones).</li>
1376-
</ul>
1377-
<p>⠀</p>
1378-
<h3>Out of Scope</h3>
1379-
<ul>
1380-
<li>Full support for the entire Spring testing API surface; treating edge cases is not critical.</li>
1381-
<li>Deep re-architecting of Quarkus’s testing engine.</li>
1382-
<li>UI-level or highly niche Spring testing scenarios.</li>
1383-
</ul>
1384-
<hr />
1385-
<ul>
1386-
<li>Point of contact: @edeandrea, @aureamunoz , @mkouba</li>
1387-
<li>Discussion: <a href="https://quarkusio.zulipchat.com/#narrow/channel/187038-dev/topic/WG.20-.20Spring-Style.20Testing.20Compatibility.20for.20Quarkus/with/539471996">Zulip</a></li>
1388-
<li>Proposal: https://github.com/quarkusio/quarkus/discussions/49964</li>
1389-
</ul>
1390-
status: on track
1391-
lts: false
1392-
completed: false
1393-
last-activity: 2026-03-25
1394-
last-update-date: 2026-03-30
1395-
last-update: |
1396-
We've completed our initial exploration into the various testing approaches used by Spring developers. Currently, no new issues are open for the working group.
1397-
1398-
(This status update was automatically generated using AI.)
1399-
point-of-contact: "@edeandrea, @aureamunoz , @mkouba"
1400-
proposal: https://github.com/quarkusio/quarkus/discussions/49964
1401-
discussion: https://quarkusio.zulipchat.com/#narrow/channel/187038-dev/topic/WG.20-.20Spring-Style.20Testing.20Compatibility.20for.20Quarkus/with/539471996
1402-
- title: "Test classloading"
1403-
board-url: "https://github.com/orgs/quarkusio/projects/30"
1404-
short-description: |
1405-
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.
1406-
readme: |
1407-
<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>
1408-
<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>
1409-
<blockquote>
1410-
<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>
1411-
</blockquote>
1412-
<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>
1413-
<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>
1414-
<ul>
1415-
<li>Point of contact: @holly-cummins (@<strong>Holly Cummins</strong> on Zulip)</li>
1416-
<li>Proposal: https://github.com/quarkusio/quarkus/discussions/41867</li>
1417-
<li>Discussion: <a href="https://quarkusio.zulipchat.com/#narrow/channel/187038-dev/topic/WG.20.2330.20Test.20Classloading.20chatter/">Zulip topic</a></li>
1418-
</ul>
1419-
status: on track
1420-
lts: false
1421-
completed: false
1422-
last-activity: 2026-03-25
1423-
last-update-date: 2026-03-30
1424-
last-update: |
1425-
We've addressed a specific issue where custom Quarkus Test Class orderers weren't being respected. Currently, no new issues are open for the group.
1426-
1427-
(This status update was automatically generated using AI.)
1428-
point-of-contact: "@holly-cummins (@<strong>Holly Cummins</strong> on Zulip)"
1429-
proposal: https://github.com/quarkusio/quarkus/discussions/41867
1430-
discussion: https://quarkusio.zulipchat.com/#narrow/channel/187038-dev/topic/WG.20.2330.20Test.20Classloading.20chatter/
14311431
- title: "Quarkus to the CommonHaus Foundation"
14321432
board-url: "https://github.com/orgs/quarkusio/projects/38"
14331433
short-description: |

0 commit comments

Comments
 (0)