Skip to content

Commit 48e509e

Browse files
committed
Working group: Extract and display additional metadata
Extract deliverable, point of contact and discussion from the WG README. Extend the working group page to add these new metadata Improve the completed working group visualization and add link to the deliverable.
1 parent 4eeaead commit 48e509e

File tree

5 files changed

+167
-57
lines changed

5 files changed

+167
-57
lines changed

_data/wg.yaml

Lines changed: 61 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,50 @@
11
---
22
working-groups:
3+
- title: "Roq :: Quarkus SSG"
4+
board-url: "https://github.com/orgs/quarkiverse/projects/6"
5+
short-description: Allow Static Site Generation with Quarkus.
6+
readme: |
7+
<p>New initiative to allow Static Site Generation with Quarkus.</p>
8+
<p>Quarkus already provides most of the pieces to create great web applications (https://quarkus.io/guides/web).</p>
9+
<p>I recently added https://github.com/quarkiverse/quarkus-roq. It will allow generating a static website out of any Quarkus application (it starts the app, fetch all the configured pages and assets, generate a static website and stop), it already works but it is still very alpha.</p>
10+
<p>What's missing? we now need to incrementally add the toolkit to ease the process of creating static content through Quarkus:</p>
11+
<ul>
12+
<li>Static Data</li>
13+
<li>Markdown/Asciidoc and frontmatter</li>
14+
<li>SEO</li>
15+
<li>Image processing</li>
16+
<li>Easy to configure routing</li>
17+
</ul>
18+
<p>This will allow to develop the content using Quarkus dev-mode, and then generate for Github Pages or similar when it's ready.</p>
19+
<p>Bonus, everything added will benefit any &quot;non-static&quot; Quarkus app and any Static Quarkus app could also become non static.</p>
20+
<p>This effort is now tracked using a &quot;Working Group&quot; project: https://github.com/orgs/quarkiverse/projects/6</p>
21+
<p>This is a great opportunity to participate in fun effort and be involved with the Quarkus community, if anyone is interested in being a part of this, please reach out to me 🚀</p>
22+
<ul>
23+
<li>Point of contact: @ia3andy</li>
24+
<li>Discussion: https://github.com/quarkusio/quarkus/discussions/41309</li>
25+
<li>Deliverable: <a href="https://www.youtube.com/live/hrF1a5sKqBI">Quarkus Insight</a></li>
26+
</ul>
27+
status: complete
28+
completed: true
29+
last-activity: 2024-11-18
30+
last-update: |
31+
ROQ has been released! See https://www.youtube.com/live/hrF1a5sKqBI to see ROQ in action.
32+
deliverable: <a rel="nofollow" href="https://www.youtube.com/live/hrF1a5sKqBI">Quarkus Insight</a>
33+
point-of-contact: "@ia3andy"
34+
discussion: https://github.com/quarkusio/quarkus/discussions/41309
335
- title: "WebSocket Next"
436
board-url: "https://github.com/orgs/quarkusio/projects/26"
537
short-description: WebSocket-Next related tasks
638
readme: |
739
<p>The WebSocket Next <em>focus group</em> aims to improve our WebSocket experience.</p>
840
<p>Recently, we delivered a new approach to dealing with WebSocket (both for the server and client). This was the first step. There are still a few areas to improve, such as documentation, security, observability, and testability. The goal of this focus group is to track these efforts.</p>
9-
<p>Point of contact: @mkouba (@<strong>Martin Kouba</strong> on Zulip)</p>
41+
<ul>
42+
<li>Point of contact: @mkouba (@<strong>Martin Kouba</strong> on Zulip)</li>
43+
<li>Discussion: https://github.com/quarkusio/quarkus/discussions/38473</li>
44+
</ul>
1045
status: on track
1146
completed: false
12-
last-activity: 2024-11-13
47+
last-activity: 2024-11-18
1348
last-update: |
1449
### Telemetry
1550
https://github.com/quarkusio/quarkus/pull/41956 was merged last week. @michalvavrik is going to send a pull request with Micrometer support this week.
@@ -19,6 +54,30 @@ working-groups:
1954
The CDI request context is only activated if needed: https://github.com/quarkusio/quarkus/pull/43915.
2055
2156
I hope that WS Next will be feature-complete at the time of 3.17 release.
57+
point-of-contact: "@mkouba (@<strong>Martin Kouba</strong> on Zulip)"
58+
discussion: https://github.com/quarkusio/quarkus/discussions/38473
59+
- title: "Enhanced TLS support"
60+
board-url: "https://github.com/orgs/quarkusio/projects/24"
61+
short-description: Track the progress around the new TLS configuration centralization and new features (like Let's Encrypt, Cert-Manager, and local experience...)
62+
readme: |
63+
<p>TLS is becoming increasingly common and recommended. However, for years, each Quarkus extension has been doing its own TLS configuration and management. As a result, the configuration looks different everywhere, and many extensions have incomplete configurations.</p>
64+
<p>Based on the newly integrated TLS registry, we now have a single place to configure TLS. At runtime, it provides methods to configure Vert.x and &quot;pure&quot; Java clients (using an <code>SSLContext</code>).</p>
65+
<p>The goal of this focus group is to continue integrating the TLS registry and improve Quarkus integration with certificate providers (Let's Encrypt, Cert-Manager). In addition, we would like to provide a frictionless local experience around TLS (i.e., without the infamous untrusted certificate screen).</p>
66+
<ul>
67+
<li>Point of contact: @cescoffier (@<strong>Clement Escoffier</strong> on Zulip)</li>
68+
<li>Deliverable: <a href="https://www.youtube.com/watch?v=VP7c9ftFwrQ">Quarkus Insight</a></li>
69+
<li>Discussion: https://github.com/quarkusio/quarkus/discussions/41024</li>
70+
</ul>
71+
status: complete
72+
completed: true
73+
last-activity: 2024-11-18
74+
last-update: |
75+
This working group is complete!
76+
That does not mean that no work will be done around TLS, but what was defined in the initial scope of the working group has been completed.
77+
Enhancements and bug fixes will follow.
78+
deliverable: <a rel="nofollow" href="https://www.youtube.com/watch?v=VP7c9ftFwrQ">Quarkus Insight</a>
79+
point-of-contact: "@cescoffier (@<strong>Clement Escoffier</strong> on Zulip)"
80+
discussion: https://github.com/quarkusio/quarkus/discussions/41024
2281
- title: "Quarkus 3.15 LTS"
2382
board-url: "https://github.com/orgs/quarkusio/projects/28"
2483
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)
@@ -82,36 +141,6 @@ working-groups:
82141
83142
With more features to be added in future pull requests.
84143
The pull request is on hold due to some concerns raised by @ia3andy. A meeting has been scheduled to discuss those concerns.
85-
- title: "Roq :: Quarkus SSG"
86-
board-url: "https://github.com/orgs/quarkiverse/projects/6"
87-
short-description: Allow Static Site Generation with Quarkus.
88-
readme: |
89-
<p>New initiative to allow Static Site Generation with Quarkus.</p>
90-
<p>Quarkus already provides most of the pieces to create great web applications (https://quarkus.io/guides/web).</p>
91-
<p>I recently added https://github.com/quarkiverse/quarkus-roq. It will allow generating a static website out of any Quarkus application (it starts the app, fetch all the configured pages and assets, generate a static website and stop), it already works but it is still very alpha.</p>
92-
<p>What's missing? we now need to incrementally add the toolkit to ease the process of creating static content through Quarkus:</p>
93-
<ul>
94-
<li>Static Data</li>
95-
<li>Markdown/Asciidoc and frontmatter</li>
96-
<li>SEO</li>
97-
<li>Image processing</li>
98-
<li>Easy to configure routing</li>
99-
</ul>
100-
<p>This will allow to develop the content using Quarkus dev-mode, and then generate for Github Pages or similar when it's ready.</p>
101-
<p>Bonus, everything added will benefit any &quot;non-static&quot; Quarkus app and any Static Quarkus app could also become non static.</p>
102-
<p>This effort is now tracked using a &quot;Working Group&quot; project: https://github.com/orgs/quarkiverse/projects/6</p>
103-
<p>This is a great opportunity to participate in fun effort and be involved with the Quarkus community, if anyone is interested in being a part of this, please reach out to me 🚀</p>
104-
status: staled
105-
completed: false
106-
last-activity: 2024-10-30
107-
last-update: |
108-
0.0.3 has been released, it is the MVP version and allowed to publish the Roq blog: https://quarkiverse.io/quarkus-roq/posts/2024-08-29-welcome-to-roq/
109-
110-
From now on, we start adding features incrementally, documenting.
111-
112-
The target is to have 1.0.0 the 1 October 2024.
113-
114-
For 1.0 we need pagination, tags and SEO.
115144
- title: "Quarkus to the CommonHaus Foundation"
116145
board-url: "https://github.com/orgs/quarkusio/projects/38"
117146
short-description: Work needed around moving Quarkus to foundation and streamline open governance.
@@ -164,18 +193,3 @@ working-groups:
164193
References:
165194
https://github.com/fluorumlabs/asciidocj
166195
https://github.com/vsch/flexmark-java
167-
- title: "Enhanced TLS support"
168-
board-url: "https://github.com/orgs/quarkusio/projects/24"
169-
short-description: Track the progress around the new TLS configuration centralization and new features (like Let's Encrypt, Cert-Manager, and local experience...)
170-
readme: |
171-
<p>TLS is becoming increasingly common and recommended. However, for years, each Quarkus extension has been doing its own TLS configuration and management. As a result, the configuration looks different everywhere, and many extensions have incomplete configurations.</p>
172-
<p>Based on the newly integrated TLS registry, we now have a single place to configure TLS. At runtime, it provides methods to configure Vert.x and &quot;pure&quot; Java clients (using an <code>SSLContext</code>).</p>
173-
<p>The goal of this focus group is to continue integrating the TLS registry and improve Quarkus integration with certificate providers (Let's Encrypt, Cert-Manager). In addition, we would like to provide a frictionless local experience around TLS (i.e., without the infamous untrusted certificate screen).</p>
174-
<p><em>Point of contact:</em> @cescoffier (@<strong>Clement Escoffier</strong> on Zulip)</p>
175-
status: complete
176-
completed: true
177-
last-activity: 2024-09-29
178-
last-update: |
179-
This working group is complete!
180-
That does not mean that no work will be done around TLS, but what was defined in the initial scope of the working group has been completed.
181-
Enhancements and bug fixes will follow.

_includes/working-group-band.html

Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,14 @@
1818
<p class="card-text"><span class="key">Status:</span>&nbsp;<span class="status {{ item.status | | replace: ' ', '-'}}">{{ item.status }}</span></p>
1919
<p class="card-text"><span class="key">Description:</span>&nbsp;<span class="short-description">{{ item.short-description }}</span></p>
2020
<p class="card-text"><span class="key">Last Activity:</span>&nbsp;<span class="last-activity">{{ item.last-activity | date: '%B %d, %Y' }} </span></p>
21+
{% if item.point-of-contact %}
22+
<p class="card-text"><span class="key">Point of Contact:</span>&nbsp;<span class="point-of-contact">{{ item.point-of-contact }}</span></p>
23+
{% endif %}
24+
{% if item.discussion %}
25+
<p class="card-text"><span class="key">Discussion:</span>&nbsp;<a class="discussion" href="{{ item.discussion }}">Link</a></p>
26+
{% endif %}
2127
</div>
22-
<div class="card-footer">
28+
<div class="card-footer">
2329
<a href="{{ item.board-url }}" class="float-end"> View the {{ item.title }} Board <i class="fa-solid fa-chevron-right"></i></a>
2430
</div>
2531
</div>
@@ -31,16 +37,27 @@ <h2>Completed working groups</h2>
3137
<p class="mt-0">
3238
These working groups have completed their work and are no longer active:
3339
</p>
34-
<ul>
35-
{% for item in site.data.wg.working-groups %}
40+
<div class="grid-wrapper working-groups-cards">
41+
{% for item in site.data.wg.working-groups %}
3642
{% if item.completed %}
37-
<li>
38-
<a href="{{ item.board-url }}">{{ item.title }} ({{ item.last-activity | date: '%B %d, %Y' }})</a>
39-
</li>
43+
<div class="card card-completed">
44+
<div class="card-header">
45+
<p class="card-title">{{ item.title }}</p>
46+
</div>
47+
<div class="card-body">
48+
<p class="card-text"><span class="key">Description:</span>&nbsp;<span class="short-description">{{ item.short-description }}</span></p>
49+
<p class="card-text"><span class="key">Completed on:</span>&nbsp;<span class="last-activity">{{ item.last-activity | date: '%B %d, %Y' }} </span></p>
50+
{% if item.deliverable %}
51+
<p class="card-text"><span class="key">Deliverable:</span>&nbsp;<span class="deliverable">{{ item.deliverable }}</span></p>
52+
{% endif %}
53+
</div>
54+
<div class="card-footer">
55+
<a href="{{ item.board-url }}" class="float-end"> View the {{ item.title }} Board <i class="fa-solid fa-chevron-right"></i></a>
56+
</div>
57+
</div>
4058
{% endif %}
4159
{% endfor %}
42-
</ul>
43-
60+
</div>
4461

4562
</div>
4663

_sass/layouts/working-groups.scss

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,11 @@
3232

3333
.card-body {
3434
padding: 1rem 0rem;
35-
height: 11rem;
35+
height: 15rem;
36+
}
37+
38+
.card-completed {
39+
background: WhiteSmoke;
3640
}
3741

3842
.card-footer {

working-groups/main.java

Lines changed: 67 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
//DEPS io.quarkus:quarkus-picocli
66
//DEPS io.quarkus:quarkus-smallrye-graphql-client
77
//DEPS io.quarkus:quarkus-qute
8-
//DEPS org.commonmark:commonmark:0.22.0
8+
//DEPS org.commonmark:commonmark:0.23.0
99
//DEPS io.quarkus:quarkus-config-yaml
1010
//FILES templates/=templates/*
1111
//FILES application.yaml
@@ -26,6 +26,7 @@
2626
import java.util.concurrent.ExecutionException;
2727

2828
import org.commonmark.node.Node;
29+
import org.commonmark.node.Paragraph;
2930
import org.commonmark.parser.Parser;
3031
import org.commonmark.renderer.html.HtmlRenderer;
3132
import org.eclipse.microprofile.config.inject.ConfigProperty;
@@ -198,6 +199,71 @@ public String getReadme() {
198199
return renderer.render(document);
199200
}
200201

202+
private static boolean isMetadata(String singular, String plural, String line) {
203+
var l = line.toLowerCase().trim();
204+
return l.startsWith("* " + singular.toLowerCase() + ":")
205+
|| l.startsWith("* " + plural.toLowerCase() + ":");
206+
}
207+
208+
public String getDeliverable() {
209+
String line = longDescription().lines()
210+
.filter(s -> isMetadata("Deliverable", "Deliverables", s))
211+
.findFirst()
212+
.orElse(null);
213+
214+
if (line != null) {
215+
var content = line.substring(line.indexOf(":") + 1).trim();
216+
Parser parser = Parser.builder().build();
217+
Node document = parser.parse(content);
218+
HtmlRenderer renderer = HtmlRenderer.builder()
219+
.omitSingleParagraphP(true)
220+
.escapeHtml(false)
221+
.sanitizeUrls(true)
222+
.build();
223+
return renderer.render(document);
224+
}
225+
226+
return null;
227+
}
228+
229+
public String getPointOfContact() {
230+
String line = longDescription().lines()
231+
.filter(s -> isMetadata("Point of contact", "Points of contact", s))
232+
.findFirst()
233+
.orElse(null);
234+
235+
if (line != null) {
236+
var content = line.substring(line.indexOf(":") + 1).trim();
237+
Parser parser = Parser.builder().build();
238+
Node document = parser.parse(content);
239+
HtmlRenderer renderer = HtmlRenderer.builder()
240+
.omitSingleParagraphP(true)
241+
.build();
242+
return renderer.render(document);
243+
}
244+
245+
return null;
246+
}
247+
248+
public String getDiscussionLink() {
249+
String line = longDescription().lines()
250+
.filter(s -> isMetadata("Discussion", "Discussions", s))
251+
.findFirst()
252+
.orElse(null);
253+
254+
if (line != null) {
255+
var content = line.substring(line.indexOf(":") + 1).trim();
256+
Parser parser = Parser.builder().build();
257+
Node document = parser.parse(content);
258+
HtmlRenderer renderer = HtmlRenderer.builder()
259+
.omitSingleParagraphP(true)
260+
.build();
261+
return renderer.render(document);
262+
}
263+
264+
return null;
265+
}
266+
201267
public String getIndentedReadme() {
202268
String readme = getReadme();
203269
return readme.replaceAll("\n", "\n ").trim();

working-groups/templates/wg.yaml.template

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,13 @@ working-groups:
1313
last-update: |
1414
{board.getIndentedLastUpdate().raw}
1515
{/if}
16+
{#if board.getDeliverable()}
17+
deliverable: {board.getDeliverable().raw}
18+
{/if}
19+
{#if board.getPointOfContact()}
20+
point-of-contact: "{board.getPointOfContact().raw}"
21+
{/if}
22+
{#if board.getDiscussionLink()}
23+
discussion: {board.getDiscussionLink().raw}
24+
{/if}
1625
{/for}

0 commit comments

Comments
 (0)