)]}'
{
  "log": [
    {
      "commit": "07acbb76255e4dad15f053df368803455e600829",
      "tree": "9a1e0c94fff2cbeaf4530699147843f721954163",
      "parents": [
        "6712f46ab52a63409e4997f603cc815b8f36b096"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sun Aug 02 15:30:57 2026 +0200"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sun Aug 02 15:30:57 2026 +0200"
      },
      "message": "javadoc: point to correct Java platform documentation version\n"
    },
    {
      "commit": "6712f46ab52a63409e4997f603cc815b8f36b096",
      "tree": "42af7bffb09d554d09ced28d9c66a485295fefaf",
      "parents": [
        "4a38af4394d0d5ac38503b4aceb1f19494808b1f"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sun Jul 26 14:35:34 2026 +0200"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sun Jul 26 14:35:34 2026 +0200"
      },
      "message": "JettyRunner allow for re-bind attempts\n\nTo reduce failing tests due to test-unrelated issues like a port not\nbeing free, the JettyRunner now tries 5 times with a 500ms delay to\nreacquire the port.\n\nThis isn\u0027t bullet proof, but should provide a little more leeway in case\na previous integration test app is still holding on to a port.\n"
    },
    {
      "commit": "4a38af4394d0d5ac38503b4aceb1f19494808b1f",
      "tree": "4f56948cd49f607a83b53692c7a41758726924c7",
      "parents": [
        "80b8168899ea4d4f033b4df9e6335117f87b33fe"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sun Jul 26 14:31:17 2026 +0200"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sun Jul 26 14:31:17 2026 +0200"
      },
      "message": "TAP5-2817: SeleniumTestCase improve error handling during testStartup\n"
    },
    {
      "commit": "80b8168899ea4d4f033b4df9e6335117f87b33fe",
      "tree": "9571f4a464d4c040b5d1c2f2b2e25bdf1140cdf1",
      "parents": [
        "5c3305f22b1e57bfa241dafaa16788b14b498975"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sun Jul 26 14:29:24 2026 +0200"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sun Jul 26 14:29:24 2026 +0200"
      },
      "message": "TAP5-2809: Gradle integration test convention use mutex\n"
    },
    {
      "commit": "5c3305f22b1e57bfa241dafaa16788b14b498975",
      "tree": "a22c8f3ced24229e1e537e276ff8d1dbc2e60c17",
      "parents": [
        "76cf30aa5a5ca762c9d6dce97ab20d50451e3b39"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sun Jul 19 11:05:54 2026 +0200"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sun Jul 19 11:05:54 2026 +0200"
      },
      "message": "5_10_RELEASE_NOTES.md updated\n"
    },
    {
      "commit": "76cf30aa5a5ca762c9d6dce97ab20d50451e3b39",
      "tree": "b15f97d75c56819655281c913d25d00991fcbffe",
      "parents": [
        "50378e77b5a19c761f5d8a4e7d440485f1b8e41e"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sun Jul 19 09:14:13 2026 +0200"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sun Jul 19 09:14:13 2026 +0200"
      },
      "message": "TAP5-2836: update require.js/underscore\n"
    },
    {
      "commit": "50378e77b5a19c761f5d8a4e7d440485f1b8e41e",
      "tree": "ffa288933e07b9c3ef87e56f235270c581f7eeb0",
      "parents": [
        "72acfbd3feb953794188b163e2a2a0a43cc6726f"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sun Jul 19 09:12:19 2026 +0200"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sun Jul 19 09:12:19 2026 +0200"
      },
      "message": "TAP5-2834: set hmac passphrase for app7 integration test\n"
    },
    {
      "commit": "72acfbd3feb953794188b163e2a2a0a43cc6726f",
      "tree": "afc2fa146b071e860bc941d606a98c179c384459",
      "parents": [
        "7ab8a7992bf2cfe38b35ca50aa3128eacf5b04f0"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "benweidig@users.noreply.github.com",
        "time": "Sun Jul 19 08:01:54 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 19 08:01:54 2026 +0200"
      },
      "message": "TAP5-2834: Fail startup in production mode on weak/empty HMAC passphrase (#63)\n\n* Hmac passphrase rules were improved (incl. min length of 20)\n* Prevent startup in production mode if weak/empty passphrase\n* PageTesterModule sets HMAC passphrase to not fail during testing\n* ClientDataEncoderImplTest: Groovy -\u003e Java"
    },
    {
      "commit": "7ab8a7992bf2cfe38b35ca50aa3128eacf5b04f0",
      "tree": "b9b0a1d26a386bdaddf37b66f79fe4274137d072",
      "parents": [
        "101d388fc4fd07cc2c7e7a02ad16569819718d94"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sat Jul 18 11:13:28 2026 +0200"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sat Jul 18 11:13:28 2026 +0200"
      },
      "message": "TAP5-2835: ContextAssetProtectionRule chain added, don\u0027t serve source maps in prod\n"
    },
    {
      "commit": "101d388fc4fd07cc2c7e7a02ad16569819718d94",
      "tree": "2bb7ed646b199f1ea3f61f38fd6828b2a4da5fc2",
      "parents": [
        "b11bffccac4f5609724edda67a8f776b3bfed971"
      ],
      "author": {
        "name": "Thiago H. de Paula Figueiredo",
        "email": "thiago@arsmachina.com.br",
        "time": "Sat Jul 04 17:59:21 2026 -0300"
      },
      "committer": {
        "name": "Thiago H. de Paula Figueiredo",
        "email": "thiago@arsmachina.com.br",
        "time": "Sat Jul 04 17:59:21 2026 -0300"
      },
      "message": "TAP5-2810: fixing EsSihmDispatcher when context path isn\u0027t /"
    },
    {
      "commit": "b11bffccac4f5609724edda67a8f776b3bfed971",
      "tree": "3c51409cb53fcde89427e50ed4b52c36f35bcf5c",
      "parents": [
        "7d65906bfedbbf0c0bd7e2b7ac052ea707bf9419"
      ],
      "author": {
        "name": "Thiago H. de Paula Figueiredo",
        "email": "thiago@arsmachina.com.br",
        "time": "Sat Jul 04 17:58:05 2026 -0300"
      },
      "committer": {
        "name": "Thiago H. de Paula Figueiredo",
        "email": "thiago@arsmachina.com.br",
        "time": "Sat Jul 04 17:58:05 2026 -0300"
      },
      "message": "justfile fixes"
    },
    {
      "commit": "7d65906bfedbbf0c0bd7e2b7ac052ea707bf9419",
      "tree": "b3025c074f4aa71c7a37f7688389c9702aa91956",
      "parents": [
        "291ab2aacf6c26c98f77fa013ba3408c9a9f4dd6"
      ],
      "author": {
        "name": "Thiago H. de Paula Figueiredo",
        "email": "thiago@arsmachina.com.br",
        "time": "Sat Jul 04 17:57:32 2026 -0300"
      },
      "committer": {
        "name": "Thiago H. de Paula Figueiredo",
        "email": "thiago@arsmachina.com.br",
        "time": "Sat Jul 04 17:57:32 2026 -0300"
      },
      "message": "TAP5-2810: fixing EsSihmDispatcher when context path isn\u0027t /"
    },
    {
      "commit": "291ab2aacf6c26c98f77fa013ba3408c9a9f4dd6",
      "tree": "1e962d15ba5a87b2fc8f123914d7ad139608dc2f",
      "parents": [
        "f64b97d1889b77425f66bd1c7c8edee7621939d5"
      ],
      "author": {
        "name": "Jarek Potiuk",
        "email": "jarek@potiuk.com",
        "time": "Tue Jun 30 07:18:51 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 30 07:18:51 2026 +0200"
      },
      "message": "Add draft threat model + SECURITY.md + AGENTS.md for security-model discoverability (#61)\n\n* Add draft THREAT_MODEL.md + SECURITY.md + AGENTS.md for security-model discoverability\n\nAdds a draft (v0) threat model plus SECURITY.md and AGENTS.md so an automated\nscan agent can discover the model via AGENTS.md -\u003e SECURITY.md -\u003e THREAT_MODEL.md.\nThe model is a proposal for the PMC to review; most claims are (inferred) and\nroute to open questions in its section 14.\n\nGenerated-by: Claude Code (Claude Opus 4.8)\n\n* THREAT_MODEL.md: broaden test-code exclusion per PMC review\n\nthiagohp (PR #61): exclude all internal test code (src/test/** across\nmodules, not just tapestry-core/src/test/app1) — none of it deploys.\nGeneralized §2/§3/§11a accordingly.\n\nGenerated-by: Claude Opus 4.8\n\n* Fold PMC review answers (PR #61): Q1-Q5 — HMAC-unset is loud-error not fail-closed (TAP5-2834 planned), escaping default + writeRaw/OutputRaw opt-in, asset traversal via container+own checks, LocalhostOnly + @Secure/secure-enabled (TAP5-2832 IPv6 bug), and no built-in CSRF (app responsibility)"
    },
    {
      "commit": "f64b97d1889b77425f66bd1c7c8edee7621939d5",
      "tree": "d85724aec120e8d8b17c27a204092a4f3618cd5e",
      "parents": [
        "f58907a32f4f3e4c648e40ff75126f88ff9859ea"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sun Jun 28 08:42:00 2026 +0200"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sun Jun 28 08:42:52 2026 +0200"
      },
      "message": "Missing @Deprecated annotations added\n\nA lot of things had @deprecated Javadoc tags but no @Deprecated Java\nannotations.\nThis silences ~120 compiler warnings.\n"
    },
    {
      "commit": "f58907a32f4f3e4c648e40ff75126f88ff9859ea",
      "tree": "b1e99e052167195949b867ad8f3447121d6e7898",
      "parents": [
        "0134cde92f52b06a5e1c3886a2fd96bb3b84a5f9"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sat Jun 27 10:22:58 2026 +0200"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sat Jun 27 10:22:58 2026 +0200"
      },
      "message": "TAP5-2827: fix javadoc issues\n"
    },
    {
      "commit": "0134cde92f52b06a5e1c3886a2fd96bb3b84a5f9",
      "tree": "b615f0840a40ec88e945b92c66fd610765c04fb0",
      "parents": [
        "11386f43225101641d79cd74f35d2afa55379adf"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "benweidig@users.noreply.github.com",
        "time": "Sat Jun 27 08:53:34 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jun 27 08:53:34 2026 +0200"
      },
      "message": "TAP5-2827: tapestry-core DOM XPath support (#59)\n\nIntroduces a Jaxen-based XPath engine for querying Tapestry\u0027s DOM tree.\n\nNew API:\n- `XPath` (org.apache.tapestry5.dom.xpath): factory-style entry point for\n  compiling and executing XPath expressions against a Document or Node context\n- `BoundXPath` (org.apache.tapestry5.dom): fluent wrapper returned by\n  Node#xpath(String) that binds an expression to a context node, avoiding\n  repetition of the context in chained calls\n- `DocumentNavigator`: Jaxen Navigator implementation that adapts\n  Tapestry\u0027s DOM node types (Element, Text, CData, Comment, Raw) to the\n  Jaxen model\n- `NodeVisitor`: new visitor interface used internally by DocumentNavigator\n- `XPathException`: unchecked exception wrapping Jaxen errors\n\nExisting DOM classes were extended to support the navigator and expose the new\nxpath(String) entry point."
    },
    {
      "commit": "11386f43225101641d79cd74f35d2afa55379adf",
      "tree": "8fa5363b7c0d6caf208a4c44227208895119ff36",
      "parents": [
        "ed823c44a02e1b948da643f02c14187e7b057d5c"
      ],
      "author": {
        "name": "Thiago H. de Paula Figueiredo",
        "email": "thiago@arsmachina.com.br",
        "time": "Sat May 30 19:29:22 2026 -0300"
      },
      "committer": {
        "name": "Thiago H. de Paula Figueiredo",
        "email": "thiago@arsmachina.com.br",
        "time": "Sat May 30 19:29:22 2026 -0300"
      },
      "message": "TAP5-2831: update Jackson to 2.21.3"
    },
    {
      "commit": "ed823c44a02e1b948da643f02c14187e7b057d5c",
      "tree": "747a026b48d1dd25a6a7f5bff18d3d8879867047",
      "parents": [
        "e873e175d62d4aa00c34e966792123ca3b158642"
      ],
      "author": {
        "name": "Thiago H. de Paula Figueiredo",
        "email": "thiago@arsmachina.com.br",
        "time": "Sat May 30 17:50:37 2026 -0300"
      },
      "committer": {
        "name": "Thiago H. de Paula Figueiredo",
        "email": "thiago@arsmachina.com.br",
        "time": "Sat May 30 17:56:57 2026 -0300"
      },
      "message": "TAP%-2812: updating TS/JS dependencies\n\nto avoid ones with known vulnerabilities\n"
    },
    {
      "commit": "e873e175d62d4aa00c34e966792123ca3b158642",
      "tree": "c73350740943f2b39b177ad485e54aecc5cdff70",
      "parents": [
        "b4f38e270119a2b9d7f1bdca7f0538551337e12c"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Tue May 26 07:33:15 2026 +0200"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Tue May 26 07:33:46 2026 +0200"
      },
      "message": "TAP5-2830: Automate ASM vendoring, update to 9.9.1\n"
    },
    {
      "commit": "b4f38e270119a2b9d7f1bdca7f0538551337e12c",
      "tree": "f61e86beabf2e07a775177d9e4bdd0bdf7577f76",
      "parents": [
        "d973f4f40eb7716bcef4dbcbea6f401e04a33410"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sat May 23 14:04:00 2026 +0200"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Tue May 26 07:33:46 2026 +0200"
      },
      "message": "TAP5-2828: build.gradle use javadoc convention\n"
    },
    {
      "commit": "d973f4f40eb7716bcef4dbcbea6f401e04a33410",
      "tree": "52cd6baaae09d5173bed63d03b7c9f3c513a384c",
      "parents": [
        "d56b1a8b3cf5f90420e33989edbe710330cd300e"
      ],
      "author": {
        "name": "Volker Lamp",
        "email": "vlamp@apache.org",
        "time": "Sat May 23 15:50:31 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat May 23 15:50:31 2026 +0200"
      },
      "message": "TAP5-2829: Css class typo in Errors component (#60)"
    },
    {
      "commit": "d56b1a8b3cf5f90420e33989edbe710330cd300e",
      "tree": "4f9302b0eeaa7c69837e9e8b60373bbd4d372522",
      "parents": [
        "bac9864a68975472bc7453cbe3a645d64fcd7e86"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Tue May 19 16:19:55 2026 +0200"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Tue May 19 16:19:55 2026 +0200"
      },
      "message": "TAP5-2828: Javadoc min Java version, convention added, minor fixes\n"
    },
    {
      "commit": "bac9864a68975472bc7453cbe3a645d64fcd7e86",
      "tree": "026a068741ec2641a88639dbeaf37e81bdb0764f",
      "parents": [
        "3e89257acd2233b069ed4735ab2b2dd2115bb9d6"
      ],
      "author": {
        "name": "Thiago H. de Paula Figueiredo",
        "email": "thiago@arsmachina.com.br",
        "time": "Sat May 16 11:20:05 2026 -0300"
      },
      "committer": {
        "name": "Thiago H. de Paula Figueiredo",
        "email": "thiago@arsmachina.com.br",
        "time": "Sat May 16 11:20:05 2026 -0300"
      },
      "message": "TAP5-2810: using BaseURLSource to get ES shims\u0027 URLs"
    },
    {
      "commit": "3e89257acd2233b069ed4735ab2b2dd2115bb9d6",
      "tree": "051d415a5e61b5ce8e4a5a16e776edeea18f71f6",
      "parents": [
        "38df86aed430b06eb1be3b14ac5e87bd30035b86"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sun May 10 11:52:48 2026 +0200"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sun May 10 11:52:48 2026 +0200"
      },
      "message": "GitHub Actions: match Jenkinsfile Java versions\n"
    },
    {
      "commit": "38df86aed430b06eb1be3b14ac5e87bd30035b86",
      "tree": "13c0832355ef86cedba00030fea375ec41ab80e4",
      "parents": [
        "0dbc5bd3da5e62d54667b534542a5c36b158de1e"
      ],
      "author": {
        "name": "Christian Köberl",
        "email": "123199+derkoe@users.noreply.github.com",
        "time": "Thu May 07 14:48:04 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 07 14:48:04 2026 +0200"
      },
      "message": "GitHub Actions: only use whitelisted actions (#58)\n\nApache only allows whitelisted GH actions, and the firefox/gecko setup wasn\u0027t included.\nAs the `ubuntu-latest` image includes both Firefox and the GeckoDriver, both actions aren\u0027t needed in the first place.\nThe remaining actions are now pinned to their hashes instead of tags."
    },
    {
      "commit": "0dbc5bd3da5e62d54667b534542a5c36b158de1e",
      "tree": "80f5824b166ece25df8953f6ead60cdb2cd91522",
      "parents": [
        "320d5ecef6de76daad2c83a53799e216744f3a74"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Mon Apr 20 08:27:53 2026 +0200"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Mon Apr 20 08:29:24 2026 +0200"
      },
      "message": "TAP5-2826: allow null value for render variables\n"
    },
    {
      "commit": "320d5ecef6de76daad2c83a53799e216744f3a74",
      "tree": "2cc8f82c04ade5b51989ac45df3629800f3a105a",
      "parents": [
        "e74e8e7bf11d6a30d31054b24dad8dd5cfcf9235"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sun Apr 19 09:26:12 2026 +0200"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sun Apr 19 09:26:12 2026 +0200"
      },
      "message": "TAP5-2819: Jenkinsfile another attempt to fix cell separation\n"
    },
    {
      "commit": "e74e8e7bf11d6a30d31054b24dad8dd5cfcf9235",
      "tree": "a873116fc2a63350ee57d2f0f966a5abace9d459",
      "parents": [
        "01336b07143133b6723365694690913a593ff366"
      ],
      "author": {
        "name": "Thiago H. de Paula Figueiredo",
        "email": "thiago@arsmachina.com.br",
        "time": "Sat Apr 18 12:40:41 2026 -0300"
      },
      "committer": {
        "name": "Thiago H. de Paula Figueiredo",
        "email": "thiago@arsmachina.com.br",
        "time": "Sat Apr 18 12:40:58 2026 -0300"
      },
      "message": "TAP5-2810: little tweaks around ES shims"
    },
    {
      "commit": "01336b07143133b6723365694690913a593ff366",
      "tree": "9912a199b67c556ae596fc74dd5650b34cee30f2",
      "parents": [
        "72918c74c1c9ed4bd9c6aff0750188a193ba8235"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sat Apr 18 16:53:44 2026 +0200"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sat Apr 18 16:53:44 2026 +0200"
      },
      "message": "TAP5-2819: Jenkinsfile fix cell-based artifact archiving\n"
    },
    {
      "commit": "72918c74c1c9ed4bd9c6aff0750188a193ba8235",
      "tree": "c4ae917ac6303f68789e75b652a807346e5284af",
      "parents": [
        "91d4f899a582a4db46772265ac45fc71038829c3"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sat Apr 18 13:40:50 2026 +0200"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sat Apr 18 13:40:50 2026 +0200"
      },
      "message": "TAP5-2819: WebResourcesTest trying to fix timeout on Apache CI\n\nThe test_CoffeeScript_compilation test fails on Apache quite\nreproducable, but neither local or on my own CI server.\n\nMy educated guess is that the inital Rhino initialization takes too long\nfor some reason, so the we hit the timeout.\nTherefore, I set the Selenium timeout before the open call, but only in\nthis test.\nIt will also affect test_Less_compilation but this one succeeded before\nanyway.\n"
    },
    {
      "commit": "91d4f899a582a4db46772265ac45fc71038829c3",
      "tree": "82a0a362cc92cc846f7dfced3fa2df7902e99300",
      "parents": [
        "1b017fb269065239560ce61276c39e4f9d2f1681"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sat Apr 18 11:50:33 2026 +0200"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sat Apr 18 11:50:33 2026 +0200"
      },
      "message": "TAP5-2809: NpmTask use /tmp/.npm as cache\n"
    },
    {
      "commit": "1b017fb269065239560ce61276c39e4f9d2f1681",
      "tree": "745bd884ac9cfd85eaa4969d6ec62c6eeb99519d",
      "parents": [
        "8a640f34a5b42772a3db3cad2b28d3c303f2694f"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sat Apr 18 11:27:30 2026 +0200"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sat Apr 18 11:27:30 2026 +0200"
      },
      "message": "GoogleClosureMinimizer: further optimizations\n\nTrying to find the best option set to not let it interfere too much, as\nwe only use it for whitespace removal.\n"
    },
    {
      "commit": "8a640f34a5b42772a3db3cad2b28d3c303f2694f",
      "tree": "b36db9b74fdda50420514cc1f2247ec54150f8d0",
      "parents": [
        "89bea1afa40ccc73289c2d694dfd4482d4fa6d66"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sat Apr 18 11:26:36 2026 +0200"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sat Apr 18 11:26:36 2026 +0200"
      },
      "message": "TAP5-2809/2819: Integration testing streamlined\n\nRepetitive tasks in tapestry-core build.gradle and\nJenkinsfile.integration-variants simplified.\n\nPreparations for future Gradle 9 update.\n"
    },
    {
      "commit": "89bea1afa40ccc73289c2d694dfd4482d4fa6d66",
      "tree": "1e389183cd39bcab3c2d208c68025b776ca7adad",
      "parents": [
        "cd3518fea9fe6a2ef02e410af9a78ab11ca68384"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sat Apr 18 11:23:54 2026 +0200"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sat Apr 18 11:23:54 2026 +0200"
      },
      "message": "TAP5-2809: add missing license info to GenerateCheksums.groovy\n"
    },
    {
      "commit": "cd3518fea9fe6a2ef02e410af9a78ab11ca68384",
      "tree": "27847011bc77ad3eedfb46158b490f89167371b3",
      "parents": [
        "ea8b799f197ae52c079f189981c4bfb4c73b5694"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sat Apr 18 11:23:33 2026 +0200"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sat Apr 18 11:23:33 2026 +0200"
      },
      "message": "TAP5-2809: NpmTask with Docker support, don\u0027t emit TypeScript types into es-modules\n\nAs it\u0027s not guaranteed that npm is available, and to make builds more\nstable/reproducible, an NpmTask was added that checks for Docker first\nto run npm with a fallback to a local installation.\n\nThe existing npm/typescript related code in tapestr-core build.gradle\nwere adapted.\n\nFurthermore, the TypeScript project package.json/tsconfig.json was\nslightly improved, no longer emitting the typings into the es-modules,\nand hardening script calling in general.\n"
    },
    {
      "commit": "ea8b799f197ae52c079f189981c4bfb4c73b5694",
      "tree": "81456def41d85d9810b79ac7846ca991b1f32e8d",
      "parents": [
        "8edf1ed6287f1667308b721f6ce38a5e8bbc32d2"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Fri Apr 17 09:07:38 2026 +0200"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sat Apr 18 11:14:34 2026 +0200"
      },
      "message": "TAP5-2819: Jenkinsfile integration test results prefixing improved\n"
    },
    {
      "commit": "8edf1ed6287f1667308b721f6ce38a5e8bbc32d2",
      "tree": "8fe8d32236358b67d3c8e06c30678b4652569f2f",
      "parents": [
        "1f3dd17f2a9c9f28bf165a555d30305e84a07591"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Wed Apr 15 09:29:54 2026 +0200"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Wed Apr 15 09:29:54 2026 +0200"
      },
      "message": "GoogleClosureMinimizer: return non-minimized JS on error\n\nThe Google Closure minimizer is only used to remove whitespace, but its\nCompiler trips over unrelated problems.\nTherefore we return the original JS to not break a page if the minimizer\nhas an issue with code it doesn\u0027t understand.\n"
    },
    {
      "commit": "1f3dd17f2a9c9f28bf165a555d30305e84a07591",
      "tree": "9b4833ae9e6d655d09d5ac2d9b82aa7ff3d6220d",
      "parents": [
        "3679c4a56c42c74ffe05ab265ebc827d568a0d57"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Wed Apr 15 09:28:07 2026 +0200"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Wed Apr 15 09:28:07 2026 +0200"
      },
      "message": "TAP5-2809: run TestNG unit tests via Jupiter, integration tests native, more cleanup\n\nAs using both JUnit and TestNG in the same project can be troublesome,\nwe now created a deliberate split at integration testing level.\n\nUnit tests are run via the Jupiter testng-runner, whereas integration\ntests are still run with \"native\" TestNG, as SeleniumTestCase uses\nTestNG-only feature for its lifecycles.\n\nFurthermore, the Gradle files have been cleaned up and added some\ndocumentation to improve maintainability.\n"
    },
    {
      "commit": "3679c4a56c42c74ffe05ab265ebc827d568a0d57",
      "tree": "7b37e3938af39b08e3852f23464db9e44158452d",
      "parents": [
        "0d14be92444f44efa22a6d30d5300f25570853ae"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sun Apr 12 16:52:11 2026 +0200"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sun Apr 12 16:52:11 2026 +0200"
      },
      "message": "webresources: GoogleClosureMinimizer no logging by default\n"
    },
    {
      "commit": "0d14be92444f44efa22a6d30d5300f25570853ae",
      "tree": "9048e28bf3b049a67cc5f0a0848714f1d758705c",
      "parents": [
        "4c32a4be870cab65fce4bc8d45bcacef9111a6b0"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sun Apr 12 16:51:43 2026 +0200"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sun Apr 12 16:51:43 2026 +0200"
      },
      "message": "TAP5-2819: Jenkinsfile try to improve test result splitting in matrix builds\n"
    },
    {
      "commit": "4c32a4be870cab65fce4bc8d45bcacef9111a6b0",
      "tree": "70a934c309fa4c1d7f368dad47be121fc55c412f",
      "parents": [
        "2b31a26e2b463a7d0072ad8845f4f4df2b24ffc6"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sun Apr 12 16:51:22 2026 +0200"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sun Apr 12 16:51:22 2026 +0200"
      },
      "message": "TAP5-2809: register core integration test tasks for both JUnit and TestNG\n"
    },
    {
      "commit": "2b31a26e2b463a7d0072ad8845f4f4df2b24ffc6",
      "tree": "930094911d18e4028296e321b39655e644b5acb4",
      "parents": [
        "f0eb5e1e35c23a289127abd4a876f745f1ba6a46"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sun Apr 12 12:45:49 2026 +0200"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sun Apr 12 12:45:49 2026 +0200"
      },
      "message": "TAP5-2809: run JUnit4 via vintage engine, add explicit testNG task\n"
    },
    {
      "commit": "f0eb5e1e35c23a289127abd4a876f745f1ba6a46",
      "tree": "ff1083e8f711380ffcd4721d8a46085e4ec6ec81",
      "parents": [
        "d9e553a94c9c8b19a7aefce5ae8ca54d3c065e93"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sun Apr 12 12:42:22 2026 +0200"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sun Apr 12 12:42:22 2026 +0200"
      },
      "message": "TAP5-2819: Jenkinsfile fix mail token for skipped tests\n"
    },
    {
      "commit": "d9e553a94c9c8b19a7aefce5ae8ca54d3c065e93",
      "tree": "e6efc7b9845fa7cc8d13685c0ec88040a96d6870",
      "parents": [
        "5678d2c2b1b78286552131edee62c73e470e89fe"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sun Apr 12 12:42:02 2026 +0200"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sun Apr 12 12:42:02 2026 +0200"
      },
      "message": "TAP5-2809: exlcude netty from mavenLocal, improve project version guards\n"
    },
    {
      "commit": "5678d2c2b1b78286552131edee62c73e470e89fe",
      "tree": "30b573ac715b9eadd30929579ea25ce1e02fe874",
      "parents": [
        "983380f2cc38d03af46766b4e63f5bb41463d3b3"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Mon Apr 06 16:32:21 2026 +0200"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Mon Apr 06 16:32:21 2026 +0200"
      },
      "message": "ioc-jcache: Explitly request jsr107 CachingProvider\n\nAfter removing Infinispan for testing, the tests worked locally, but\nfailed on Apache CI.\nDue to the Service discovery mechanisms used, it might load the wrong\nprovider if none is specified.\n"
    },
    {
      "commit": "983380f2cc38d03af46766b4e63f5bb41463d3b3",
      "tree": "1368f08de44cb46087ffb54fa67fde5cb473bb7c",
      "parents": [
        "06fc5d82a71bfc7b758c596ab6005e3ffbc96cac"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Mon Apr 06 16:19:10 2026 +0200"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Mon Apr 06 16:19:10 2026 +0200"
      },
      "message": "TAP5-2819: Jenkinsfile further build artifacts separation\n"
    },
    {
      "commit": "06fc5d82a71bfc7b758c596ab6005e3ffbc96cac",
      "tree": "fa7b5f4faac7d82325faefba3752b505974ddc0f",
      "parents": [
        "1c81fe8b8d6b2d63fb0725950be93b608a7b60f0"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Mon Apr 06 16:18:47 2026 +0200"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Mon Apr 06 16:18:47 2026 +0200"
      },
      "message": "webresources: silence more of Google Closure Minimizer\n"
    },
    {
      "commit": "1c81fe8b8d6b2d63fb0725950be93b608a7b60f0",
      "tree": "c8b531fc4a6f7f22a68b4883fbe14f3e708cee69",
      "parents": [
        "2c7b146803a43bded4a4e76f5265c0094617a366"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Mon Apr 06 13:05:43 2026 +0200"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Mon Apr 06 13:05:43 2026 +0200"
      },
      "message": "TAP5-2819: Jenkinsfile changelog generation improved\n"
    },
    {
      "commit": "2c7b146803a43bded4a4e76f5265c0094617a366",
      "tree": "00a19a1b2e15d71ebc798eaf9183c45f1a2623f6",
      "parents": [
        "3279fd20edde04bcab148d082eda09a35573b2c1"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Mon Apr 06 13:04:22 2026 +0200"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Mon Apr 06 13:05:14 2026 +0200"
      },
      "message": "SeleniumTestCase timeouts from testng.xml or system props only\n\nManaging the timeouts didn’t work out as planned, as Selenium is reused,\nand a different configuration might not be applied.\n\nTo make it an explicit decision, we only consider the testng.xml\nparameters and the system properties as a fallback on runner creation.\n"
    },
    {
      "commit": "3279fd20edde04bcab148d082eda09a35573b2c1",
      "tree": "438c1bf75cb3c881f399f4bdf70649ea55701cd8",
      "parents": [
        "7d7965174af1781fdd21983a4f892eb70e4f7a28"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sun Apr 05 18:31:16 2026 +0200"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sun Apr 05 18:31:16 2026 +0200"
      },
      "message": "SeleniumTestCase fix blank check\n"
    },
    {
      "commit": "7d7965174af1781fdd21983a4f892eb70e4f7a28",
      "tree": "e2d14189d7fc548763ea80a31f9eaf6a5d3d8824",
      "parents": [
        "c972125152d188d241ffa11d34925c9c10223c79"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sun Apr 05 18:23:14 2026 +0200"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sun Apr 05 18:23:14 2026 +0200"
      },
      "message": "TAP5-2819: Jenkinsfile move javadoc into matrix, fix build artifact names\n"
    },
    {
      "commit": "c972125152d188d241ffa11d34925c9c10223c79",
      "tree": "c1b76355abb9be32ba796321500dd02de316e7fe",
      "parents": [
        "6ac2a6575f8bf2be5f55003b526aa85c6d4c095b"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sun Apr 05 18:22:27 2026 +0200"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sun Apr 05 18:22:27 2026 +0200"
      },
      "message": "SeleniumTestCase make page-load/wait timeout configurable via annotation/props\n"
    },
    {
      "commit": "6ac2a6575f8bf2be5f55003b526aa85c6d4c095b",
      "tree": "c277727e34761b517cbb953e5daf22419f2da2cf",
      "parents": [
        "206367d40a68087c8a3fcdf2992703291c71bf0b"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sun Apr 05 15:56:27 2026 +0200"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sun Apr 05 15:56:27 2026 +0200"
      },
      "message": "TAP5-2819: Jenkinsfile notification mails improved\n"
    },
    {
      "commit": "206367d40a68087c8a3fcdf2992703291c71bf0b",
      "tree": "da78e37b157c9c5354170df1cf5023353e7f5ae0",
      "parents": [
        "5ce05d7d024912ed6320ab49c13b657ae6c0dd1a"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sun Apr 05 15:53:15 2026 +0200"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sun Apr 05 15:53:15 2026 +0200"
      },
      "message": "TAP5-2825: tapestry-jpa-cache Java 21 support\n"
    },
    {
      "commit": "5ce05d7d024912ed6320ab49c13b657ae6c0dd1a",
      "tree": "a227bac1b597fd7af7becb604bfbf3178d823c49",
      "parents": [
        "00ba26302fb21f0e5a49760f76833653db270eee"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sun Apr 05 10:47:00 2026 +0200"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sun Apr 05 10:47:08 2026 +0200"
      },
      "message": "TAP5-2825: Java 21 support\n"
    },
    {
      "commit": "00ba26302fb21f0e5a49760f76833653db270eee",
      "tree": "0f6c7bd5ba5089c180a7f204a94cf2b992935692",
      "parents": [
        "5ea4bacc7ae99179f10c11928ecf42639b9edfc2"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sun Apr 05 10:45:59 2026 +0200"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sun Apr 05 10:45:59 2026 +0200"
      },
      "message": "TAP5-2809: java-convention use source/targetCompatibility, not toolchain\n"
    },
    {
      "commit": "5ea4bacc7ae99179f10c11928ecf42639b9edfc2",
      "tree": "6676866d5518d28b1659bc0877b5f23d7faca358",
      "parents": [
        "1f21d8483cc96b42b6bad71005547577fa340b42"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sat Apr 04 15:40:19 2026 +0200"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sat Apr 04 15:40:19 2026 +0200"
      },
      "message": "TAP5-2819: Jenkinsfile fix stage nesting\n"
    },
    {
      "commit": "1f21d8483cc96b42b6bad71005547577fa340b42",
      "tree": "0a37509a419956ef6fbdc12dcff3ea6e9f6f37a9",
      "parents": [
        "d72a3e5e43ee911aea48a3d6411481749a8ee1cf"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sat Apr 04 15:30:25 2026 +0200"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sat Apr 04 15:30:25 2026 +0200"
      },
      "message": "TAP5-2823: Spock 2.4, Geb removed (unused)\n"
    },
    {
      "commit": "d72a3e5e43ee911aea48a3d6411481749a8ee1cf",
      "tree": "0e60e16004fc2d2559fbaa8c0715867dd684fd39",
      "parents": [
        "4f31d0db9e51fa0b7b5aeb36bb335851881f55d1"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sat Apr 04 15:28:00 2026 +0200"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sat Apr 04 15:28:00 2026 +0200"
      },
      "message": "5.10 release notes scratch pad updated\n"
    },
    {
      "commit": "4f31d0db9e51fa0b7b5aeb36bb335851881f55d1",
      "tree": "354cca815709cda99c15696307c4d0d1afc27669",
      "parents": [
        "6f6b1b949c8b5b26f515ce40222b78715b79b9c2"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sat Apr 04 15:27:44 2026 +0200"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sat Apr 04 15:27:44 2026 +0200"
      },
      "message": "prebuild.sh: made OS-aware\n"
    },
    {
      "commit": "6f6b1b949c8b5b26f515ce40222b78715b79b9c2",
      "tree": "f694aa0a83898ae38dd550cd76cdf868f3c456ef",
      "parents": [
        "aaed6732dfd04e25b392a97cf2179c31566409f4"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sat Apr 04 15:27:25 2026 +0200"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sat Apr 04 15:27:25 2026 +0200"
      },
      "message": "TAP5-2809: Gradle 8.14.4\n"
    },
    {
      "commit": "aaed6732dfd04e25b392a97cf2179c31566409f4",
      "tree": "609aa666106600de4e063c8de668889a1a0c32c2",
      "parents": [
        "1adaf0dee1a1fed8b244a97142d5eca062837551"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sat Apr 04 15:27:05 2026 +0200"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sat Apr 04 15:27:05 2026 +0200"
      },
      "message": "TAP5-2809: Apache commons dependencies updated\n"
    },
    {
      "commit": "1adaf0dee1a1fed8b244a97142d5eca062837551",
      "tree": "7704d5653fcfcb3b4f15d168d69a80d5b4a35588",
      "parents": [
        "911552addbfdcaf42aa20e7589df99fd8f822194"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sat Apr 04 15:26:45 2026 +0200"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sat Apr 04 15:26:45 2026 +0200"
      },
      "message": "TAP5-2809: jacoco 0.8.14, version guards removed\n"
    },
    {
      "commit": "911552addbfdcaf42aa20e7589df99fd8f822194",
      "tree": "fb9444a9aaaadcc278ef926268bbcdd86e8b55b8",
      "parents": [
        "c926d6258b073c9c214bb529a43be7ad9d6f055d"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sat Apr 04 13:19:02 2026 +0200"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sat Apr 04 15:04:41 2026 +0200"
      },
      "message": "TAP5-2819: Jenkinsfile use matrix for min/max JDK, more sensible timeouts\n"
    },
    {
      "commit": "c926d6258b073c9c214bb529a43be7ad9d6f055d",
      "tree": "dfb8f2fe3a5c9efe7e026fbcd5ec70fd432f34fb",
      "parents": [
        "cf1ad1ff51f012800a2fcc42a4c32284a95ba891"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Tue Mar 31 09:42:28 2026 +0200"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Tue Mar 31 09:42:28 2026 +0200"
      },
      "message": "TAP5-2819: Jenkinsfile.integration-variants added\n"
    },
    {
      "commit": "cf1ad1ff51f012800a2fcc42a4c32284a95ba891",
      "tree": "51caca96be9afee33cc4db92949dfc6cfc096a68",
      "parents": [
        "414646ebefe0ef9b4dafd5a20868202666c38083"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Mon Mar 30 12:07:06 2026 +0200"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Mon Mar 30 12:07:06 2026 +0200"
      },
      "message": "TAP5-2809: simplifying tapestry-jpa build.gradle\n"
    },
    {
      "commit": "414646ebefe0ef9b4dafd5a20868202666c38083",
      "tree": "7118f60401031945944a5f9e5152e73583dd7a02",
      "parents": [
        "1397fd7d5a5973adbe7e234fa567f6cdeff34a70"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Mon Mar 30 12:04:54 2026 +0200"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Mon Mar 30 12:04:54 2026 +0200"
      },
      "message": "SeleniumTestCase always write error report (HTML+screenshot)\n"
    },
    {
      "commit": "1397fd7d5a5973adbe7e234fa567f6cdeff34a70",
      "tree": "fe2fe00ac98681cfb550585fe82d2365fdd05feb",
      "parents": [
        "a917d880efe91920dd92823d54ec59c85bb8c72d"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Mon Mar 30 12:03:43 2026 +0200"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Mon Mar 30 12:03:43 2026 +0200"
      },
      "message": "TAP5-2819: Jenkinsfile always archive test and coverage artifacts\n"
    },
    {
      "commit": "a917d880efe91920dd92823d54ec59c85bb8c72d",
      "tree": "154a509a90aa83e92b98b57053bfab13b83b345a",
      "parents": [
        "4ccb37e48b93885aaa5d883c763a3f4bd2ac762d"
      ],
      "author": {
        "name": "Thiago H. de Paula Figueiredo",
        "email": "thiago@arsmachina.com.br",
        "time": "Sun Mar 29 19:02:39 2026 -0300"
      },
      "committer": {
        "name": "Thiago H. de Paula Figueiredo",
        "email": "thiago@arsmachina.com.br",
        "time": "Sun Mar 29 19:03:00 2026 -0300"
      },
      "message": "TAP5-2809: fixing tapestry-jpa runTestAppN tasks\n\nplus trying to figure out why\norg.apache.tapestry5.jpa.integration.app6.JpaIntegrationTestWithAnnotationsInServiceImplementation.grid()\nis failing on Jenkins"
    },
    {
      "commit": "4ccb37e48b93885aaa5d883c763a3f4bd2ac762d",
      "tree": "ea6672bceb97e047e9df42614954bec9bd22d7a0",
      "parents": [
        "1cf9b9eee189786235d19777aa71741d558d9b64"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sun Mar 29 18:38:35 2026 +0200"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sun Mar 29 18:38:35 2026 +0200"
      },
      "message": "TAP5-2819: Jenkinsfile disable coverage (missing plugin?)\n"
    },
    {
      "commit": "1cf9b9eee189786235d19777aa71741d558d9b64",
      "tree": "b0da915a05bab692c9973b5a6a81b187bc19b35a",
      "parents": [
        "afd850ae48e2b899bfe905196a2f104794b62949"
      ],
      "author": {
        "name": "Thiago H. de Paula Figueiredo",
        "email": "thiago@arsmachina.com.br",
        "time": "Sun Mar 29 12:32:55 2026 -0300"
      },
      "committer": {
        "name": "Thiago H. de Paula Figueiredo",
        "email": "thiago@arsmachina.com.br",
        "time": "Sun Mar 29 12:33:30 2026 -0300"
      },
      "message": "Improving code."
    },
    {
      "commit": "afd850ae48e2b899bfe905196a2f104794b62949",
      "tree": "01d4c7e12a85e991b923aead5ddcde31a9be643c",
      "parents": [
        "75e56f9769e64f5e8f2b1598f87fb82675e6dc38"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sun Mar 29 17:05:17 2026 +0200"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sun Mar 29 17:05:17 2026 +0200"
      },
      "message": "TAP5-2819: Jenkinsfile continue on failed tests\n"
    },
    {
      "commit": "75e56f9769e64f5e8f2b1598f87fb82675e6dc38",
      "tree": "5ae521656650c78af1e9600a6a08a3de89f2c9ef",
      "parents": [
        "bafa7f74ac10952b6ddc3de268d45b2e12ae7e07"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sun Mar 29 17:04:53 2026 +0200"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sun Mar 29 17:04:53 2026 +0200"
      },
      "message": "TAP5-2819: SeleniumTestCase improve headless environment\n"
    },
    {
      "commit": "bafa7f74ac10952b6ddc3de268d45b2e12ae7e07",
      "tree": "e7b332979c42c2765f14c11213a2cf88026ac081",
      "parents": [
        "1cfb911cfac4f1458cb5a5b6336478f5f1e6f73e"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sun Mar 29 15:17:45 2026 +0200"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sun Mar 29 15:17:45 2026 +0200"
      },
      "message": "TAP5-2819: SeleniumTestCase allow paramters from system property as fallback\n\nTo eventually parallelize the integration testing in the future, the\nintegration tests variant shouldn\u0027t all use the default port 9090.\n\nTherefore, the parameters should fallback to system properties if the\nXML value is null, and only if the prop is null, too, return the default\nvalue.\n"
    },
    {
      "commit": "1cfb911cfac4f1458cb5a5b6336478f5f1e6f73e",
      "tree": "654d65e068628c4eff4b95f038243e6a9901cbd5",
      "parents": [
        "b42abba5828ea61bfc65a8f86d3b87d48aebe21b"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sun Mar 29 15:13:55 2026 +0200"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sun Mar 29 15:13:55 2026 +0200"
      },
      "message": "TAP5-2819: Jenkinsfile don\u0027t test integration variants\n\nAs the integration tests can be quite flaky and take forever to complete\nall 4 of them, we should move the extra 3 variants out of the \"default\"\nJenkinsfile and trigger them downstream (wip).\n"
    },
    {
      "commit": "b42abba5828ea61bfc65a8f86d3b87d48aebe21b",
      "tree": "e174460f4cc94c30c4015922c8eb016738f27858",
      "parents": [
        "e02987902a54240a0da89f384f82dde15e65810f"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sun Mar 29 13:25:31 2026 +0200"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sun Mar 29 13:25:31 2026 +0200"
      },
      "message": "TAP5-2821: ReloadSpec write bytecode first, touch after\n"
    },
    {
      "commit": "e02987902a54240a0da89f384f82dde15e65810f",
      "tree": "c0700618b47615a0b9a4456b2272e4a1b2dbf0d5",
      "parents": [
        "1be8d9944c9b69beb0bf3eacd7bb8af96909d390"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sat Mar 21 14:21:57 2026 +0100"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sat Mar 21 14:21:57 2026 +0100"
      },
      "message": "TAP5-2819: Jenkinsfile increase selenium timeout\n"
    },
    {
      "commit": "1be8d9944c9b69beb0bf3eacd7bb8af96909d390",
      "tree": "a2eb4fc350fa340aad889a33c83ab239e0270d4c",
      "parents": [
        "fe28db6632cf4374b6100c9b1c359064a159dc28"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sat Mar 21 13:19:16 2026 +0100"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sat Mar 21 13:19:16 2026 +0100"
      },
      "message": "TAP5-2820: ConcurrentBarrier remove synchronized blocks\n\nUnder heavy contention, the synchronized blocks introduced a global\nmonitor on a ThreadLocal that can lead to livelock/starvation.\n\nReentrantWriteLock already supports local thread-based locking, so\nrelying on that is the better approach.\n\nFurthermore, InterrupedExceptions were silently swallowed without\nsetting the flag, which is now no longer the case.\n\nThe existing tests were converted from Spock to Java.\n"
    },
    {
      "commit": "fe28db6632cf4374b6100c9b1c359064a159dc28",
      "tree": "6b31336b77fce9c4e3a54265d527280ca36f349a",
      "parents": [
        "9d6cc70719299ef47de4e50bde3d400fe40264f9"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Fri Mar 20 08:31:23 2026 +0100"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Fri Mar 20 08:31:23 2026 +0100"
      },
      "message": "TAP5-2819: Jenkinsfile increase timeout\n\nTo accomodate all four integration test variants we need a little more\ntime on the Apache CI\n"
    },
    {
      "commit": "9d6cc70719299ef47de4e50bde3d400fe40264f9",
      "tree": "8cf7c63eeaad528279875a9a2477d2cbb627d88c",
      "parents": [
        "f894b51ffc49680a8032a678db3a443785b8b00d"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Wed Mar 18 17:07:11 2026 +0100"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Wed Mar 18 17:07:11 2026 +0100"
      },
      "message": "TAP5-2819: SeleniumTestCase remove implicit waiting, make wait time configurable\n\nThe driver itself was waiting implictly, in addition to utilizing\nWebDriverWait. That might not work well together and could be\nresponsible for the flakiness of the element lookup sometimes.\n\nTherefore, we only rely on WebDriverWait, but make it easier to\nconfigure via system properties.\n"
    },
    {
      "commit": "f894b51ffc49680a8032a678db3a443785b8b00d",
      "tree": "480f93aa48020d0fb3b25890c465d2756e89a04c",
      "parents": [
        "45676f13456b78cca2e4d1691e5100d41f4a322d"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Tue Mar 17 17:11:38 2026 +0100"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Tue Mar 17 17:11:38 2026 +0100"
      },
      "message": "TAP5-2819: Add Jenkinsfile\n"
    },
    {
      "commit": "45676f13456b78cca2e4d1691e5100d41f4a322d",
      "tree": "356d337aa9bc238c40a76d271d7a459c1c4d6f6d",
      "parents": [
        "0c8e7db7f14132f222a92c26c09815f91ea73ad2"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Tue Mar 17 17:11:23 2026 +0100"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Tue Mar 17 17:11:23 2026 +0100"
      },
      "message": "TAP5-2819: Run headless on CI\n"
    },
    {
      "commit": "0c8e7db7f14132f222a92c26c09815f91ea73ad2",
      "tree": "daca38d6cad6c0e09a2686f89ea2246bb9679acf",
      "parents": [
        "4e1e411ca2164b254f19bd8f574e115d5cc685de"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Tue Mar 17 17:10:57 2026 +0100"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Tue Mar 17 17:10:57 2026 +0100"
      },
      "message": "TAP5-2809: testing-base-convention improved\n\nSet all the system properties at once, and propagate \u0027ci\u0027 to make it\nviable for TAP5-2819\n"
    },
    {
      "commit": "4e1e411ca2164b254f19bd8f574e115d5cc685de",
      "tree": "d2bd7e077766cc14850a191d158b37a36c976016",
      "parents": [
        "6254efb667e3ae56a299a31604e4edba769d4e27"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sat Mar 14 09:55:10 2026 +0100"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Tue Mar 17 17:08:34 2026 +0100"
      },
      "message": "TAP5-2819: enable JaCoCo XML export, move HTML output\n"
    },
    {
      "commit": "6254efb667e3ae56a299a31604e4edba769d4e27",
      "tree": "852f9211b45e19ad84fbbf50290379c3b93e648e",
      "parents": [
        "197b67f9ba874c7aa08a16cb2cd7651b26f94d87"
      ],
      "author": {
        "name": "Thiago H. de Paula Figueiredo",
        "email": "thiago@arsmachina.com.br",
        "time": "Tue Feb 24 23:08:19 2026 -0300"
      },
      "committer": {
        "name": "Thiago H. de Paula Figueiredo",
        "email": "thiago@arsmachina.com.br",
        "time": "Tue Feb 24 23:09:47 2026 -0300"
      },
      "message": "Temporarily disabling the quickstart build"
    },
    {
      "commit": "197b67f9ba874c7aa08a16cb2cd7651b26f94d87",
      "tree": "10f5837fcfa9a77cdedb27c10a88440aaa0e61c2",
      "parents": [
        "79b75ff6a7b1b1ffea14a7e730eb790398726012"
      ],
      "author": {
        "name": "Thiago H. de Paula Figueiredo",
        "email": "thiago@arsmachina.com.br",
        "time": "Sun Feb 22 17:38:10 2026 -0300"
      },
      "committer": {
        "name": "Thiago H. de Paula Figueiredo",
        "email": "thiago@arsmachina.com.br",
        "time": "Sun Feb 22 17:38:10 2026 -0300"
      },
      "message": "Fixing Maven artifact publication"
    },
    {
      "commit": "79b75ff6a7b1b1ffea14a7e730eb790398726012",
      "tree": "11b1dc9f513216769e7304c074e7d44697c97f96",
      "parents": [
        "5bac8eb6a2b22bb9a690f6124b166aa38617f36e"
      ],
      "author": {
        "name": "Thiago H. de Paula Figueiredo",
        "email": "thiago@arsmachina.com.br",
        "time": "Sun Feb 22 11:42:27 2026 -0300"
      },
      "committer": {
        "name": "Thiago H. de Paula Figueiredo",
        "email": "thiago@arsmachina.com.br",
        "time": "Sun Feb 22 11:42:27 2026 -0300"
      },
      "message": "emoving --info option from Gradle\n"
    },
    {
      "commit": "5bac8eb6a2b22bb9a690f6124b166aa38617f36e",
      "tree": "d463991d9cee26f3bf3ee38e7e6da33c3b6acc0c",
      "parents": [
        "42b9a0321f8b8bc31731d7accd3b41c355ef37e4"
      ],
      "author": {
        "name": "Thiago H. de Paula Figueiredo",
        "email": "thiago@arsmachina.com.br",
        "time": "Sun Feb 22 11:41:05 2026 -0300"
      },
      "committer": {
        "name": "Thiago H. de Paula Figueiredo",
        "email": "thiago@arsmachina.com.br",
        "time": "Sun Feb 22 11:41:05 2026 -0300"
      },
      "message": "Fixing generateChecksums Gradle task"
    },
    {
      "commit": "42b9a0321f8b8bc31731d7accd3b41c355ef37e4",
      "tree": "6c55b64979091b772c8e7fbd1e069ff1316f8775",
      "parents": [
        "d7a1718260dcfb2454ab7922f6327b386af5fe05"
      ],
      "author": {
        "name": "Thiago H. de Paula Figueiredo",
        "email": "thiago@arsmachina.com.br",
        "time": "Sun Feb 22 11:19:31 2026 -0300"
      },
      "committer": {
        "name": "Thiago H. de Paula Figueiredo",
        "email": "thiago@arsmachina.com.br",
        "time": "Sun Feb 22 11:19:31 2026 -0300"
      },
      "message": "Changing how the dependency on task typeScriptDocs is done"
    },
    {
      "commit": "d7a1718260dcfb2454ab7922f6327b386af5fe05",
      "tree": "f000553e63ca0575b0f6336833bd2ad209b62d0d",
      "parents": [
        "786355a5c289d722c325ca4635a5b51d2cd9df53"
      ],
      "author": {
        "name": "Thiago H. de Paula Figueiredo",
        "email": "thiago@arsmachina.com.br",
        "time": "Sat Feb 21 18:29:38 2026 -0300"
      },
      "committer": {
        "name": "Thiago H. de Paula Figueiredo",
        "email": "thiago@arsmachina.com.br",
        "time": "Sat Feb 21 18:31:42 2026 -0300"
      },
      "message": "TAP5-2813: Hopefully last workaround (attempt #2)"
    },
    {
      "commit": "786355a5c289d722c325ca4635a5b51d2cd9df53",
      "tree": "7be4aec891d4a8a305886f0beae1a3381a763e71",
      "parents": [
        "9d50d99979c0463fe7f38cc324045ecae32a5ce8"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sat Feb 07 13:36:40 2026 +0100"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sat Feb 07 13:36:40 2026 +0100"
      },
      "message": "TAP5-2809: Release notes scratch pad updated\n"
    },
    {
      "commit": "9d50d99979c0463fe7f38cc324045ecae32a5ce8",
      "tree": "d3feeff31693d0aa3b33caee5c91ee043de2a7cc",
      "parents": [
        "938543511515c4d7c048dd03cb7df4c6d59b87e7"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sat Feb 07 13:36:16 2026 +0100"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sat Feb 07 13:36:16 2026 +0100"
      },
      "message": "core: CronExpressionSpec serialization test re-enabled\n\nI don\u0027t see a reason in the code why CronExpression can\u0027t be serialized,\nthe test passes.\nMost likely a stale comment.\n"
    },
    {
      "commit": "938543511515c4d7c048dd03cb7df4c6d59b87e7",
      "tree": "4f7e851c84e0736579af2e5eb507d52d235c1d1e",
      "parents": [
        "8b90a1dc1204f12c7dcb07000025344a9c1f6a62"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sat Feb 07 13:32:40 2026 +0100"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sat Feb 07 13:32:40 2026 +0100"
      },
      "message": "TAP5-2817: SeleniumTestCase rename container constants\n"
    },
    {
      "commit": "8b90a1dc1204f12c7dcb07000025344a9c1f6a62",
      "tree": "824c85854d5969f379eb0de5ecf47cd28c73e37f",
      "parents": [
        "6ff6ded4047f55d7a5fd3b6027a500e04015a140"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sat Jan 31 13:56:17 2026 +0100"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sat Jan 31 13:56:17 2026 +0100"
      },
      "message": "TAP5-2816: SeleniumTestCase increase wait time on opening links\n\nThe test run fine on my machine, but not on the Apache CI.\nAs it fails with a TimeoutException, this is the only simple thing to do\nbefore adding more debug output for CI.\n"
    },
    {
      "commit": "6ff6ded4047f55d7a5fd3b6027a500e04015a140",
      "tree": "29a9e15d82b9a9214cc23a33b2733e8cc9468784",
      "parents": [
        "68fc38b955725ef0674ae6d351c5e08cc2fb3710"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sat Jan 31 12:05:44 2026 +0100"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sat Jan 31 12:06:49 2026 +0100"
      },
      "message": "TAP5-2816: SeleniumTestCase replace By.link with By.xpath locator\n"
    },
    {
      "commit": "68fc38b955725ef0674ae6d351c5e08cc2fb3710",
      "tree": "c8b61a10c40ff53cfa0c214453bdab86bafc9c7c",
      "parents": [
        "34ffa9f02d6350c848a4949267d3717453aa020b"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sun Jan 25 13:53:59 2026 +0100"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sun Jan 25 13:53:59 2026 +0100"
      },
      "message": "TAP5-2809: Setting java toolchain in submodules where required\n"
    },
    {
      "commit": "34ffa9f02d6350c848a4949267d3717453aa020b",
      "tree": "c8e19c65d124acbffa4a6971a13cb900362d5381",
      "parents": [
        "d087882249618ff4249a22288636c10f608b30e8"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sun Jan 25 12:18:30 2026 +0100"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sun Jan 25 12:18:30 2026 +0100"
      },
      "message": "core: XMLTokenStreamTest disabled for now\n\nThe test might fail as it loads an external resource that could be\nrate-limited. As this is not mission-critical for the next release, the\ntest is disabled until the underlying issue can be fixed by loading the\nresource locally instead.\n"
    },
    {
      "commit": "d087882249618ff4249a22288636c10f608b30e8",
      "tree": "5e6503cbf7f405dfece12fcbc205a50b2cb1ce50",
      "parents": [
        "834dccda1a80dcd0abc42d17a1a0925c9abaad49"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sun Jan 25 12:16:17 2026 +0100"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sun Jan 25 12:16:17 2026 +0100"
      },
      "message": "TAP5-2809: Update dependency version before 5.10 RC\n"
    },
    {
      "commit": "834dccda1a80dcd0abc42d17a1a0925c9abaad49",
      "tree": "a4300a3c167e8fdbebe236211f5d471a21acf67c",
      "parents": [
        "847805f1b59c2e1a383f113eb08485d94fdb808d"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sun Jan 25 12:14:51 2026 +0100"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sun Jan 25 12:14:51 2026 +0100"
      },
      "message": "TAP5-2809: Setting java toolchain/release to 11, remove version safeguards\n"
    },
    {
      "commit": "847805f1b59c2e1a383f113eb08485d94fdb808d",
      "tree": "a27d0a7bfea9f963d1922c7f185a086ba7fe100d",
      "parents": [
        "05506bc57ee9cf2faaa20492ba6bd011155e9dd6"
      ],
      "author": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sun Jan 25 12:07:03 2026 +0100"
      },
      "committer": {
        "name": "Ben Weidig",
        "email": "ben@netzgut.net",
        "time": "Sun Jan 25 12:14:13 2026 +0100"
      },
      "message": "TAP5-2809: Gradle 8.14.2 -\u003e 8.14.3\n"
    }
  ],
  "next": "05506bc57ee9cf2faaa20492ba6bd011155e9dd6"
}
