)]}'
{
  "commit": "1f8af7b9a90a8ba241cd05ee148f534121e015ab",
  "tree": "7b07814adcc2f1bbd073e480e37bef476a263074",
  "parents": [
    "2ef19ec3428d9fc95c4918b8025097df68efbd06"
  ],
  "author": {
    "name": "Matthias Andreas Benkard",
    "email": "code@mail.matthias.benkard.de",
    "time": "Mon Aug 31 16:52:34 2026 +0200"
  },
  "committer": {
    "name": "Matthias Andreas Benkard",
    "email": "code@mail.matthias.benkard.de",
    "time": "Mon Aug 31 16:52:34 2026 +0200"
  },
  "message": "Die Prüfung läuft fortan bei jedem Push von selbst\n\nGebaut und geprüft wurde bislang von Hand: „./mvnw verify“ und, seltener,\n„./mvnw -Pwasm package“ nebst „reuse lint“. Ein Bruch fiel damit erst dem auf,\nder zufällig baute — und gerade der Wasm-Bau, der eine andere Java-Fassung\nvoraussetzt als der gewöhnliche, wird am seltensten angefaßt.\n\nDer neue Arbeitsablauf .github/workflows/ci.yml fährt bei jedem Push nach master\nund bei jedem Pull Request drei Läufe nebeneinander: Bau und sämtliche Tests auf\neinem Temurin-JDK 25 (Spotless und Enforcer laufen mit, weil sie an die Phase\n„verify“ hängen), die Herstellung der Browserfassung auf Oracle GraalVM — die\nCommunity Edition trägt Web Image nicht — samt deploy/webpaket.sh, und die\nLizenzauszeichnung nach REUSE. Binaryen wird dem Wasm-Lauf vorab eingerichtet,\ndamit wasm-opt tatsächlich läuft und die 25-MiB-Grenze an dem gemessen wird, was\nausgeliefert würde. Das Webpaket und die ausführbare Archivdatei bleiben als\nArtefakte abrufbar, die Testberichte nur im Fehlerfall. Nachzuladen ist nichts:\nDer Beispielkorpus liegt im Repository und ist allein von „git archive“\nausgenommen.\n\n§ 17 des Handbuchs erhält hierzu die Absätze 4 und 5; das Fassungsverzeichnis\nführt den Tag fort.\n\nGeprüft: „./mvnw --batch-mode verify“ geht auf (58 s); der Wasm-Befehl des\nLaufes ergibt örtlich „target/web ist auslieferbar“ (wasm-opt: 19 845 039 -\u003e\n17 392 218 Bytes); „reuse lint“ weist 224 von 224 Dateien als vollständig\nausgezeichnet aus.\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\nClaude-Session: https://claude.ai/code/session_019asn2GWjyjGotivHpYchfi\nChange-Id: Ib9a7f676859529cc7c1253234ce7cc0175267b51\n",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "369f3e94be6cef85ae5823f97c8c58da58f377ed",
      "new_mode": 33188,
      "new_path": ".github/workflows/ci.yml"
    },
    {
      "type": "modify",
      "old_id": "269cd7a37e346a8c5c6a8ddb0e919184d9fedea1",
      "old_mode": 33188,
      "old_path": "FASSUNGEN.txt",
      "new_id": "9f17e99d442bdfd7372a6e0db9dfd10f196380e6",
      "new_mode": 33188,
      "new_path": "FASSUNGEN.txt"
    },
    {
      "type": "modify",
      "old_id": "c960a8034cc18eabc81e12ae7c31bc0b473d65a6",
      "old_mode": 33188,
      "old_path": "README.md",
      "new_id": "6248c615401bba231368cb8a478c916480c5873d",
      "new_mode": 33188,
      "new_path": "README.md"
    }
  ]
}
