)]}'
{
  "log": [
    {
      "commit": "b5892e183284a0cd981d798541d45e0378611473",
      "tree": "854898ed999fba86bac3a6c2aab22ab8f607322c",
      "parents": [
        "dc684f5485386088f4cf51975cfc02e1a7c981ac"
      ],
      "author": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Tue Oct 13 17:16:52 2026 -0400"
      },
      "committer": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Tue Oct 13 17:45:17 2026 -0400"
      },
      "message": "Add CLI option to pass options to infoset inputters and outputters\n\nAdd --infoset-opts\u003dkey\u003dvalue,... to the parse, unparse, and performance commands, parsed with Scallop\u0027s property converter. Each key is validated against the selected infoset type and collected into an InfosetOptions object that every infoset handler receives, so a new option needs only a key definition on InfosetOptions and a handler change.\n\nInitial keys are pretty (true or false, for xml, json, and sax), which previously could not be turned off, xmlTextEscape (Standard or CDATA, for xml), which exposes the existing XMLTextEscapeStyle, and exiCompression (true or false, for exi and exisa), which selects EXI compression. Unknown keys, invalid values, and keys that do not apply to the infoset type are reported as usage errors. The help lists the keys, their values, and defaults.\n\nThe parse command now closes its output file and the performance command closes its input file, so files can be deleted on Windows when the CLI runs in the same process as a test.\n\nLibrary constructors are unchanged.\n\nDAFFODIL-2234\n"
    },
    {
      "commit": "dc684f5485386088f4cf51975cfc02e1a7c981ac",
      "tree": "95cc5b0bd9a7019b9e2f2b59d035afd607959888",
      "parents": [
        "b866a6d0f0f955977818bd4e767925548d3e5261"
      ],
      "author": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Tue Oct 13 14:37:45 2026 -0400"
      },
      "committer": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Tue Oct 13 14:58:22 2026 -0400"
      },
      "message": "Add DAFFODIL_TDML_TUNABLES to run TDML suites under tunables\n\nThe DAFFODIL_TDML_TUNABLES environment variable holds a comma-separated list of name\u003dvalue tunables that apply to every TDML test. A test\u0027s own defineConfig tunables override them, so a whole suite can run under any combination of tunables without editing any schema or TDML file.\n\nThe list is parsed by a small helper that ignores blank entries, trims whitespace, lets a value contain \u0027\u003d\u0027, and lets a later duplicate win. An entry with no name or no \u0027\u003d\u0027 fails with an error that names the entry, so a typo in the variable is reported instead of silently ignored. A tunable name Daffodil does not know is rejected when the test compiles, as it would be from defineConfig.\n\nCLI tests run existing TDML tests under the variable to show that a value is applied, that a test\u0027s own defineConfig overrides it, and that every entry in a list is parsed.\n\nDAFFODIL-3065\n"
    },
    {
      "commit": "b866a6d0f0f955977818bd4e767925548d3e5261",
      "tree": "17cfbfe859283101b9a01ce614f355c246c63ade",
      "parents": [
        "816f2253c0a8ad752d999b3857ff0e504193d7ae"
      ],
      "author": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Fri Oct 09 15:47:11 2026 -0400"
      },
      "committer": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Tue Oct 13 14:40:52 2026 -0400"
      },
      "message": "Refactor UState, element node creation and choice branch keys\n\nUState declared every member, so UStateForSuspension stubbed those it never uses. The infoset event cursor and TRD stack are now InfosetEventState, and the delimiter stack, escape scheme cache, scratch buffers and child position are DelimiterEscapePositionState, which UState delegates to. A suspension\u0027s clone gets NoInfosetEventState and a DelimiterEscapePositionState that copies only the escape scheme and delimiter stacks and shares the original\u0027s scratch buffers.\n\nElementUnparser created, attached and finished the node of every element itself. InfosetTreeState is now the part of UState that the element code works through, declaring getElement, which returns an element\u0027s node already in the infoset, and finishElement. InfosetNodeProvider implements them for a state that builds the infoset from an inputter\u0027s events, and UStateMain mixes it in. The moved code and its comments are unchanged.\n\nChoice branches are keyed by the name of the element that starts them, so ChoiceBranchEvent is removed. An end event never starts a branch, so it takes the default.\n\nNo functional change.\n\nDAFFODIL-3065\n"
    },
    {
      "commit": "816f2253c0a8ad752d999b3857ff0e504193d7ae",
      "tree": "541a9421668415114d353b0861be71233757b955",
      "parents": [
        "12ce57932661065392edb9c319e21f73ab67ed61"
      ],
      "author": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Tue Oct 13 13:10:01 2026 -0400"
      },
      "committer": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Tue Oct 13 13:31:56 2026 -0400"
      },
      "message": "Remove withRetryIfBlocking and make the typed equality operators inline\n\nwithRetryIfBlocking ran its body once and let a RetryableException propagate to the suspension machinery, which retries it later, so all it added was a closure per call. It is removed along with the commented-out coroutine notes in DState, call sites evaluate the expression directly, and getLength no longer takes a DState.\n\nThe typed equality operators (\u003d#\u003d, !\u003d#\u003d, \u003d:\u003d, !\u003d:\u003d, _eq_, _ne_) are extension methods with inline receivers and operands, so each call site compares with its operands\u0027 static types and neither a wrapper object nor a boxed operand is created. TypeEquality is now only the compile-time proof that the two types are related; it is an inline using parameter that is never evaluated, and its givens are inline. Files that use the operators import the equality package with a wildcard.\n\nNo functional change.\n\nDAFFODIL-3065\n\n"
    },
    {
      "commit": "12ce57932661065392edb9c319e21f73ab67ed61",
      "tree": "943da786bd44d6b01b9c64b3d0bf8cf0f8a52539",
      "parents": [
        "108ce60d1ace2e092b80c3bc15418d59d4bb4edf"
      ],
      "author": {
        "name": "Scala Steward",
        "email": "scala_steward@virtuslab.com",
        "time": "Sat Sep 26 14:33:12 2026 +0000"
      },
      "committer": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Fri Oct 09 17:30:58 2026 -0400"
      },
      "message": "Update slf4j-api to 2.0.20\n"
    },
    {
      "commit": "108ce60d1ace2e092b80c3bc15418d59d4bb4edf",
      "tree": "ebfe53f89a7e8135d681f995cbdb6cf323a28642",
      "parents": [
        "3877c709cca38cc35abac165ccfc7a9f209583fd"
      ],
      "author": {
        "name": "Scala Steward",
        "email": "scala_steward@virtuslab.com",
        "time": "Tue Oct 06 15:07:57 2026 +0000"
      },
      "committer": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Fri Oct 09 17:30:28 2026 -0400"
      },
      "message": "Update jline to 4.4.7\n"
    },
    {
      "commit": "3877c709cca38cc35abac165ccfc7a9f209583fd",
      "tree": "b26a6a82fa1bbb06693dbcb8ed4443d6c9ca07d3",
      "parents": [
        "38a9e97f8e16b11c3fb7d33c5642c1c08a2468d8"
      ],
      "author": {
        "name": "Scala Steward",
        "email": "scala_steward@virtuslab.com",
        "time": "Thu Oct 08 14:56:23 2026 +0000"
      },
      "committer": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Fri Oct 09 17:30:01 2026 -0400"
      },
      "message": "Update sbt-native-packager to 1.13.0\n"
    },
    {
      "commit": "38a9e97f8e16b11c3fb7d33c5642c1c08a2468d8",
      "tree": "3d16db05e73f80cd7e8e723b192b1f23224f9605",
      "parents": [
        "6b5e381d4db7ed96139af87f8efd8df132359b4c"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Oct 08 19:52:53 2026 +0000"
      },
      "committer": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Fri Oct 09 17:29:36 2026 -0400"
      },
      "message": "Bump msys2/setup-msys2 from 2.32.0 to 2.33.0\n\nBumps [msys2/setup-msys2](https://github.com/msys2/setup-msys2) from 2.32.0 to 2.33.0.\n- [Release notes](https://github.com/msys2/setup-msys2/releases)\n- [Changelog](https://github.com/msys2/setup-msys2/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/msys2/setup-msys2/compare/66cd2cce69caa17b53920067426061ca1de3a884...ec48f7c5447b3140e2b088413ae3a55687bccb6e)\n\n---\nupdated-dependencies:\n- dependency-name: msys2/setup-msys2\n  dependency-version: 2.33.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "6b5e381d4db7ed96139af87f8efd8df132359b4c",
      "tree": "283809e9ae42256b0f7a9527f12f7f3115dffc7b",
      "parents": [
        "5d975877dd4a0042506723083312a82b62d64717"
      ],
      "author": {
        "name": "Scala Steward",
        "email": "scala_steward@virtuslab.com",
        "time": "Sat Jul 18 14:51:13 2026 +0000"
      },
      "committer": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Thu Oct 08 17:23:03 2026 -0400"
      },
      "message": "Update sbt-scalafmt to 2.6.2\n"
    },
    {
      "commit": "5d975877dd4a0042506723083312a82b62d64717",
      "tree": "f147bbd61a844d8af02d2bbc97f0f7cacdd91888",
      "parents": [
        "f0014b5e83c3dba09d59264f5ab3c529fd2e4d7c"
      ],
      "author": {
        "name": "Scala Steward",
        "email": "scala_steward@virtuslab.com",
        "time": "Sat Aug 29 14:36:22 2026 +0000"
      },
      "committer": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Thu Oct 08 17:22:30 2026 -0400"
      },
      "message": "Update scalacheck to 1.20.0\n"
    },
    {
      "commit": "f0014b5e83c3dba09d59264f5ab3c529fd2e4d7c",
      "tree": "073871cecf9557f9372af91df002db50c1fdda9c",
      "parents": [
        "3ac249b22e54a9b36f9288b0c6183e940575e8ec"
      ],
      "author": {
        "name": "Scala Steward",
        "email": "scala_steward@virtuslab.com",
        "time": "Fri Aug 07 14:59:41 2026 +0000"
      },
      "committer": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Thu Oct 08 17:22:11 2026 -0400"
      },
      "message": "Update sbt, scripted-plugin to 1.12.15\n"
    },
    {
      "commit": "3ac249b22e54a9b36f9288b0c6183e940575e8ec",
      "tree": "169c0bdfa51171a327ff87a5a79ef45c36eac734",
      "parents": [
        "4813c577ad10e37174c2cf804bc3b7252856bd6c"
      ],
      "author": {
        "name": "Scala Steward",
        "email": "scala_steward@virtuslab.com",
        "time": "Wed Aug 05 14:13:09 2026 +0000"
      },
      "committer": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Thu Oct 08 17:21:51 2026 -0400"
      },
      "message": "Update woodstox-core to 7.2.2\n"
    },
    {
      "commit": "4813c577ad10e37174c2cf804bc3b7252856bd6c",
      "tree": "e2cc2e671945709432dea4d7a260b4a720de0393",
      "parents": [
        "4824b964297284ee88d53ae8a1914416ba621c65"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Jul 20 19:52:23 2026 +0000"
      },
      "committer": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Thu Oct 08 14:38:01 2026 -0400"
      },
      "message": "Bump actions/checkout from 7.0.0 to 7.0.1\n\nBumps [actions/checkout](https://github.com/actions/checkout) from 7.0.0 to 7.0.1.\n- [Release notes](https://github.com/actions/checkout/releases)\n- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/actions/checkout/compare/9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0...3d3c42e5aac5ba805825da76410c181273ba90b1)\n\n---\nupdated-dependencies:\n- dependency-name: actions/checkout\n  dependency-version: 7.0.1\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "4824b964297284ee88d53ae8a1914416ba621c65",
      "tree": "a8ff0bbac86918a72e548925a3158e6ca8c0c301",
      "parents": [
        "98428dc534c51d1382a35c4e251c7e3769ef014a"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Jul 16 19:52:26 2026 +0000"
      },
      "committer": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Thu Oct 08 14:37:42 2026 -0400"
      },
      "message": "Bump actions/setup-java from 5.3.0 to 5.6.0\n\nBumps [actions/setup-java](https://github.com/actions/setup-java) from 5.3.0 to 5.6.0.\n- [Release notes](https://github.com/actions/setup-java/releases)\n- [Commits](https://github.com/actions/setup-java/compare/ad2b38190b15e4d6bdf0c97fb4fca8412226d287...03ad4de0992f5dab5e18fcb136590ce7c4a0ac95)\n\n---\nupdated-dependencies:\n- dependency-name: actions/setup-java\n  dependency-version: 5.6.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "98428dc534c51d1382a35c4e251c7e3769ef014a",
      "tree": "6bb84227b6c661f4b193a413ad187f0fcb44b9e9",
      "parents": [
        "29ebf90af87aed37476d494a88d47ef509a108b1"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Jul 09 19:52:06 2026 +0000"
      },
      "committer": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Thu Oct 08 14:37:23 2026 -0400"
      },
      "message": "Bump actions/labeler from 6.1.0 to 6.2.0\n\nBumps [actions/labeler](https://github.com/actions/labeler) from 6.1.0 to 6.2.0.\n- [Release notes](https://github.com/actions/labeler/releases)\n- [Commits](https://github.com/actions/labeler/compare/f27b608878404679385c85cfa523b85ccb86e213...b8dd2d9be0f68b860e7dae5dae7d772984eacd6d)\n\n---\nupdated-dependencies:\n- dependency-name: actions/labeler\n  dependency-version: 6.2.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "29ebf90af87aed37476d494a88d47ef509a108b1",
      "tree": "6bcf56c7b08d0784b7fbd8665c11f0b52d215dec",
      "parents": [
        "cf4b780820cfbb1d2114902e45c55a3579673c30"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Jun 22 19:52:23 2026 +0000"
      },
      "committer": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Thu Oct 08 14:36:03 2026 -0400"
      },
      "message": "Bump codecov/codecov-action from 6.0.0 to 7.0.0\n\nBumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 6.0.0 to 7.0.0.\n- [Release notes](https://github.com/codecov/codecov-action/releases)\n- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/codecov/codecov-action/compare/57e3a136b779b570ffcdbf80b3bdc90e7fab3de2...fb8b3582c8e4def4969c97caa2f19720cb33a72f)\n\n---\nupdated-dependencies:\n- dependency-name: codecov/codecov-action\n  dependency-version: 7.0.0\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "cf4b780820cfbb1d2114902e45c55a3579673c30",
      "tree": "4fe55efc7b2af14ecd77c0a86fa77afcbe20d7a7",
      "parents": [
        "3430c5f9fa14c51a621b854ee096e7b3cc93a357"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Jul 15 19:52:23 2026 +0000"
      },
      "committer": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Thu Oct 08 14:35:42 2026 -0400"
      },
      "message": "Bump SonarSource/sonarqube-scan-action from 8.2.0 to 8.2.1\n\nBumps [SonarSource/sonarqube-scan-action](https://github.com/sonarsource/sonarqube-scan-action) from 8.2.0 to 8.2.1.\n- [Release notes](https://github.com/sonarsource/sonarqube-scan-action/releases)\n- [Commits](https://github.com/sonarsource/sonarqube-scan-action/compare/713881670b6b3676cda39549040e2d88c70d582e...22918119ff8e1ca75a623e15c8296b6ea4fbe28f)\n\n---\nupdated-dependencies:\n- dependency-name: SonarSource/sonarqube-scan-action\n  dependency-version: 8.2.1\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\n"
    },
    {
      "commit": "3430c5f9fa14c51a621b854ee096e7b3cc93a357",
      "tree": "c8cc815316e4cff6df09521e5032def78d2feb24",
      "parents": [
        "d25d1d73f533d1c793e3ac46e9cd1d9985826f33"
      ],
      "author": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Mon Oct 05 15:46:12 2026 -0400"
      },
      "committer": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Tue Oct 06 11:51:07 2026 -0400"
      },
      "message": "Inline MStack operations and size stacks to typical depth\n\nMStack\u0027s @specialized annotation has no effect under Scala 3, so push, pop, setTop and top on the Boolean, Int, Long and reference stacks boxed the element and went through type-dispatching array access. Make push, pop, setTop, top and bottom inline, so each call site expands with the stack\u0027s concrete element type and compiles to direct array loads and stores.\n\nStacks take an initialSize, 32 by default. A diagnostic, off unless MStack.trackMaxSizeReached is set, records the deepest a stack has grown, for choosing a size; the flag is an inline val so the tracking compiles away when off. TestMStack covers the operations, growth and copyFrom.\n\nStacks whose depth follows element, array or occurs nesting start at 16, and those tracking namespace bindings, JSON array names and unparse escape schemes start at 8. The parse escape scheme stack, points of uncertainty and input stream marks start at 16. Stacks that can fill past 16, such as the delimiter stacks, group index stacks, infoset walker and inputter, and next element resolver, keep 32. Stacks cloned for a suspended unparse are sized from the stack they copy.\n\nDAFFODIL-3065\n"
    },
    {
      "commit": "d25d1d73f533d1c793e3ac46e9cd1d9985826f33",
      "tree": "e914c45cc09dd5af7f961a10aca15cc3b45c5c8b",
      "parents": [
        "60b442b83812600bf6ed65db2231adc0d308c545"
      ],
      "author": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Tue Sep 29 17:59:41 2026 -0400"
      },
      "committer": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Mon Oct 05 13:29:58 2026 -0400"
      },
      "message": "Wait for a computable target length before unparsing truncating strings\n\nA string with dfdl:truncateSpecifiedLengthString whose dfdl:length is an expression reading an outputValueCalc element failed with an unretried InfosetNoDataException. The truncating string unparsers evaluate the target length inline, while the outputValueCalc was still blocked on a following sibling, so the error escaped the suspension machinery instead of being retried once the outputValueCalc could resolve.\n\nMake the truncating string unparsers SuspendableUnparsers. Their new StringTruncationSuspendableOperation tests that the target length can be evaluated and then runs the string unparse as its continuation.\n\ntruncatedString_2 now unparses. truncatedString_1 and _4 depend on dfdl:valueLength and remain true deadlocks; their expected diagnostic is now the circular deadlock error.\n\nDAFFODIL-1598\n"
    },
    {
      "commit": "60b442b83812600bf6ed65db2231adc0d308c545",
      "tree": "cdedcc8398f5bfd6b1158148e9c7097911f629cf",
      "parents": [
        "4f180867433be7ebc1e9a36c776b2389fbeaa874"
      ],
      "author": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Thu Jul 16 11:15:34 2026 -0400"
      },
      "committer": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Tue Sep 08 16:36:42 2026 -0400"
      },
      "message": "Add `EnumValueLiteral` Trait to reduce EnumValue complexity\n\n- add handling exceptions/special cases like CalendarFirstDayOfWeek in property generation instead\n\nDAFFODIL-2983\n"
    },
    {
      "commit": "4f180867433be7ebc1e9a36c776b2389fbeaa874",
      "tree": "07feb6536c452cce1ef673feaa4d786dbea296fb",
      "parents": [
        "f2080cd16232be22207f4bfcd001312bc01c5a2d"
      ],
      "author": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Fri Aug 21 13:01:43 2026 -0400"
      },
      "committer": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Fri Sep 04 15:17:53 2026 -0400"
      },
      "message": "Add Maybe[T].toArray and fix DelimiterTextParser array aliasing\n\nAdded Maybe[T].toArray, replacing seven hand-rolled .toList.toArray\ncall sites across the runtimeDependencies migration to Array (EvElement,\nEvEscapeSchemes, EvFieldDFA, StringLiteralForUnparser, SpecifiedLength2,\nElementUnparser x2) with a single reusable method.\n\nDAFFODIL-3065\n"
    },
    {
      "commit": "f2080cd16232be22207f4bfcd001312bc01c5a2d",
      "tree": "91505a706c88f6448b64dc8a3efee4ea54145e19",
      "parents": [
        "67841aa62bb11ba397ca80668528f24eb317b0f1"
      ],
      "author": {
        "name": "Steve Lawrence",
        "email": "slawrence@apache.org",
        "time": "Tue Aug 25 13:56:19 2026 -0400"
      },
      "committer": {
        "name": "Steve Lawrence",
        "email": "slawrence@apache.org",
        "time": "Thu Sep 03 09:35:20 2026 -0400"
      },
      "message": "Make codecov patch coverage check informational-only on main\n\nThe strict patch coverage check now only runs in the context of pull\nrequests (only_pulls: true), so merges to main no longer trigger it.\nA separate, branch-scoped check for main remains informational so\ncoverage is still reported on merge but never fails the build.\n\nThe target for the main block is also explicitly made auto to make it\nclear it\u0027s the same checks as the default block.\n\nDAFFODIL-3081\n"
    },
    {
      "commit": "67841aa62bb11ba397ca80668528f24eb317b0f1",
      "tree": "75d80e8de7454aad6b3fa7bf9b86446c708cbfc3",
      "parents": [
        "d902f94427ac45796b501586e33ef71134f4ca0b"
      ],
      "author": {
        "name": "Steve Lawrence",
        "email": "slawrence@apache.org",
        "time": "Tue Aug 25 14:56:27 2026 -0400"
      },
      "committer": {
        "name": "Steve Lawrence",
        "email": "slawrence@apache.org",
        "time": "Thu Sep 03 09:19:18 2026 -0400"
      },
      "message": "Update genTUnablesDoc heading levels\n\nCommit apache/daffodil-site@75e1d2c8 changed markdown heading levels to\nmake them easier to use and be more consistent. This updates the\ngenTunablesDoc task to follow those same conventions\n\nDAFFODIL-3050\n"
    },
    {
      "commit": "d902f94427ac45796b501586e33ef71134f4ca0b",
      "tree": "72dc151f26619a6196fcaa3b70d3277819878a00",
      "parents": [
        "f25cc8d705865aebea7fb848b8f796c6908c5608"
      ],
      "author": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Tue Aug 18 16:24:24 2026 -0400"
      },
      "committer": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Tue Aug 18 16:44:10 2026 -0400"
      },
      "message": "Add string-keyed fast path to NS.apply avoiding URI.create per element\n\nNextElementResolver\u0027s OnlyOnePossibilityForNextElement and\nSeveralPossibilitiesForNextElement both call NS(namespace) on every\nelement resolution when the infoset source has namespaces. NS.apply(String)\npreviously ran URI.create plus a ReentrantReadWriteLock-guarded WeakHashMap\nlookup on every call, even for a namespace string seen many times before.\n\nNS now extends UniquenessCache[String, NS], keyed directly by the\nnamespace string instead of URI. A cache hit never touches URI.create;\nURI.create only runs in valueFromKey on a genuine cache miss. apply(URI)\ndelegates to apply(uri.toString).\n\nDAFFODIL-3092\n"
    },
    {
      "commit": "f25cc8d705865aebea7fb848b8f796c6908c5608",
      "tree": "f967cf34750922d7bd8ca77f4c217da55ed4a567",
      "parents": [
        "12d6b0baf082b4957a14abf2b56ecf1db26f2321"
      ],
      "author": {
        "name": "Steve Lawrence",
        "email": "slawrence@apache.org",
        "time": "Mon Aug 17 07:27:14 2026 -0400"
      },
      "committer": {
        "name": "Steve Lawrence",
        "email": "slawrence@apache.org",
        "time": "Mon Aug 17 13:32:11 2026 -0400"
      },
      "message": "Sign windows convenience binaries with ssl.com credentials\n\nDAFFODIL-3090\n"
    },
    {
      "commit": "12d6b0baf082b4957a14abf2b56ecf1db26f2321",
      "tree": "503322196a9b138a26d20477da94c62563cc60bd",
      "parents": [
        "e8ef2e81995bbf326c48f1973ea106b124e98afd"
      ],
      "author": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Tue Jul 07 14:08:52 2026 -0400"
      },
      "committer": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Tue Jul 07 15:25:09 2026 -0400"
      },
      "message": "Prepare for 4.3.0 development\n"
    },
    {
      "commit": "e8ef2e81995bbf326c48f1973ea106b124e98afd",
      "tree": "296a14dbb9bcd26203adaca8fb1026eb101fa88f",
      "parents": [
        "a0e7e4669bb2b098f0f52b1f076a2da233e7320e"
      ],
      "author": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Tue Jun 23 20:50:14 2026 -0400"
      },
      "committer": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Wed Jun 24 09:50:10 2026 -0400"
      },
      "message": "Update Inno Setup installation in `release-candidate.yml`\n\n- Switch to GitHub-hosted Inno Setup binaries.\n- Replace SHA-512 checksum validation with SHA-256.\n- Update version tag references for consistency.\n"
    },
    {
      "commit": "a0e7e4669bb2b098f0f52b1f076a2da233e7320e",
      "tree": "99f0dd4274069dca8580cacba65a938bce213ed2",
      "parents": [
        "a04979670591aa97002d87985758c927d5f3c51b"
      ],
      "author": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Mon Jun 22 15:16:51 2026 -0400"
      },
      "committer": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Tue Jun 23 15:52:25 2026 -0400"
      },
      "message": "Prepare for 4.2.0\n"
    },
    {
      "commit": "a04979670591aa97002d87985758c927d5f3c51b",
      "tree": "89e4d74e3bf2439a7b9ab7c62605567a23304237",
      "parents": [
        "d505941e38a095a6bd7d2a98f201c884ff388784"
      ],
      "author": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Tue Jun 23 14:15:30 2026 -0400"
      },
      "committer": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Tue Jun 23 15:52:00 2026 -0400"
      },
      "message": "Revert scalaVersion back to 3.3.7\n"
    },
    {
      "commit": "d505941e38a095a6bd7d2a98f201c884ff388784",
      "tree": "2a3f30c9dc9da5058ea4647ae7983684444669c5",
      "parents": [
        "128075f9144298877825f249a25c82f36d6bf309"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Jun 22 16:47:45 2026 +0000"
      },
      "committer": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Mon Jun 22 13:34:13 2026 -0400"
      },
      "message": "Bump actions/checkout from 6.0.2 to 7.0.0\n\nBumps [actions/checkout](https://github.com/actions/checkout) from 6.0.2 to 7.0.0.\n- [Release notes](https://github.com/actions/checkout/releases)\n- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/actions/checkout/compare/de0fac2e4500dabe0009e67214ff5f5447ce83dd...9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0)\n\n---\nupdated-dependencies:\n- dependency-name: actions/checkout\n  dependency-version: 7.0.0\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "128075f9144298877825f249a25c82f36d6bf309",
      "tree": "2b6f3b525e3c93626684a7d40c46b6239b50da23",
      "parents": [
        "1a3255a6f8fae2e6331716e19aea3f7e6094673f"
      ],
      "author": {
        "name": "Scala Steward",
        "email": "scala_steward@virtuslab.com",
        "time": "Mon Jun 22 14:31:21 2026 +0000"
      },
      "committer": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Mon Jun 22 12:47:09 2026 -0400"
      },
      "message": "Update sbt, scripted-plugin to 1.12.13\n"
    },
    {
      "commit": "1a3255a6f8fae2e6331716e19aea3f7e6094673f",
      "tree": "940a83b5304d3844e838eda007b686d59ce2bacf",
      "parents": [
        "dc8d4a75026dfdf1b718fd371df93ff22032edf6"
      ],
      "author": {
        "name": "Scala Steward",
        "email": "scala_steward@virtuslab.com",
        "time": "Sat Jun 20 14:35:40 2026 +0000"
      },
      "committer": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Mon Jun 22 12:46:06 2026 -0400"
      },
      "message": "Update jline to 4.2.1\n"
    },
    {
      "commit": "dc8d4a75026dfdf1b718fd371df93ff22032edf6",
      "tree": "e78a16120b5ca00bd57d943294b19af78a5ada68",
      "parents": [
        "5522531acb6e834302cd7821a0723a7818e69b96"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Jun 18 19:52:29 2026 +0000"
      },
      "committer": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Mon Jun 22 12:45:47 2026 -0400"
      },
      "message": "Bump scalacenter/sbt-dependency-submission from 3.2.1 to 3.2.3\n\nBumps [scalacenter/sbt-dependency-submission](https://github.com/scalacenter/sbt-dependency-submission) from 3.2.1 to 3.2.3.\n- [Release notes](https://github.com/scalacenter/sbt-dependency-submission/releases)\n- [Commits](https://github.com/scalacenter/sbt-dependency-submission/compare/f43202114d7522a4b233e052f82c2eea8d658134...d84eef4c09e633bcf5f113bcad7fd5e9af1baee9)\n\n---\nupdated-dependencies:\n- dependency-name: scalacenter/sbt-dependency-submission\n  dependency-version: 3.2.3\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "5522531acb6e834302cd7821a0723a7818e69b96",
      "tree": "576592ec73ebebaad7ce03589a27924955fecc0f",
      "parents": [
        "d3e9de6006cb38fa68a3760a97277b6adc89b658"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Jun 18 19:52:19 2026 +0000"
      },
      "committer": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Mon Jun 22 12:35:31 2026 -0400"
      },
      "message": "Bump actions/setup-java from 5.2.0 to 5.3.0\n\nBumps [actions/setup-java](https://github.com/actions/setup-java) from 5.2.0 to 5.3.0.\n- [Release notes](https://github.com/actions/setup-java/releases)\n- [Commits](https://github.com/actions/setup-java/compare/be666c2fcd27ec809703dec50e508c2fdc7f6654...ad2b38190b15e4d6bdf0c97fb4fca8412226d287)\n\n---\nupdated-dependencies:\n- dependency-name: actions/setup-java\n  dependency-version: 5.3.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "d3e9de6006cb38fa68a3760a97277b6adc89b658",
      "tree": "330827747b99617afacc82c95ec8e8d99f51410e",
      "parents": [
        "1c1f73d0bb119978f0b47dd02d611bd2495295e7"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Jun 18 19:52:14 2026 +0000"
      },
      "committer": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Mon Jun 22 12:33:57 2026 -0400"
      },
      "message": "Bump SonarSource/sonarqube-scan-action from 8.0.0 to 8.2.0\n\nBumps [SonarSource/sonarqube-scan-action](https://github.com/sonarsource/sonarqube-scan-action) from 8.0.0 to 8.2.0.\n- [Release notes](https://github.com/sonarsource/sonarqube-scan-action/releases)\n- [Commits](https://github.com/sonarsource/sonarqube-scan-action/compare/59db25f34e16620e48ab4bb9e4a5dce155cb5432...713881670b6b3676cda39549040e2d88c70d582e)\n\n---\nupdated-dependencies:\n- dependency-name: SonarSource/sonarqube-scan-action\n  dependency-version: 8.2.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "1c1f73d0bb119978f0b47dd02d611bd2495295e7",
      "tree": "dc407b5294764e3537cf7d472ce88d3189b1a466",
      "parents": [
        "a90d8472cd61fae9a762d986892f8ceb22d58ab7"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Jun 18 19:52:10 2026 +0000"
      },
      "committer": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Mon Jun 22 12:32:54 2026 -0400"
      },
      "message": "Bump msys2/setup-msys2 from 2.31.1 to 2.32.0\n\nBumps [msys2/setup-msys2](https://github.com/msys2/setup-msys2) from 2.31.1 to 2.32.0.\n- [Release notes](https://github.com/msys2/setup-msys2/releases)\n- [Changelog](https://github.com/msys2/setup-msys2/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/msys2/setup-msys2/compare/e9898307ac31d1a803454791be09ab9973336e1c...66cd2cce69caa17b53920067426061ca1de3a884)\n\n---\nupdated-dependencies:\n- dependency-name: msys2/setup-msys2\n  dependency-version: 2.32.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "a90d8472cd61fae9a762d986892f8ceb22d58ab7",
      "tree": "67e1e02334ec9b0e253d08e9fd61158175f41c99",
      "parents": [
        "87dd0ea806dfcd17c45d3acf7e24f14e675f238e"
      ],
      "author": {
        "name": "The Apache Software Foundation",
        "email": "root-asf-gitbox-commits@apache.org",
        "time": "Fri May 15 15:25:01 2026 -0500"
      },
      "committer": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Thu Jun 18 13:04:30 2026 -0400"
      },
      "message": "Set up default protection ruleset for default and release branches"
    },
    {
      "commit": "87dd0ea806dfcd17c45d3acf7e24f14e675f238e",
      "tree": "79ec617c85de423015a22a518e08f6a06cdd8ed3",
      "parents": [
        "985328c1fc82cc54ece1ffbb453564f5788ad1c4"
      ],
      "author": {
        "name": "Scala Steward",
        "email": "scala_steward@virtuslab.com",
        "time": "Mon Jun 08 13:28:52 2026 +0000"
      },
      "committer": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Thu Jun 18 12:57:48 2026 -0400"
      },
      "message": "Update woodstox-core to 7.2.1\n"
    },
    {
      "commit": "985328c1fc82cc54ece1ffbb453564f5788ad1c4",
      "tree": "6a7057631bddb7634f0606a37eb0d55e62dbbf15",
      "parents": [
        "d935bb514e566fb50ccc9d2246e169c9ea20214d"
      ],
      "author": {
        "name": "Scala Steward",
        "email": "scala_steward@virtuslab.com",
        "time": "Fri May 29 13:44:42 2026 +0000"
      },
      "committer": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Thu Jun 18 12:57:23 2026 -0400"
      },
      "message": "Update Saxon-HE to 13.0\n"
    },
    {
      "commit": "d935bb514e566fb50ccc9d2246e169c9ea20214d",
      "tree": "481c0ee3e6dde77f63ade59f58df1dc1c725cc06",
      "parents": [
        "f9ef2e4d49abb5abf3e654641cfb845fa9c6f977"
      ],
      "author": {
        "name": "Scala Steward",
        "email": "scala_steward@virtuslab.com",
        "time": "Wed May 13 14:19:27 2026 +0000"
      },
      "committer": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Thu Jun 18 12:56:32 2026 -0400"
      },
      "message": "Update slf4j-api to 2.0.18\n"
    },
    {
      "commit": "f9ef2e4d49abb5abf3e654641cfb845fa9c6f977",
      "tree": "2b22224ca4f52797603efadbbbdcf5950438b9ae",
      "parents": [
        "d4f3b6e1d0d23e01296efef4044045a72a8e3945"
      ],
      "author": {
        "name": "Scala Steward",
        "email": "scala_steward@virtuslab.com",
        "time": "Mon May 11 15:14:10 2026 +0000"
      },
      "committer": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Thu Jun 18 12:45:04 2026 -0400"
      },
      "message": "Update sbt-scalafmt to 2.6.1\n"
    },
    {
      "commit": "d4f3b6e1d0d23e01296efef4044045a72a8e3945",
      "tree": "db40d4be57cc0036c451c366b0225a5e79b121e5",
      "parents": [
        "8989235935b07ad43da28d916f2523dc99769d4c"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed May 06 19:52:31 2026 +0000"
      },
      "committer": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Thu Jun 18 12:41:58 2026 -0400"
      },
      "message": "Bump actions/labeler from 6.0.1 to 6.1.0\n\nBumps [actions/labeler](https://github.com/actions/labeler) from 6.0.1 to 6.1.0.\n- [Release notes](https://github.com/actions/labeler/releases)\n- [Commits](https://github.com/actions/labeler/compare/634933edcd8ababfe52f92936142cc22ac488b1b...f27b608878404679385c85cfa523b85ccb86e213)\n\n---\nupdated-dependencies:\n- dependency-name: actions/labeler\n  dependency-version: 6.1.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "8989235935b07ad43da28d916f2523dc99769d4c",
      "tree": "7c01c74f7caa7e8eacc739d6b71c62020734bb07",
      "parents": [
        "cc0d0513c13fa016d823a3c3d2e6e0f97cc02869"
      ],
      "author": {
        "name": "Scala Steward",
        "email": "scala_steward@virtuslab.com",
        "time": "Tue May 05 14:40:42 2026 +0000"
      },
      "committer": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Thu Jun 18 12:39:11 2026 -0400"
      },
      "message": "Update jline to 3.30.13\n\n- Move `test_CLI_Tdml_DebugFile_singleTest` to `daffodil-test-integration` from `daffodil-cli`. We need to fork so we can use the correct jline version\n"
    },
    {
      "commit": "cc0d0513c13fa016d823a3c3d2e6e0f97cc02869",
      "tree": "9a92d70a23641dade4a34f313e18800d1b7da581",
      "parents": [
        "8533ee97916c573fe5d92054295dcd404bf78323"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Apr 29 19:52:36 2026 +0000"
      },
      "committer": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Thu Jun 18 12:38:04 2026 -0400"
      },
      "message": "Bump SonarSource/sonarqube-scan-action from 7.0.0 to 8.0.0\n\nBumps [SonarSource/sonarqube-scan-action](https://github.com/sonarsource/sonarqube-scan-action) from 7.0.0 to 8.0.0.\n- [Release notes](https://github.com/sonarsource/sonarqube-scan-action/releases)\n- [Commits](https://github.com/sonarsource/sonarqube-scan-action/compare/a31c9398be7ace6bbfaf30c0bd5d415f843d45e9...59db25f34e16620e48ab4bb9e4a5dce155cb5432)\n\n---\nupdated-dependencies:\n- dependency-name: SonarSource/sonarqube-scan-action\n  dependency-version: 8.0.0\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "8533ee97916c573fe5d92054295dcd404bf78323",
      "tree": "fe1fe066bd42dd6435d6a2dc95fafafe4c97521b",
      "parents": [
        "cc522d3dbf36a27a24c30f19ea88fd12c635da4f"
      ],
      "author": {
        "name": "Scala Steward",
        "email": "scala_steward@virtuslab.com",
        "time": "Thu Apr 23 14:14:01 2026 +0000"
      },
      "committer": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Thu Jun 18 12:37:32 2026 -0400"
      },
      "message": "Update commons-io to 2.22.0\n"
    },
    {
      "commit": "cc522d3dbf36a27a24c30f19ea88fd12c635da4f",
      "tree": "0ab0c30625872d0d08021afea4e02e73ebea991a",
      "parents": [
        "19f9cb1941186e274b2d27d93400d2c95397d1bb"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Apr 17 19:52:25 2026 +0000"
      },
      "committer": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Thu Jun 18 12:35:23 2026 -0400"
      },
      "message": "Bump msys2/setup-msys2 from 2.30.0 to 2.31.1\n\nBumps [msys2/setup-msys2](https://github.com/msys2/setup-msys2) from 2.30.0 to 2.31.1.\n- [Release notes](https://github.com/msys2/setup-msys2/releases)\n- [Changelog](https://github.com/msys2/setup-msys2/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/msys2/setup-msys2/compare/4f806de0a5a7294ffabaff804b38a9b435a73bda...e9898307ac31d1a803454791be09ab9973336e1c)\n\n---\nupdated-dependencies:\n- dependency-name: msys2/setup-msys2\n  dependency-version: 2.31.1\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "19f9cb1941186e274b2d27d93400d2c95397d1bb",
      "tree": "fb2a74cb33c5c5bb00bdddefa977d2b397ef09b4",
      "parents": [
        "363d00caf0ab069bbd9be251c219734f41f8d824"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Apr 10 19:52:23 2026 +0000"
      },
      "committer": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Thu Jun 18 12:34:41 2026 -0400"
      },
      "message": "Bump actions/github-script from 8.0.0 to 9.0.0\n\nBumps [actions/github-script](https://github.com/actions/github-script) from 8.0.0 to 9.0.0.\n- [Release notes](https://github.com/actions/github-script/releases)\n- [Commits](https://github.com/actions/github-script/compare/ed597411d8f924073f98dfc5c65a23a2325f34cd...3a2844b7e9c422d3c10d287c895573f7108da1b3)\n\n---\nupdated-dependencies:\n- dependency-name: actions/github-script\n  dependency-version: 9.0.0\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "363d00caf0ab069bbd9be251c219734f41f8d824",
      "tree": "1f1e9be8217c0cccc9ae76f5130de60f752f9dd1",
      "parents": [
        "8e1f7cead7edb55e5f17f555fb5829ca30b89110"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Mar 26 19:52:28 2026 +0000"
      },
      "committer": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Thu Jun 18 12:10:44 2026 -0400"
      },
      "message": "Bump codecov/codecov-action from 5.5.2 to 6.0.0\n\nBumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 5.5.2 to 6.0.0.\n- [Release notes](https://github.com/codecov/codecov-action/releases)\n- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/codecov/codecov-action/compare/671740ac38dd9b0130fbe1cec585b89eea48d3de...57e3a136b779b570ffcdbf80b3bdc90e7fab3de2)\n\n---\nupdated-dependencies:\n- dependency-name: codecov/codecov-action\n  dependency-version: 6.0.0\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "8e1f7cead7edb55e5f17f555fb5829ca30b89110",
      "tree": "e37c4e53e5569edf8ebea47807fa42d3b77d3a79",
      "parents": [
        "213c77ad78b9fbec46fc60f1c92c5823bae5a824"
      ],
      "author": {
        "name": "Scala Steward",
        "email": "scala_steward@virtuslab.com",
        "time": "Wed Mar 18 16:13:17 2026 +0000"
      },
      "committer": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Thu Jun 18 12:10:12 2026 -0400"
      },
      "message": "Update icu4j to 78.3\n"
    },
    {
      "commit": "213c77ad78b9fbec46fc60f1c92c5823bae5a824",
      "tree": "f5dff4040e0b078e359f527faca8d1c75c28b21a",
      "parents": [
        "045407e8209e33c16fb98e813bfb8ba0285e4b48"
      ],
      "author": {
        "name": "Scala Steward",
        "email": "scala_steward@virtuslab.com",
        "time": "Sun Feb 01 04:23:01 2026 +0000"
      },
      "committer": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Thu Jun 18 12:09:39 2026 -0400"
      },
      "message": "Update os-lib to 0.11.8\n"
    },
    {
      "commit": "045407e8209e33c16fb98e813bfb8ba0285e4b48",
      "tree": "cb14633b07e0838276b848f819fbb83509eb6111",
      "parents": [
        "4ddf700aacac20e458d3aa9e296c792ac3d95396"
      ],
      "author": {
        "name": "Scala Steward",
        "email": "scala_steward@virtuslab.com",
        "time": "Fri Jun 12 13:47:52 2026 +0000"
      },
      "committer": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Thu Jun 18 12:07:09 2026 -0400"
      },
      "message": "Update scala3-library to 3.3.8\n"
    },
    {
      "commit": "4ddf700aacac20e458d3aa9e296c792ac3d95396",
      "tree": "623c9fd3fc1798d29b377e3bdea40fc2e7f2b9c7",
      "parents": [
        "050d47e1175f42fd6dc0fb670efffd5910a0af2f"
      ],
      "author": {
        "name": "Scala Steward",
        "email": "scala_steward@virtuslab.com",
        "time": "Sun Jun 14 14:08:04 2026 +0000"
      },
      "committer": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Thu Jun 18 12:06:46 2026 -0400"
      },
      "message": "Update sbt, scripted-plugin to 1.12.12\n"
    },
    {
      "commit": "050d47e1175f42fd6dc0fb670efffd5910a0af2f",
      "tree": "5a6fc76eaa0bcab38bcf6ad19e50c51807681df8",
      "parents": [
        "64ece503025ece5a539528d00ea8253aa3547906"
      ],
      "author": {
        "name": "Josh Adams",
        "email": "jadams@owlcyberdefense.com",
        "time": "Tue Jun 02 09:10:07 2026 -0400"
      },
      "committer": {
        "name": "jadams-tresys",
        "email": "30659277+jadams-tresys@users.noreply.github.com",
        "time": "Wed Jun 17 09:14:53 2026 -0400"
      },
      "message": "Several small changes attempting to improve unparse performance\n\n- Avoid calling .toList.toVector\n- Remove unnecessary Maybe\n- Avoid frequent push/pop operations\n- Remove unused default parameter\n- Inline unparse1 function\n- Use string interpolation instead of .format inside VariableMap\n- Change all runtimeDependencies to vals of Array\n"
    },
    {
      "commit": "64ece503025ece5a539528d00ea8253aa3547906",
      "tree": "91a71a1c9282e41d27b640377649f828d8df3100",
      "parents": [
        "45fc21ab73c1d22c83e22f66744de88aa12dfa15"
      ],
      "author": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Tue Jun 16 11:26:26 2026 -0400"
      },
      "committer": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Tue Jun 16 12:20:24 2026 -0400"
      },
      "message": "Set default `infosetWalkerMode` to \"streaming\"\n\n - update documentation accordingly\n\nDAFFODIL-3089\n\nDeprecation/Compatibility\nThis will revert the change in DAFFODIL-3070 that set the default InfosetWalkerMode to nonStreaming.\n"
    },
    {
      "commit": "45fc21ab73c1d22c83e22f66744de88aa12dfa15",
      "tree": "737e163ff87df2e4dce1cbfa27f677b8edefb747",
      "parents": [
        "e1729f2fc20286bbc394e0b3b314222da0adbaca"
      ],
      "author": {
        "name": "Guichard Desrosiers",
        "email": "gdesrosiers@owlcyberdefense.com",
        "time": "Wed Jun 10 20:02:48 2026 -0400"
      },
      "committer": {
        "name": "Steve Lawrence",
        "email": "slawrence@apache.org",
        "time": "Fri Jun 12 07:57:46 2026 -0400"
      },
      "message": "Tolerate sub-millisecond differences in TDML dateTime comparison\n\nICU calendars are millisecond-precision, so fractional microseconds in\nxs:dateTime values are not preserved on parse. Truncate fractional seconds\nto milliseconds from the XMLGregorianCalendars before comparison, so\nsub-millisecond differences are ignored rather than flagged as mismatches.\n\nDAFFODIL-3086\n"
    },
    {
      "commit": "e1729f2fc20286bbc394e0b3b314222da0adbaca",
      "tree": "40ddf0aba983e21fcba75db3be0b9784b01907df",
      "parents": [
        "0bfbf4c66eb3bd6e7e42705be51029354269dc5a"
      ],
      "author": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Thu May 07 13:29:46 2026 -0400"
      },
      "committer": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Tue Jun 09 10:51:22 2026 -0400"
      },
      "message": "Add `infosetWalkerMode` tunable for streaming and non-streaming modes\n\n- Introduced `infosetWalkerMode` tunable in `dafext.xsd` with `streaming` and `nonStreaming` options.\n- Extract InfosetWalker trait; rename former InfosetWalker class to StreamingInfosetWalker; introduce NonStreamingInfosetWalker backed by DINode.walk() for the non-streaming path\n- Update DaffodilDebugger to always use StreamingInfosetWalker since debugger performance is not a huge priortiy\n- Added TDML tests to validate the new tunable functionality.\n\nDeprecation/Compatibility\nThe infoset walker mode has been changed to non-streaming behavior as the default, as this can cause significant performance improvements in some instances. To change to previous behavior, set the tunable infosetWalkerMode\u003dstreaming. If the infoset is likely to be very large or if memory is constrained, streaming mode would be more beneficial, otherwise in most other cases, non-streaming mode will be faster or the same.\n\nDAFFODIL-3070\n"
    },
    {
      "commit": "0bfbf4c66eb3bd6e7e42705be51029354269dc5a",
      "tree": "510782cba28bede5c282b670a60a117d1c8bdb69",
      "parents": [
        "c22dfe85cee2d40bda655f426981b66682d946d6"
      ],
      "author": {
        "name": "Guichard Desrosiers",
        "email": "gdesrosiers@owlcyberdefense.com",
        "time": "Fri Jun 05 16:25:43 2026 -0400"
      },
      "committer": {
        "name": "Steve Lawrence",
        "email": "slawrence@apache.org",
        "time": "Tue Jun 09 09:17:17 2026 -0400"
      },
      "message": "Replace deprecated URL constructor globally\n\njava.net.URL(String) has been deprecated since JDK 20, and causes the\nbuild to fail in some instances. Use the new URI(schemaFile).toURL instead,\nwhich is non-deprecated and available on all supported JDK versions.\n\nDAFFODIL-3083\n"
    },
    {
      "commit": "c22dfe85cee2d40bda655f426981b66682d946d6",
      "tree": "3093902d5a12e1baa1d300b4a084b86140ca3f3d",
      "parents": [
        "f66cafefc8471a93425ad61df999a40b78e3ca43"
      ],
      "author": {
        "name": "Guichard Desrosiers",
        "email": "gdesrosiers@owlcyberdefense.com",
        "time": "Mon Jun 01 23:34:26 2026 -0400"
      },
      "committer": {
        "name": "Steve Lawrence",
        "email": "slawrence@apache.org",
        "time": "Tue Jun 09 09:15:54 2026 -0400"
      },
      "message": "Replace ICU-based date/time comparison in TDML Runner with XMLGregorianCalendar\n\nThe TDML date/time comparison previously used the DFDLDate/Time/DateTimeConversion\nclasses, which create ICU objects. This broke cross-testing against the IBM DFDL\ncross tester, which depends on an older ICU version (e.g. it lacks Calendar.clone()).\n\nCompare xs:date/time/dateTime values by parsing into XMLGregorianCalendar and using\nits XSD order relation (compare()), keeping ICU off the comparison path entirely.\n\nXMLGregorianCalendar implements XSD 1.0, which does not permit year zero, so it\nrejects values like \"0000-01-01\". Two tests whose data uses year zero\n(yearfromdate_03 and yearfromdatetime_03) are temporarily ignored as a result.\nThese expose a pre-existing Daffodil bug: Daffodil produces year-zero values that\nare invalid under XSD 1.0, which needs to be addressed separately. The tests should\nbe re-enabled (or converted to negative tests) once that is resolved.\n\nBroaden the catch in verifyParserTestData from XMLDifferenceException back to\nException, so exceptions thrown transitively by compareAndReport\u0027s callees are\nwrapped as TDMLExceptions. Restores the generic catch that was in place before\ncommit b9fb1e53ba95, which narrowed it to XMLDifferenceException.\n\nDAFFODIL-3077\n"
    },
    {
      "commit": "f66cafefc8471a93425ad61df999a40b78e3ca43",
      "tree": "0bd1d325f602c8ec0d6c7371c640cb35a7be4899",
      "parents": [
        "ec72d23c408347a1ac97b0e27e5d2c8b348d766a"
      ],
      "author": {
        "name": "Guichard Desrosiers",
        "email": "gdesrosiers@owlcyberdefense.com",
        "time": "Tue May 26 19:45:54 2026 -0400"
      },
      "committer": {
        "name": "Steve Lawrence",
        "email": "slawrence@apache.org",
        "time": "Thu Jun 04 08:09:04 2026 -0400"
      },
      "message": "Add configurable gzip compression level\n\nThe gzip layer previously used GZIPOutputStream with the JDK\u0027s default\ncompression level (level 6), with no way for schemas to choose a different\nlevel. This change exposes the speed-vs-size trade-off that the gzip format\nalready supports, giving users control over how their data is compressed\nduring unparsing.\n\nAs a side benefit, this fix also addresses cross-zlib test failures\nobserved on Fedora 42. Fedora\u0027s OpenJDK links against zlib-ng while\nTemurin and most other distributions bundle stock zlib. Both produce valid\ngzip output, but the deflate token streams differ due to different\nmatch-finding heuristics, causing tests with hardcoded byte baselines to\nfail on Fedora. For the small test data used in Daffodil\u0027s gzip tests,\nlevel 9 happens to produce identical output on both implementations,\nletting the tests pass regardless of which zlib is linked. This\nconvergence at level 9 is empirical, not guaranteed.\n\nChanges:\n\n- Add `compressionLevel` DFDL variable to the gzip layer schema, defaulting\n  to Deflater.DEFAULT_COMPRESSION (-1). Schemas can override via\n  `dfdl:newVariableInstance` or `dfdl:setVariable`, and users can set the\n  value externally without having to modify the schema.\n\n- Add ConfigurableGZIPOutputStream, a GZIPOutputStream subclass that allows\n  the compression level to be set via constructor argument.\n\n- Update GZipLayer to accept the compressionLevel variable via\n  setLayerVariableParameters and use it when constructing the output stream.\n\n- Remove GZIPFixedOutputStream and the associated fixIsNeeded() method.\n  These existed to work around a pre-Java-16 bug where GZIPOutputStream\n  wrote 0x00 instead of the spec-compliant 0xFF for the gzip OS header\n  byte. Since Daffodil\u0027s minimum supported Java version is now 17, this\n  workaround is no longer needed.\n\n- Add `-parameters` to javac options This preserves Java parameter names in\n  bytecode, which is required by Daffodil\u0027s reflection-based layer parameter\n  resolution. Without this, Java setters appear with parameters named arg0/arg1/...\n  and cannot be matched to schema variables.\n\n- Update test schemas (exampleGzipLayer.dfdl.xsd, exampleGzipLayer2.dfdl.xsd)\n  to set compressionLevel\u003d9 via newVariableInstance.\n\n- Update TestGzipErrors.makeGZIPData to generate test input data at level 9\n  for byte-stable output across JVMs, with comments documenting the\n  empirical nature of the convergence.\n\nDAFFODIL-3082\n"
    },
    {
      "commit": "ec72d23c408347a1ac97b0e27e5d2c8b348d766a",
      "tree": "5d16c7f6f4927b632fcd5af2f00900b3124f209e",
      "parents": [
        "f9be445a2bae8c82aa8435e5155a4d5a450ca822"
      ],
      "author": {
        "name": "Steve Lawrence",
        "email": "slawrence@apache.org",
        "time": "Wed May 27 10:56:04 2026 -0400"
      },
      "committer": {
        "name": "Steve Lawrence",
        "email": "slawrence@apache.org",
        "time": "Thu Jun 04 07:08:50 2026 -0400"
      },
      "message": "Make codecov patch stats informational on the main branch\n\nSometimes we merge PRs that do not meet the codecov patch threshold,\nusually because it is not possible or requires too much effort to meet.\nThis leads to a CI failure on the main branch when these PRs are merged.\n\nBut by merging a PR we are tacitly agreeing to accept whatever coverage\nit has and so we don\u0027t need to report CI failures that might hide actual\nfailures.\n\nThis changes the codecov patch configuration for the main branch so it\nis informational only. CI will still run coverage and report the stats,\nbut it should not cause CI to indicate coverage failures even if the\npatch threshold is not met.\n\nDAFFODIL-3081\n"
    },
    {
      "commit": "f9be445a2bae8c82aa8435e5155a4d5a450ca822",
      "tree": "653bf61c8a0ff7a05e028cd00fc5e3601ca6b9be",
      "parents": [
        "4821837d3373444516cf02a7c0483b223ea1dce9"
      ],
      "author": {
        "name": "Guichard Desrosiers",
        "email": "gdesrosiers@owlcyberdefense.com",
        "time": "Mon May 04 10:47:40 2026 -0400"
      },
      "committer": {
        "name": "Steve Lawrence",
        "email": "slawrence@apache.org",
        "time": "Wed May 27 10:19:14 2026 -0400"
      },
      "message": "Fix float/double facet checks to use native comparison instead of compareTo\n\nFloat|Double.compareTo define a total order where NaN \u003e all values and\n-0.0 \u003c +0.0, which violates XSD semantics. XSD requires NaN to be\nincomparable (failing all facets) and -0.0 to equal +0.0.\n\n- Replace f.compareTo()/d.compareTo() with native f \u003e\u003d and\n  d \u003e\u003d (and corresponding \u003e, \u003c\u003d, \u003c) so that minInclusive,\n  maxInclusive, minExclusive, and maxExclusive correctly handle NaN,\n  +/-INF, and -0.0 for xs:float and xs:double types.\n- Add unit tests to Facets.tdml covering all four facets for xs:float\n  and xs:double, exercising IEEE 754 special values: NaN, +INF, -INF,\n  and -0.0.\n\nDAFFODIL-3072\n"
    },
    {
      "commit": "4821837d3373444516cf02a7c0483b223ea1dce9",
      "tree": "f4914db66c88a5db21b3ac742add1e19dcb2a9ea",
      "parents": [
        "b9fb1e53ba95cdf5727495cf80a8f768660cb71c"
      ],
      "author": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Thu Apr 02 15:54:20 2026 -0400"
      },
      "committer": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Tue May 26 12:04:39 2026 -0400"
      },
      "message": "Change TDMLRunner to use XMLTextInfosetInputter/Outputter as default\n\n- Replaced `TDMLInfosetOutputterScala` with `TDMLInfosetOutputterXML`.\n- Update TDML Schema to add support for custom validation name/type and use in stringAsXML tests\n- Drop whitespace between elements to keep expected matching actual, but keep all others like mixed whitespace, attributes, comments unchanged\n- Introduced tests for `stringAsXML` validation and namespace handling.\n- Enhanced `DaffodilXMLLoader` and related classes with `removeComments` and `removeProcInstr` flags\n- Add `TestStringAsXmlValidator` with a unified validator for namespace and non-namespace cases.\n- Add getScalaResult for `TDMLInfosetOutputterAll`\n- add clarifying info to TDMLInfosetInputter TDML Exceptions in case of non-matches\n- undo type aware changes for ScalaXMLInfosetOutputter (the way it was adding namespace bindings for scalaXML was not exactly correct as it wasn\u0027t part of the child element\u0027s minimized scope. We found it would be too much trouble to implement correctly for scalaXML, so we decided to remove the functionality)\n- ensure stringAsXml file line endings are not normalized in windows\n- change generic exception to InvalidInfosetException\n- Adjusted `.gitattributes` to prevent line ending normalization for specific test files.\n- Verify prefixes resolve to the same namespaces when checking prefixes\n- NullInfosetInputter should be receiving UTF-8 bytes for its events\n\nDeprecation/Compatibility\n- Instead of ScalaXMLInfosetInputter/Outputter being the default inputter/outputter for TDML Runner, it is now XMLTextInfosetInputter/Outputter since it supports stringsAsXml feature\n- We check the actual infoset for the presence of XMLTextInfoset.stringAsXML(currently stringAsXML) and don\u0027t normalize CRLF to LF in for that element\n\nDAFFODIL-2909\n"
    },
    {
      "commit": "b9fb1e53ba95cdf5727495cf80a8f768660cb71c",
      "tree": "c0d0544ba54b0fe400ddfe79a0878971ee864499",
      "parents": [
        "edee1e2e1a609194110f0e6f87e91decd6f0cbab"
      ],
      "author": {
        "name": "Guichard Desrosiers",
        "email": "gdesrosiers@owlcyberdefense.com",
        "time": "Tue May 05 21:05:06 2026 -0400"
      },
      "committer": {
        "name": "Steve Lawrence",
        "email": "slawrence@apache.org",
        "time": "Fri May 22 12:15:36 2026 -0400"
      },
      "message": "Fix duplicated TDML exception output and simplify exception handling\n\nTDMLException previously embedded cause message text in the outer\nexception message while also passing the same cause into the Java\nException cause chain. This resulted in duplicate output, where the\nsame error appeared both in the exception message and again in the\n\"Caused by:\" section.\n\n-Simplified TDMLException to support two construction paths only:\n one for explicit message strings, and one for wrapping a Throwable.\n Removed the causes field from the TDMLException trait and use cause\n from TDMLExceptionImpl constructor parameter.\n-Also removed the constructor that accepted multiple causes. Callers\n that previously passed multiple exceptions now aggregate their\n messages into a single newline-delimited message before constructing\n the string-based exception.\n-Additionally updated TDMLRunner to catch XMLDifferenceException\n directly when calling XMLUtils.compareAndReport, since that method\n specifically throws XMLDifferenceException.\n\nDAFFODIL-3078\n"
    },
    {
      "commit": "edee1e2e1a609194110f0e6f87e91decd6f0cbab",
      "tree": "6a421a415a97c523633210a9e05f0e0c9c0638cf",
      "parents": [
        "d8bc0c199d96ffd3ca9f72a63bb899aedb8fb8b8"
      ],
      "author": {
        "name": "Steve Lawrence",
        "email": "slawrence@apache.org",
        "time": "Fri Apr 17 12:34:58 2026 -0400"
      },
      "committer": {
        "name": "Steve Lawrence",
        "email": "slawrence@apache.org",
        "time": "Fri May 22 12:14:27 2026 -0400"
      },
      "message": "Convert NodeInfo.Nothing from a lazy val to an object\n\nThe NodeInfo.Nothing instance has a `children` Delay member that never\nactually gets evaluated. This is fine and not unexpected since Nothing\ndoesn\u0027t really have children and so nothing ever attempts to access or\nneed the member.\n\nHowever, in some cases it is possible for the Nothing val to be\nreferenced in a serialized class (e.g. in a DPath expression object that\nstores argument types such as fn:round-half-to-even) when creating a\nsaved parser. And because this Nothing has a Delay that is never\nevaluated, it leads to an \"object not initialized\" exception, preventing\ncreating a saved parser.\n\nTo fix this issue, this changes NodeInfo.Nothing from a lazy val to an\nobject. Whether we use a lazy val or an object here really does not make\na difference with how we use it, but in Scala lazy vals are serialized\nwhile objects are not--Scala only serializes object names which are used\nto look up and return the singleton instance during deserialization.\nThis allows us to avoid all possible serialization issues, and also\nchanges Nothing to match the same pattern as all the other TypeNodes.\n\nDAFFODIL-3079\n"
    },
    {
      "commit": "d8bc0c199d96ffd3ca9f72a63bb899aedb8fb8b8",
      "tree": "96b1385bcdc0f20734f78178b97bb44fcbf68a60",
      "parents": [
        "81104ca865f1d669a768ac05a1cd9212ec3dcc47"
      ],
      "author": {
        "name": "Steve Lawrence",
        "email": "slawrence@apache.org",
        "time": "Wed Apr 08 10:38:54 2026 -0400"
      },
      "committer": {
        "name": "Steve Lawrence",
        "email": "slawrence@apache.org",
        "time": "Wed Apr 08 13:11:58 2026 -0400"
      },
      "message": "Add support for infoset dataType member\n\n- Add new setIncludeDataType and getIncludeDataType functions to the\n  InfosetOutputter API to configure if InfosetOutputters should include\n  the dataType member when creating infosets. It is left up to specific\n  InfosetOutputter implementations if an how to represent this member in\n  their infosets\n- The XMLTextInfosetOutputter and ScalaXMLInfosetOutputter are updated\n  to include the xsi:type attribute when this is enabled. They also\n  define the \"xsi\" namespace prefix if not already defined. Other\n  InfosetOutputters do not currently implement this.\n- Update the TDML Runner to enable this flag for all infoset outputters.\n  The TDML Runner already supports type-aware comparisons when xsi:type\n  is provided, so enabling this allows all TDML test to use type aware\n  logic. This means expected infosets no longer need to include xsi:type\n  when for type-aware comparisons.\n- Add new \"infosetIncludeDataType\", which calls setIncludeDataType if\n  set. This allows enabling this feature without needing to modify code\n  to call the new API function\n- Fix TDML tests that used an xsi:type value that did not match\n  the actual value\n- Discovered a bug where xs:decimal elements could be output with\n  scientific notation. This is not legal in XSD so these elements are\n  now output using .toPlainString\n\nDeprecation/Compatibility\n\n- Previous versions of Daffodil could sometimes use scientific notation\n  when outputting elements with an xs:decimal type, which XSD does not\n  allow. Daffodil now always outputs xs:deicmal types using standard\n  decimal notation without any exponent part.\n\nDAFFODIL-182\n"
    },
    {
      "commit": "81104ca865f1d669a768ac05a1cd9212ec3dcc47",
      "tree": "f84a77d2c72cfe6f15d59e21f0d08871af998421",
      "parents": [
        "deb3f6d6aa035da09b2e86659d73a2e3918485e5"
      ],
      "author": {
        "name": "Steve Lawrence",
        "email": "slawrence@apache.org",
        "time": "Wed Apr 08 10:37:21 2026 -0400"
      },
      "committer": {
        "name": "Steve Lawrence",
        "email": "slawrence@apache.org",
        "time": "Wed Apr 08 11:36:49 2026 -0400"
      },
      "message": "Maintain empty/non-elements in stringAsXml output\n\nThe stringAsXml implementation currently converts both `\u003cfoo/\u003e` and\n`\u003cfoo\u003e\u003c/foo\u003e` XML strings to `\u003cfoo/\u003e`. Although stringAsXml does not\nguarantee the resulting XML will be always be the same, we do try to\nkeep keep the result as close to the original where reasonable.\n\nBy casting the existing XMLReader/Writer classes to XMLStreamReader2 and\nXMLStreamWriter2, we can used additional APIs to detect empty elements\nand write them as empty, with all other elements written with full\nendings.\n\nDAFFODIL-3074\n"
    },
    {
      "commit": "deb3f6d6aa035da09b2e86659d73a2e3918485e5",
      "tree": "9fe35922c0a800bfcf51d6355d3d0ed249e141ec",
      "parents": [
        "b2431b6df049370d1f8165fc2438d61df5c617f6"
      ],
      "author": {
        "name": "Steve Lawrence",
        "email": "slawrence@apache.org",
        "time": "Fri Feb 27 14:22:50 2026 -0500"
      },
      "committer": {
        "name": "Steve Lawrence",
        "email": "slawrence@apache.org",
        "time": "Tue Mar 10 10:01:52 2026 -0400"
      },
      "message": "Update copyright year to 2026\n\nDAFFODIL-3076\n"
    },
    {
      "commit": "b2431b6df049370d1f8165fc2438d61df5c617f6",
      "tree": "7e1e6be86ee321734618bafffef54ba0a513ea4c",
      "parents": [
        "32bc90ffb6ae31960831388a7d00b2f790d42e77"
      ],
      "author": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Wed Feb 25 14:05:31 2026 -0500"
      },
      "committer": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Wed Mar 04 13:52:42 2026 -0500"
      },
      "message": "Replace `ParseError` with `MultiException` in `FuzzData`\n\n- Consolidated exception handling under `handleKnownException` to manage both `MultiException` and `ParseError`. This is because MultiException.toss can throw either a ParseError or a MultiException\n- Adjusted related method and variable names for consistency.\n\nDAFFODIL-3075\n"
    },
    {
      "commit": "32bc90ffb6ae31960831388a7d00b2f790d42e77",
      "tree": "6f7fd45eeaf2ae2b3f1a990d39627d0ab61b429f",
      "parents": [
        "41e02e7a0e3b7f405a047916b6c752d93147cded"
      ],
      "author": {
        "name": "Steve Lawrence",
        "email": "slawrence@apache.org",
        "time": "Fri Feb 20 12:22:30 2026 -0500"
      },
      "committer": {
        "name": "Steve Lawrence",
        "email": "slawrence@apache.org",
        "time": "Mon Feb 23 11:42:20 2026 -0500"
      },
      "message": "Avoid possible serialization issues related to ArraySeq\n\nThe ArraySeq class has been known to cause deserialization failures\nrelated to saving/reloading parsers because the class is written in a\nway as to cause serialization sensitivity to changes in the class.\n\nWe don\u0027t use ArraySeq in any of our serialized classes, but Scala\nimplements varargs using ArraySeq, and we do use varargs in the\nserialized CompiledDPath class. This can make serialized objects\nsensitive to different versions of Scala if they make changes to the\nclass.\n\nWe do not need any of the features provided by ArraySeq or varargs, so\nthis converts the ops member of CompiledDPath to an Array, avoiding\npotential deserialzation issues with future versions of Daffodil.\n\nDAFFODIL-3073\n"
    },
    {
      "commit": "41e02e7a0e3b7f405a047916b6c752d93147cded",
      "tree": "f0f45c0bc25f1c763763ee11c581079ac9b6e1ab",
      "parents": [
        "fadf1f1a06843997c57e82dcb0744eb8abfa2cfe"
      ],
      "author": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Thu Feb 19 13:09:26 2026 -0500"
      },
      "committer": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Mon Feb 23 11:39:03 2026 -0500"
      },
      "message": "Remove unnecessary `sed` command from SonarCloud configuration in `main.yml`\n\n- it was leftover cruft from dependabot change and results in coverage not being generated\n\nDAFFODIL-3068\n"
    },
    {
      "commit": "fadf1f1a06843997c57e82dcb0744eb8abfa2cfe",
      "tree": "6661b0d2cbd7a850d5ce37504db75f468a6d8ec8",
      "parents": [
        "78517e4e7e745197d4125579e5f47edcf02925f9"
      ],
      "author": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Wed Feb 18 12:12:30 2026 -0500"
      },
      "committer": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Thu Feb 19 09:20:44 2026 -0500"
      },
      "message": "Update `main.yml` and `sonar-project.properties` for improved SonarCloud integration\n\n- use environment vars `SONAR_JAVA_JARS` and `SONAR_TEST_JAVA_JARS` for dependency resolution.\n- Updated workflow to dynamically generate environment variables for jar dependencies during scans, as well as scala version\n- Update reportPaths to use env var SONAR_SCALA_VERSION in case of scala version updates\n- Modified `.sonar-project.properties` to reference new environment variables for library paths.\n\nDAFFODIL-3071, DAFFODIL-3068\n"
    },
    {
      "commit": "78517e4e7e745197d4125579e5f47edcf02925f9",
      "tree": "0f93f073a6a148888b802fba0ad09f08459ac49b",
      "parents": [
        "fc05b68e08f240686588209dda7401097372a16a"
      ],
      "author": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Mon Feb 16 14:28:55 2026 -0500"
      },
      "committer": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Tue Feb 17 16:42:00 2026 -0500"
      },
      "message": "Remove old settings from `build.sbt`\n\n- Deleted settings for `transitiveClassifiers`, `retrieveManaged`, `useCoursier`, `unmanagedBase`, `sourceManaged`, and `resourceManaged` as they are no longer required\n\nDAFFODIL-3071\n"
    },
    {
      "commit": "fc05b68e08f240686588209dda7401097372a16a",
      "tree": "7a83a6ecee4395c65e122f04605d6891994ffb37",
      "parents": [
        "498c0b43f37814fbf077fa686c7cb1f4cc9a6177"
      ],
      "author": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Mon Feb 09 12:37:54 2026 -0500"
      },
      "committer": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Mon Feb 16 15:24:33 2026 -0500"
      },
      "message": "Enhance InfosetNoDataException message to include circular dependencies\n\n- Introduced test cases (`truncatedString_1`, `truncatedString_2`, `truncatedString_3`, `truncatedString_4`) to check different scenarios that the circular dependency occurs and doesn\u0027t occur\n\nDAFFODIL-1598\n"
    },
    {
      "commit": "498c0b43f37814fbf077fa686c7cb1f4cc9a6177",
      "tree": "d87e380d8fc0aec86fe112de959d140f4dd79d80",
      "parents": [
        "ebdadf99a40a7f233eff397fcb52cfe5fff05611"
      ],
      "author": {
        "name": "Steve Lawrence",
        "email": "slawrence@apache.org",
        "time": "Tue Feb 03 15:22:59 2026 -0500"
      },
      "committer": {
        "name": "Steve Lawrence",
        "email": "slawrence@apache.org",
        "time": "Mon Feb 16 15:06:04 2026 -0500"
      },
      "message": "Set max-parallel for matrix GitHub action jobs\n\nIn accordance with ASF policy, set job.strategy.max-parallel to the\nrecommended 15 or less for jobs that specify a matrix. The value is set\nto the number of expected jobs for the matrix, with a maximum of 15.\n\nDAFFODIL-3069\n"
    },
    {
      "commit": "ebdadf99a40a7f233eff397fcb52cfe5fff05611",
      "tree": "f72fef758499f25a3b3addb0a8705d41eebc3a77",
      "parents": [
        "949122e1466405b1bc0c715368b954ff6089a5b0"
      ],
      "author": {
        "name": "Steve Lawrence",
        "email": "slawrence@apache.org",
        "time": "Thu Feb 05 08:56:45 2026 -0500"
      },
      "committer": {
        "name": "Steve Lawrence",
        "email": "slawrence@apache.org",
        "time": "Mon Feb 16 15:05:33 2026 -0500"
      },
      "message": "Prepare for 4.2.0 development\n"
    },
    {
      "commit": "949122e1466405b1bc0c715368b954ff6089a5b0",
      "tree": "9dfa850f55dea684a8543ea863e9a434ad1d6090",
      "parents": [
        "75801c1405432433e5db27f465bd87ac335c5b08"
      ],
      "author": {
        "name": "Steve Lawrence",
        "email": "slawrence@apache.org",
        "time": "Wed Jan 28 11:01:18 2026 -0500"
      },
      "committer": {
        "name": "Steve Lawrence",
        "email": "slawrence@apache.org",
        "time": "Wed Jan 28 14:03:10 2026 -0500"
      },
      "message": "Prepare for 4.1.0\n"
    },
    {
      "commit": "75801c1405432433e5db27f465bd87ac335c5b08",
      "tree": "3b5c3b828bfd8dee31339ab94edece6138ff8123",
      "parents": [
        "96e73e152bb087394b234fc9c3973a00eb961215"
      ],
      "author": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Wed Jan 21 15:04:21 2026 -0500"
      },
      "committer": {
        "name": "olabusayoT",
        "email": "50379531+olabusayoT@users.noreply.github.com",
        "time": "Wed Jan 28 14:01:44 2026 -0500"
      },
      "message": "Add warning for `dfdl:occursCountKind\u003dparsed` without `dfdl:separatorSuppressionPolicy\u003danyEmpty`\n\n- Introduced `TestImplicitvParsed` including TDML tests for `occursCountKind\u003dparsed` and `occursCountKind\u003dimplicit`.\n- Added \"SeparatorSuppressionPolicyError\" warning to enforce `separatorSuppressionPolicy\u003d\"anyEmpty\"` for `occursCountKind\u003dparsed`.\n- Implicit with SSP\u003dtrailingEmpty works as expected, with it looking for the prefix / for absent arre1 in e2 in the added implicitvparsed.tdml as per the spec (Table 47: RepDef(min) ~ Rep(max - min), which means RepDef(1) followed by Rep(2), so it expects the separator for the last empty arre1 element), so the right thing to do if we don\u0027t want the empty trailing / is to use anyEmpty\n- Add SSP warning and specify error message in SequenceGroupDelimiters TDML test\n- Updated test cases to align with these changes.\n\nDAFFODIL-2801\n"
    },
    {
      "commit": "96e73e152bb087394b234fc9c3973a00eb961215",
      "tree": "cf7c72823da4d0d9995a30d5182ce88fed8f069d",
      "parents": [
        "8851534a9425c3cf1932379705bdef48d02ebcb5"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Jan 27 19:50:40 2026 +0000"
      },
      "committer": {
        "name": "Steve Lawrence",
        "email": "slawrence@apache.org",
        "time": "Wed Jan 28 11:55:22 2026 -0500"
      },
      "message": "Bump msys2/setup-msys2 from 2.29.0 to 2.30.0\n\nBumps [msys2/setup-msys2](https://github.com/msys2/setup-msys2) from 2.29.0 to 2.30.0.\n- [Release notes](https://github.com/msys2/setup-msys2/releases)\n- [Changelog](https://github.com/msys2/setup-msys2/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/msys2/setup-msys2/compare/fb197b72ce45fb24f17bf3f807a388985654d1f2...4f806de0a5a7294ffabaff804b38a9b435a73bda)\n\n---\nupdated-dependencies:\n- dependency-name: msys2/setup-msys2\n  dependency-version: 2.30.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "8851534a9425c3cf1932379705bdef48d02ebcb5",
      "tree": "2ad131d51ef5a7d80496d7745e787b1facce1b83",
      "parents": [
        "8da05647817fa2e007686c281d9a1fb98a52f2f4"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Jan 27 19:50:36 2026 +0000"
      },
      "committer": {
        "name": "Steve Lawrence",
        "email": "slawrence@apache.org",
        "time": "Wed Jan 28 11:54:40 2026 -0500"
      },
      "message": "Bump scalacenter/sbt-dependency-submission from 3.1.0 to 3.2.1\n\nBumps [scalacenter/sbt-dependency-submission](https://github.com/scalacenter/sbt-dependency-submission) from 3.1.0 to 3.2.1.\n- [Release notes](https://github.com/scalacenter/sbt-dependency-submission/releases)\n- [Commits](https://github.com/scalacenter/sbt-dependency-submission/compare/64084844d2b0a9b6c3765f33acde2fbe3f5ae7d3...f43202114d7522a4b233e052f82c2eea8d658134)\n\n---\nupdated-dependencies:\n- dependency-name: scalacenter/sbt-dependency-submission\n  dependency-version: 3.2.1\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "8da05647817fa2e007686c281d9a1fb98a52f2f4",
      "tree": "78af6289751f7bed4cc4519e5b2446dced40dc5b",
      "parents": [
        "f016d39733c33527a40d6643d63bb0ad2051633a"
      ],
      "author": {
        "name": "Scala Steward",
        "email": "scala_steward@virtuslab.com",
        "time": "Wed Jan 28 16:00:20 2026 +0000"
      },
      "committer": {
        "name": "Steve Lawrence",
        "email": "slawrence@apache.org",
        "time": "Wed Jan 28 11:54:21 2026 -0500"
      },
      "message": "Update sbt, scripted-plugin to 1.12.1\n"
    },
    {
      "commit": "f016d39733c33527a40d6643d63bb0ad2051633a",
      "tree": "5f62816b1b11583218c69b0c0abf158c11a66411",
      "parents": [
        "7a2e683cc57abcf7f098d8dbb37a4e485cfb72d2"
      ],
      "author": {
        "name": "Scala Steward",
        "email": "scala_steward@virtuslab.com",
        "time": "Wed Jan 28 15:59:13 2026 +0000"
      },
      "committer": {
        "name": "Steve Lawrence",
        "email": "slawrence@apache.org",
        "time": "Wed Jan 28 11:53:38 2026 -0500"
      },
      "message": "Update os-lib to 0.11.7\n"
    },
    {
      "commit": "7a2e683cc57abcf7f098d8dbb37a4e485cfb72d2",
      "tree": "c05b2bdbb068a869abc7dca0a186ae35118c5600",
      "parents": [
        "d027bda067984e88d9f868c78b925b946866e5e3"
      ],
      "author": {
        "name": "Scala Steward",
        "email": "scala_steward@virtuslab.com",
        "time": "Tue Jan 27 13:41:51 2026 -0500"
      },
      "committer": {
        "name": "Steve Lawrence",
        "email": "slawrence@apache.org",
        "time": "Tue Jan 27 14:04:05 2026 -0500"
      },
      "message": "Update scala3-library to 3.3.7\n"
    },
    {
      "commit": "d027bda067984e88d9f868c78b925b946866e5e3",
      "tree": "8e26ffed56c31a12e314add98826a0e39678c633",
      "parents": [
        "134fef3878d2c2649be0dad8470c5c736c2b6614"
      ],
      "author": {
        "name": "Scala Steward",
        "email": "scala_steward@virtuslab.com",
        "time": "Thu Sep 11 13:59:28 2025 +0000"
      },
      "committer": {
        "name": "Steve Lawrence",
        "email": "slawrence@apache.org",
        "time": "Tue Jan 27 13:04:44 2026 -0500"
      },
      "message": "Update jline to 3.30.6\n"
    },
    {
      "commit": "134fef3878d2c2649be0dad8470c5c736c2b6614",
      "tree": "80a92392ff55e7cfa30539216d044fa908f900d5",
      "parents": [
        "f64ef6cf7f5c0a4aabd8eca5af95c4d0527b2366"
      ],
      "author": {
        "name": "Scala Steward",
        "email": "scala_steward@virtuslab.com",
        "time": "Wed Sep 17 13:44:57 2025 +0000"
      },
      "committer": {
        "name": "Steve Lawrence",
        "email": "slawrence@apache.org",
        "time": "Tue Jan 27 13:03:11 2026 -0500"
      },
      "message": "Update scala-logging to 3.9.6\n"
    },
    {
      "commit": "f64ef6cf7f5c0a4aabd8eca5af95c4d0527b2366",
      "tree": "f8e394706bda54b6bc58096c0f05fcb55aba0e92",
      "parents": [
        "41b21bb70af94ccc99d232f733806a1ea73dbedb"
      ],
      "author": {
        "name": "Scala Steward",
        "email": "scala_steward@virtuslab.com",
        "time": "Sat Sep 13 13:41:03 2025 +0000"
      },
      "committer": {
        "name": "Steve Lawrence",
        "email": "slawrence@apache.org",
        "time": "Tue Jan 27 13:01:11 2026 -0500"
      },
      "message": "Update Saxon-HE to 12.9\n"
    },
    {
      "commit": "41b21bb70af94ccc99d232f733806a1ea73dbedb",
      "tree": "98a19021476ea6177288573d7a3d1191cd85608a",
      "parents": [
        "62465f4391dc48d6dc40ab22a0ecdd5c2cb7c34e"
      ],
      "author": {
        "name": "Scala Steward",
        "email": "scala_steward@virtuslab.com",
        "time": "Mon Oct 27 14:04:14 2025 +0000"
      },
      "committer": {
        "name": "Steve Lawrence",
        "email": "slawrence@apache.org",
        "time": "Tue Jan 27 13:00:56 2026 -0500"
      },
      "message": "Update os-lib to 0.11.6\n"
    },
    {
      "commit": "62465f4391dc48d6dc40ab22a0ecdd5c2cb7c34e",
      "tree": "eda0b6b23f6ff9f6df4a3b4337c985af6f705295",
      "parents": [
        "75b26e42f91137bb84616c4342d4ac8a65923f59"
      ],
      "author": {
        "name": "Scala Steward",
        "email": "scala_steward@virtuslab.com",
        "time": "Sat Nov 08 14:46:23 2025 +0000"
      },
      "committer": {
        "name": "Steve Lawrence",
        "email": "slawrence@apache.org",
        "time": "Tue Jan 27 13:00:48 2026 -0500"
      },
      "message": "Update commons-io to 2.21.0\n"
    },
    {
      "commit": "75b26e42f91137bb84616c4342d4ac8a65923f59",
      "tree": "098f2e151adaf691c3828db4d28b5c9c2827f1d9",
      "parents": [
        "b8bd391b583c9a5d6d7c97806bf67f5ac6f0bb20"
      ],
      "author": {
        "name": "Scala Steward",
        "email": "scala_steward@virtuslab.com",
        "time": "Mon Nov 17 17:08:52 2025 +0000"
      },
      "committer": {
        "name": "Steve Lawrence",
        "email": "slawrence@apache.org",
        "time": "Tue Jan 27 13:00:40 2026 -0500"
      },
      "message": "Update scallop to 5.3.0\n"
    },
    {
      "commit": "b8bd391b583c9a5d6d7c97806bf67f5ac6f0bb20",
      "tree": "d8cd6f725bc0ecda962421f483077693352e1204",
      "parents": [
        "24541b577d439a92b5de658debdbcc03be629f0f"
      ],
      "author": {
        "name": "Scala Steward",
        "email": "scala_steward@virtuslab.com",
        "time": "Fri Jan 09 15:17:36 2026 +0000"
      },
      "committer": {
        "name": "Steve Lawrence",
        "email": "slawrence@apache.org",
        "time": "Tue Jan 27 13:00:31 2026 -0500"
      },
      "message": "Update icu4j to 78.2\n"
    },
    {
      "commit": "24541b577d439a92b5de658debdbcc03be629f0f",
      "tree": "25052c0ee42a3b5e337f9724d9f57f53d6e09a1e",
      "parents": [
        "9246cf4a45b910b61c9939f8540916c4267ed53b"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Jan 26 21:26:38 2026 +0000"
      },
      "committer": {
        "name": "Steve Lawrence",
        "email": "slawrence@apache.org",
        "time": "Tue Jan 27 12:38:45 2026 -0500"
      },
      "message": "Bump actions/checkout from 5.0.0 to 6.0.2\n\nBumps [actions/checkout](https://github.com/actions/checkout) from 5.0.0 to 6.0.2.\n- [Release notes](https://github.com/actions/checkout/releases)\n- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/actions/checkout/compare/08c6903cd8c0fde910a37f88322edcfb5dd907a8...de0fac2e4500dabe0009e67214ff5f5447ce83dd)\n\n---\nupdated-dependencies:\n- dependency-name: actions/checkout\n  dependency-version: 6.0.2\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "9246cf4a45b910b61c9939f8540916c4267ed53b",
      "tree": "974e32819a76d69f77cea7054172174711af37cd",
      "parents": [
        "32c7ee853d2fb775019a247ec26dead23db173c2"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Jan 26 21:26:48 2026 +0000"
      },
      "committer": {
        "name": "Steve Lawrence",
        "email": "slawrence@apache.org",
        "time": "Tue Jan 27 12:36:55 2026 -0500"
      },
      "message": "Bump codecov/codecov-action from 5.5.1 to 5.5.2\n\nBumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 5.5.1 to 5.5.2.\n- [Release notes](https://github.com/codecov/codecov-action/releases)\n- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/codecov/codecov-action/compare/5a1091511ad55cbe89839c7260b706298ca349f7...671740ac38dd9b0130fbe1cec585b89eea48d3de)\n\n---\nupdated-dependencies:\n- dependency-name: codecov/codecov-action\n  dependency-version: 5.5.2\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "32c7ee853d2fb775019a247ec26dead23db173c2",
      "tree": "c4ae366f84c5506dd83d73651d0043cc1b3f90e7",
      "parents": [
        "ce8eb86a5df6d9c000c0db54d699b83c4dae560c"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Jan 26 21:26:25 2026 +0000"
      },
      "committer": {
        "name": "Steve Lawrence",
        "email": "slawrence@apache.org",
        "time": "Tue Jan 27 12:36:45 2026 -0500"
      },
      "message": "Bump actions/setup-java from 5.0.0 to 5.2.0\n\nBumps [actions/setup-java](https://github.com/actions/setup-java) from 5.0.0 to 5.2.0.\n- [Release notes](https://github.com/actions/setup-java/releases)\n- [Commits](https://github.com/actions/setup-java/compare/dded0888837ed1f317902acf8a20df0ad188d165...be666c2fcd27ec809703dec50e508c2fdc7f6654)\n\n---\nupdated-dependencies:\n- dependency-name: actions/setup-java\n  dependency-version: 5.2.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "ce8eb86a5df6d9c000c0db54d699b83c4dae560c",
      "tree": "4d5dba6c1db5916f095ea793cb705063ff229f3b",
      "parents": [
        "52102af997e7d216d33728bf0c2ebfe9e6fc7d5e"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Sep 09 19:01:54 2025 +0000"
      },
      "committer": {
        "name": "Steve Lawrence",
        "email": "slawrence@apache.org",
        "time": "Tue Jan 27 12:36:33 2026 -0500"
      },
      "message": "Bump actions/labeler from 5.0.0 to 6.0.1\n\nBumps [actions/labeler](https://github.com/actions/labeler) from 5.0.0 to 6.0.1.\n- [Release notes](https://github.com/actions/labeler/releases)\n- [Commits](https://github.com/actions/labeler/compare/8558fd74291d67161a8a78ce36a881fa63b766a9...634933edcd8ababfe52f92936142cc22ac488b1b)\n\n---\nupdated-dependencies:\n- dependency-name: actions/labeler\n  dependency-version: 6.0.1\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "52102af997e7d216d33728bf0c2ebfe9e6fc7d5e",
      "tree": "71d8697f485474e32a2fa93c8ab34c5a6a04931e",
      "parents": [
        "6dd0f5a98902b11ed2ef8a1c758522279931ae81"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Dec 09 19:01:57 2025 +0000"
      },
      "committer": {
        "name": "Steve Lawrence",
        "email": "slawrence@apache.org",
        "time": "Tue Jan 27 12:19:09 2026 -0500"
      },
      "message": "Bump SonarSource/sonarqube-scan-action from 5.3.1 to 7.0.0\n\nBumps [SonarSource/sonarqube-scan-action](https://github.com/sonarsource/sonarqube-scan-action) from 5.3.1 to 7.0.0.\n- [Release notes](https://github.com/sonarsource/sonarqube-scan-action/releases)\n- [Commits](https://github.com/sonarsource/sonarqube-scan-action/compare/1a6d90ebcb0e6a6b1d87e37ba693fe453195ae25...a31c9398be7ace6bbfaf30c0bd5d415f843d45e9)\n\n---\nupdated-dependencies:\n- dependency-name: SonarSource/sonarqube-scan-action\n  dependency-version: 7.0.0\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "6dd0f5a98902b11ed2ef8a1c758522279931ae81",
      "tree": "4130c97f22c817e2d7498989f99c57735ab9a2cb",
      "parents": [
        "5360e832bbf5f84e4d8e759a0405cfef670926ef"
      ],
      "author": {
        "name": "Scala Steward",
        "email": "scala_steward@virtuslab.com",
        "time": "Tue Jan 13 20:59:55 2026 +0000"
      },
      "committer": {
        "name": "Steve Lawrence",
        "email": "slawrence@apache.org",
        "time": "Tue Jan 27 11:59:57 2026 -0500"
      },
      "message": "Update sbt-scoverage to 2.4.4\n"
    },
    {
      "commit": "5360e832bbf5f84e4d8e759a0405cfef670926ef",
      "tree": "47cc6096be53bf194f87a010466e2747ad9bfb67",
      "parents": [
        "304c165ef7485619dbfbb386a5f41f3049d96d1e"
      ],
      "author": {
        "name": "Scala Steward",
        "email": "scala_steward@virtuslab.com",
        "time": "Fri Oct 31 14:10:09 2025 +0000"
      },
      "committer": {
        "name": "Steve Lawrence",
        "email": "slawrence@apache.org",
        "time": "Tue Jan 27 11:58:14 2026 -0500"
      },
      "message": "Update sbt-scalafmt to 2.5.6\n"
    },
    {
      "commit": "304c165ef7485619dbfbb386a5f41f3049d96d1e",
      "tree": "148ad21341af241c681a74ecefdb047fa0fda392",
      "parents": [
        "cebee437fb43ae1ff82f8a620bcb640e8613bb54"
      ],
      "author": {
        "name": "Scala Steward",
        "email": "scala_steward@virtuslab.com",
        "time": "Tue Jan 13 14:57:31 2026 +0000"
      },
      "committer": {
        "name": "Steve Lawrence",
        "email": "slawrence@apache.org",
        "time": "Tue Jan 27 11:57:26 2026 -0500"
      },
      "message": "Update sbt-native-packager to 1.11.7\n"
    },
    {
      "commit": "cebee437fb43ae1ff82f8a620bcb640e8613bb54",
      "tree": "fd7392d441c36b2f0a6e553d31f04297272d5289",
      "parents": [
        "4dc86dca639e1d71c0caff46f01352389a2774df"
      ],
      "author": {
        "name": "Scala Steward",
        "email": "scala_steward@virtuslab.com",
        "time": "Mon Jan 05 18:13:53 2026 +0000"
      },
      "committer": {
        "name": "Steve Lawrence",
        "email": "slawrence@apache.org",
        "time": "Tue Jan 27 11:57:10 2026 -0500"
      },
      "message": "Update sbt-unidoc to 0.6.1\n"
    },
    {
      "commit": "4dc86dca639e1d71c0caff46f01352389a2774df",
      "tree": "81f157790ba0b38475e4c6f5157e8487cd3eb9b6",
      "parents": [
        "e6b76fbc8bed5a794e7b2826bff81968114f2d2b"
      ],
      "author": {
        "name": "Scala Steward",
        "email": "scala_steward@virtuslab.com",
        "time": "Sun Oct 05 20:58:29 2025 +0000"
      },
      "committer": {
        "name": "Steve Lawrence",
        "email": "slawrence@apache.org",
        "time": "Tue Jan 27 11:55:19 2026 -0500"
      },
      "message": "Update sbt, scripted-plugin to 1.11.7\n"
    },
    {
      "commit": "e6b76fbc8bed5a794e7b2826bff81968114f2d2b",
      "tree": "045bf2ca864b41c894865e6a7e6388ade19c27f7",
      "parents": [
        "01e5483d7640ab1bd73d384daa9f2f71dc94ba0b"
      ],
      "author": {
        "name": "Steve Lawrence",
        "email": "slawrence@apache.org",
        "time": "Thu Jan 15 12:45:03 2026 -0500"
      },
      "committer": {
        "name": "Steve Lawrence",
        "email": "slawrence@apache.org",
        "time": "Thu Jan 15 13:24:42 2026 -0500"
      },
      "message": "Refactor CLI performance command to reduce overhead\n\nIn the CLI performance command, instead of creating one Future per\nparse/unparse, this now creates one Future per thread, reducing the\nnumber of Futures from potentially hundreds of thousands to a small\nhandful. Test data is now added to a ConcurrentLinkedQueue and the\nFutures read from this queue until empty. Not only does this avoid a\nlarge number of Future allocations, it also more closely mimics common\nreal world usage where there is a single serial producer and multiple\nparallel consumers.\n\nAlso no longer store the results of each parse/unparse run to avoid\nallocations. Instead we just keep track of the number of files processed\nand the total latency and use those numbers to calculate average latency\nat the end.\n\nAlso removes the Either allocation, match/case, and Timer functions in the\ncritical loop.\n\nReports vary about whether all these changes improve performance numbers\nbut they do not seem to make performance worse. And they do make the\nresults of profiling more clear with less allocations.\n\nDAFFODIL-3064\n"
    }
  ],
  "next": "01e5483d7640ab1bd73d384daa9f2f71dc94ba0b"
}
