)]}'
{
  "log": [
    {
      "commit": "3dbd3ecbf1003100086253bdccfd8633166f431e",
      "tree": "a815fcac96519d2ae5c596988c48754a14bff217",
      "parents": [
        "9dccbc3e6013b91d8ddcb416cadae2d993957d7b"
      ],
      "author": {
        "name": "Jannik Lindemann",
        "email": "52833175+janniklinde@users.noreply.github.com",
        "time": "Tue Aug 11 18:39:47 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 11 18:39:47 2026 +0200"
      },
      "message": "[SYSTEMDS-3956] Add AI Policy\n\nAssisted-by: AI"
    },
    {
      "commit": "9dccbc3e6013b91d8ddcb416cadae2d993957d7b",
      "tree": "7566042a6c94dfb887a8733fe4da93978b1dd8aa",
      "parents": [
        "fa38f39d03fce0815521868221b551ea173f1409"
      ],
      "author": {
        "name": "Jannik Lindemann",
        "email": "52833175+janniklinde@users.noreply.github.com",
        "time": "Sat Aug 08 12:39:46 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Aug 08 12:39:46 2026 +0200"
      },
      "message": "[SYSTEMDS-3891] OOC Non-blocking Join and Primitive Simplification"
    },
    {
      "commit": "fa38f39d03fce0815521868221b551ea173f1409",
      "tree": "ffea3e467247e7d1d95362f9fa3119322a9af14f",
      "parents": [
        "2ab704f8fb54bc18da28bb4473847b9523a63133"
      ],
      "author": {
        "name": "Jannik Lindemann",
        "email": "52833175+janniklinde@users.noreply.github.com",
        "time": "Fri Aug 07 15:44:33 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 07 15:44:33 2026 +0200"
      },
      "message": "[SYSTEMDS-3891] Wire OOC Instructions with New Primitives"
    },
    {
      "commit": "2ab704f8fb54bc18da28bb4473847b9523a63133",
      "tree": "da766cfb7516e091cd6da0354b7e7db9b44d6ba9",
      "parents": [
        "91230ccdb4af24b375059a4ffb179d00b6db94a1"
      ],
      "author": {
        "name": "ywcb00",
        "email": "ywcb00@ywcb.org",
        "time": "Fri Aug 07 14:12:58 2026 +0200"
      },
      "committer": {
        "name": "ywcb00",
        "email": "ywcb00@ywcb.org",
        "time": "Fri Aug 07 14:12:58 2026 +0200"
      },
      "message": "[SYSTEMDS-3958] Add XML options for sparsity rewrites.\n\nCloses #2579.\n"
    },
    {
      "commit": "91230ccdb4af24b375059a4ffb179d00b6db94a1",
      "tree": "c6c3ac69feaa6358ebcfe8f493ac5cb1340a5813",
      "parents": [
        "06993dc6f83af50b9c075cd6d6b2519731eec1dc"
      ],
      "author": {
        "name": "Christina Dionysio",
        "email": "dionysio@tu-berlin.de",
        "time": "Fri Aug 07 08:35:28 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 07 08:35:28 2026 +0200"
      },
      "message": "[SYSTEMDS-3947] Introduce robustness check in hyperparameter tuning\n\nThis patch adds a min-max variance measure to Scuro\u0027s hyperparameter tuning functionality in order to avoid overfitting to the validation score. Additionally, it adds the missing parameter setters to multiple representations."
    },
    {
      "commit": "06993dc6f83af50b9c075cd6d6b2519731eec1dc",
      "tree": "792440d89c36a29e613078e8a7f4b6981fba8e2a",
      "parents": [
        "822fd1a902feeea935a2b603ba54774535c27639"
      ],
      "author": {
        "name": "Jakob-al28",
        "email": "149481651+Jakob-al28@users.noreply.github.com",
        "time": "Thu Aug 06 14:52:49 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 06 14:52:49 2026 +0200"
      },
      "message": "[SYSTEMDS-3949] Extend Delta Spark round trip tests (#2580)\n\nAdd three scenarios only an external engine can set up: a log that has rolled\ninto a parquet checkpoint with a delete after it, DATE/TIMESTAMP/DECIMAL\ncolumns that have no SystemDS value type and must be rejected on the Delta\ntype and a table SystemDS creates that Spark then appends to. Also stop\ncountParquet from counting checkpoint files as data files."
    },
    {
      "commit": "822fd1a902feeea935a2b603ba54774535c27639",
      "tree": "6c1f2157d5a100488a45b2f8a8b3b7c3fc7d071b",
      "parents": [
        "fecf1179516768bb675387b4a0048a74712e4329"
      ],
      "author": {
        "name": "Jakob-al28",
        "email": "149481651+Jakob-al28@users.noreply.github.com",
        "time": "Thu Aug 06 14:32:46 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 06 14:32:46 2026 +0200"
      },
      "message": "[SYSTEMDS-3929] Speed up Parquet frame reader/writer (#2528)\n\nRewrites the Parquet frame reader to read columns via parquet\u0027s column API.\n\nCo-authored-by: Jakob-al28 \u003cjakob28@mail.uni-paderborn.com\u003e"
    },
    {
      "commit": "fecf1179516768bb675387b4a0048a74712e4329",
      "tree": "8b4f3c98f2f90a5fdc04d99cc919b3548ce723fb",
      "parents": [
        "a8af26b26b654095bf51626ea4d21beac1f8b8a5"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Aug 06 14:17:56 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 06 14:17:56 2026 +0200"
      },
      "message": "Bump actions/setup-node from 6 to 7 (#2546)\n\nBumps [actions/setup-node](https://github.com/actions/setup-node) from 6 to 7.\n- [Release notes](https://github.com/actions/setup-node/releases)\n- [Commits](https://github.com/actions/setup-node/compare/v6...v7)\n\n---\nupdated-dependencies:\n- dependency-name: actions/setup-node\n  dependency-version: \u00277\u0027\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "a8af26b26b654095bf51626ea4d21beac1f8b8a5",
      "tree": "c6069f019e2bb2468d383293190fcefa5639431a",
      "parents": [
        "4e1c92608797b65e2b09fcd44055f60561045007"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Aug 06 14:17:29 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 06 14:17:29 2026 +0200"
      },
      "message": "Bump docker/login-action from 4 to 4.5.2 (#2571)\n\nBumps [docker/login-action](https://github.com/docker/login-action) from 4 to 4.5.2.\n- [Release notes](https://github.com/docker/login-action/releases)\n- [Commits](https://github.com/docker/login-action/compare/v4...v4.5.2)\n\n---\nupdated-dependencies:\n- dependency-name: docker/login-action\n  dependency-version: 4.5.2\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "4e1c92608797b65e2b09fcd44055f60561045007",
      "tree": "d3c1e002eeab61138266c310c78dc89f77a42e31",
      "parents": [
        "f45b14a10f2feadfe0248d11a301fecbeda113b3"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Aug 06 14:17:01 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 06 14:17:01 2026 +0200"
      },
      "message": "Bump actions/setup-python from 6 to 7 (#2563)\n\nBumps [actions/setup-python](https://github.com/actions/setup-python) from 6 to 7.\n- [Release notes](https://github.com/actions/setup-python/releases)\n- [Commits](https://github.com/actions/setup-python/compare/v6...v7)\n\n---\nupdated-dependencies:\n- dependency-name: actions/setup-python\n  dependency-version: \u00277\u0027\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "f45b14a10f2feadfe0248d11a301fecbeda113b3",
      "tree": "ab5b73212ad054f57a1eeda8e80e46d3efcb3a9d",
      "parents": [
        "697db75ff765b676418482ae9829b861fd8d62b0"
      ],
      "author": {
        "name": "Jannik Lindemann",
        "email": "52833175+janniklinde@users.noreply.github.com",
        "time": "Tue Aug 04 17:39:02 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 04 17:39:02 2026 +0200"
      },
      "message": "[SYSTEMDS-3891] OOC Primitive Simplification and Streamable Injection Robustness"
    },
    {
      "commit": "697db75ff765b676418482ae9829b861fd8d62b0",
      "tree": "1b295a1531a33e6e36b61e81f88e190ece0bc68b",
      "parents": [
        "759d5b69251ac2ebdb10915fc254856ea801159e"
      ],
      "author": {
        "name": "Grigorii Turchenko",
        "email": "turchenko.gregory@gmail.com",
        "time": "Tue Aug 04 17:31:34 2026 +0200"
      },
      "committer": {
        "name": "ywcb00",
        "email": "ywcb00@ywcb.org",
        "time": "Tue Aug 04 17:31:34 2026 +0200"
      },
      "message": "[SYSTEMDS-3955] Support SSL authentication for federated network communication\n"
    },
    {
      "commit": "759d5b69251ac2ebdb10915fc254856ea801159e",
      "tree": "716dd0324d627b96f1489f2d95a0d35e877d02b4",
      "parents": [
        "7a0e5ca0ac41711922dbfafdb0c4820a1d2dce46"
      ],
      "author": {
        "name": "Jannik Lindemann",
        "email": "52833175+janniklinde@users.noreply.github.com",
        "time": "Tue Aug 04 11:19:30 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 04 11:19:30 2026 +0200"
      },
      "message": "[SYSTEMDS-3891] Wire OOC Materialized Stores"
    },
    {
      "commit": "7a0e5ca0ac41711922dbfafdb0c4820a1d2dce46",
      "tree": "a94bdd88197fb443697aed51ed0afe66c76c5b3d",
      "parents": [
        "af500c848d43bb03d66aa2a379eccbb80ef8c7bc"
      ],
      "author": {
        "name": "Jannik Lindemann",
        "email": "52833175+janniklinde@users.noreply.github.com",
        "time": "Mon Aug 03 11:27:17 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 03 11:27:17 2026 +0200"
      },
      "message": "[SYSTEMDS-3891] Add Broadcast and Grouped Reduction Primitives"
    },
    {
      "commit": "af500c848d43bb03d66aa2a379eccbb80ef8c7bc",
      "tree": "5a0f7d19296f1a316bcbacaf5e5ee84e03fd01ba",
      "parents": [
        "bf7b6ba41a8e52f7f1cad2e5e2b9bd7f09b88230"
      ],
      "author": {
        "name": "Jannik Lindemann",
        "email": "52833175+janniklinde@users.noreply.github.com",
        "time": "Sat Aug 01 18:08:26 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Aug 01 18:08:26 2026 +0200"
      },
      "message": "[SYSTEMDS-3891] OOC Add Materialized Planning Support"
    },
    {
      "commit": "bf7b6ba41a8e52f7f1cad2e5e2b9bd7f09b88230",
      "tree": "1e1a7d78d7ecaf109e256ae0b4c76f41029031ae",
      "parents": [
        "595af8324dacc031e66f0fcf04d80d584ca58abd"
      ],
      "author": {
        "name": "Jannik Lindemann",
        "email": "52833175+janniklinde@users.noreply.github.com",
        "time": "Fri Jul 31 20:31:48 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 31 20:31:48 2026 +0200"
      },
      "message": "[SYSTEMDS-3891] OOC Bugfixes and Improved Error Propagation"
    },
    {
      "commit": "595af8324dacc031e66f0fcf04d80d584ca58abd",
      "tree": "4f800b1a1d48f9b2a046ed6e6a3c4c979de4cd81",
      "parents": [
        "fa9824c3f5e8a8359885dcf012d8f83724f44eee"
      ],
      "author": {
        "name": "Tuluyhan Sozen",
        "email": "tuluyhansozen@gmail.com",
        "time": "Thu Jul 30 16:09:54 2026 +0200"
      },
      "committer": {
        "name": "Jannik Lindemann",
        "email": "jannik.lindemann3@gmail.com",
        "time": "Thu Jul 30 16:09:54 2026 +0200"
      },
      "message": "[SYSTEMDS-3894] Add OOC covariance and extend TSMM support\n\nCloses #2529.\n\nCo-authored-by: Astha Shrestha \u003castha.shrestha@campus.tu-berlin.de\u003e\nCo-authored-by: AdityaPandey2612 \u003capande27@uic.edu\u003e\n"
    },
    {
      "commit": "fa9824c3f5e8a8359885dcf012d8f83724f44eee",
      "tree": "a80d79ee14a9e97f966006032cf732261b61d58f",
      "parents": [
        "f62cebd2fea23dd6b45ad86880bd123f6e11d3c0"
      ],
      "author": {
        "name": "Jannik Lindemann",
        "email": "janniklinde@apache.org",
        "time": "Fri Jul 24 18:39:46 2026 +0200"
      },
      "committer": {
        "name": "Jannik Lindemann",
        "email": "janniklinde@apache.org",
        "time": "Fri Jul 24 18:39:46 2026 +0200"
      },
      "message": "Revert \"[MINOR] Downgrade Docker Action Majors\"\n\nThis reverts commit f62cebd2fea23dd6b45ad86880bd123f6e11d3c0.\n"
    },
    {
      "commit": "f62cebd2fea23dd6b45ad86880bd123f6e11d3c0",
      "tree": "37051993de0d94dfd1654bd9c27125a95f4d59d9",
      "parents": [
        "af7cdfced713ace1403cac9568d597fabfc88011"
      ],
      "author": {
        "name": "Jannik Lindemann",
        "email": "janniklinde@apache.org",
        "time": "Fri Jul 24 18:37:07 2026 +0200"
      },
      "committer": {
        "name": "Jannik Lindemann",
        "email": "janniklinde@apache.org",
        "time": "Fri Jul 24 18:37:20 2026 +0200"
      },
      "message": "[MINOR] Downgrade Docker Action Majors\n"
    },
    {
      "commit": "af7cdfced713ace1403cac9568d597fabfc88011",
      "tree": "a80d79ee14a9e97f966006032cf732261b61d58f",
      "parents": [
        "68bd8ef99c2c07295ea1b9099c20f109d0835a79"
      ],
      "author": {
        "name": "Janardhan Pulivarthi",
        "email": "j143@protonmail.com",
        "time": "Fri Jul 24 16:13:23 2026 +0000"
      },
      "committer": {
        "name": "Janardhan Pulivarthi",
        "email": "j143@protonmail.com",
        "time": "Fri Jul 24 21:48:58 2026 +0530"
      },
      "message": "[MINOR] Fix literal parsing issue in svn promote script\n"
    },
    {
      "commit": "68bd8ef99c2c07295ea1b9099c20f109d0835a79",
      "tree": "925a62c90ab856992c4d22d9897172eac7b8e6f8",
      "parents": [
        "d6aabf68674e512c04cea9a5edf7fdb79cbac48a"
      ],
      "author": {
        "name": "ywcb00",
        "email": "ywcb00@ywcb.org",
        "time": "Thu Jul 23 14:18:30 2026 +0200"
      },
      "committer": {
        "name": "ywcb00",
        "email": "ywcb00@ywcb.org",
        "time": "Thu Jul 23 14:18:48 2026 +0200"
      },
      "message": "[SYSTEMDS-2525] Fix sparsity rewrites by switching the MNC estimator to the metadata average estimator\n"
    },
    {
      "commit": "d6aabf68674e512c04cea9a5edf7fdb79cbac48a",
      "tree": "4ec18716562da643ae6cebcc1c2ef4c19c72a2c0",
      "parents": [
        "840fd6ff6b9477009915d6a621cc67c8bc13ca21"
      ],
      "author": {
        "name": "ywcb00",
        "email": "ywcb00@ywcb.org",
        "time": "Thu Jul 23 12:00:12 2026 +0200"
      },
      "committer": {
        "name": "ywcb00",
        "email": "ywcb00@ywcb.org",
        "time": "Thu Jul 23 12:00:12 2026 +0200"
      },
      "message": "[SYSTEMDS-3953] Add test case for array percentiles as argument for the quantile function\n\tNOTE: the tests address the corresponding jira issue and are ignored for now\n"
    },
    {
      "commit": "840fd6ff6b9477009915d6a621cc67c8bc13ca21",
      "tree": "bf3b6717764469e6e54d2ea37732259d65fe5972",
      "parents": [
        "912c5fbd7a0970b7ee8739d5873f8b5d173e0627"
      ],
      "author": {
        "name": "Jannik Lindemann",
        "email": "52833175+janniklinde@users.noreply.github.com",
        "time": "Wed Jul 22 09:29:04 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 22 09:29:04 2026 +0200"
      },
      "message": "[SYSTEMDS-3891] Wire JoinOOCPrimitive (#2566)"
    },
    {
      "commit": "912c5fbd7a0970b7ee8739d5873f8b5d173e0627",
      "tree": "bd9fb45e161f13a95954507e9aacd24525b9967b",
      "parents": [
        "61d5c80ee4e6d1d1e15c09121a7eff8680b8b4e5"
      ],
      "author": {
        "name": "Jannik Lindemann",
        "email": "52833175+janniklinde@users.noreply.github.com",
        "time": "Tue Jul 21 18:46:33 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 21 18:46:33 2026 +0200"
      },
      "message": "[SYSTEMDS-3891] Wire First Reworked OOC Primitives"
    },
    {
      "commit": "61d5c80ee4e6d1d1e15c09121a7eff8680b8b4e5",
      "tree": "e84d1b961723908dd006681d15cb4d7dba3b5b32",
      "parents": [
        "5d81e3d76e686dd5ed6235d17ef011019366a684"
      ],
      "author": {
        "name": "Jannik Lindemann",
        "email": "52833175+janniklinde@users.noreply.github.com",
        "time": "Tue Jul 21 13:52:52 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 21 13:52:52 2026 +0200"
      },
      "message": "[SYSTEMDS-3891] Add OOC Planner and First Primitive Implementations"
    },
    {
      "commit": "5d81e3d76e686dd5ed6235d17ef011019366a684",
      "tree": "c77f4edab4e9e93e7a5800c8594abcc323231342",
      "parents": [
        "07cdffeab5d9634ac890a4e3943d509b49548373"
      ],
      "author": {
        "name": "MegaByteTron",
        "email": "y2r2497h6t@privaterelay.appleid.com",
        "time": "Tue Jul 21 11:23:09 2026 +0200"
      },
      "committer": {
        "name": "ywcb00",
        "email": "ywcb00@ywcb.org",
        "time": "Tue Jul 21 11:24:30 2026 +0200"
      },
      "message": "[SYSTEMDS-3922] Fix distributed (SPARK/FED) quantile pick instruction\n\nCloses #2497\n"
    },
    {
      "commit": "07cdffeab5d9634ac890a4e3943d509b49548373",
      "tree": "5e3007822c973a6516664531a3ef3413f4468689",
      "parents": [
        "c5d06d9f4cbf5dc93eb366d39f37a538fd9b09a3"
      ],
      "author": {
        "name": "Jannik Lindemann",
        "email": "52833175+janniklinde@users.noreply.github.com",
        "time": "Mon Jul 20 11:28:02 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 20 11:28:02 2026 +0200"
      },
      "message": "[SYSTEMDS-3891] Add OOC Primitives"
    },
    {
      "commit": "c5d06d9f4cbf5dc93eb366d39f37a538fd9b09a3",
      "tree": "3ac410f715e8d0fc4418dbdb9fe57291db1e5252",
      "parents": [
        "d5f6950f91a35f3fefcfa196ef78a13efffd5bb1"
      ],
      "author": {
        "name": "Jannik Lindemann",
        "email": "52833175+janniklinde@users.noreply.github.com",
        "time": "Sun Jul 19 20:53:46 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 19 20:53:46 2026 +0200"
      },
      "message": "[SYSTEMDS-3891] Add OOCInstructionUtils"
    },
    {
      "commit": "d5f6950f91a35f3fefcfa196ef78a13efffd5bb1",
      "tree": "21c203926a55ece90b39269176a6387f02aab78a",
      "parents": [
        "fd29db4c4e15967bcef5b7d471d14959f312e396"
      ],
      "author": {
        "name": "Jannik Lindemann",
        "email": "52833175+janniklinde@users.noreply.github.com",
        "time": "Sat Jul 18 19:55:34 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jul 18 19:55:34 2026 +0200"
      },
      "message": "[SYSTEMDS-3891] Add AllocatedOOCStream and ReservationBudget"
    },
    {
      "commit": "fd29db4c4e15967bcef5b7d471d14959f312e396",
      "tree": "b25d5802b52dc6d2b9b358f782080a99cd927073",
      "parents": [
        "0dbd6f89453ed750d75f4e434e685fcef5784142"
      ],
      "author": {
        "name": "Jannik Lindemann",
        "email": "52833175+janniklinde@users.noreply.github.com",
        "time": "Sat Jul 18 13:59:20 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jul 18 13:59:20 2026 +0200"
      },
      "message": "[SYSTEMDS-3891] Add StoreBackedStream"
    },
    {
      "commit": "0dbd6f89453ed750d75f4e434e685fcef5784142",
      "tree": "ad3430493a13353bffd4a4fdfc610048597ac74b",
      "parents": [
        "0c7fe0b1c32a3943f7bd08c7410fd344d5935b19"
      ],
      "author": {
        "name": "Jannik Lindemann",
        "email": "52833175+janniklinde@users.noreply.github.com",
        "time": "Fri Jul 17 13:02:04 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 17 13:02:04 2026 +0200"
      },
      "message": "[SYSTEMDS-3891] Remove Unused OOC Messaging Features"
    },
    {
      "commit": "0c7fe0b1c32a3943f7bd08c7410fd344d5935b19",
      "tree": "5fc1bd297703a2c083d521bde2622ec21de9dbad",
      "parents": [
        "14a586fa672ab5156e51d1f5288f31b7a1524c96"
      ],
      "author": {
        "name": "Jannik Lindemann",
        "email": "52833175+janniklinde@users.noreply.github.com",
        "time": "Fri Jul 17 10:25:21 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 17 10:25:21 2026 +0200"
      },
      "message": "[SYSTEMDS-3891] OOC Memory Allowance/Broker Improvements"
    },
    {
      "commit": "14a586fa672ab5156e51d1f5288f31b7a1524c96",
      "tree": "ca38cdb21e9cbe510fea998291f20307e9d2c941",
      "parents": [
        "924f88cf2b8268e59df06837a254796610e5132e"
      ],
      "author": {
        "name": "Jannik Lindemann",
        "email": "52833175+janniklinde@users.noreply.github.com",
        "time": "Thu Jul 16 15:33:55 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 16 15:33:55 2026 +0200"
      },
      "message": "[OOC] Add StateTable"
    },
    {
      "commit": "924f88cf2b8268e59df06837a254796610e5132e",
      "tree": "8fc03369e7eb0aecf91863b9f1c4970c9d5f0adc",
      "parents": [
        "366a411f5a0bc5413aff17dc39f4b49bfff881df"
      ],
      "author": {
        "name": "Jannik Lindemann",
        "email": "52833175+janniklinde@users.noreply.github.com",
        "time": "Thu Jul 16 10:30:53 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 16 10:30:53 2026 +0200"
      },
      "message": "[SYSTEMDS-3891] Add Materialized OOC Structures"
    },
    {
      "commit": "366a411f5a0bc5413aff17dc39f4b49bfff881df",
      "tree": "f13694d4301addc1d4af51184c96101cbc965b13",
      "parents": [
        "b51b13802860f8581ea4d8d30e314dfa59cdfcb4"
      ],
      "author": {
        "name": "Jannik Lindemann",
        "email": "janniklinde@apache.org",
        "time": "Mon Jul 13 19:46:01 2026 +0000"
      },
      "committer": {
        "name": "Jannik Lindemann",
        "email": "janniklinde@apache.org",
        "time": "Mon Jul 13 19:46:01 2026 +0000"
      },
      "message": "[maven-release-plugin] prepare for next development iteration\n"
    },
    {
      "commit": "b51b13802860f8581ea4d8d30e314dfa59cdfcb4",
      "tree": "e5d0bb7a3e9f027bf93fd37acc8c4a894e1d9b30",
      "parents": [
        "1bb24bc5b52ef679345aafc09ce1a4546e2519e9"
      ],
      "author": {
        "name": "Jannik Lindemann",
        "email": "janniklinde@apache.org",
        "time": "Mon Jul 13 19:45:38 2026 +0000"
      },
      "committer": {
        "name": "Jannik Lindemann",
        "email": "janniklinde@apache.org",
        "time": "Mon Jul 13 19:45:38 2026 +0000"
      },
      "message": "[maven-release-plugin] prepare release 3.4.0-rc2\n"
    },
    {
      "commit": "1bb24bc5b52ef679345aafc09ce1a4546e2519e9",
      "tree": "f13694d4301addc1d4af51184c96101cbc965b13",
      "parents": [
        "a744715257bb4de892ae15afcb74c55e4bc552ae"
      ],
      "author": {
        "name": "Elias Strauss",
        "email": "elias.strauss@tu-berlin.de",
        "time": "Mon Jul 13 19:06:43 2026 +0200"
      },
      "committer": {
        "name": "Elias Strauss",
        "email": "elias.strauss@tu-berlin.de",
        "time": "Mon Jul 13 19:09:16 2026 +0200"
      },
      "message": "[Minor] Update python api README.md\n"
    },
    {
      "commit": "a744715257bb4de892ae15afcb74c55e4bc552ae",
      "tree": "8891c7e2952c3aa4281d5b7d795f06d236315baa",
      "parents": [
        "895bbeb654f4cf348c567a0094be6e5b45d12ddc"
      ],
      "author": {
        "name": "Jannik Lindemann",
        "email": "jannik.lindemann3@gmail.com",
        "time": "Mon Jul 13 18:17:25 2026 +0200"
      },
      "committer": {
        "name": "Jannik Lindemann",
        "email": "jannik.lindemann3@gmail.com",
        "time": "Mon Jul 13 18:18:09 2026 +0200"
      },
      "message": "[MINOR][FIX] Add SciPy as Dependency\n"
    },
    {
      "commit": "895bbeb654f4cf348c567a0094be6e5b45d12ddc",
      "tree": "86a834e9b7ef56d6407e3e1508012cce26dd0d40",
      "parents": [
        "21ff9e16c1b4961fb26740fc4644b562523f75a7"
      ],
      "author": {
        "name": "Jannik Lindemann",
        "email": "janniklinde@apache.org",
        "time": "Mon Jul 13 14:20:50 2026 +0000"
      },
      "committer": {
        "name": "Jannik Lindemann",
        "email": "janniklinde@apache.org",
        "time": "Mon Jul 13 14:20:50 2026 +0000"
      },
      "message": "[maven-release-plugin] prepare for next development iteration\n"
    },
    {
      "commit": "21ff9e16c1b4961fb26740fc4644b562523f75a7",
      "tree": "f233afaab4dc6a76afa52f34d916b095cc9dca41",
      "parents": [
        "ea2fd20aa71a765c94b3963e5bf05e235e9fca92"
      ],
      "author": {
        "name": "Jannik Lindemann",
        "email": "janniklinde@apache.org",
        "time": "Mon Jul 13 14:20:36 2026 +0000"
      },
      "committer": {
        "name": "Jannik Lindemann",
        "email": "janniklinde@apache.org",
        "time": "Mon Jul 13 14:20:36 2026 +0000"
      },
      "message": "[maven-release-plugin] prepare release 3.4.0-rc1\n"
    },
    {
      "commit": "ea2fd20aa71a765c94b3963e5bf05e235e9fca92",
      "tree": "ef1dffc5d6b44f07b1f8202363db59197211d9fe",
      "parents": [
        "1f44aa3d8adcf6bba0f80e542a08802daef487d6"
      ],
      "author": {
        "name": "Jannik Lindemann",
        "email": "jannik.lindemann3@gmail.com",
        "time": "Mon Jul 13 13:19:57 2026 +0200"
      },
      "committer": {
        "name": "Jannik Lindemann",
        "email": "jannik.lindemann3@gmail.com",
        "time": "Mon Jul 13 13:19:57 2026 +0200"
      },
      "message": "[MINOR] Add Java 17 Module Access Options\n"
    },
    {
      "commit": "1f44aa3d8adcf6bba0f80e542a08802daef487d6",
      "tree": "8b17083433259be4daed66dd55963565723c57d2",
      "parents": [
        "f81e669880ea96b184ae7882470814bd07bcac60"
      ],
      "author": {
        "name": "Jannik Lindemann",
        "email": "jannik.lindemann3@gmail.com",
        "time": "Mon Jul 13 12:46:10 2026 +0200"
      },
      "committer": {
        "name": "Jannik Lindemann",
        "email": "jannik.lindemann3@gmail.com",
        "time": "Mon Jul 13 12:46:10 2026 +0200"
      },
      "message": "[MINOR] Prepare Release Metadata for SystemDS 3.4.0\n"
    },
    {
      "commit": "f81e669880ea96b184ae7882470814bd07bcac60",
      "tree": "efba91d019186a07bce42f085155f44c30f6a3dc",
      "parents": [
        "b3344d029ed8cccf200159a9a20fdfe24afb34ed"
      ],
      "author": {
        "name": "Jakob-al28",
        "email": "149481651+Jakob-al28@users.noreply.github.com",
        "time": "Sun Jul 12 22:38:03 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 12 22:38:03 2026 +0200"
      },
      "message": "[SYSTEMDS-3949] Column API parquet decode for Delta frame reads (#2535)\n\nUpgrade the underlying Parquet readers for the Delta file format to use the Column API parquet decode."
    },
    {
      "commit": "b3344d029ed8cccf200159a9a20fdfe24afb34ed",
      "tree": "fcc179256dfb646fea334081db942773b53ede08",
      "parents": [
        "e5578364bfe4167e6e9b289d439bfd0ae034173b"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Sun Jul 12 22:05:15 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 12 22:05:15 2026 +0200"
      },
      "message": "Bump actions/setup-python from 5 to 6 (#2536)\n\nBumps [actions/setup-python](https://github.com/actions/setup-python) from 5 to 6.\n- [Release notes](https://github.com/actions/setup-python/releases)\n- [Commits](https://github.com/actions/setup-python/compare/v5...v6)\n\n---\nupdated-dependencies:\n- dependency-name: actions/setup-python\n  dependency-version: \u00276\u0027\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "e5578364bfe4167e6e9b289d439bfd0ae034173b",
      "tree": "64fd40d234a793730adc5ccd882a6811dbf39792",
      "parents": [
        "108229bb1767c2ff8b65dd23f010a9b5824cc661"
      ],
      "author": {
        "name": "Jannik Lindemann",
        "email": "52833175+janniklinde@users.noreply.github.com",
        "time": "Tue Jul 07 14:27:01 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 07 14:27:01 2026 +0200"
      },
      "message": "[OOC] Adapt OOCStream to Forward QueueCallbacks (#2537)"
    },
    {
      "commit": "108229bb1767c2ff8b65dd23f010a9b5824cc661",
      "tree": "8185e5bd63f10cae0ad2977afecef64c3a0b35dc",
      "parents": [
        "afe793ae51d021453ae766e88d03923507cbf1ee"
      ],
      "author": {
        "name": "Jannik Lindemann",
        "email": "52833175+janniklinde@users.noreply.github.com",
        "time": "Tue Jul 07 10:16:06 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 07 10:16:06 2026 +0200"
      },
      "message": "[OOC] Add OOCPackedCache (#2534)\n\nAdds a new OOCCache implementation that supports packing small tiles together into one logical cache entry."
    },
    {
      "commit": "afe793ae51d021453ae766e88d03923507cbf1ee",
      "tree": "dfb7a8f0148ec2fa75ce51fb94182667c1e63e85",
      "parents": [
        "56504cdbc7cd197d634fbd63e6dd320a49391eb2"
      ],
      "author": {
        "name": "Jannik Lindemann",
        "email": "52833175+janniklinde@users.noreply.github.com",
        "time": "Mon Jul 06 16:40:17 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 06 16:40:17 2026 +0200"
      },
      "message": "[OOC] Add OOCCache (#2533)"
    },
    {
      "commit": "56504cdbc7cd197d634fbd63e6dd320a49391eb2",
      "tree": "725441d033d03cb266fcad3e345dacfdd1db518b",
      "parents": [
        "c0d1229ec5c968243b8ae516b0b6165151d1ae17"
      ],
      "author": {
        "name": "Sebastian Baunsgaard",
        "email": "baunsgaard@apache.org",
        "time": "Mon Jul 06 15:15:40 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 06 15:15:40 2026 +0200"
      },
      "message": "[CI] Add Java Format CI check for pull requests (#2527)\n\nAdd a workflow that enforces dev/CodeStyle_eclipse.xml on the Java files changed by a pull request. It applies the Eclipse formatter (via formatter-maven-plugin) to only the changed src/main/java and src/test/java files and fails if that produces any diff, printing the required changes."
    },
    {
      "commit": "c0d1229ec5c968243b8ae516b0b6165151d1ae17",
      "tree": "43b3cb5186a9ba8bcbac6cb4ed7027a65907f0b6",
      "parents": [
        "0f053524e34b9c8d98bb2773cafd2f9f032df181"
      ],
      "author": {
        "name": "Jannik Lindemann",
        "email": "52833175+janniklinde@users.noreply.github.com",
        "time": "Sun Jul 05 15:56:10 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 05 15:56:10 2026 +0200"
      },
      "message": "[OOC] IO Handler Performance Improvements and Generalization (#2532)\n\nImprove performance and generality of OOCMatrixIOHandler. \nIntroduce experimental input/output streams that worked better in practice for OOC spilling in local experiments.\nAdd lightweight OOCFuture to replace CompletableFuture in hot paths."
    },
    {
      "commit": "0f053524e34b9c8d98bb2773cafd2f9f032df181",
      "tree": "6593e36c80221e6ca06a571e30704ce99fb629cf",
      "parents": [
        "fe750dc15e568836cbc00070eb4ff7d412659a4c"
      ],
      "author": {
        "name": "Sebastian Baunsgaard",
        "email": "baunsgaard@apache.org",
        "time": "Fri Jul 03 23:03:40 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 03 23:03:40 2026 +0200"
      },
      "message": "[SYSTEMDS-3949] Add Demo for Databricks Workspace Execution (#2520)\n\nAdds self contained guide and scripts to enable users to run SystemDS on Databricks workspaces."
    },
    {
      "commit": "fe750dc15e568836cbc00070eb4ff7d412659a4c",
      "tree": "0a56b77eb42b6c545fda1c93b12c36abc6f3c894",
      "parents": [
        "85ea875337769607502a418a2e60cfa07de37757"
      ],
      "author": {
        "name": "Sebastian Baunsgaard",
        "email": "baunsgaard@apache.org",
        "time": "Fri Jul 03 23:02:00 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 03 23:02:00 2026 +0200"
      },
      "message": "[SYSTEMDS-3949] Add native Delta Lake frame read/write via Delta Kernel (#2515)\n\n* [SYSTEMDS-3949] Add native Delta Lake frame read/write via Delta Kernel\n\nExtend the native Delta Lake support from matrices to frames, reading and\nwriting Delta Lake tables through the Spark-free Delta Kernel library on the\nsingle-node CP path. DML read/write with format\u003d\"delta\" now works for\nframes, discovering schema, column names, and dimensions directly from the\ntable."
    },
    {
      "commit": "85ea875337769607502a418a2e60cfa07de37757",
      "tree": "dba57837a4920eb33769b2ae9d57656509e7c73e",
      "parents": [
        "457a676687c739a01144fd517f6a8d8a80b99105"
      ],
      "author": {
        "name": "Jannik Lindemann",
        "email": "52833175+janniklinde@users.noreply.github.com",
        "time": "Fri Jul 03 13:38:32 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 03 13:38:32 2026 +0200"
      },
      "message": "[OOC] Move I/O Related Classes to cache.io Package (#2531)"
    },
    {
      "commit": "457a676687c739a01144fd517f6a8d8a80b99105",
      "tree": "a7d8b6cd78414148cccdf707d5401841c490f603",
      "parents": [
        "c099a2f09b9c882c33eda145c83c782a6d4a5c99"
      ],
      "author": {
        "name": "Jannik Lindemann",
        "email": "52833175+janniklinde@users.noreply.github.com",
        "time": "Fri Jul 03 12:24:40 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 03 12:24:40 2026 +0200"
      },
      "message": "[OOC] Move Old Files to Legacy Package (#2530)\n\nThis commit moves old files that are intended to be replaced by a new cache into cache.legacy"
    },
    {
      "commit": "c099a2f09b9c882c33eda145c83c782a6d4a5c99",
      "tree": "301f25542e32654cfe142aa4b759603b5ffbdc97",
      "parents": [
        "4ce34d6ba0f4ce5bb8e9e27102d3683763deec0a"
      ],
      "author": {
        "name": "Jessica Priebe",
        "email": "jessica.priebe@web.de",
        "time": "Wed Jul 01 17:00:10 2026 +0200"
      },
      "committer": {
        "name": "Jannik Lindemann",
        "email": "jannik.lindemann3@gmail.com",
        "time": "Wed Jul 01 17:00:10 2026 +0200"
      },
      "message": "[SYSTEMDS-3891] Add OOC reshape\n\nCloses #2521.\n"
    },
    {
      "commit": "4ce34d6ba0f4ce5bb8e9e27102d3683763deec0a",
      "tree": "7f158359d1d5a839ecc99de280f58442accd62d1",
      "parents": [
        "bdad19219627a50528322a8224a564abd3b87991"
      ],
      "author": {
        "name": "Christina Dionysio",
        "email": "dionysio@tu-berlin.de",
        "time": "Wed Jul 01 14:38:54 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 01 14:38:54 2026 +0200"
      },
      "message": "[SYSTEMDS-3835] Fine grained window size parameters \n\nThis patch adds a mechanism to evaluate more fine grained context windows in the unimodal optimizer."
    },
    {
      "commit": "bdad19219627a50528322a8224a564abd3b87991",
      "tree": "0eb32b8defad27b9978c1f93053e296d1827955c",
      "parents": [
        "e53b5c0ba4a9bc9091e3b6011d0167ee8fa88b0c"
      ],
      "author": {
        "name": "ywcb00",
        "email": "52667438+ywcb00@users.noreply.github.com",
        "time": "Mon Jun 29 13:07:01 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 29 13:07:01 2026 +0200"
      },
      "message": "[MINOR][TEST] Add Asserts to ScalarIOTest for Result Validation (#2522)\n\nThis PR fixes the ScalarIOTest by adding respective asserts to validate the output and uncommenting checks about the variables written to disk.\nAdditionally, some unnecessary indents in the test class are removed."
    },
    {
      "commit": "e53b5c0ba4a9bc9091e3b6011d0167ee8fa88b0c",
      "tree": "c156f775f03c46fc2c93b1a499384c983575622c",
      "parents": [
        "e66f2760e5fb61b300ff274e2ba4b8d14dcbd0b1"
      ],
      "author": {
        "name": "Sebastian Baunsgaard",
        "email": "baunsgaard@apache.org",
        "time": "Sun Jun 28 23:17:52 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jun 28 23:17:52 2026 +0200"
      },
      "message": "[SYSTEMDS-3949] Add native Delta Lake matrix read/write via Delta Kernel (#2511)\n\nIntroduce a DELTA file format that reads and writes Delta Lake tables\nnatively through the Spark-free Delta Kernel library, for matrices on the\nsingle-node CP path. DML read/write with format\u003d\"delta\"."
    },
    {
      "commit": "e66f2760e5fb61b300ff274e2ba4b8d14dcbd0b1",
      "tree": "b9099e309a48927847d064478c14d76011f37bd1",
      "parents": [
        "80022a22cc8548aaa57b7ad0dbbfd6ff6c8405cf"
      ],
      "author": {
        "name": "Sebastian Baunsgaard",
        "email": "baunsgaard@apache.org",
        "time": "Sun Jun 28 14:56:13 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jun 28 14:56:13 2026 +0200"
      },
      "message": "[BWARE] Restructure CLALibBinaryCellOp and decompression fallbacks (#2519)\n\nRestructure CLALibBinaryCellOp and decompression fallbacks for binary ops\n\nReworks how the compressed library handles binary cell-wise operations,\nbroadening the set of inputs it can keep compressed and tightening the\n\"give up and decompress\" path so it is consistent across operation\nshapes."
    },
    {
      "commit": "80022a22cc8548aaa57b7ad0dbbfd6ff6c8405cf",
      "tree": "31028c2c816a37eb78e96aa2b6be531349a99098",
      "parents": [
        "384a8dc671148f59ca28b5330a128f39efdf1dbf"
      ],
      "author": {
        "name": "Sebastian Baunsgaard",
        "email": "baunsgaard@apache.org",
        "time": "Sat Jun 27 20:08:38 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jun 27 20:08:38 2026 +0200"
      },
      "message": "[MINOR] Reference-count shared Spark context to prevent concurrent shutdown (#2516)\n\nThe singleton JVM-wide SparkContext in SparkExecutionContext was stopped\nunconditionally at the end of every DMLScript.execute() run. When two DML\nscript executions run concurrently in the same JVM (e.g. surefire parallel\ntests with parallel\u003dclasses and threadCount\u003d2), one execution finishing its\nscript would call close() and stop the context while the other execution\nstill had an in-flight spark job. The wedged job never receives a completion\nevent from the now-stopped DAGScheduler."
    },
    {
      "commit": "384a8dc671148f59ca28b5330a128f39efdf1dbf",
      "tree": "f8fcc738f7d37fd5de0ff2921b58484b493b163c",
      "parents": [
        "5b891a25960d152ed37c33f009b771cc3a885b63"
      ],
      "author": {
        "name": "Sebastian Baunsgaard",
        "email": "baunsgaard@apache.org",
        "time": "Fri Jun 26 17:59:52 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 26 17:59:52 2026 +0200"
      },
      "message": "[MINOR][CI] Run component.c tests in parallel again (#2518)\n\nRemove -Dtest-threadCount\u003d1 -Dtest-forkCount\u003d1 from the component.c test matrix entry so these tests run with the default parallel fork/thread configuration instead of serially."
    },
    {
      "commit": "5b891a25960d152ed37c33f009b771cc3a885b63",
      "tree": "637a0aec701baf7c4ef2c7d9c4684a9ca3a00140",
      "parents": [
        "b51bde10022962fc7856f23a5c682f3f523de25d"
      ],
      "author": {
        "name": "Sebastian Baunsgaard",
        "email": "baunsgaard@apache.org",
        "time": "Fri Jun 26 17:15:32 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 26 17:15:32 2026 +0200"
      },
      "message": "[BWARE] Tighten MatrixBlock quantile/sort API surface (#2513)\n\nTightens the MatrixBlock quantile/sort API surface so the entry points are sealed against accidental overrides and the weighted/unweighted quantile logic is clearly separated."
    },
    {
      "commit": "b51bde10022962fc7856f23a5c682f3f523de25d",
      "tree": "39d2ff3e2e72a0423e3279dbf86ca221c976ca2c",
      "parents": [
        "d4e7defc9b1dab1562ff8325c8dad6b83c1dbd50"
      ],
      "author": {
        "name": "Sebastian Baunsgaard",
        "email": "baunsgaard@apache.org",
        "time": "Fri Jun 26 15:41:42 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 26 15:41:42 2026 +0200"
      },
      "message": "Serialize federated monitoring and multitenant tests in CI (#2517)\n\nThe **.functions.federated.monitoring.**,**.functions.federated.multitenant.**\njob was the only federated test group running with the default surefire\nparallelism (parallel\u003dclasses, threadCount\u003d2). \n\nRun this group with -Dtest-threadCount\u003d1 -Dtest-forkCount\u003d1, matching every\nother federated group."
    },
    {
      "commit": "d4e7defc9b1dab1562ff8325c8dad6b83c1dbd50",
      "tree": "5d9107b66344495ef9b8ca2fab754de33f79ca8f",
      "parents": [
        "abddc1d5091ff50af43a4073bb14ebbbf6232906"
      ],
      "author": {
        "name": "Sebastian Baunsgaard",
        "email": "baunsgaard@apache.org",
        "time": "Thu Jun 25 13:49:27 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 25 13:49:27 2026 +0200"
      },
      "message": "[MINOR] Bump jackson to 2.15.4 (core/databind/annotations) (#2512)\n\n* Bump jackson core/databind/annotations to 2.15.4\n\nAlign the full jackson trio on 2.15.4, the latest patch in the 2.15.x line. Previously only jackson-databind was declared (2.15.2) while jackson-core and jackson-annotations were resolved transitively, now they are all three explicit."
    },
    {
      "commit": "abddc1d5091ff50af43a4073bb14ebbbf6232906",
      "tree": "82b5dcd7f6aa0e765ffeab737e1f17f80cf2e7ba",
      "parents": [
        "0637bf15958df968c08f69771091b79db33421a2"
      ],
      "author": {
        "name": "Sebastian Baunsgaard",
        "email": "baunsgaard@apache.org",
        "time": "Thu Jun 25 13:14:25 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 25 13:14:25 2026 +0200"
      },
      "message": "[BWARE] Add sort support to compressed column groups (#2507)\n\nAdd sort support to compressed column groups"
    },
    {
      "commit": "0637bf15958df968c08f69771091b79db33421a2",
      "tree": "4e868fb17f403c2bb3c7c13005caf722e4430d7c",
      "parents": [
        "d3f6549f5741b3dff85c5b9460cda5f9744b4502"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Jun 24 15:31:25 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 24 15:31:25 2026 +0200"
      },
      "message": "Bump actions/cache from 5 to 6 (#2506)\n\nBumps [actions/cache](https://github.com/actions/cache) from 5 to 6.\n- [Release notes](https://github.com/actions/cache/releases)\n- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)\n- [Commits](https://github.com/actions/cache/compare/v5...v6)"
    },
    {
      "commit": "d3f6549f5741b3dff85c5b9460cda5f9744b4502",
      "tree": "8f3489ce91f29ac2f02d830ca823e5175af020cc",
      "parents": [
        "77da77319fed1186a378eb3025323c79dcc0f8d5"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Jun 24 15:31:06 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 24 15:31:06 2026 +0200"
      },
      "message": "Bump actions/checkout from 6 to 7 (#2493)\n\nBumps [actions/checkout](https://github.com/actions/checkout) from 6 to 7.\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/v6...v7)"
    },
    {
      "commit": "77da77319fed1186a378eb3025323c79dcc0f8d5",
      "tree": "643c46aadf12abecc0b6c80ad8ca7ffca4d88cda",
      "parents": [
        "e295b40e7bb81e6212fff938a63f08f118ed6e94"
      ],
      "author": {
        "name": "Sebastian Baunsgaard",
        "email": "baunsgaard@apache.org",
        "time": "Wed Jun 24 14:43:42 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 24 14:43:42 2026 +0200"
      },
      "message": "[MINOR][CI] Make federated client and monitoring threads daemon (#2508)\n\nSeveral federated Netty event-loop groups and a monitoring stats pool used\nnon-daemon threads, which can keep a surefire test fork JVM alive after its\ntests complete and stall the job until the GitHub Actions timeout. This is\nthe same class of leak addressed for the server-side worker and common\nthread pools, applied to the remaining sources.\n\nGraceful shutdown remains the normal path; daemon threads ensure a leaked or\nin-flight group can never block fork/JVM exit."
    },
    {
      "commit": "e295b40e7bb81e6212fff938a63f08f118ed6e94",
      "tree": "7c1eea3aca2fa69fee0bcca707f7b082fcd775e4",
      "parents": [
        "b20b5b95dd952adf2b2edc398f0b318cf81345d3"
      ],
      "author": {
        "name": "Sebastian Baunsgaard",
        "email": "baunsgaard@apache.org",
        "time": "Wed Jun 24 13:29:16 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 24 13:29:16 2026 +0200"
      },
      "message": "[BWARE] Add removeEmpty support to compressed column groups (#2504)\n\nImplement removeEmptyRows and removeEmptyCols for compressed matrices without full decompression. Add CLALibRemoveEmpty driver and LibMatrixReorg helpers (rmemptyEarlyAbort/rmemptyUnsafe), per-column-group removeEmptyRows/removeEmptyColsSubset, dictionary sliceColumns, and offset/mapping support for index-only row removal."
    },
    {
      "commit": "b20b5b95dd952adf2b2edc398f0b318cf81345d3",
      "tree": "a7bc73a9e38d84b7cb0d4acdec5f0b11b66fae94",
      "parents": [
        "be823ef38ab8f187bfe3d8c7448c4f3622c47367"
      ],
      "author": {
        "name": "Sebastian Baunsgaard",
        "email": "baunsgaard@apache.org",
        "time": "Wed Jun 24 11:17:31 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 24 11:17:31 2026 +0200"
      },
      "message": "[MINOR] Add ToString test for decimal-formatting in toString builtin (#2503)\n\nAdds new test cases and a code cleanup that exercise toString(X, rows\u003d, cols\u003d, decimal\u003d) with values that hit common formatting edge cases: integer-valued scalars, mid-range decimals, requested decimals beyond the value\u0027s precision, rounding at the last requested digit, and small near-zero values."
    },
    {
      "commit": "be823ef38ab8f187bfe3d8c7448c4f3622c47367",
      "tree": "3583ca2e545f074bc0a7fefa5885f514ef8d201f",
      "parents": [
        "2687bbea34edf29032bd8a91dfabb86fc8579fb8"
      ],
      "author": {
        "name": "Sebastian Baunsgaard",
        "email": "baunsgaard@apache.org",
        "time": "Wed Jun 24 01:55:25 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 24 01:55:25 2026 +0200"
      },
      "message": "[MINOR][CI] Raise federated request timeout for multitenant Spark tests (#2505)\n\n* Raise federated request timeout for multitenant Spark tests\n\nSet sysds.federated.timeout in the multi-tenant test config from 16s to\n60s. The 16s bound was too aggressive for the Spark-backed (SP) variants\nof the federated multitenant reuse tests: Spark context creation alone\ntakes ~14s, so under shared CI load a single federated request (both the\nrightIndex/rblk instruction execution and the end-of-run stats\ncollection) routinely exceeded 16s and threw TimeoutException."
    },
    {
      "commit": "2687bbea34edf29032bd8a91dfabb86fc8579fb8",
      "tree": "04e0f1877e4330451c0a4923015bda85fd850c99",
      "parents": [
        "d71d4699817e1e95dabedd691abb8d171c4569de"
      ],
      "author": {
        "name": "Sebastian Baunsgaard",
        "email": "baunsgaard@apache.org",
        "time": "Wed Jun 24 00:57:29 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 24 00:57:29 2026 +0200"
      },
      "message": "[BWARE] Handle hash columns in transform decoders and tighten decode metadata (#2479)\n\nReworks the transform decoders so feature-hashed columns survive the inverse-transform path and decode metadata is initialized consistently. The dummycode hash domain size K is now recovered from the meta cell instead of numDistinct, and each decoder builds its output-\u003esource column mapping in initMetaData via a shared helper that accounts for dummycode expansion. DecoderRecode skips hash columns (their bucket codes pass through unchanged), applies recode-on-output when dummycoding is present, and reports a bounded error on malformed recode entries.\n\nThe parallel row-block decode is hoisted into the base Decoder so all decoders share it (DecoderComposite drops its own override); DecoderDummycode gains separate dense/sparse paths; DecoderBin serialization is fixed to persist the column mappings and the dead _numBins field is removed; DecoderFactory routes the hash/dummycode/bin/passthrough column sets accordingly. StringArray.getAsDouble also gets a behavior-equivalent boolean-token fast path (drive-by perf cleanup).\n\nTesting: a new TransformDecodeRoundTripTest covers exact-inverse round trips (dense/sparse/parallel), hash + dummycode + bin combinations, federated sub-range decoding, and error/edge paths (corrupt recode meta, parallel-decode interruption, base sub-range rejection); TransformDecodeTest adds dense/sparse hash + dummycode consistency cases."
    },
    {
      "commit": "d71d4699817e1e95dabedd691abb8d171c4569de",
      "tree": "ea454e9c12616a54e8793a06c70f9bd6299892b0",
      "parents": [
        "38718092696497aa354db73e828d68f94ad51620"
      ],
      "author": {
        "name": "Sebastian Baunsgaard",
        "email": "baunsgaard@apache.org",
        "time": "Tue Jun 23 19:49:55 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 23 19:49:55 2026 +0200"
      },
      "message": "[BWARE] Tune compressed matmul fast paths and Spark execution decisions (#2483)\n\nMixes two related performance changes: refined compressed multiply heuristics, and a Spark-vs-CP decision refresh on the Hop layer.\n\nCLALib matmul changes:\n- CLALibMMChain: for XtXv with few col groups and a wide-enough matrix, compute X\u0027 * X via leftMultByTransposeSelf and finish with a regular matrix multiply against v. Cheaper than chaining when the X\u0027 * X path can stay compressed\n- CLALibTSMM: refactor leftMultByTransposeSelf into a package-private helper so MMChain can call it; widen the ColGroupUncompressed handling\n- CLALibRightMultBy: stop forcing decompression for ASDC / ASDCZero inputs; they have working preAggregate paths that beat the dense fallback\n- CLALibCompAgg: fix blklen rounding so the last partition is not short by k rows on parallel aggregates\n\nSpark/CP exec-decision refresh (Hop, UnaryOp, BinaryOp):\n- Hop: new helpers hasSparkOutput() and isScalarOrVectorBelowBlockSize() shared between unary and binary decision points\n- UnaryOp.optFindExecType: replace the inline chain of negations with isDisallowedSparkOps(), allow Frame outputs, and pull unary ops into Spark when the input already has a Spark output; gated on the ALLOW_TRANSITIVE_SPARK_EXEC_TYPE flag so it shares a kill-switch with the binary path\n- BinaryOp.optFindExecType: same kind of restructuring; allow matrix-or-frame outputs to be pulled into Spark when exactly one operand is a scalar or small vector\n\nInstruction-side adjustments:\n- VariableCPInstruction (CAST_AS_MATRIX from frame): use the parallel MatrixBlockFromFrame.convertToMatrixBlock(fin, k) path instead of the single-threaded DataConverter helper\n- ParameterizedBuiltinCPInstruction (transformdecode): call the parallel decoder.decode(data, out, k) overload using InfrastructureAnalyzer.getLocalParallelism()\n- DecoderComposite (parallel decode): parallelize over row blocks instead of over decoders, so the sub-decoders still run in order within each block (e.g. recode-on-output depends on the category indexes from the preceding dummycode decoder); fall back to the sequential path for k \u003c\u003d 1\n\nTesting:\n- New CompilerTestBase harness for compile-time exec-type assertions, plus SparkTransitiveExecTypeCompileTest and an end-to-end SparkTransitiveExecTypeTest (with DML) covering the unary/binary transitive Spark pull, its multi-consumer guard, the cumulative-op exclusion, and the flag-off kill-switch\n- CLALibMMChainTest, CLALibRightMultBySDCTest, and DecoderCompositeTest for the compressed matmul fast paths, ASDC right-multiply, and parallel composite decode; shared helpers added to CompressedTestBase"
    },
    {
      "commit": "38718092696497aa354db73e828d68f94ad51620",
      "tree": "90c0308a67e6054a3269d7319c8c76b8150c2156",
      "parents": [
        "648a49fd7a4215e908cf5781b31409427f55c6aa"
      ],
      "author": {
        "name": "Sebastian Baunsgaard",
        "email": "baunsgaard@apache.org",
        "time": "Tue Jun 23 14:50:41 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 23 14:50:41 2026 +0200"
      },
      "message": "[MINOR] Fix class-init deadlock between AOffset and its subclasses (#2502)\n\nAOffset initialized a cached empty slice in its static initializer by\ninstantiating its own OffsetEmpty subclass. Since OffsetEmpty (and the\nother offset subclasses) depend on AOffset being initialized first, this\nformed a superclass/subclass class-initialization cycle. When two threads\nfirst touched the offset classes concurrently (e.g. parallel test\nexecution), each could hold one class\u0027s init monitor while waiting for the\nother, deadlocking on the JVM class-initialization monitors. Such a\ndeadlock is invisible to the JVM deadlock detector and cannot be\ninterrupted, so the affected JVM hangs indefinitely. It only manifests\nunder concurrent first-touch, which is why it never reproduced in\nsingle-threaded local runs.\n\nDefer the empty slice to a lazy holder accessed via emptySlice(), so\nAOffset\u0027s static initializer no longer references any subclass. By the\ntime the holder is touched, AOffset is already initialized, so no cycle\nexists.\n\nAdd a regression test that forces concurrent first-initialization of the\noffset classes through a dedicated class loader across repeated rounds and\nfails if it does not complete promptly."
    },
    {
      "commit": "648a49fd7a4215e908cf5781b31409427f55c6aa",
      "tree": "41d276406fe8fef70062e030851ed953868cad5a",
      "parents": [
        "44bb9bfadfeb0d83b67fc9c280e4b5a6f41cc97b"
      ],
      "author": {
        "name": "Christina Dionysio",
        "email": "dionysio@tu-berlin.de",
        "time": "Tue Jun 23 14:37:11 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 23 14:37:11 2026 +0200"
      },
      "message": "[MINOR] Improve efficiency of Scuro tests"
    },
    {
      "commit": "44bb9bfadfeb0d83b67fc9c280e4b5a6f41cc97b",
      "tree": "9bd3fc3889059a2aaafbd1c396725e0e217aebc8",
      "parents": [
        "e4f09873865f904bfc53f8eb63e47083c1ad21ce"
      ],
      "author": {
        "name": "Sebastian Baunsgaard",
        "email": "baunsgaard@apache.org",
        "time": "Wed Jun 17 16:57:26 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 17 16:57:26 2026 +0200"
      },
      "message": "[MINOR] Deduplicate not-implemented logs in ColGroupTest (#2491)\n\nThe parameterized leftMultNoPreAgg test logged the same \"not implemented: X or: Y\" error for every base/other column group combination, producing hundreds of duplicate lines for shared type pairs. Track already-logged type pairs in a thread-safe set and log each unique permutation at most once per run."
    },
    {
      "commit": "e4f09873865f904bfc53f8eb63e47083c1ad21ce",
      "tree": "11574debe072dc128735e3882d76d27db113db6c",
      "parents": [
        "65e734e7cbfba07cfe093173e2e37a65bb2ef2a3"
      ],
      "author": {
        "name": "Sebastian Baunsgaard",
        "email": "baunsgaard@apache.org",
        "time": "Tue Jun 16 23:09:24 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 16 23:09:24 2026 +0200"
      },
      "message": "[BWARE] Add getCategoricalMask DML builtin (#2482)\n\n* Add getCategoricalMask DML builtin\n\nAdds a new builtin that, given a transform-encode metadata frame and\nthe encoding JSON spec, returns a 1xN matrix mask marking which output\ncolumns are categorical (1) versus continuous (0). Useful when callers\nneed to know the category boundary in transformed output without\nre-deriving it from the spec."
    },
    {
      "commit": "65e734e7cbfba07cfe093173e2e37a65bb2ef2a3",
      "tree": "0471de2c87a1772a5246813c565187e5413dafb7",
      "parents": [
        "ee69e51290f7ab7aa9ec624d691f76843c563dbe"
      ],
      "author": {
        "name": "Sebastian Baunsgaard",
        "email": "baunsgaard@apache.org",
        "time": "Tue Jun 16 13:54:52 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 16 13:54:52 2026 +0200"
      },
      "message": "[MINOR][CI] Fix leaked threads hanging Java test forks (#2488)\n\nSeveral Java test suites (most visibly **.component.c** and data.misc/lineage) intermittently ran until the GitHub Actions job timeout even though the tests themselves had completed. The cause was leaked non-daemon threads keeping the surefire fork JVM alive, so the fork never exited and the job stalled until cancelled. There were two sources: in-JVM federated workers (FederatedWorker\u0027s Netty event loops and the test-side worker wrapper threads were non-daemon), and CommonThreadPool\u0027s fallback pools — when called off the main thread, it returned Executors.newFixedThreadPool/newCachedThreadPool, which default to non-daemon threads, while only the ForkJoinPool-backed variants were already daemon.\n\nThis PR makes those threads daemon at the source: FederatedWorker now creates its Netty event-loop groups with a daemon thread factory, and CommonThreadPool routes its fixed/cached fallbacks through one too, so daemon behavior is uniform across all pool variants. On the test side, AutomatedTestBase marks spawned worker threads as daemon, TestUtils.shutdownThread bounds its join (30s, warns on stragglers, restores the interrupt flag), and the lineage tests (LineageFedReuseAlg, FedFullReuseTest, FedUDFReuseTest) now shut workers down in a finally block so failures no longer leak workers (the large line counts there are just reindentation from the try/finally wrap). The javaTests.yml job cap stays at 30 minutes, with a comment documenting why it sits above the 600s per-fork surefire timeout, which remains the backstop for genuine hangs."
    },
    {
      "commit": "ee69e51290f7ab7aa9ec624d691f76843c563dbe",
      "tree": "99f8ffb920be8f199decf65a5c374b6aa4edcfc5",
      "parents": [
        "3b564bb9791b0cdb2c06d0f57174610e905f5c52"
      ],
      "author": {
        "name": "Sebastian Baunsgaard",
        "email": "baunsgaard@apache.org",
        "time": "Mon Jun 15 13:07:21 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 15 13:07:21 2026 +0200"
      },
      "message": "[BWARE] Track more compressed-friendly ops in FederatedWorkloadAnalyzer (#2481)\n\n* Track more compressed-friendly ops in FederatedWorkloadAnalyzer\n\nExtends the federated workload counter so that compression decisions\naccount for additional instruction shapes beyond AggregateBinary.\n\n- Pass the right-hand column count to incOverlappingDecompressions\n  so the cost model reflects the actual decompression size rather\n  than counting a single column\n- Count MMChainCPInstruction as one LMM and one RMM contribution per\n  invocation\n- Count AggregateUnaryCPInstruction: when reducing columns with a\n  sum/mean operator, treat it as a dict-op (compression-friendly);\n  otherwise count it as a decompression\n- Minor formatting cleanup in compressRun\n\n* Add unit tests for FederatedWorkloadAnalyzer workload tracking\n\nCover the instruction-shape branches in incrementWorkload that drive\nfederated compression decisions, which previously had no direct tests:\n\n- AggregateBinary: RMM/LMM counting, overlapping-decompress sizing by the\n  right-hand column count, and the validSize row/column guards\n- MMChain: one LMM and one RMM contribution per invocation\n- AggregateUnary: dict-op vs decompression classification across\n  ReduceAll/ReduceRow/ReduceCol with sum, mean, product, and max operators\n- Instance-level dispatch and compressRun threshold behavior, asserting\n  async compression materializes when the cost model would compress"
    },
    {
      "commit": "3b564bb9791b0cdb2c06d0f57174610e905f5c52",
      "tree": "22a863b98e744e4c179ffdc3b9e198ddb588c9f5",
      "parents": [
        "17803b16c5652c8715dd8647cee0f1ed9ecbe04b"
      ],
      "author": {
        "name": "Jannik Lindemann",
        "email": "52833175+janniklinde@users.noreply.github.com",
        "time": "Mon Jun 15 12:37:48 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 15 12:37:48 2026 +0200"
      },
      "message": "[MINOR] Fix Flaky Tests from Blocking Thread Pools (#2489)"
    },
    {
      "commit": "17803b16c5652c8715dd8647cee0f1ed9ecbe04b",
      "tree": "d01347549a6d99f9eec67656b82b0ae15962a484",
      "parents": [
        "c58e5b5b490f90f0568acf0cdd241c5d845db419"
      ],
      "author": {
        "name": "Sebastian Baunsgaard",
        "email": "baunsgaard@apache.org",
        "time": "Tue Jun 09 14:46:03 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 09 14:46:03 2026 +0200"
      },
      "message": "[BWARE] Speed up frame-to-matrix conversion and harden number parsing (#2480)\n\n* Speed up frame-to-matrix conversion and harden number parsing\n\nTightens the hot path that converts FrameBlocks of arbitrary schema\ninto MatrixBlocks, with a defensive fallback for malformed cells.\n\n- DoubleParser.parseFloatingPointLiteral: replace the \u003e\u003d \u0027I\u0027 / \u003e\u003d \u0027a\u0027\n  character guards with a single 0-9 range check on the last char.\n  The previous guards over-matched and pushed too many strings into\n  the slow Double.parseDouble path\n- DoubleArray.parseDouble: stop wrapping the parse failure as a\n  DMLRuntimeException so callers can distinguish format errors\n- MatrixBlockFromFrame:\n    - turn the interface into a class with a private constructor so\n      Jacoco can measure it cleanly\n    - on NumberFormatException / DMLRuntimeException during a bulk\n      block convert, log once and fall back to convertSafeCast which\n      writes NaN per offending cell instead of failing the whole job\n    - add convertSafeCast / convertBlockSafeCast helpers\n\n* Gate frame-to-matrix NaN cast fallback behind config flag\n\nFrame-to-matrix conversion silently fell back to writing NaN for cells\nthat cannot be cast to double, logging only a single warning. This\nchanged behavior for callers that previously failed fast on incompatible\ndata. Make the lenient behavior opt-in.\n\n- Add sysds.frame.tomatrix.warncast (default false): when false the\n  conversion fails fast on number format errors; when true it warns once\n  and writes NaN for the incompatible cells\n- Read the flag once on the calling thread and pass it down, since the\n  thread-local config is not visible to pool workers\n- Extract convertStrict to share the contiguous/generic dispatch between\n  the strict and warn-only paths\n- Add tests for the warn-only fallback, the strict fail-fast default, and\n  the tightened DoubleParser trailing-character guard\n\n* Add tests for frame-to-matrix warn-cast and double parse error path\n\n- Cover the warn-cast success path where a fully valid frame converts\n  without triggering the NaN fallback\n- Cover the zero-value branch of the safe-cast non-zero count and an\n  all-invalid frame becoming all NaN\n- Add parallel fail-fast coverage for the strict (default) path\n- Assert DoubleArray.parseDouble surfaces the raw NumberFormatException\n  instead of a wrapped DMLRuntimeException"
    },
    {
      "commit": "c58e5b5b490f90f0568acf0cdd241c5d845db419",
      "tree": "1ab12d98ecbf739cf3f1a70e12fa888c2de5bc4a",
      "parents": [
        "d90ecf6a1924848c1d4da1339c4fa8ec145cd221"
      ],
      "author": {
        "name": "Sebastian Baunsgaard",
        "email": "baunsgaard@apache.org",
        "time": "Tue Jun 09 14:29:47 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 09 14:29:47 2026 +0200"
      },
      "message": "[BWARE] Add HashMapIntToInt primitive int-to-int hash map (#2478)\n\n* Add HashMapIntToInt primitive int-to-int hash map\n\nIntroduce a specialized open-addressing map storing primitive int keys and values, avoiding boxing for integer-to-integer lookups used by compressed column-group operations.\n\n* Add component tests for HashMapIntToInt and HashMapLongInt\n\nCover put/get, putIfAbsent variants, collision chains, resize,\niteration, and the primitive -1 absent-sentinel contract.\n\n* Fix HashMapIntToInt iterator skipping buckets and add randomized tests\n\nThe entry iterator advanced bucketId twice per empty bucket (pre-increment\nin the loop condition plus the post-increment step), skipping entries when\nbuckets were unevenly filled. Dense sequential keys masked it because the\nfirst probe always hit a non-null bucket. Add randomized tests that\ncross-check against java.util.HashMap to cover imbalanced bucket layouts,\nplus a chained-collision resize test, reaching full branch coverage."
    },
    {
      "commit": "d90ecf6a1924848c1d4da1339c4fa8ec145cd221",
      "tree": "1f1ede5f9149d045fd0c10b570afc533f6e4cc7c",
      "parents": [
        "37189bf65224e0412feeba786e64d7e7a9a4ddd3"
      ],
      "author": {
        "name": "Sebastian Baunsgaard",
        "email": "baunsgaard@apache.org",
        "time": "Tue Jun 09 13:45:03 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 09 13:45:03 2026 +0200"
      },
      "message": "[MINOR] Fix CholeskyTest crash when residual is exactly zero (#2487)\n\nCholeskyTest reconstructs A from its Cholesky factor and asserts that the\n1x1 residual D \u003d sum(A-B) is approximately zero. The output was read back\nwith dmlOut.keySet().iterator().next(), which assumes at least one cell is\npresent. When the residual is exactly 0.0, the sparse text writer omits the\ncell entirely, so the result map comes back empty and the iterator throws\nNoSuchElementException. A perfect reconstruction therefore caused the test\nto error out instead of pass.\n\nThis is not data-dependent flakiness: the input matrix is already seeded, so\nA is identical on every run. The variability comes from the reduction order\nof sum(A-B), which differs across Spark partitions and CP threads. Because\nfloating-point addition is not associative, the residual lands on either an\nexact 0.0 (empty output) or a tiny non-zero value depending on execution,\nwhich is why only some runs (notably testLargeCholeskyDenseSP) failed. The\nfix treats an empty output as 0.0, making the assertion robust to both\noutcomes, and drops the now-unused MatrixValue import."
    },
    {
      "commit": "37189bf65224e0412feeba786e64d7e7a9a4ddd3",
      "tree": "b0442ef656d582c8c56f78b183dd4795c4f65a1a",
      "parents": [
        "1b991ae9289966bbf8bf3e4b655bca048217b266"
      ],
      "author": {
        "name": "Sebastian Baunsgaard",
        "email": "baunsgaard@apache.org",
        "time": "Tue Jun 09 12:53:10 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 09 12:53:10 2026 +0200"
      },
      "message": "[MINOR][CI] Retry Maven test-compile on transient repository download errors\n\nCI jobs intermittently fail at startup when Maven Central returns a\ntransient error (e.g. HTTP 403 while resolving the Apache parent POM),\nwhich is unrelated to the code under test. Retry test-compile once after a\nshort pause when the failure is a \"Could not transfer artifact\" download\nerror, while genuine compilation and test failures still fail fast.\n\nAlso point the test action at the entrypoint script in the mounted\nworkspace so changes to docker/entrypoint.sh take effect immediately\nwithout rebuilding and republishing apache/systemds:testing-latest.\n\nFailing job that motivated this change:\nhttps://github.com/apache/systemds/actions/runs/27167144065/job/80197161169"
    },
    {
      "commit": "1b991ae9289966bbf8bf3e4b655bca048217b266",
      "tree": "dc5bb2eccbcdd597b7a140b8a71a8924bddb1595",
      "parents": [
        "ae9a59cced3b3116a6a3bc48356f4ed31f40c7d7"
      ],
      "author": {
        "name": "Sebastian Baunsgaard",
        "email": "baunsgaard@apache.org",
        "time": "Tue Jun 09 01:03:35 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 09 01:03:35 2026 +0200"
      },
      "message": "[MINOR] Reduce surefire per-fork test timeout from 1380s to 600s (#2485)\n\nThe per-fork timeout existed to kill a hung test fork before the 30 min\nCI cap, so the offending test is named in the log instead of GitHub\ncancelling the whole job. At 1380s the timeout fired ~23 min after a\nfork started, but earlier forks already consumed ~8 min of the run, so\nthe timeout would only trigger after the 30 min cap had cancelled the\njob. As a result hung forks were never reported.\n\nLowering to 600s keeps a large margin below the cap regardless of when\nin the run a fork hangs, while staying well above the slowest observed\ntest class (~35s), so legitimate tests are not killed."
    },
    {
      "commit": "ae9a59cced3b3116a6a3bc48356f4ed31f40c7d7",
      "tree": "c1b479cea9fb2fb488262278c48fde0b43ccb0c3",
      "parents": [
        "0a4b3a08742d2d50505f05f0b858accc9cb2d5a5"
      ],
      "author": {
        "name": "Aurélien Pupier",
        "email": "apupier@ibm.com",
        "time": "Mon Jun 08 16:04:42 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 08 16:04:42 2026 +0200"
      },
      "message": "[CI] Configure GitHub workflows to use concurrency cancel-in-progress\n\n\nBased on recommended best practices at Apache:\nhttps://cwiki.apache.org/confluence/pages/viewpage.action?spaceKey\u003dINFRA\u0026title\u003dGitHub+Actions+Recommended+Practices\n\nThis commit change the CI jobs to fail-fast based on subsequent comments."
    },
    {
      "commit": "0a4b3a08742d2d50505f05f0b858accc9cb2d5a5",
      "tree": "9e62b3775efabbcd032497a63dbbcc4d155eedbe",
      "parents": [
        "f5e6a63e8490665b8ea2fdfd92e49e18601e9ecd"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Jun 08 15:04:34 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 08 15:04:34 2026 +0200"
      },
      "message": "Bump codecov/codecov-action from 6.0.1 to 7.0.0 (#2477)\n\nBumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 6.0.1 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/v6.0.1...v7.0.0)\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\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "f5e6a63e8490665b8ea2fdfd92e49e18601e9ecd",
      "tree": "9ecb96eb0c1a55bea5d904a83a43524d54bae7c5",
      "parents": [
        "1a3bda350fba7a6e75e8272e7f32231a9081f2f5"
      ],
      "author": {
        "name": "Christina Dionysio",
        "email": "dionysio@tu-berlin.de",
        "time": "Tue Jun 02 17:01:03 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 02 17:01:03 2026 +0200"
      },
      "message": "[SYSTEMDS-3835] Improve window aggregation efficiency in Scuro\n\nIn this patch we improve the runtime efficiency of the window aggregation operator in Scuro. The problem with the latest approach was the iteration over each window instead of vecortized execution. This change neede a couple of adaptions in subsequent representations."
    },
    {
      "commit": "1a3bda350fba7a6e75e8272e7f32231a9081f2f5",
      "tree": "3a7490fe847eb56f4efa5f70b15e7d58c31c7c90",
      "parents": [
        "9fa62b604cf7b92d3b780c7cd6eb22fd1987f4d0"
      ],
      "author": {
        "name": "Christina Dionysio",
        "email": "dionysio@tu-berlin.de",
        "time": "Tue Jun 02 12:57:35 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 02 12:57:35 2026 +0200"
      },
      "message": "[SYSTEMDS-3947] Use optuna for Scuro hyperparameter tuning\n\nThis patch includes the optuna hyperparameter tuning library in the Scuro hyperparameter tuner. It adds support for wandb to observe the progress and parameter configurations."
    },
    {
      "commit": "9fa62b604cf7b92d3b780c7cd6eb22fd1987f4d0",
      "tree": "be4358979e92a302e090062079afb14267bfb4d2",
      "parents": [
        "bc17a4ba4c48d8af444c44dca0097421a61b6cf8"
      ],
      "author": {
        "name": "Christina Dionysio",
        "email": "dionysio@tu-berlin.de",
        "time": "Tue Jun 02 11:36:06 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 02 11:36:06 2026 +0200"
      },
      "message": "[SYSTEMDS-3887] Add video modality to Scuro optimizer pipeline\n\nIn this patch the video modality is included in the unimodal optimizer pipeline. Since the video modality is sometimes loaded using the chunked data loader support for the chunked representation is added to the optimizer."
    },
    {
      "commit": "bc17a4ba4c48d8af444c44dca0097421a61b6cf8",
      "tree": "418a4685099dac2ad1564763f347ad668e8ff764",
      "parents": [
        "9a4e2a352d8e2929b35003d9a63ff99fab94ece2"
      ],
      "author": {
        "name": "Matthias Boehm",
        "email": "mboehm7@gmail.com",
        "time": "Tue May 26 19:57:00 2026 +0200"
      },
      "committer": {
        "name": "Matthias Boehm",
        "email": "mboehm7@gmail.com",
        "time": "Sat May 30 15:10:29 2026 +0200"
      },
      "message": "[MINOR] Fix incorrect formatting of various tests\n"
    },
    {
      "commit": "9a4e2a352d8e2929b35003d9a63ff99fab94ece2",
      "tree": "e14c203d271a79b17ace27401f5271cc7e08330f",
      "parents": [
        "88c26e2ae79c70d5b30bc881c03c368255d8a470"
      ],
      "author": {
        "name": "Sebastian Baunsgaard",
        "email": "baunsgaard@apache.org",
        "time": "Thu May 28 15:07:30 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 28 15:07:30 2026 +0200"
      },
      "message": "[MINOR] Upgrade Surefire to 3.5.2 and enforce fork exit timeout\n\nFix intermittent ~26 minute hangs in the **.component.c**.** GitHub\nActions job. The forks were finishing their test classes but failing\nto exit cleanly (leaked non-daemon threads from test executors), and\nSurefire 3.0.0 did not reliably enforce its fork shutdown timeout."
    },
    {
      "commit": "88c26e2ae79c70d5b30bc881c03c368255d8a470",
      "tree": "6219ac06bd1dbb867f4732b368e4554848fec754",
      "parents": [
        "34a19f001f72da2d029f55c1f7789809cbf0c45c"
      ],
      "author": {
        "name": "Sebastian Baunsgaard",
        "email": "baunsgaard@apache.org",
        "time": "Tue May 26 16:46:13 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 26 16:46:13 2026 +0200"
      },
      "message": "[SYSTEMDS-2651] Poll for async compression in federated component tests (#2472)\n\nFedWorkerReadMatrixCompress.verifyRead failed roughly once per ten\ncomponent-test CI runs because it called FederatedTestUtils.wait(1000)\nto give the worker time to finish its async compression (kicked off by\nCompressedMatrixBlockFactory.compressAsync), then asserted that the\nreturned block was a CompressedMatrixBlock. On a contended runner the\n1 s sleep was not enough, the subsequent read returned the still-\nuncompressed block, and the assertion failed. Surefire\u0027s\nrerunFailingTestsCount\u003d2 hid this as a \"Flake\" rather than a job\nfailure.\n\nAdd FedWorkerBase.awaitCompressed(long id), which polls getMatrixBlock\nat 25 ms intervals for up to COMPRESS_TIMEOUT_MS (10 s) and returns as\nsoon as the worker reports the compressed form, or returns the last-\nobserved block on timeout so the caller\u0027s assertion still produces a\nmeaningful failure.\n\nConvert the three call sites that used the fixed-sleep anti-pattern:\n- FedWorkerReadMatrixCompress.verifyRead (the actual CI flake)\n- FedWorkerMatrixCompress.verifySameOrAlsoCompressedAsLocalCompress\n  (polls only when local compresses, so the \"do not compress\"\n  parametrization stays fast)\n- FedWorkerMatrixMultiplyWorkload.verifySameOrAlsoCompressedAsLocalCompress\n\nRemove the now-unused FederatedTestUtils.wait helper so the\nanti-pattern is harder to reintroduce."
    },
    {
      "commit": "34a19f001f72da2d029f55c1f7789809cbf0c45c",
      "tree": "67add47d09cc217716bca4eb4b6802e99d4b3a92",
      "parents": [
        "b150d8eeb33c0742baf05291322e2a7e84090646"
      ],
      "author": {
        "name": "Sebastian Baunsgaard",
        "email": "baunsgaard@apache.org",
        "time": "Tue May 26 01:30:47 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 26 01:30:47 2026 +0200"
      },
      "message": "[SYSTEMDS-2651] Extend TCP port polling to federated monitoring backend\n\nWire startLocalFedMonitoring through FederatedWorkerUtils.waitForWorker so\nthe monitoring backend\u0027s port-bind is polled instead of slept on (fixes\nflaky FederatedCoordinatorIntegrationCRUDTest), migrate FederatedLogicalTest\nto the bulk startLocalFedWorkers(int[]) API, and drop the now-unused\nFED_WORKER_WAIT_S and FED_MONITOR_WAIT constants."
    },
    {
      "commit": "b150d8eeb33c0742baf05291322e2a7e84090646",
      "tree": "4e319047d839ba82ecb1a13b78bdf35e31afc000",
      "parents": [
        "c50c769153de7a7ed4aa36a9c9fa86d3bd3c569e"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu May 21 18:34:30 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 21 18:34:30 2026 +0200"
      },
      "message": "Bump codecov/codecov-action from 6.0.0 to 6.0.1 (#2470)\n\nBumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 6.0.0 to 6.0.1.\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/v6.0.0...v6.0.1)\n\n---\nupdated-dependencies:\n- dependency-name: codecov/codecov-action\n  dependency-version: 6.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\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "c50c769153de7a7ed4aa36a9c9fa86d3bd3c569e",
      "tree": "dc684a92c5f04ab3b19004c0791077c1163a5aa1",
      "parents": [
        "684531d7027c0c557d375ce67d427a1e0e893d05"
      ],
      "author": {
        "name": "ywcb00",
        "email": "ywcb00@ywcb.org",
        "time": "Thu May 21 09:28:37 2026 +0200"
      },
      "committer": {
        "name": "ywcb00",
        "email": "ywcb00@ywcb.org",
        "time": "Thu May 21 09:28:37 2026 +0200"
      },
      "message": "[SYSTEMDS-3948] Implement Row-wise Sparsity Estimator\n\nThis commit implements the row-wise sparsity estimator and adds respective test cases.\n\nCloses #2466.\n"
    },
    {
      "commit": "684531d7027c0c557d375ce67d427a1e0e893d05",
      "tree": "07d13c9777a5dcb4cfe45ad1e2dc2e2bf8089880",
      "parents": [
        "f18b23af75c4961c3a1accfdf81e30c37aba25e3"
      ],
      "author": {
        "name": "ywcb00",
        "email": "52667438+ywcb00@users.noreply.github.com",
        "time": "Wed May 20 18:30:33 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 20 18:30:33 2026 +0200"
      },
      "message": "[MINOR] Fix minor mistake in MNC sparsity estimation for row bind operations\n\nThe wrong variable was used, h1 instead of h2."
    },
    {
      "commit": "f18b23af75c4961c3a1accfdf81e30c37aba25e3",
      "tree": "c2b961e97d08ed53875d9b406536e0e073fcbd96",
      "parents": [
        "249a8f52eea041356f292adf88a2b58efdd7f688"
      ],
      "author": {
        "name": "Sebastian Baunsgaard",
        "email": "baunsgaard@apache.org",
        "time": "Wed May 20 17:44:14 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 20 17:44:14 2026 +0200"
      },
      "message": "[MINOR][TEST-ONLY] Add a test timeout to kill before GitActions\n\nThis commit adds a timeout to surefire to allow the tests to timeout,\nwith a log message and stack trace rather than allowing github Actions\nto kill the CI job.\n\nWhen Actions kill the job, we do not know which tests are running or\nblocking, while if we kill surefire we will."
    },
    {
      "commit": "249a8f52eea041356f292adf88a2b58efdd7f688",
      "tree": "1e950829f38ce3907a2d5e335b06de4492108f59",
      "parents": [
        "3de7cbe7e9e1af46510d059629e55624cd32626b"
      ],
      "author": {
        "name": "Sebastian Baunsgaard",
        "email": "baunsgaard@apache.org",
        "time": "Mon May 18 12:59:24 2026 +0000"
      },
      "committer": {
        "name": "Sebastian Baunsgaard",
        "email": "baunsgaard@apache.org",
        "time": "Wed May 20 11:33:51 2026 +0000"
      },
      "message": "[SYSTEMDS-2651] Federated test workers: TCP port polling and bulk startup\n\nReplace fixed Thread.sleep after each federated worker start with TCP\nport polling that returns as soon as the worker accepts a connection.\nAdd bulk helpers that spawn N workers in parallel and wait once for the\nslowest to become ready, instead of summing per-worker waits.\n\nCuts the federated CI total by ~7 min (-5%) vs main, with the biggest\nwins in setup-heavy suites such as transform+fedplanner (-66%) and\ncodegen (-25%).\n\nCloses #2468.\n"
    },
    {
      "commit": "3de7cbe7e9e1af46510d059629e55624cd32626b",
      "tree": "d86fc760c9d285a4f73db70aac2eb4e1f32ea791",
      "parents": [
        "6644ce3807795f147d047373988b369f811a2ba8"
      ],
      "author": {
        "name": "Jessica Priebe",
        "email": "jessica.priebe@web.de",
        "time": "Wed May 13 10:00:04 2026 +0200"
      },
      "committer": {
        "name": "Jannik Lindemann",
        "email": "jannik.lindemann3@gmail.com",
        "time": "Wed May 13 10:00:04 2026 +0200"
      },
      "message": "Add OOC WDivMM\n\nCloses #2464.\n"
    },
    {
      "commit": "6644ce3807795f147d047373988b369f811a2ba8",
      "tree": "a97d3b35e1bf34959e56e951a9155b72dda80f79",
      "parents": [
        "b7480917b5178b1f566f1c5aa68cfddaeb5e4f80"
      ],
      "author": {
        "name": "Matthias Boehm",
        "email": "mboehm7@gmail.com",
        "time": "Mon May 04 17:19:30 2026 +0200"
      },
      "committer": {
        "name": "Matthias Boehm",
        "email": "mboehm7@gmail.com",
        "time": "Mon May 04 17:19:30 2026 +0200"
      },
      "message": "[SYSTEMDS-3333] Fix new mmchain-opt rewrite code style and test\n\n* Fixes the remaining invalid method names of the new and existing\nmmchain-opt rewrites\n* Fixes the handling of stdout streams with default output buffering\n(which is on in the github actions)\n"
    }
  ],
  "next": "b7480917b5178b1f566f1c5aa68cfddaeb5e4f80"
}
