aboutsummaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authorMatthias Andreas Benkard <code@mail.matthias.benkard.de>2026-08-31 16:52:34 +0200
committerMatthias Andreas Benkard <code@mail.matthias.benkard.de>2026-08-31 16:52:34 +0200
commit1f8af7b9a90a8ba241cd05ee148f534121e015ab (patch)
tree7b07814adcc2f1bbd073e480e37bef476a263074 /README.md
parent2ef19ec3428d9fc95c4918b8025097df68efbd06 (diff)
Die Prüfung läuft fortan bei jedem Push von selbst
Gebaut und geprüft wurde bislang von Hand: „./mvnw verify“ und, seltener, „./mvnw -Pwasm package“ nebst „reuse lint“. Ein Bruch fiel damit erst dem auf, der zufällig baute — und gerade der Wasm-Bau, der eine andere Java-Fassung voraussetzt als der gewöhnliche, wird am seltensten angefaßt. Der neue Arbeitsablauf .github/workflows/ci.yml fährt bei jedem Push nach master und bei jedem Pull Request drei Läufe nebeneinander: Bau und sämtliche Tests auf einem Temurin-JDK 25 (Spotless und Enforcer laufen mit, weil sie an die Phase „verify“ hängen), die Herstellung der Browserfassung auf Oracle GraalVM — die Community Edition trägt Web Image nicht — samt deploy/webpaket.sh, und die Lizenzauszeichnung nach REUSE. Binaryen wird dem Wasm-Lauf vorab eingerichtet, damit wasm-opt tatsächlich läuft und die 25-MiB-Grenze an dem gemessen wird, was ausgeliefert würde. Das Webpaket und die ausführbare Archivdatei bleiben als Artefakte abrufbar, die Testberichte nur im Fehlerfall. Nachzuladen ist nichts: Der Beispielkorpus liegt im Repository und ist allein von „git archive“ ausgenommen. § 17 des Handbuchs erhält hierzu die Absätze 4 und 5; das Fassungsverzeichnis führt den Tag fort. Geprüft: „./mvnw --batch-mode verify“ geht auf (58 s); der Wasm-Befehl des Laufes ergibt örtlich „target/web ist auslieferbar“ (wasm-opt: 19 845 039 -> 17 392 218 Bytes); „reuse lint“ weist 224 von 224 Dateien als vollständig ausgezeichnet aus. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019asn2GWjyjGotivHpYchfi Change-Id: Ib9a7f676859529cc7c1253234ce7cc0175267b51
Diffstat (limited to 'README.md')
-rw-r--r--README.md20
1 files changed, 20 insertions, 0 deletions
diff --git a/README.md b/README.md
index c960a80..6248c61 100644
--- a/README.md
+++ b/README.md
@@ -1119,6 +1119,26 @@ Kopfzeile zuvor in den Wortlaut der Vornorm gefallen wäre. Der Rundlauf umfasst
auch den Kopf: Standangabe und angewandte Hefte müssen ihn überstehen, sonst
verlöre die Kette bei jedem Schritt ihr Gedächtnis (§ 6a Absatz 4).
+(4) Die Prüfung nach Absatz 1 läuft überdies selbsttätig: Bei jedem Push nach
+`master` und bei jedem Pull Request fährt GitHub den Arbeitsablauf
+`.github/workflows/ci.yml` in drei nebeneinanderlaufenden Läufen. Der erste baut
+und prüft auf einem JDK 25 (`./mvnw verify`), wobei Spotless und der Enforcer
+ohne weiteres Zutun mitlaufen, weil sie an die Phase `verify` gebunden sind. Der
+zweite stellt die Browserfassung nach § 14 Absatz 5 her
+(`./mvnw -Pwasm package`) und durchläuft damit auch `deploy/webpaket.sh` samt
+seiner Prüfungen — Nachoptimierung durch `wasm-opt`, Größe des Quelltextarchivs,
+25-MiB-Grenze je Datei (§ 15 Absatz 1). Der dritte prüft die Lizenzauszeichnung
+(`reuse lint`, § 16). Das Webpaket (`target/web/`) und die ausführbare
+Archivdatei bleiben als Artefakte des Laufes vierzehn Tage lang abrufbar; die
+Testberichte werden nur im Fehlerfall aufbewahrt.
+
+(5) Der Wasm-Lauf nach Absatz 4 verlangt dieselbe Voraussetzung wie die
+Herstellung von Hand, nämlich Oracle GraalVM und nicht die Community Edition
+(§ 14 Absatz 5); eingerichtet wird es mit `graalvm/setup-graalvm` unter der
+Angabe `distribution: graalvm`. Der Beispielkorpus ist dabei nichts
+Nachzuladendes: Er liegt im Repository, und `.gitattributes` nimmt ihn allein von
+`git archive` aus (§ 14 Absatz 8).
+
## Lizenz
Der Quelltext steht unter der GNU Affero General Public License, Version 3 oder