)]}'
{
  "log": [
    {
      "commit": "f40fe2fb11caa28ba22e4fc939f1e9b28f5b52f1",
      "tree": "d81d6b66553b12cc68384148961a2122b7104249",
      "parents": [
        "4c6f46de74c1ff8535c4843e2da5675807e948b3"
      ],
      "author": {
        "name": "Zehua Zou",
        "email": "zehuazou2000@gmail.com",
        "time": "Sat May 02 22:27:49 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat May 02 22:27:49 2026 +0800"
      },
      "message": "fix: concurrent Lazy::Get should get correct result (#634)"
    },
    {
      "commit": "4c6f46de74c1ff8535c4843e2da5675807e948b3",
      "tree": "c8c49092ccf6da75d731d1fbef5d437da91f266d",
      "parents": [
        "65931fe09936da8cb9ce3bfa20ce2352ec545d6c"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri May 01 21:27:57 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 01 21:27:57 2026 +0800"
      },
      "message": "chore(deps): bump zizmorcore/zizmor-action from 0.5.2 to 0.5.3 (#630)\n\nBumps\n[zizmorcore/zizmor-action](https://github.com/zizmorcore/zizmor-action)\nfrom 0.5.2 to 0.5.3.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/zizmorcore/zizmor-action/releases\"\u003ezizmorcore/zizmor-action\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.5.3\u003c/h2\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e1.24.0\u003c/code\u003e and \u003ccode\u003e1.24.1\u003c/code\u003e are now available via\nthe action\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e1.24.1\u003c/code\u003e is now the default version of zizmor used by the\naction\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca\nhref\u003d\"https://github.com/zizmorcore/zizmor-action/compare/v0.5.2...v0.5.3\"\u003ehttps://github.com/zizmorcore/zizmor-action/compare/v0.5.2...v0.5.3\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/zizmorcore/zizmor-action/commit/b1d7e1fb5de872772f31590499237e7cce841e8e\"\u003e\u003ccode\u003eb1d7e1f\u003c/code\u003e\u003c/a\u003e\nSync zizmor versions (\u003ca\nhref\u003d\"https://redirect.github.com/zizmorcore/zizmor-action/issues/102\"\u003e#102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/zizmorcore/zizmor-action/commit/a195b57475917ddcb70845e5ffe1c3a15dbbdedc\"\u003e\u003ccode\u003ea195b57\u003c/code\u003e\u003c/a\u003e\nSync zizmor versions (\u003ca\nhref\u003d\"https://redirect.github.com/zizmorcore/zizmor-action/issues/100\"\u003e#100\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/zizmorcore/zizmor-action/commit/629d5d01fe5939a6aeae25c1bd1acd2cfa28e9b2\"\u003e\u003ccode\u003e629d5d0\u003c/code\u003e\u003c/a\u003e\nchore(deps): bump github/codeql-action in the github-actions group (\u003ca\nhref\u003d\"https://redirect.github.com/zizmorcore/zizmor-action/issues/99\"\u003e#99\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/zizmorcore/zizmor-action/commit/453d591467e8199b1d5c6883b6ec5c22a12aac72\"\u003e\u003ccode\u003e453d591\u003c/code\u003e\u003c/a\u003e\nchore(deps): bump the github-actions group with 2 updates (\u003ca\nhref\u003d\"https://redirect.github.com/zizmorcore/zizmor-action/issues/98\"\u003e#98\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/zizmorcore/zizmor-action/commit/ea2c18b942410df0b22bed3b94c361c407518d45\"\u003e\u003ccode\u003eea2c18b\u003c/code\u003e\u003c/a\u003e\nBump pins (\u003ca\nhref\u003d\"https://redirect.github.com/zizmorcore/zizmor-action/issues/97\"\u003e#97\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca\nhref\u003d\"https://github.com/zizmorcore/zizmor-action/compare/71321a20a9ded102f6e9ce5718a2fcec2c4f70d8...b1d7e1fb5de872772f31590499237e7cce841e8e\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility\nscore](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name\u003dzizmorcore/zizmor-action\u0026package-manager\u003dgithub_actions\u0026previous-version\u003d0.5.2\u0026new-version\u003d0.5.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don\u0027t\nalter it yourself. You can also trigger a rebase manually by commenting\n`@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits\nthat have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all\nof the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop\nDependabot creating any more for this major version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop\nDependabot creating any more for this minor version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop\nDependabot creating any more for this dependency (unless you reopen the\nPR or upgrade to it yourself)\n\n\n\u003c/details\u003e\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "65931fe09936da8cb9ce3bfa20ce2352ec545d6c",
      "tree": "c195ea38c6d240465651c1c2303f13baa8dc626b",
      "parents": [
        "194db0469bd4dff4845638a202f9be24a2293aa5"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri May 01 21:27:37 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 01 21:27:37 2026 +0800"
      },
      "message": "chore(deps): bump github/codeql-action from 4.35.1 to 4.35.2 (#629)\n\nBumps [github/codeql-action](https://github.com/github/codeql-action)\nfrom 4.35.1 to 4.35.2.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/github/codeql-action/releases\"\u003egithub/codeql-action\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.35.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe undocumented TRAP cache cleanup feature that could be enabled\nusing the \u003ccode\u003eCODEQL_ACTION_CLEANUP_TRAP_CACHES\u003c/code\u003e environment\nvariable is deprecated and will be removed in May 2026. If you are\naffected by this, we recommend disabling TRAP caching by passing the\n\u003ccode\u003etrap-caching: false\u003c/code\u003e input to the \u003ccode\u003einit\u003c/code\u003e Action.\n\u003ca\nhref\u003d\"https://redirect.github.com/github/codeql-action/pull/3795\"\u003e#3795\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eThe Git version 2.36.0 requirement for improved incremental analysis\nnow only applies to repositories that contain submodules. \u003ca\nhref\u003d\"https://redirect.github.com/github/codeql-action/pull/3789\"\u003e#3789\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePython analysis on GHES no longer extracts the standard library,\nrelying instead on models of the standard library. This should result in\nsignificantly faster extraction and analysis times, while the effect on\nalerts should be minimal. \u003ca\nhref\u003d\"https://redirect.github.com/github/codeql-action/pull/3794\"\u003e#3794\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed a bug in the validation of OIDC configurations for private\nregistries that was added in CodeQL Action 4.33.0 / 3.33.0. \u003ca\nhref\u003d\"https://redirect.github.com/github/codeql-action/pull/3807\"\u003e#3807\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate default CodeQL bundle version to \u003ca\nhref\u003d\"https://github.com/github/codeql-action/releases/tag/codeql-bundle-v2.25.2\"\u003e2.25.2\u003c/a\u003e.\n\u003ca\nhref\u003d\"https://redirect.github.com/github/codeql-action/pull/3823\"\u003e#3823\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/github/codeql-action/blob/main/CHANGELOG.md\"\u003egithub/codeql-action\u0027s\nchangelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eCodeQL Action Changelog\u003c/h1\u003e\n\u003cp\u003eSee the \u003ca\nhref\u003d\"https://github.com/github/codeql-action/releases\"\u003ereleases\npage\u003c/a\u003e for the relevant changes to the CodeQL CLI and language\npacks.\u003c/p\u003e\n\u003ch2\u003e[UNRELEASED]\u003c/h2\u003e\n\u003cp\u003eNo user facing changes.\u003c/p\u003e\n\u003ch2\u003e4.35.2 - 15 Apr 2026\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe undocumented TRAP cache cleanup feature that could be enabled\nusing the \u003ccode\u003eCODEQL_ACTION_CLEANUP_TRAP_CACHES\u003c/code\u003e environment\nvariable is deprecated and will be removed in May 2026. If you are\naffected by this, we recommend disabling TRAP caching by passing the\n\u003ccode\u003etrap-caching: false\u003c/code\u003e input to the \u003ccode\u003einit\u003c/code\u003e Action.\n\u003ca\nhref\u003d\"https://redirect.github.com/github/codeql-action/pull/3795\"\u003e#3795\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eThe Git version 2.36.0 requirement for improved incremental analysis\nnow only applies to repositories that contain submodules. \u003ca\nhref\u003d\"https://redirect.github.com/github/codeql-action/pull/3789\"\u003e#3789\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePython analysis on GHES no longer extracts the standard library,\nrelying instead on models of the standard library. This should result in\nsignificantly faster extraction and analysis times, while the effect on\nalerts should be minimal. \u003ca\nhref\u003d\"https://redirect.github.com/github/codeql-action/pull/3794\"\u003e#3794\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed a bug in the validation of OIDC configurations for private\nregistries that was added in CodeQL Action 4.33.0 / 3.33.0. \u003ca\nhref\u003d\"https://redirect.github.com/github/codeql-action/pull/3807\"\u003e#3807\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate default CodeQL bundle version to \u003ca\nhref\u003d\"https://github.com/github/codeql-action/releases/tag/codeql-bundle-v2.25.2\"\u003e2.25.2\u003c/a\u003e.\n\u003ca\nhref\u003d\"https://redirect.github.com/github/codeql-action/pull/3823\"\u003e#3823\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.35.1 - 27 Mar 2026\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix incorrect minimum required Git version for \u003ca\nhref\u003d\"https://redirect.github.com/github/roadmap/issues/1158\"\u003eimproved\nincremental analysis\u003c/a\u003e: it should have been 2.36.0, not 2.11.0. \u003ca\nhref\u003d\"https://redirect.github.com/github/codeql-action/pull/3781\"\u003e#3781\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.35.0 - 27 Mar 2026\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReduced the minimum Git version required for \u003ca\nhref\u003d\"https://redirect.github.com/github/roadmap/issues/1158\"\u003eimproved\nincremental analysis\u003c/a\u003e from 2.38.0 to 2.11.0. \u003ca\nhref\u003d\"https://redirect.github.com/github/codeql-action/pull/3767\"\u003e#3767\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate default CodeQL bundle version to \u003ca\nhref\u003d\"https://github.com/github/codeql-action/releases/tag/codeql-bundle-v2.25.1\"\u003e2.25.1\u003c/a\u003e.\n\u003ca\nhref\u003d\"https://redirect.github.com/github/codeql-action/pull/3773\"\u003e#3773\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.34.1 - 20 Mar 2026\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDowngrade default CodeQL bundle version to \u003ca\nhref\u003d\"https://github.com/github/codeql-action/releases/tag/codeql-bundle-v2.24.3\"\u003e2.24.3\u003c/a\u003e\ndue to issues with a small percentage of Actions and JavaScript\nanalyses. \u003ca\nhref\u003d\"https://redirect.github.com/github/codeql-action/pull/3762\"\u003e#3762\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.34.0 - 20 Mar 2026\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded an experimental change which disables TRAP caching when \u003ca\nhref\u003d\"https://redirect.github.com/github/roadmap/issues/1158\"\u003eimproved\nincremental analysis\u003c/a\u003e is enabled, since improved incremental analysis\nsupersedes TRAP caching. This will improve performance and reduce\nActions cache usage. We expect to roll this change out to everyone in\nMarch. \u003ca\nhref\u003d\"https://redirect.github.com/github/codeql-action/pull/3569\"\u003e#3569\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWe are rolling out improved incremental analysis to C/C++ analyses\nthat use build mode \u003ccode\u003enone\u003c/code\u003e. We expect this rollout to be\ncomplete by the end of April 2026. \u003ca\nhref\u003d\"https://redirect.github.com/github/codeql-action/pull/3584\"\u003e#3584\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate default CodeQL bundle version to \u003ca\nhref\u003d\"https://github.com/github/codeql-action/releases/tag/codeql-bundle-v2.25.0\"\u003e2.25.0\u003c/a\u003e.\n\u003ca\nhref\u003d\"https://redirect.github.com/github/codeql-action/pull/3585\"\u003e#3585\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.33.0 - 16 Mar 2026\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpcoming change: Starting April 2026, the CodeQL Action will skip\ncollecting file coverage information on pull requests to improve\nanalysis performance. File coverage information will still be computed\non non-PR analyses. Pull request analyses will log a warning about this\nupcoming change. \u003ca\nhref\u003d\"https://redirect.github.com/github/codeql-action/pull/3562\"\u003e#3562\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eTo opt out of this change:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eRepositories owned by an organization:\u003c/strong\u003e Create a\ncustom repository property with the name\n\u003ccode\u003egithub-codeql-file-coverage-on-prs\u003c/code\u003e and the type\n\u0026quot;True/false\u0026quot;, then set this property to \u003ccode\u003etrue\u003c/code\u003e in\nthe repository\u0027s settings. For more information, see \u003ca\nhref\u003d\"https://docs.github.com/en/organizations/managing-organization-settings/managing-custom-properties-for-repositories-in-your-organization\"\u003eManaging\ncustom properties for repositories in your organization\u003c/a\u003e.\nAlternatively, if you are using an advanced setup workflow, you can set\nthe \u003ccode\u003eCODEQL_ACTION_FILE_COVERAGE_ON_PRS\u003c/code\u003e environment variable\nto \u003ccode\u003etrue\u003c/code\u003e in your workflow.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eUser-owned repositories using default setup:\u003c/strong\u003e Switch\nto an advanced setup workflow and set the\n\u003ccode\u003eCODEQL_ACTION_FILE_COVERAGE_ON_PRS\u003c/code\u003e environment variable to\n\u003ccode\u003etrue\u003c/code\u003e in your workflow.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eUser-owned repositories using advanced setup:\u003c/strong\u003e Set\nthe \u003ccode\u003eCODEQL_ACTION_FILE_COVERAGE_ON_PRS\u003c/code\u003e environment variable\nto \u003ccode\u003etrue\u003c/code\u003e in your workflow.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ca\nhref\u003d\"https://redirect.github.com/github/codeql-action/issues/3555\"\u003ea\nbug\u003c/a\u003e which caused the CodeQL Action to fail loading repository\nproperties if a \u0026quot;Multi select\u0026quot; repository property was\nconfigured for the repository. \u003ca\nhref\u003d\"https://redirect.github.com/github/codeql-action/pull/3557\"\u003e#3557\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe CodeQL Action now loads \u003ca\nhref\u003d\"https://docs.github.com/en/organizations/managing-organization-settings/managing-custom-properties-for-repositories-in-your-organization\"\u003ecustom\nrepository properties\u003c/a\u003e on GitHub Enterprise Server, enabling the\ncustomization of features such as\n\u003ccode\u003egithub-codeql-disable-overlay\u003c/code\u003e that was previously only\navailable on GitHub.com. \u003ca\nhref\u003d\"https://redirect.github.com/github/codeql-action/pull/3559\"\u003e#3559\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eOnce \u003ca\nhref\u003d\"https://docs.github.com/en/code-security/how-tos/secure-at-scale/configure-organization-security/manage-usage-and-access/giving-org-access-private-registries\"\u003eprivate\npackage registries\u003c/a\u003e can be configured with OIDC-based authentication\nfor organizations, the CodeQL Action will now be able to accept such\nconfigurations. \u003ca\nhref\u003d\"https://redirect.github.com/github/codeql-action/pull/3563\"\u003e#3563\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed the retry mechanism for database uploads. Previously this would\nfail with the error \u0026quot;Response body object should not be disturbed\nor locked\u0026quot;. \u003ca\nhref\u003d\"https://redirect.github.com/github/codeql-action/pull/3564\"\u003e#3564\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eA warning is now emitted if the CodeQL Action detects a repository\nproperty whose name suggests that it relates to the CodeQL Action, but\nwhich is not one of the properties recognised by the current version of\nthe CodeQL Action. \u003ca\nhref\u003d\"https://redirect.github.com/github/codeql-action/pull/3570\"\u003e#3570\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.32.6 - 05 Mar 2026\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/github/codeql-action/commit/95e58e9a2cdfd71adc6e0353d5c52f41a045d225\"\u003e\u003ccode\u003e95e58e9\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/github/codeql-action/issues/3824\"\u003e#3824\u003c/a\u003e\nfrom github/update-v4.35.2-d2e135a73\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/github/codeql-action/commit/6f31bfe060e817d81e938dbec767969d20031e25\"\u003e\u003ccode\u003e6f31bfe\u003c/code\u003e\u003c/a\u003e\nUpdate changelog for v4.35.2\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/github/codeql-action/commit/d2e135a73a39154e3a231aeb49163c4661c5b8b1\"\u003e\u003ccode\u003ed2e135a\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/github/codeql-action/issues/3823\"\u003e#3823\u003c/a\u003e\nfrom github/update-bundle/codeql-bundle-v2.25.2\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/github/codeql-action/commit/60abb65df09fcf213c398e064c8a80db1f15cdaf\"\u003e\u003ccode\u003e60abb65\u003c/code\u003e\u003c/a\u003e\nAdd changelog note\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/github/codeql-action/commit/5a0a562209255e956ad8aafcee303294e64eefa2\"\u003e\u003ccode\u003e5a0a562\u003c/code\u003e\u003c/a\u003e\nUpdate default bundle to codeql-bundle-v2.25.2\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/github/codeql-action/commit/65216971a11ded447a6b76263d5a144519e5eee1\"\u003e\u003ccode\u003e6521697\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/github/codeql-action/issues/3820\"\u003e#3820\u003c/a\u003e\nfrom github/dependabot/github_actions/dot-github/wor...\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/github/codeql-action/commit/3c45af2dd258e1623af1898da5c86545b514e028\"\u003e\u003ccode\u003e3c45af2\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/github/codeql-action/issues/3821\"\u003e#3821\u003c/a\u003e\nfrom github/dependabot/npm_and_yarn/npm-minor-345b93...\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/github/codeql-action/commit/f1c339364c12f922998186ed897e45e3b4ae8874\"\u003e\u003ccode\u003ef1c3393\u003c/code\u003e\u003c/a\u003e\nRebuild\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/github/codeql-action/commit/1024fc496c87e944a93e98d8cf2c09e2c7602a30\"\u003e\u003ccode\u003e1024fc4\u003c/code\u003e\u003c/a\u003e\nRebuild\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/github/codeql-action/commit/9dd4cfed96030ccdfe1af4daf7a7964322704fed\"\u003e\u003ccode\u003e9dd4cfe\u003c/code\u003e\u003c/a\u003e\nBump the npm-minor group across 1 directory with 6 updates\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/github/codeql-action/compare/c10b8064de6f491fea524254123dbe5e09572f13...95e58e9a2cdfd71adc6e0353d5c52f41a045d225\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility\nscore](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name\u003dgithub/codeql-action\u0026package-manager\u003dgithub_actions\u0026previous-version\u003d4.35.1\u0026new-version\u003d4.35.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don\u0027t\nalter it yourself. You can also trigger a rebase manually by commenting\n`@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits\nthat have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all\nof the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop\nDependabot creating any more for this major version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop\nDependabot creating any more for this minor version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop\nDependabot creating any more for this dependency (unless you reopen the\nPR or upgrade to it yourself)\n\n\n\u003c/details\u003e\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "194db0469bd4dff4845638a202f9be24a2293aa5",
      "tree": "f8d9d12c7e0c85277b91ddf1c6801ce4e215b5b3",
      "parents": [
        "ce794ef45339a765d07c6497cf6248c3679ef8ae"
      ],
      "author": {
        "name": "Junwang Zhao",
        "email": "zhjwpku@gmail.com",
        "time": "Tue Apr 28 23:57:41 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 28 23:57:41 2026 +0800"
      },
      "message": "fix: typo in RoaringPositionBitmap deletion vector note (#632)"
    },
    {
      "commit": "ce794ef45339a765d07c6497cf6248c3679ef8ae",
      "tree": "047744c1ff4ee7e61ed4c336eefd4ef64b1251ed",
      "parents": [
        "8809e0f4ae59969e9cbd62ad0f3c4801943ffbe2"
      ],
      "author": {
        "name": "Gang Wu",
        "email": "ustcwg@gmail.com",
        "time": "Fri Apr 24 23:47:11 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 24 23:47:11 2026 +0800"
      },
      "message": "fix(ci): restore auth for docs gh-pages deploy (#625)\n\nCo-authored-by: Kevin Liu \u003ckevinjqliu@users.noreply.github.com\u003e"
    },
    {
      "commit": "8809e0f4ae59969e9cbd62ad0f3c4801943ffbe2",
      "tree": "ab21754b220530862aed6f30bf1f1b0fab381aa1",
      "parents": [
        "b94fa7ccc720a1920d5fb010a8c5c223a20fa5a3"
      ],
      "author": {
        "name": "SkylerLin",
        "email": "44233950+linguoxuan@users.noreply.github.com",
        "time": "Fri Apr 24 22:48:51 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 24 22:48:51 2026 +0800"
      },
      "message": "feat: retry failed transaction commit (#626)\n\nThis commit implements the retry for transaction commits. It introduces\na generic RetryRunner utility with exponential backoff and error-kind\nfiltering, and integrates it into Transaction::Commit() to automatically\nrefresh table metadata and retry on commit conflicts."
    },
    {
      "commit": "b94fa7ccc720a1920d5fb010a8c5c223a20fa5a3",
      "tree": "fc0407b5c31f2d6d2d3045a466cc6320f0af66e6",
      "parents": [
        "a9114ceafe4c0954ae409210258149e5ec110945"
      ],
      "author": {
        "name": "Xinli Shang",
        "email": "shangx@uber.com",
        "time": "Fri Apr 24 03:01:17 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 24 18:01:17 2026 +0800"
      },
      "message": "feat: add ReachableFileCleanup to expire snapshots (#592)"
    },
    {
      "commit": "a9114ceafe4c0954ae409210258149e5ec110945",
      "tree": "5887a5cb61846b04fdfe188c8a8bb4072d02e050",
      "parents": [
        "65321e32e7f37e6f6cfcc7f6a5ad8fee9c7f5404"
      ],
      "author": {
        "name": "Gang Wu",
        "email": "ustcwg@gmail.com",
        "time": "Wed Apr 22 13:03:34 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 22 13:03:34 2026 +0800"
      },
      "message": "chore: bump arrow-cpp to 24.0.0 (#623)"
    },
    {
      "commit": "65321e32e7f37e6f6cfcc7f6a5ad8fee9c7f5404",
      "tree": "db44f9fb42d358c930c164c6ed0f91ded9dced59",
      "parents": [
        "8adb304350f734c1c5b64a27a386273107972ec6"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Apr 20 11:42:17 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 20 11:42:17 2026 +0800"
      },
      "message": "chore(deps): bump actions/upload-artifact from 7.0.0 to 7.0.1 (#622)\n\nBumps\n[actions/upload-artifact](https://github.com/actions/upload-artifact)\nfrom 7.0.0 to 7.0.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/actions/upload-artifact/releases\"\u003eactions/upload-artifact\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate the readme with direct upload details by \u003ca\nhref\u003d\"https://github.com/danwkennedy\"\u003e\u003ccode\u003e@​danwkennedy\u003c/code\u003e\u003c/a\u003e in\n\u003ca\nhref\u003d\"https://redirect.github.com/actions/upload-artifact/pull/795\"\u003eactions/upload-artifact#795\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReadme: bump all the example versions to v7 by \u003ca\nhref\u003d\"https://github.com/danwkennedy\"\u003e\u003ccode\u003e@​danwkennedy\u003c/code\u003e\u003c/a\u003e in\n\u003ca\nhref\u003d\"https://redirect.github.com/actions/upload-artifact/pull/796\"\u003eactions/upload-artifact#796\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInclude changes in typespec/ts-http-runtime 0.3.5 by \u003ca\nhref\u003d\"https://github.com/yacaovsnc\"\u003e\u003ccode\u003e@​yacaovsnc\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/upload-artifact/pull/797\"\u003eactions/upload-artifact#797\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca\nhref\u003d\"https://github.com/actions/upload-artifact/compare/v7...v7.0.1\"\u003ehttps://github.com/actions/upload-artifact/compare/v7...v7.0.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/upload-artifact/commit/043fb46d1a93c77aae656e7c1c64a875d1fc6a0a\"\u003e\u003ccode\u003e043fb46\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/actions/upload-artifact/issues/797\"\u003e#797\u003c/a\u003e\nfrom actions/yacaovsnc/update-dependency\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/upload-artifact/commit/634250c1388765ea7ed0f053e636f1f399000b94\"\u003e\u003ccode\u003e634250c\u003c/code\u003e\u003c/a\u003e\nInclude changes in typespec/ts-http-runtime 0.3.5\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/upload-artifact/commit/e454baaac2be505c9450e11b8f3215c6fc023ce8\"\u003e\u003ccode\u003ee454baa\u003c/code\u003e\u003c/a\u003e\nReadme: bump all the example versions to v7 (\u003ca\nhref\u003d\"https://redirect.github.com/actions/upload-artifact/issues/796\"\u003e#796\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/upload-artifact/commit/74fad66b98a6d799dc004d3353ccd0e6f6b2530e\"\u003e\u003ccode\u003e74fad66\u003c/code\u003e\u003c/a\u003e\nUpdate the readme with direct upload details (\u003ca\nhref\u003d\"https://redirect.github.com/actions/upload-artifact/issues/795\"\u003e#795\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca\nhref\u003d\"https://github.com/actions/upload-artifact/compare/bbbca2ddaa5d8feaa63e36b76fdaad77386f024f...043fb46d1a93c77aae656e7c1c64a875d1fc6a0a\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility\nscore](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name\u003dactions/upload-artifact\u0026package-manager\u003dgithub_actions\u0026previous-version\u003d7.0.0\u0026new-version\u003d7.0.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don\u0027t\nalter it yourself. You can also trigger a rebase manually by commenting\n`@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits\nthat have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all\nof the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop\nDependabot creating any more for this major version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop\nDependabot creating any more for this minor version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop\nDependabot creating any more for this dependency (unless you reopen the\nPR or upgrade to it yourself)\n\n\n\u003c/details\u003e\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "8adb304350f734c1c5b64a27a386273107972ec6",
      "tree": "1fbe6f5de645ba6db15fb7906ee00b916fd4aa53",
      "parents": [
        "e7b228bd00a86e5304dcadf3919060f6c1cedba8"
      ],
      "author": {
        "name": "Kevin Liu",
        "email": "kevinjqliu@users.noreply.github.com",
        "time": "Thu Apr 16 20:28:24 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 17 11:28:24 2026 +0800"
      },
      "message": "ci: set zizmor min-severity and min-confidence to medium (#620)\n\nPart of https://github.com/apache/iceberg/issues/16000\n\nGets rid of `zizmor: ignore[cache-poisoning]`, its low confidence. \nSet `min-severity: medium` and `min-confidence: medium` in\n`.github/workflows/zizmor.yml`\n\n\nValidated locally:\n```\nGH_TOKEN\u003d`gh auth token` uvx zizmor --min-severity medium --min-confidence medium .github/\n```"
    },
    {
      "commit": "e7b228bd00a86e5304dcadf3919060f6c1cedba8",
      "tree": "11b382d7ff02e9ea1c31623d0c6ec3b0cb876f5d",
      "parents": [
        "4876d7c5469628ecea41d4f89776e6ae81521e80"
      ],
      "author": {
        "name": "Zehua Zou",
        "email": "zehuazou2000@gmail.com",
        "time": "Fri Apr 17 11:27:53 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 17 11:27:53 2026 +0800"
      },
      "message": "chore: add more ai related .gitignore (#621)"
    },
    {
      "commit": "4876d7c5469628ecea41d4f89776e6ae81521e80",
      "tree": "2bc93823bb2bca2a129245e8e1918e3569b1512a",
      "parents": [
        "633965f7eb94aeb082b211ae6c79c7e2fcbeb184"
      ],
      "author": {
        "name": "wzhuo",
        "email": "wngzhuo@gmail.com",
        "time": "Fri Apr 17 09:44:12 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 17 09:44:12 2026 +0800"
      },
      "message": "feat: implement incremental changelog scan (#611)"
    },
    {
      "commit": "633965f7eb94aeb082b211ae6c79c7e2fcbeb184",
      "tree": "1edb8d9281c88dc083c65d6dacd18d94c7bd510e",
      "parents": [
        "c38b392e8b87d2f07eea426643a60e00adf4dcca"
      ],
      "author": {
        "name": "Kevin Liu",
        "email": "kevinjqliu@users.noreply.github.com",
        "time": "Thu Apr 16 09:24:18 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 16 09:24:18 2026 -0700"
      },
      "message": "ci: apply github workflow best practice (zizmor/codeql/asf-allowlist-check) (#618)\n\nAdding these 3 checks for all apache/iceberg* repos as part of\nhttps://github.com/apache/iceberg/issues/15742"
    },
    {
      "commit": "c38b392e8b87d2f07eea426643a60e00adf4dcca",
      "tree": "5b18831d5b0a9503087fc5e3c414d93ac7718e64",
      "parents": [
        "a5fc25f3ab3444670af3f91a75a532c64c53510a"
      ],
      "author": {
        "name": "ZhaoXuan",
        "email": "425932451@qq.com",
        "time": "Thu Apr 16 23:28:03 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 16 23:28:03 2026 +0800"
      },
      "message": "feat(puffin): add format constants, utilities, and JSON serde (#603)"
    },
    {
      "commit": "a5fc25f3ab3444670af3f91a75a532c64c53510a",
      "tree": "7b7724bfa8b5def2622a66e8730f31479ae5d3b2",
      "parents": [
        "cda8fc4061e4f4a70868f991c8e0aa84cbb2e034"
      ],
      "author": {
        "name": "liuxiaoyu",
        "email": "45345701+MisterRaindrop@users.noreply.github.com",
        "time": "Thu Apr 16 23:12:58 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 16 23:12:58 2026 +0800"
      },
      "message": "feat: add s3 file io integration (#548)"
    },
    {
      "commit": "cda8fc4061e4f4a70868f991c8e0aa84cbb2e034",
      "tree": "5c26f0382936c078a5ef081edd77c8bb0f57e31f",
      "parents": [
        "42b00d40a29cf447a73ec0e0eaa79d75cfe8b83a"
      ],
      "author": {
        "name": "Gang Wu",
        "email": "ustcwg@gmail.com",
        "time": "Wed Apr 15 09:44:12 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 15 09:44:12 2026 +0800"
      },
      "message": "feat(rest): support namespace separator (#617)"
    },
    {
      "commit": "42b00d40a29cf447a73ec0e0eaa79d75cfe8b83a",
      "tree": "2e9af1ccca0e5b8ffcd28e9714f39a655b79e78e",
      "parents": [
        "a1dc2f859e57ec67bc8a128111ae82310e690868"
      ],
      "author": {
        "name": "Sebastian Baunsgaard",
        "email": "seb@bgaard.dk",
        "time": "Sat Apr 04 17:26:20 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Apr 04 23:26:20 2026 +0800"
      },
      "message": "feat(perf): optimize AddRange in RoaringPositionBitmap (#608)\n\nReplace the per-position loop in `RoaringPositionBitmap::AddRange` with\ndirect calls to `roaring::Roaring::addRange`, matching the optimization\nin the Java implementation\n(https://github.com/apache/iceberg/pull/15791).\n\nAdded tests for single-position ranges, large contiguous ranges,\nthree-key spanning ranges, and invalid inputs."
    },
    {
      "commit": "a1dc2f859e57ec67bc8a128111ae82310e690868",
      "tree": "afe67f13ff3cee6fa84992585fc92f3b0f59427e",
      "parents": [
        "9190c0afb2561fd063a14f50da8689de5f4586b9"
      ],
      "author": {
        "name": "Gang Wu",
        "email": "ustcwg@gmail.com",
        "time": "Sat Apr 04 23:25:27 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Apr 04 23:25:27 2026 +0800"
      },
      "message": "feat(data): add DeleteLoader for position and equality delete files (#610)\n\n- LoadPositionDeletes dispatches to LoadPositionDelete (file-based) and\nLoadDV (deletion vectors, not yet implemented).\n- LoadEqualityDeletes reads equality delete files into a StructLikeSet."
    },
    {
      "commit": "9190c0afb2561fd063a14f50da8689de5f4586b9",
      "tree": "2d44e8fb7aed5c30701f589d6d886fd9772a59dc",
      "parents": [
        "5666e67ae36973666249621acad460ab0b2900c8"
      ],
      "author": {
        "name": "SkylerLin",
        "email": "44233950+linguoxuan@users.noreply.github.com",
        "time": "Wed Apr 01 22:51:21 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 01 22:51:21 2026 +0800"
      },
      "message": "fix: update metadata_location_ in Table::Refresh() method (#612)"
    },
    {
      "commit": "5666e67ae36973666249621acad460ab0b2900c8",
      "tree": "95be705316cbba638bed382a4927d340a9d75406",
      "parents": [
        "36b588701d9e3a2f4a3ce57d3c76374d4a5f9d2b"
      ],
      "author": {
        "name": "Gang Wu",
        "email": "ustcwg@gmail.com",
        "time": "Sun Mar 29 09:48:25 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Mar 29 09:48:25 2026 +0800"
      },
      "message": "docs: restructure and improve documentation website (#606)\n\n## Changes\n\n### README.md\n- Add License badge\n- Split Requirements into Required and Optional, add Ninja\n- Add Quick Start section (clone → build → test in one go)\n- Add CMake Build Options table with all available options\n- Add \"Build with Meson\" section with Meson-specific options\n- Move \"Customizing Dependency URLs\" after Build sections\n- Add `ctest -R` example for running specific tests\n- Normalize `cd` paths (assume user is already in project root)\n\n### Website restructure (`mkdocs/`)\n- **Navigation**: Home → Getting Started → Contributing → Releases (3\nsub-pages) → API Documentation\n- **New `index.md`**: Project introduction, key features, quick links,\nand community info (was previously the Contributing page)\n- **New `getting-started.md`**: Build/install instructions extracted\nfrom Contributing, with CMake/Meson options tables and dependency URL\ncustomization\n- **New `contributing.md`**: Coding standards (naming convention table),\ndevelopment environment setup, submission workflow, and community links\n- **New `release-process.md`**: Release manager guide extracted from\n`dev/release/README.md`\n- **New `verify-rc.md`**: RC verification guide with both automated\nscript and manual steps\n- **Rewritten `releases.md`**: Summary table + per-version highlights;\n0.2.0 content aligned with official blog post; corrected release dates\n(0.1.0: Sep 10 2025, 0.2.0: Jan 26 2026); removed inaccurate pre-built\nbinaries and package manager claims\n\n### Fixes\n- Rename `docs/assert/` → `docs/assets/` (typo)\n- Add `site_description` to `mkdocs.yml` for SEO\n- Enable `navigation.sections` and `toc.integrate` for cleaner layout"
    },
    {
      "commit": "36b588701d9e3a2f4a3ce57d3c76374d4a5f9d2b",
      "tree": "49590b27454b86d095aa986a6224bd73280c2a8f",
      "parents": [
        "181fc8ad9accce9feb2e6c961fafc3db0cc5e0b7"
      ],
      "author": {
        "name": "Gang Wu",
        "email": "ustcwg@gmail.com",
        "time": "Sat Mar 28 11:51:59 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Mar 28 11:51:59 2026 +0800"
      },
      "message": "feat: add StructLikeSet (#598)\n\nAdds StructLikeSet\u003cbool kValidate \u003d true\u003e, a hash set for StructLike\nrows backed by an internal arena allocator.\n\nKey design points:\n- Deep-copies inserted rows into a monotonic_buffer_resource arena;\nstring data and nested struct/list/map scalars are fully materialized so\nthe set owns its memory independently of the caller\n- Transparent heterogeneous lookup: Contains() does not allocate a\ntemporary key\n- Hash and equality semantics match the Java reference implementation\n(String.hashCode, StructLikeHash, ListHash; float/double use canonical\nNaN bits and distinguish ±0.0)\n- Schema validation (field count + scalar type) on Insert/Contains; can\nbe disabled via kValidate\u003dfalse (UncheckedStructLikeSet) when the caller\nguarantees conformance\n- Internal Arena wrapper containers use std::pmr::vector"
    },
    {
      "commit": "181fc8ad9accce9feb2e6c961fafc3db0cc5e0b7",
      "tree": "4227f6d986d04f66871a65cba08b8ae05992a817",
      "parents": [
        "5f4904f8ab32ae675de928785e8592187c3b4d23"
      ],
      "author": {
        "name": "wzhuo",
        "email": "wngzhuo@gmail.com",
        "time": "Sat Mar 28 11:51:37 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Mar 28 11:51:37 2026 +0800"
      },
      "message": "feat: metrics for avro writer (#604)"
    },
    {
      "commit": "5f4904f8ab32ae675de928785e8592187c3b4d23",
      "tree": "07572de5d106a891950f58c5f91285eed21ed60b",
      "parents": [
        "cdf05d6586a322410789717d7c5c81b45c18ae78"
      ],
      "author": {
        "name": "Gang Wu",
        "email": "ustcwg@gmail.com",
        "time": "Sat Mar 28 11:51:19 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Mar 28 11:51:19 2026 +0800"
      },
      "message": "feat: add position delete index (#605)"
    },
    {
      "commit": "cdf05d6586a322410789717d7c5c81b45c18ae78",
      "tree": "25955ab3ff9f6454af6e63de54d8a200d140283a",
      "parents": [
        "133742da37bdcf4b2c3882d8b5fb49ea148c8e57"
      ],
      "author": {
        "name": "wzhuo",
        "email": "wngzhuo@gmail.com",
        "time": "Fri Mar 27 10:31:59 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Mar 27 10:31:59 2026 +0800"
      },
      "message": "feat: implement IncrementalAppendScan (#590)"
    },
    {
      "commit": "133742da37bdcf4b2c3882d8b5fb49ea148c8e57",
      "tree": "522494996c8a67255ffc3a2f0a819b07f7d4cdf3",
      "parents": [
        "9adb90e3d9da41abd0a34cd3f6e66a4a9404b040"
      ],
      "author": {
        "name": "Gang Wu",
        "email": "ustcwg@gmail.com",
        "time": "Wed Mar 25 21:50:17 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Mar 25 21:50:17 2026 +0800"
      },
      "message": "feat: add roaring-based position bitmap (#595)\n\nCo-authored-by: emkornfield \u003cemkornfield@gmail.com\u003e"
    },
    {
      "commit": "9adb90e3d9da41abd0a34cd3f6e66a4a9404b040",
      "tree": "7cae86d021d349569f230d4f2c1ed13f1d8af06e",
      "parents": [
        "7c2cc68830a7ce9bcca7bd0fe633bad39c812a5a"
      ],
      "author": {
        "name": "wzhuo",
        "email": "wngzhuo@gmail.com",
        "time": "Wed Mar 25 20:59:27 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Mar 25 20:59:27 2026 +0800"
      },
      "message": "fix:  add using StructType::Equals to fix `-Woverloaded-virtual` warning (#601)\n\nSchema::Equals(const Schema\u0026) hides StructType::Equals(const Type\u0026),\ntriggering Clang\u0027s `-Woverloaded-virtual` warning. Add `using\nStructType::Equals` to bring the base class overload into scope\nalongside the Schema-specific one."
    },
    {
      "commit": "7c2cc68830a7ce9bcca7bd0fe633bad39c812a5a",
      "tree": "a01e33f2054b805aadebc6d1a0095d1cfd324cea",
      "parents": [
        "743c3185848dc01f5de990075f65eed904e970e4"
      ],
      "author": {
        "name": "Gang Wu",
        "email": "ustcwg@gmail.com",
        "time": "Wed Mar 25 20:58:54 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Mar 25 20:58:54 2026 +0800"
      },
      "message": "fix: use secure random for UUID generation (#602)\n\nReplaced the non-cryptographically secure std::mt19937 with\nstd::random_device for generating UUID v4 and v7. This provides a\ncryptographically secure random source on modern systems.\n\nCo-authored-by: google-labs-jules[bot] \u003c161369871+google-labs-jules[bot]@users.noreply.github.com\u003e\nCo-authored-by: wgtmac \u003c4684607+wgtmac@users.noreply.github.com\u003e"
    },
    {
      "commit": "743c3185848dc01f5de990075f65eed904e970e4",
      "tree": "9000d101a4f96ef2cf44cf9be2d94cb535449f58",
      "parents": [
        "f79f885e46f6460b3356e90288e8d69803558f57"
      ],
      "author": {
        "name": "ZhaoXuan",
        "email": "425932451@qq.com",
        "time": "Tue Mar 24 09:55:45 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 24 09:55:45 2026 +0800"
      },
      "message": "feat(puffin): add basic data structures and constants of puffin (#588)\n\nAdd the foundational types for Puffin file format support:\n- Blob, BlobMetadata, FileMetadata structs\n- PuffinCompressionCodec enum with codec name conversion\n- StandardBlobTypes and StandardPuffinProperties constants\n- ToString functions for all types"
    },
    {
      "commit": "f79f885e46f6460b3356e90288e8d69803558f57",
      "tree": "ba19908cb2a32fe794d089a6a17187103f1b10a1",
      "parents": [
        "c27fd154251c5a3585c6ad238f126dd5d8ccc0be"
      ],
      "author": {
        "name": "Kevin Liu",
        "email": "kevinjqliu@users.noreply.github.com",
        "time": "Mon Mar 23 18:45:54 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 24 09:45:54 2026 +0800"
      },
      "message": "Infra: Remove GitHub Actions from Dependabot configuration (#597)\n\nRelated to https://github.com/apache/iceberg-python/issues/3186\n\nDont auto update since we now depend on github action being allowlisted\nby asf-infra first,\nhttps://github.com/apache/infrastructure-actions/blob/main/approved_patterns.yml"
    },
    {
      "commit": "c27fd154251c5a3585c6ad238f126dd5d8ccc0be",
      "tree": "df738328ed7d276a4e7b90cd317c1514d0fbb5e5",
      "parents": [
        "0596ef52984289e2c279da1e088af14b2dfcad46"
      ],
      "author": {
        "name": "Gang Wu",
        "email": "ustcwg@gmail.com",
        "time": "Sat Mar 21 01:25:44 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Mar 20 10:25:44 2026 -0700"
      },
      "message": "chore(deps): update nanoarrow download url  (#596)\n\nCo-authored-by: google-labs-jules[bot] \u003c161369871+google-labs-jules[bot]@users.noreply.github.com\u003e\nCo-authored-by: wgtmac \u003c4684607+wgtmac@users.noreply.github.com\u003e"
    },
    {
      "commit": "0596ef52984289e2c279da1e088af14b2dfcad46",
      "tree": "a945d32335f154717b2649af974404925544c590",
      "parents": [
        "4db7c67ecb624bdbf18a71d24ee5947bab70d792"
      ],
      "author": {
        "name": "wzhuo",
        "email": "wngzhuo@gmail.com",
        "time": "Thu Mar 19 17:42:49 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Mar 19 17:42:49 2026 +0800"
      },
      "message": "fix: use base_location instead of location in CreateTable (#594)\n\nPass the resolved base_location to TableMetadata::Make instead of the\nraw location parameter, ensuring the computed default warehouse path is\nused when no explicit location is provided."
    },
    {
      "commit": "4db7c67ecb624bdbf18a71d24ee5947bab70d792",
      "tree": "64ccdaa7f8613376a60753668a17bc121c218f76",
      "parents": [
        "72d3831e7be25b86f04c508d70c3e17029e77d68"
      ],
      "author": {
        "name": "Feiyang Li",
        "email": "lifeiyang@zju.edu.cn",
        "time": "Thu Mar 19 15:56:49 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Mar 19 15:56:49 2026 +0800"
      },
      "message": "feat(rest): support  snapshot loading mode (#543)"
    },
    {
      "commit": "72d3831e7be25b86f04c508d70c3e17029e77d68",
      "tree": "b507d993085d7786cc973c61fad2b0a5cfe4d7c1",
      "parents": [
        "31aa68af6ce282ea284f2ade0e9b56bbc5bb1cc1"
      ],
      "author": {
        "name": "lishuxu",
        "email": "lishuxu@gmail.com",
        "time": "Thu Mar 19 11:35:37 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Mar 19 11:35:37 2026 +0800"
      },
      "message": "feat(rest): add initial oauth2 support to rest catalog (#577)\n\nAdd OAuth2 authentication support for the REST catalog, including:\n- OAuth2Manager with static token and client_credentials grant flows\n\nTODO:\n- RefreshToken and ExchangeToken will be supported later"
    },
    {
      "commit": "31aa68af6ce282ea284f2ade0e9b56bbc5bb1cc1",
      "tree": "661b6ef60f771ef7e38630f13f701addd795c2ed",
      "parents": [
        "8b2cc7f55468538108eac48e4fc85d869b174f10"
      ],
      "author": {
        "name": "Gang Wu",
        "email": "ustcwg@gmail.com",
        "time": "Thu Mar 19 11:35:23 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Mar 19 11:35:23 2026 +0800"
      },
      "message": "chore: add ai related files to .gitignore (#593)"
    },
    {
      "commit": "8b2cc7f55468538108eac48e4fc85d869b174f10",
      "tree": "8ce90b0bc9451b69971c3627d2b6c0ce174862b2",
      "parents": [
        "8fdf34628d8e5bdec53e56fbeaa18ff27bff6a4d"
      ],
      "author": {
        "name": "Innocent Djiofack",
        "email": "djiofack007@gmail.com",
        "time": "Wed Mar 18 07:30:55 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Mar 18 22:30:55 2026 +0800"
      },
      "message": "feat: bind literals with right type after serde (#562)"
    },
    {
      "commit": "8fdf34628d8e5bdec53e56fbeaa18ff27bff6a4d",
      "tree": "106ca3e02bc67047c7d47841eb3e13d69589c2e8",
      "parents": [
        "1afe65cdce995f31795ed4ebf4c54d4b5ef74f6c"
      ],
      "author": {
        "name": "Gang Wu",
        "email": "ustcwg@gmail.com",
        "time": "Mon Mar 16 22:16:39 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 16 22:16:39 2026 +0800"
      },
      "message": "  refactor: introduce TransactionContext to decouple Transaction and PendingUpdate (#591)\n\nAdd TransactionContext to own the shared state (table, metadata_builder,\nkind) between Transaction and PendingUpdate. Both now hold a\nshared_ptr\u003cTransactionContext\u003e instead of PendingUpdate holding a\nweak_ptr\u003cTransaction\u003e.\n\nThis fixes two issues:\n- pending_updates_ was weak_ptr, so dropping a PendingUpdate would\nsilently break Finalize/retry; now Transaction holds shared_ptr\n- Table::New*() no longer creates a temporary Transaction; it creates a\nTransactionContext directly and passes it to the PendingUpdate, removing\nthe circular dependency\n\nAlso clean up related redundancy:\n- Hoist Transaction::Kind to a standalone enum class TransactionKind\n- Remove Transaction::kind_ (duplicate of ctx_-\u003ekind)\n- Remove auto_commit machinery; PendingUpdate::Commit() now calls\ntxn-\u003eCommit() explicitly on the table-created path\n- TransactionContext::Make returns Result to propagate null table errors"
    },
    {
      "commit": "1afe65cdce995f31795ed4ebf4c54d4b5ef74f6c",
      "tree": "f385d5bd214b9535e45dea76f11bd64dca079872",
      "parents": [
        "69cf2d3f6735974cb7674ff1b6fc87b3b6d91948"
      ],
      "author": {
        "name": "Xinli Shang",
        "email": "shangx@uber.com",
        "time": "Sat Mar 14 20:38:16 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Mar 15 11:38:16 2026 +0800"
      },
      "message": "feat: Implement EqualityDeleteWriter for equality delete files (#583)\n\nImplement the EqualityDeleteWriter following the same PIMPL pattern as\nDataWriter. The writer accepts Arrow data matching the equality delete\nschema (columns for the equality field values) and produces metadata\nwith content\u003dkEqualityDeletes, equality_ids set from options, and\nsort_order_id propagated from options."
    },
    {
      "commit": "69cf2d3f6735974cb7674ff1b6fc87b3b6d91948",
      "tree": "20eae1cf68fa145298a42ff26ba5e39586b680bc",
      "parents": [
        "d43455d71e8a6cd1fd9e070c94f250f9fa73ae57"
      ],
      "author": {
        "name": "Xinli Shang",
        "email": "shangx@uber.com",
        "time": "Sat Mar 14 19:43:00 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Mar 15 10:43:00 2026 +0800"
      },
      "message": "feat: Implement PositionDeleteWriter for position delete files (#582)\n\nImplement the PositionDeleteWriter following the same PIMPL pattern as\nDataWriter. The writer supports both buffered WriteDelete(file_path,\npos) calls and direct Write(ArrowArray*) for pre-formed batches.\nMetadata reports content\u003dkPositionDeletes with sort_order_id\u003dnullopt per\nspec, and tracks referenced_data_file when all deletes target a single\nfile.\n\n---------\n\nCo-authored-by: shangxinli \u003cshangxinli@users.noreply.github.com\u003e\nCo-authored-by: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "d43455d71e8a6cd1fd9e070c94f250f9fa73ae57",
      "tree": "b04504b8634d6de6465ac1829b648a6253053100",
      "parents": [
        "baf139cb691b82672e284deadb6a3643468f4f4f"
      ],
      "author": {
        "name": "Junwang Zhao",
        "email": "zhjwpku@gmail.com",
        "time": "Fri Mar 13 16:24:18 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Mar 13 16:24:18 2026 +0800"
      },
      "message": "feat: implement UpdateMapping and apply meta change to UpdateSchema (#561)"
    },
    {
      "commit": "baf139cb691b82672e284deadb6a3643468f4f4f",
      "tree": "d48eb4d72f85b71c9d092e455ac3b369a4dd29ac",
      "parents": [
        "066bee0077cd69d304aaa4f98880e86675ebfe1e"
      ],
      "author": {
        "name": "wzhuo",
        "email": "wngzhuo@gmail.com",
        "time": "Fri Mar 13 13:47:58 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Mar 13 13:47:58 2026 +0800"
      },
      "message": "feat: implement truncate max for literals (#585)"
    },
    {
      "commit": "066bee0077cd69d304aaa4f98880e86675ebfe1e",
      "tree": "2a5b32b91fd8838a064f629a80b70b46ea286541",
      "parents": [
        "8bf089f50d71317741c2bd80ec9cdbc8fa61f918"
      ],
      "author": {
        "name": "wzhuo",
        "email": "wngzhuo@gmail.com",
        "time": "Thu Mar 12 17:22:16 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Mar 12 17:22:16 2026 +0800"
      },
      "message": "feat: Add incremental scan API (#559)"
    },
    {
      "commit": "8bf089f50d71317741c2bd80ec9cdbc8fa61f918",
      "tree": "12fe5ed1eb8d32422953763a6b85dc70c89e978a",
      "parents": [
        "dd1da0e26263200258b1eb2f46ca3f0c24372499"
      ],
      "author": {
        "name": "Gang Wu",
        "email": "ustcwg@gmail.com",
        "time": "Fri Mar 06 23:24:50 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Mar 06 23:24:50 2026 +0800"
      },
      "message": "fix(ci): windows ci should return error if build fails (#586)\n\nSee\nhttps://github.com/apache/iceberg-cpp/actions/runs/22508462478/job/65212265633?pr\u003d553"
    },
    {
      "commit": "dd1da0e26263200258b1eb2f46ca3f0c24372499",
      "tree": "1e1200f57cddfde013b3f0458d0f71630709f390",
      "parents": [
        "ff7f5b8a1a3b7ef57fafdee5e340af858996afa4"
      ],
      "author": {
        "name": "Innocent Djiofack",
        "email": "djiofack007@gmail.com",
        "time": "Thu Mar 05 19:05:54 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Mar 06 10:05:54 2026 +0800"
      },
      "message": "feat: add json serde for expressions (#553)"
    },
    {
      "commit": "ff7f5b8a1a3b7ef57fafdee5e340af858996afa4",
      "tree": "0ee8cb796217cf8d02990df859f3bf126ab29abd",
      "parents": [
        "cd93b99b8704de6a4d3b716b9e45ecdd316c0f8d"
      ],
      "author": {
        "name": "Xinli Shang",
        "email": "shangx@uber.com",
        "time": "Thu Mar 05 07:38:41 2026 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Mar 05 23:38:41 2026 +0800"
      },
      "message": "fix: add missing direct include of \u003cvector\u003e in file_writer.h (#584)\n\n## Summary\n- `file_writer.h` uses `std::vector\u003cint64_t\u003e` as the return type of\n`Writer::split_offsets()` but does not directly include `\u003cvector\u003e`,\nrelying on a transitive include\n- Add the missing `\u003cvector\u003e` include to follow the include-what-you-use\nprinciple\n\nCo-authored-by: shangxinli \u003cshangxinli@users.noreply.github.com\u003e"
    },
    {
      "commit": "cd93b99b8704de6a4d3b716b9e45ecdd316c0f8d",
      "tree": "f16b8469a1f1f47894c7ba9bfd7a2aa99cf44c48",
      "parents": [
        "653ededd9ba0360d025ee465838ee3a937d19562"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Feb 27 15:29:55 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Feb 27 15:29:55 2026 +0800"
      },
      "message": "chore(deps): bump actions/upload-artifact from 6.0.0 to 7.0.0 (#579)\n\nBumps\n[actions/upload-artifact](https://github.com/actions/upload-artifact)\nfrom 6.0.0 to 7.0.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/actions/upload-artifact/releases\"\u003eactions/upload-artifact\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.0.0\u003c/h2\u003e\n\u003ch2\u003ev7 What\u0027s new\u003c/h2\u003e\n\u003ch3\u003eDirect Uploads\u003c/h3\u003e\n\u003cp\u003eAdds support for uploading single files directly (unzipped). Callers\ncan set the new \u003ccode\u003earchive\u003c/code\u003e parameter to \u003ccode\u003efalse\u003c/code\u003e to\nskip zipping the file during upload. Right now, we only support single\nfiles. The action will fail if the glob passed resolves to multiple\nfiles. The \u003ccode\u003ename\u003c/code\u003e parameter is also ignored with this\nsetting. Instead, the name of the artifact will be the name of the\nuploaded file.\u003c/p\u003e\n\u003ch3\u003eESM\u003c/h3\u003e\n\u003cp\u003eTo support new versions of the \u003ccode\u003e@actions/*\u003c/code\u003e packages,\nwe\u0027ve upgraded the package to ESM.\u003c/p\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd proxy integration test by \u003ca\nhref\u003d\"https://github.com/Link\"\u003e\u003ccode\u003e@​Link\u003c/code\u003e\u003c/a\u003e- in \u003ca\nhref\u003d\"https://redirect.github.com/actions/upload-artifact/pull/754\"\u003eactions/upload-artifact#754\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade the module to ESM and bump dependencies by \u003ca\nhref\u003d\"https://github.com/danwkennedy\"\u003e\u003ccode\u003e@​danwkennedy\u003c/code\u003e\u003c/a\u003e in\n\u003ca\nhref\u003d\"https://redirect.github.com/actions/upload-artifact/pull/762\"\u003eactions/upload-artifact#762\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport direct file uploads by \u003ca\nhref\u003d\"https://github.com/danwkennedy\"\u003e\u003ccode\u003e@​danwkennedy\u003c/code\u003e\u003c/a\u003e in\n\u003ca\nhref\u003d\"https://redirect.github.com/actions/upload-artifact/pull/764\"\u003eactions/upload-artifact#764\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/Link\"\u003e\u003ccode\u003e@​Link\u003c/code\u003e\u003c/a\u003e- made\ntheir first contribution in \u003ca\nhref\u003d\"https://redirect.github.com/actions/upload-artifact/pull/754\"\u003eactions/upload-artifact#754\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca\nhref\u003d\"https://github.com/actions/upload-artifact/compare/v6...v7.0.0\"\u003ehttps://github.com/actions/upload-artifact/compare/v6...v7.0.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/upload-artifact/commit/bbbca2ddaa5d8feaa63e36b76fdaad77386f024f\"\u003e\u003ccode\u003ebbbca2d\u003c/code\u003e\u003c/a\u003e\nSupport direct file uploads (\u003ca\nhref\u003d\"https://redirect.github.com/actions/upload-artifact/issues/764\"\u003e#764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/upload-artifact/commit/589182c5a4cec8920b8c1bce3e2fab1c97a02296\"\u003e\u003ccode\u003e589182c\u003c/code\u003e\u003c/a\u003e\nUpgrade the module to ESM and bump dependencies (\u003ca\nhref\u003d\"https://redirect.github.com/actions/upload-artifact/issues/762\"\u003e#762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/upload-artifact/commit/47309c993abb98030a35d55ef7ff34b7fa1074b5\"\u003e\u003ccode\u003e47309c9\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/actions/upload-artifact/issues/754\"\u003e#754\u003c/a\u003e\nfrom actions/Link-/add-proxy-integration-tests\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/upload-artifact/commit/02a8460834e70dab0ce194c64360c59dc1475ef0\"\u003e\u003ccode\u003e02a8460\u003c/code\u003e\u003c/a\u003e\nAdd proxy integration test\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca\nhref\u003d\"https://github.com/actions/upload-artifact/compare/b7c566a772e6b6bfb58ed0dc250532a479d7789f...bbbca2ddaa5d8feaa63e36b76fdaad77386f024f\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility\nscore](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name\u003dactions/upload-artifact\u0026package-manager\u003dgithub_actions\u0026previous-version\u003d6.0.0\u0026new-version\u003d7.0.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don\u0027t\nalter it yourself. You can also trigger a rebase manually by commenting\n`@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits\nthat have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all\nof the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop\nDependabot creating any more for this major version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop\nDependabot creating any more for this minor version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop\nDependabot creating any more for this dependency (unless you reopen the\nPR or upgrade to it yourself)\n\n\n\u003c/details\u003e\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "653ededd9ba0360d025ee465838ee3a937d19562",
      "tree": "f08fe70ae552821b0b9e3d9cefe6cf383d6ab9af",
      "parents": [
        "8397c081026fceffdd54645a851a98f694be9cd4"
      ],
      "author": {
        "name": "Junwang Zhao",
        "email": "zhjwpku@gmail.com",
        "time": "Fri Feb 27 15:29:43 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Feb 27 15:29:43 2026 +0800"
      },
      "message": "chore: use ubuntu-slim for lightweight jobs (#578)\n\nubuntu-slim is a new cost-efficient runner to fit lightweight jobs. We\ncan use this to save ASF infra usage (if possible).\n\nThis topic was raised in the Apache ORC project, see\nhttps://github.com/apache/orc/pull/2566\n\nRefs:\n\n-\nhttps://github.blog/changelog/2025-10-28-1-vcpu-linux-runner-now-available-in-github-actions-in-public-preview/\n-\nhttps://github.com/actions/runner-images/blob/main/images/ubuntu-slim/ubuntu-slim-Readme.md"
    },
    {
      "commit": "8397c081026fceffdd54645a851a98f694be9cd4",
      "tree": "d1b5aa45b586b11fb50e69fe283ca9a8fa6c7b34",
      "parents": [
        "349eb923878703b26b67fcf4ed87202a17b315a7"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Feb 27 15:29:29 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Feb 27 15:29:29 2026 +0800"
      },
      "message": "chore(deps): bump actions/download-artifact from 7 to 8 (#580)\n\nBumps\n[actions/download-artifact](https://github.com/actions/download-artifact)\nfrom 7 to 8.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/actions/download-artifact/releases\"\u003eactions/download-artifact\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.0.0\u003c/h2\u003e\n\u003ch2\u003ev8 - What\u0027s new\u003c/h2\u003e\n\u003ch3\u003eDirect downloads\u003c/h3\u003e\n\u003cp\u003eTo support direct uploads in \u003ccode\u003eactions/upload-artifact\u003c/code\u003e,\nthe action will no longer attempt to unzip all downloaded files.\nInstead, the action checks the \u003ccode\u003eContent-Type\u003c/code\u003e header ahead of\nunzipping and skips non-zipped files. Callers wishing to download a\nzipped file as-is can also set the new \u003ccode\u003eskip-decompress\u003c/code\u003e\nparameter to \u003ccode\u003efalse\u003c/code\u003e.\u003c/p\u003e\n\u003ch3\u003eEnforced checks (breaking)\u003c/h3\u003e\n\u003cp\u003eA previous release introduced digest checks on the download. If a\ndownload hash didn\u0027t match the expected hash from the server, the action\nwould log a warning. Callers can now configure the behavior on mismatch\nwith the \u003ccode\u003edigest-mismatch\u003c/code\u003e parameter. To be secure by\ndefault, we are now defaulting the behavior to \u003ccode\u003eerror\u003c/code\u003e which\nwill fail the workflow run.\u003c/p\u003e\n\u003ch3\u003eESM\u003c/h3\u003e\n\u003cp\u003eTo support new versions of the @actions/* packages, we\u0027ve upgraded\nthe package to ESM.\u003c/p\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDon\u0027t attempt to un-zip non-zipped downloads by \u003ca\nhref\u003d\"https://github.com/danwkennedy\"\u003e\u003ccode\u003e@​danwkennedy\u003c/code\u003e\u003c/a\u003e in\n\u003ca\nhref\u003d\"https://redirect.github.com/actions/download-artifact/pull/460\"\u003eactions/download-artifact#460\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd a setting to specify what to do on hash mismatch and default it\nto \u003ccode\u003eerror\u003c/code\u003e by \u003ca\nhref\u003d\"https://github.com/danwkennedy\"\u003e\u003ccode\u003e@​danwkennedy\u003c/code\u003e\u003c/a\u003e in\n\u003ca\nhref\u003d\"https://redirect.github.com/actions/download-artifact/pull/461\"\u003eactions/download-artifact#461\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca\nhref\u003d\"https://github.com/actions/download-artifact/compare/v7...v8.0.0\"\u003ehttps://github.com/actions/download-artifact/compare/v7...v8.0.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/download-artifact/commit/70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3\"\u003e\u003ccode\u003e70fc10c\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/actions/download-artifact/issues/461\"\u003e#461\u003c/a\u003e\nfrom actions/danwkennedy/digest-mismatch-behavior\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/download-artifact/commit/f258da9a506b755b84a09a531814700b86ccfc62\"\u003e\u003ccode\u003ef258da9\u003c/code\u003e\u003c/a\u003e\nAdd change docs\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/download-artifact/commit/ccc058e5fbb0bb2352213eaec3491e117cbc4a5c\"\u003e\u003ccode\u003eccc058e\u003c/code\u003e\u003c/a\u003e\nFix linting issues\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/download-artifact/commit/bd7976ba57ecea96e6f3df575eb922d11a12a9fd\"\u003e\u003ccode\u003ebd7976b\u003c/code\u003e\u003c/a\u003e\nAdd a setting to specify what to do on hash mismatch and default it to\n\u003ccode\u003eerror\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/download-artifact/commit/ac21fcf45e0aaee541c0f7030558bdad38d77d6c\"\u003e\u003ccode\u003eac21fcf\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/actions/download-artifact/issues/460\"\u003e#460\u003c/a\u003e\nfrom actions/danwkennedy/download-no-unzip\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/download-artifact/commit/15999bff51058bc7c19b50ebbba518eaef7c26c0\"\u003e\u003ccode\u003e15999bf\u003c/code\u003e\u003c/a\u003e\nAdd note about package bumps\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/download-artifact/commit/974686ed5098c7f9c9289ec946b9058e496a2561\"\u003e\u003ccode\u003e974686e\u003c/code\u003e\u003c/a\u003e\nBump the version to \u003ccode\u003ev8\u003c/code\u003e and add release notes\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/download-artifact/commit/fbe48b1d2756394be4cd4358ed3bc1343b330e75\"\u003e\u003ccode\u003efbe48b1\u003c/code\u003e\u003c/a\u003e\nUpdate test names to make it clearer what they do\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/download-artifact/commit/96bf374a614d4360e225874c3efd6893a3f285e7\"\u003e\u003ccode\u003e96bf374\u003c/code\u003e\u003c/a\u003e\nOne more test fix\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/download-artifact/commit/b8c4819ef592cbe04fd93534534b38f853864332\"\u003e\u003ccode\u003eb8c4819\u003c/code\u003e\u003c/a\u003e\nFix skip decompress test\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/actions/download-artifact/compare/v7...v8\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility\nscore](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name\u003dactions/download-artifact\u0026package-manager\u003dgithub_actions\u0026previous-version\u003d7\u0026new-version\u003d8)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don\u0027t\nalter it yourself. You can also trigger a rebase manually by commenting\n`@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits\nthat have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all\nof the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop\nDependabot creating any more for this major version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop\nDependabot creating any more for this minor version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop\nDependabot creating any more for this dependency (unless you reopen the\nPR or upgrade to it yourself)\n\n\n\u003c/details\u003e\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "349eb923878703b26b67fcf4ed87202a17b315a7",
      "tree": "58194a78618b9eb195a8f2d3ec6a52960424c9f7",
      "parents": [
        "f955a5529f018fddb284459502ae61870f3cbba4"
      ],
      "author": {
        "name": "wzhuo",
        "email": "wngzhuo@gmail.com",
        "time": "Fri Feb 27 15:29:16 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Feb 27 15:29:16 2026 +0800"
      },
      "message": "refactor: optimize SnapshotUtil ancestor methods with early return (#560)\n\n"
    },
    {
      "commit": "f955a5529f018fddb284459502ae61870f3cbba4",
      "tree": "e98341ea6d7d1f1e7431ff3c5e973a450123c887",
      "parents": [
        "37bc3890ceba37ae714ea9a5f3103b2612bab7b6"
      ],
      "author": {
        "name": "lishuxu",
        "email": "lishuxu@gmail.com",
        "time": "Thu Feb 26 16:25:46 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Feb 26 16:25:46 2026 +0800"
      },
      "message": "feat: Implement BasicAuthManager to support basic authentication (#564)\n\n"
    },
    {
      "commit": "37bc3890ceba37ae714ea9a5f3103b2612bab7b6",
      "tree": "18a11b1ff6dd735c57c9d6d843827334377f7662",
      "parents": [
        "98261472fc3a5ac93e239bc91ad8ba1d7ecf3fd0"
      ],
      "author": {
        "name": "lishuxu",
        "email": "lishuxu@gmail.com",
        "time": "Wed Feb 25 18:22:45 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Feb 25 18:22:45 2026 +0800"
      },
      "message": "refactor: Use RestCatalogProperties by value instead of unique_ptr (#575)\n\n"
    },
    {
      "commit": "98261472fc3a5ac93e239bc91ad8ba1d7ecf3fd0",
      "tree": "8dda3372f93c46c97273e02c177d2def7a9ea92a",
      "parents": [
        "63e4ec079c7af4cf18bfd55a22c52d521a3219f0"
      ],
      "author": {
        "name": "Junwang Zhao",
        "email": "zhjwpku@gmail.com",
        "time": "Wed Feb 25 17:38:18 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Feb 25 17:38:18 2026 +0800"
      },
      "message": "fix: use strtod fallback when std::from_chars(float) unavailable (#572)\n\n"
    },
    {
      "commit": "63e4ec079c7af4cf18bfd55a22c52d521a3219f0",
      "tree": "a85a7c880c77a8961b283251caa04c4cbb3abf09",
      "parents": [
        "7e6a7e3a1ad4cb26e16b5883b36891f006ef1c80"
      ],
      "author": {
        "name": "Xinli Shang",
        "email": "shangx@uber.com",
        "time": "Wed Feb 25 01:23:22 2026 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Feb 25 17:23:22 2026 +0800"
      },
      "message": "feat: implement DataWriter for Iceberg data files (#552)\n\nImplements DataWriter class for writing Iceberg data files as part of\nissue #441 (task 2).\n\nImplementation:\n- Factory method DataWriter::Make() for creating writer instances\n- Support for Parquet and Avro file formats via WriterFactoryRegistry\n- Complete DataFile metadata generation including partition info, column\nstatistics, serialized bounds, and sort order ID\n- Proper lifecycle management with Initialize/Write/Close/Metadata\n- PIMPL idiom for ABI stability"
    },
    {
      "commit": "7e6a7e3a1ad4cb26e16b5883b36891f006ef1c80",
      "tree": "b10f5cb03495479af98cf4460083f4b8f453f450",
      "parents": [
        "af539b068d292facd34e766d96180d3e81e092f0"
      ],
      "author": {
        "name": "Junwang Zhao",
        "email": "zhjwpku@gmail.com",
        "time": "Tue Feb 24 16:49:22 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Feb 24 16:49:22 2026 +0800"
      },
      "message": "feat: add SnapshotManager (#542)\n\n"
    },
    {
      "commit": "af539b068d292facd34e766d96180d3e81e092f0",
      "tree": "aeb4aa3baff77507ab5e53b9050241a2110ab4d2",
      "parents": [
        "9167d0bdac3c9fbafd671f6a4712f1f6f12d6c10"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Feb 24 12:05:08 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Feb 24 12:05:08 2026 +0800"
      },
      "message": "chore(deps): bump actions/checkout from 4 to 6 (#574)\n\nBumps [actions/checkout](https://github.com/actions/checkout) from 4 to\n6.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/actions/checkout/releases\"\u003eactions/checkout\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev6.0.0\u003c/h2\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate README to include Node.js 24 support details and requirements\nby \u003ca href\u003d\"https://github.com/salmanmkc\"\u003e\u003ccode\u003e@​salmanmkc\u003c/code\u003e\u003c/a\u003e\nin \u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/pull/2248\"\u003eactions/checkout#2248\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePersist creds to a separate file by \u003ca\nhref\u003d\"https://github.com/ericsciple\"\u003e\u003ccode\u003e@​ericsciple\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/pull/2286\"\u003eactions/checkout#2286\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ev6-beta by \u003ca\nhref\u003d\"https://github.com/ericsciple\"\u003e\u003ccode\u003e@​ericsciple\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/pull/2298\"\u003eactions/checkout#2298\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupdate readme/changelog for v6 by \u003ca\nhref\u003d\"https://github.com/ericsciple\"\u003e\u003ccode\u003e@​ericsciple\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/pull/2311\"\u003eactions/checkout#2311\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca\nhref\u003d\"https://github.com/actions/checkout/compare/v5.0.0...v6.0.0\"\u003ehttps://github.com/actions/checkout/compare/v5.0.0...v6.0.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev6-beta\u003c/h2\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cp\u003eUpdated persist-credentials to store the credentials under\n\u003ccode\u003e$RUNNER_TEMP\u003c/code\u003e instead of directly in the local git\nconfig.\u003c/p\u003e\n\u003cp\u003eThis requires a minimum Actions Runner version of \u003ca\nhref\u003d\"https://github.com/actions/runner/releases/tag/v2.329.0\"\u003ev2.329.0\u003c/a\u003e\nto access the persisted credentials for \u003ca\nhref\u003d\"https://docs.github.com/en/actions/tutorials/use-containerized-services/create-a-docker-container-action\"\u003eDocker\ncontainer action\u003c/a\u003e scenarios.\u003c/p\u003e\n\u003ch2\u003ev5.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePort v6 cleanup to v5 by \u003ca\nhref\u003d\"https://github.com/ericsciple\"\u003e\u003ccode\u003e@​ericsciple\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/pull/2301\"\u003eactions/checkout#2301\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca\nhref\u003d\"https://github.com/actions/checkout/compare/v5...v5.0.1\"\u003ehttps://github.com/actions/checkout/compare/v5...v5.0.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.0.0\u003c/h2\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate actions checkout to use node 24 by \u003ca\nhref\u003d\"https://github.com/salmanmkc\"\u003e\u003ccode\u003e@​salmanmkc\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/pull/2226\"\u003eactions/checkout#2226\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare v5.0.0 release by \u003ca\nhref\u003d\"https://github.com/salmanmkc\"\u003e\u003ccode\u003e@​salmanmkc\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/pull/2238\"\u003eactions/checkout#2238\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e⚠️ Minimum Compatible Runner Version\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003ev2.327.1\u003c/strong\u003e\u003cbr /\u003e\n\u003ca\nhref\u003d\"https://github.com/actions/runner/releases/tag/v2.327.1\"\u003eRelease\nNotes\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eMake sure your runner is updated to this version or newer to use this\nrelease.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca\nhref\u003d\"https://github.com/actions/checkout/compare/v4...v5.0.0\"\u003ehttps://github.com/actions/checkout/compare/v4...v5.0.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.3.1\u003c/h2\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePort v6 cleanup to v4 by \u003ca\nhref\u003d\"https://github.com/ericsciple\"\u003e\u003ccode\u003e@​ericsciple\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/pull/2305\"\u003eactions/checkout#2305\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca\nhref\u003d\"https://github.com/actions/checkout/compare/v4...v4.3.1\"\u003ehttps://github.com/actions/checkout/compare/v4...v4.3.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.3.0\u003c/h2\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edocs: update README.md by \u003ca\nhref\u003d\"https://github.com/motss\"\u003e\u003ccode\u003e@​motss\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/pull/1971\"\u003eactions/checkout#1971\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd internal repos for checking out multiple repositories by \u003ca\nhref\u003d\"https://github.com/mouismail\"\u003e\u003ccode\u003e@​mouismail\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/pull/1977\"\u003eactions/checkout#1977\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocumentation update - add recommended permissions to Readme by \u003ca\nhref\u003d\"https://github.com/benwells\"\u003e\u003ccode\u003e@​benwells\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/pull/2043\"\u003eactions/checkout#2043\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/checkout/commit/de0fac2e4500dabe0009e67214ff5f5447ce83dd\"\u003e\u003ccode\u003ede0fac2\u003c/code\u003e\u003c/a\u003e\nFix tag handling: preserve annotations and explicit fetch-tags (\u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/issues/2356\"\u003e#2356\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/checkout/commit/064fe7f3312418007dea2b49a19844a9ee378f49\"\u003e\u003ccode\u003e064fe7f\u003c/code\u003e\u003c/a\u003e\nAdd orchestration_id to git user-agent when ACTIONS_ORCHESTRATION_ID is\nset (...\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/checkout/commit/8e8c483db84b4bee98b60c0593521ed34d9990e8\"\u003e\u003ccode\u003e8e8c483\u003c/code\u003e\u003c/a\u003e\nClarify v6 README (\u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/issues/2328\"\u003e#2328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/checkout/commit/033fa0dc0b82693d8986f1016a0ec2c5e7d9cbb1\"\u003e\u003ccode\u003e033fa0d\u003c/code\u003e\u003c/a\u003e\nAdd worktree support for persist-credentials includeIf (\u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/issues/2327\"\u003e#2327\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/checkout/commit/c2d88d3ecc89a9ef08eebf45d9637801dcee7eb5\"\u003e\u003ccode\u003ec2d88d3\u003c/code\u003e\u003c/a\u003e\nUpdate all references from v5 and v4 to v6 (\u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/issues/2314\"\u003e#2314\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/checkout/commit/1af3b93b6815bc44a9784bd300feb67ff0d1eeb3\"\u003e\u003ccode\u003e1af3b93\u003c/code\u003e\u003c/a\u003e\nupdate readme/changelog for v6 (\u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/issues/2311\"\u003e#2311\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/checkout/commit/71cf2267d89c5cb81562390fa70a37fa40b1305e\"\u003e\u003ccode\u003e71cf226\u003c/code\u003e\u003c/a\u003e\nv6-beta (\u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/issues/2298\"\u003e#2298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/checkout/commit/069c6959146423d11cd0184e6accf28f9d45f06e\"\u003e\u003ccode\u003e069c695\u003c/code\u003e\u003c/a\u003e\nPersist creds to a separate file (\u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/issues/2286\"\u003e#2286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/checkout/commit/ff7abcd0c3c05ccf6adc123a8cd1fd4fb30fb493\"\u003e\u003ccode\u003eff7abcd\u003c/code\u003e\u003c/a\u003e\nUpdate README to include Node.js 24 support details and requirements (\u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/issues/2248\"\u003e#2248\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/checkout/commit/08c6903cd8c0fde910a37f88322edcfb5dd907a8\"\u003e\u003ccode\u003e08c6903\u003c/code\u003e\u003c/a\u003e\nPrepare v5.0.0 release (\u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/issues/2238\"\u003e#2238\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/actions/checkout/compare/v4...v6\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility\nscore](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name\u003dactions/checkout\u0026package-manager\u003dgithub_actions\u0026previous-version\u003d4\u0026new-version\u003d6)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don\u0027t\nalter it yourself. You can also trigger a rebase manually by commenting\n`@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits\nthat have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all\nof the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop\nDependabot creating any more for this major version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop\nDependabot creating any more for this minor version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop\nDependabot creating any more for this dependency (unless you reopen the\nPR or upgrade to it yourself)\n\n\n\u003c/details\u003e\n\n---------\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e\nCo-authored-by: Gang Wu \u003custcwg@gmail.com\u003e"
    },
    {
      "commit": "9167d0bdac3c9fbafd671f6a4712f1f6f12d6c10",
      "tree": "3906084a4fcfc10ca2fc8630d8f6e9c9fd11f912",
      "parents": [
        "dbec245e4875d9f586f8019ad956d84d75fd237b"
      ],
      "author": {
        "name": "Kevin Liu",
        "email": "kevinjqliu@users.noreply.github.com",
        "time": "Mon Feb 23 12:21:28 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Feb 23 09:21:28 2026 -0800"
      },
      "message": "chore(ci): add explicit least-privilege workflow permissions (#573)\n\nAdded explicit permissions blocks to GitHub Actions workflows to satisfy\nCodeQL actions/missing-workflow-permissions. (See the [Security tab on\nGithub](https://github.com/apache/iceberg-cpp/security/code-scanning))\nDefaulted workflows to `contents: read`."
    },
    {
      "commit": "dbec245e4875d9f586f8019ad956d84d75fd237b",
      "tree": "c55d817af7f6d4cd3fda860469db75bd2b7af57f",
      "parents": [
        "c559a08370a3081717e6e490b0cc5a9cbc92519e"
      ],
      "author": {
        "name": "Kevin Liu",
        "email": "kevinjqliu@users.noreply.github.com",
        "time": "Sun Feb 22 09:41:40 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Feb 22 22:41:40 2026 +0800"
      },
      "message": "CI: Add CodeQL workflow for GitHub Actions security scanning (#567)\n\nThis adds a CodeQL workflow to scan GitHub Actions workflow files for\nsecurity issues such as script injection, use of untrusted input, and\nother misconfigurations.\n\nReference:\nhttps://github.blog/security/application-security/how-to-secure-your-github-actions-workflows-with-codeql/\n\n**Triggers:**\n- Push and PR to `main`\n- Weekly scheduled scan (Mondays at 4:16 UTC)\n\n\nThis is based on [Apache Infra\nrecommendation](https://cwiki.apache.org/confluence/display/BUILDS/GitHub+Actions+Security),\n\n\u003e IMPORTANT! You should enable CodeQL \"actions\" scanning in your\nrepositories as described in\nhttps://github.blog/security/application-security/how-to-secure-your-github-actions-workflows-with-codeql/\n- this will scan and flag those issues described below and many more\nautomatically for you\n\n---------\n\nCo-authored-by: Junwang Zhao \u003czhjwpku@gmail.com\u003e"
    },
    {
      "commit": "c559a08370a3081717e6e490b0cc5a9cbc92519e",
      "tree": "5b928ef2b7cb5e4928f49c9831b0cd5ce89e1cff",
      "parents": [
        "35d3006efa0b479a84a526c41452a9f06d61e765"
      ],
      "author": {
        "name": "Xinli Shang",
        "email": "shangx@uber.com",
        "time": "Sun Feb 22 06:39:32 2026 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Feb 22 22:39:32 2026 +0800"
      },
      "message": "fix: fix misspelled variable, missing format arg, and wrong pointer assignment (#570)\n\n## Summary\n- Rename `while_digits` to `whole_digits` in decimal parser (typo for\n\"whole\" digits, the integer part before the decimal point)\n- Add missing `{}` format placeholder in parquet writer error message so\nthe codec name is actually included\n- Fix `batch \u003d nullptr` to `*batch \u003d nullptr` in\n`EmptyRecordBatchReader::ReadNext()` so the caller\u0027s shared_ptr is\nproperly cleared\n\n## Test plan\n- Build verified locally\n- All existing tests pass (`expression_test`, `util_test`,\n`parquet_test`)\n\nCo-authored-by: shangxinli \u003cshangxinli@users.noreply.github.com\u003e"
    },
    {
      "commit": "35d3006efa0b479a84a526c41452a9f06d61e765",
      "tree": "59588caaa92be1fff382fb0dd2d7bb502470b64b",
      "parents": [
        "56d7ccd4c7244adff3e3881454653d537d0665f3"
      ],
      "author": {
        "name": "Xinli Shang",
        "email": "shangx@uber.com",
        "time": "Sun Feb 22 06:38:41 2026 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Feb 22 22:38:41 2026 +0800"
      },
      "message": "fix: fix grammar errors in comments (#569)\n\n## Summary\n- Fix \"A metadata about\" -\u003e \"Metadata about\" in `statistics_file.h`\n(metadata is uncountable)\n- Fix \"a inclusive\" -\u003e \"an inclusive\" in `inclusive_metrics_evaluator.h`\n- Fix \"a estimated\" -\u003e \"an estimated\" in `gzip_internal.cc`\n\n## Test plan\n- No functional changes, comment-only fixes\n- Build verified locally\n\nCo-authored-by: shangxinli \u003cshangxinli@users.noreply.github.com\u003e"
    },
    {
      "commit": "56d7ccd4c7244adff3e3881454653d537d0665f3",
      "tree": "d050bb55ecdd8eee0a6ec17ad48bddab70fbfa3c",
      "parents": [
        "b6cfce1fc3eb7dad813e16ddc2bbb8edd5b2783f"
      ],
      "author": {
        "name": "Junwang Zhao",
        "email": "zhjwpku@gmail.com",
        "time": "Sat Feb 21 13:44:13 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Feb 21 13:44:13 2026 +0800"
      },
      "message": "doc: add AI-assisted contributions guidelines (#568)\n\n"
    },
    {
      "commit": "b6cfce1fc3eb7dad813e16ddc2bbb8edd5b2783f",
      "tree": "c01f4fdcedcd2b7296990483791b4f464a2a7b51",
      "parents": [
        "b022fe75e0a1549903f4fe5d08beddcd925fc630"
      ],
      "author": {
        "name": "Kevin Liu",
        "email": "kevinjqliu@users.noreply.github.com",
        "time": "Fri Feb 20 22:43:19 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Feb 21 11:43:19 2026 +0800"
      },
      "message": "ci: Remove unused strategy sections from non-matrix jobs (#566)\n\n## Summary\n\nRemoves unnecessary `strategy` sections from jobs that don\u0027t use a\nmatrix.\n\n## Changes\n\n- Removed `strategy: fail-fast: false` from `ubuntu`, `macos`, `windows`\njobs in `test.yml`\n- Removed `strategy: fail-fast: false` from `sanitizer-test` job in\n`sanitizer_test.yml`\n\n## Rationale\n\nThe `fail-fast` option only applies to matrix jobs where multiple\nconfigurations run in parallel. For single jobs without a matrix, this\nsetting has no effect and generates schema warnings.\n\nJobs with matrices (like `meson` and `verify`) retain their strategy\nconfiguration."
    },
    {
      "commit": "b022fe75e0a1549903f4fe5d08beddcd925fc630",
      "tree": "91a51854a711b5c08ab400577c9e91ab1185af76",
      "parents": [
        "721e5294e7ad6c734e5c91a92ecd6e53570e0431"
      ],
      "author": {
        "name": "Kevin Liu",
        "email": "kevinjqliu@users.noreply.github.com",
        "time": "Tue Feb 17 08:42:31 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Feb 17 05:42:31 2026 -0800"
      },
      "message": "infra: set github actions max-parallel to 15 (#565)\n\nthis is the guidance from apache infra, see\nhttps://s.apache.org/max-parallel\n* All workflows MUST have a job concurrency level less than or equal to\n20. This means a workflow cannot have more than 20 jobs running at the\nsame time across all matrices.\n* All workflows SHOULD have a job concurrency level less than or equal\nto 15. Just because 20 is the max, doesn\u0027t mean you should strive for\n20.\n\nnote that `max-parallel` limits the number of simultaneous runs ([see\ndocs](https://docs.github.com/en/actions/how-tos/write-workflows/choose-what-workflows-do/run-job-variations#defining-the-maximum-number-of-concurrent-jobs)),\nother jobs will just wait\n\n---------\n\nCo-authored-by: copilot-swe-agent[bot] \u003c198982749+Copilot@users.noreply.github.com\u003e\nCo-authored-by: kevinjqliu \u003c9057843+kevinjqliu@users.noreply.github.com\u003e"
    },
    {
      "commit": "721e5294e7ad6c734e5c91a92ecd6e53570e0431",
      "tree": "11729e8005804ae834472dee48d29869dbd5807b",
      "parents": [
        "2e00ce0ee1580a9cad7c8e9ba172fe51a677e176"
      ],
      "author": {
        "name": "lishuxu",
        "email": "lishuxu@gmail.com",
        "time": "Wed Feb 11 22:48:18 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Feb 11 22:48:18 2026 +0800"
      },
      "message": "feat: Implement NoopAuthManager and integrate it with RestCatalog (#544)\n\n- Add NoopAuthManager for \"none\" authentication type\n- Register \"none\" auth type in static registry with case-insensitive matching\n- Add KnownAuthTypes() to distinguish known-but-unimplemented types\n(NotImplemented) from unknown types (InvalidArgument)\n- Integrate AuthManager into RestCatalog"
    },
    {
      "commit": "2e00ce0ee1580a9cad7c8e9ba172fe51a677e176",
      "tree": "07c2f9b817adbd16c7f1cae4d32873c7deb61eea",
      "parents": [
        "82adc73f6a31aee9b61f7e0f7cd7f5551be634d1"
      ],
      "author": {
        "name": "lishuxu",
        "email": "lishuxu@gmail.com",
        "time": "Tue Feb 10 12:59:46 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Feb 10 12:59:46 2026 +0800"
      },
      "message": "chore(deps): bump nanoarrow to 0.8.0 (#558)\n\n"
    },
    {
      "commit": "82adc73f6a31aee9b61f7e0f7cd7f5551be634d1",
      "tree": "655e249d51d0d8c2cdb46940344d2a359de95637",
      "parents": [
        "257f1dc3da664ed98d8834ec2fd2b3358a9b367d"
      ],
      "author": {
        "name": "Gang Wu",
        "email": "ustcwg@gmail.com",
        "time": "Mon Feb 09 14:57:39 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Feb 09 14:57:39 2026 +0800"
      },
      "message": "feat: add support to select columns in table scan planning (#550)\n\n"
    },
    {
      "commit": "257f1dc3da664ed98d8834ec2fd2b3358a9b367d",
      "tree": "031d096c5023c66bd45e5371a2e8b9fa54f3891f",
      "parents": [
        "b15ac656cb20788a2103a3321c45f6676958ba69"
      ],
      "author": {
        "name": "姚军",
        "email": "940334249@qq.com",
        "time": "Mon Feb 09 14:57:18 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Feb 09 14:57:18 2026 +0800"
      },
      "message": "chore:  improve the pre-commit requirement (#557)\n\n"
    },
    {
      "commit": "b15ac656cb20788a2103a3321c45f6676958ba69",
      "tree": "04fdc11fa1b869864859cf36b287feaffb5db297",
      "parents": [
        "8a14f9c4269faea099b6cc396ba7faee88a04ef9"
      ],
      "author": {
        "name": "Zehua Zou",
        "email": "zehuazou2000@gmail.com",
        "time": "Mon Feb 09 12:45:11 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Feb 09 12:45:11 2026 +0800"
      },
      "message": "refactor: use std::from_chars instead of stoi/stoll/stod (#556)\n\n"
    },
    {
      "commit": "8a14f9c4269faea099b6cc396ba7faee88a04ef9",
      "tree": "27e7c4a0f92ddf452c24a7bb7fe2cc20d6b3cdba",
      "parents": [
        "05b0f6089a58ea8b189d45c6f1da5d653dc4d436"
      ],
      "author": {
        "name": "Junwang Zhao",
        "email": "zhjwpku@gmail.com",
        "time": "Mon Feb 09 12:09:25 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Feb 09 12:09:25 2026 +0800"
      },
      "message": "chore: remove unnecessary \u003ccctype\u003e header inclusion (#554)\n\n"
    },
    {
      "commit": "05b0f6089a58ea8b189d45c6f1da5d653dc4d436",
      "tree": "c32cc92fcf7fe80ec0b46b02881c03a8784ffe4b",
      "parents": [
        "43b83c53f40c17991a4595c334694908e5392632"
      ],
      "author": {
        "name": "姚军",
        "email": "libevent@yeah.net",
        "time": "Mon Feb 09 12:08:07 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Feb 09 12:08:07 2026 +0800"
      },
      "message": "fix: use std::move when passing by value in the config (#555)\n\n"
    },
    {
      "commit": "43b83c53f40c17991a4595c334694908e5392632",
      "tree": "0910217acc61ed8ea28c27a9d1619f195b5fe236",
      "parents": [
        "7c325fa6ad7483f20326a0b5ae9431208977468d"
      ],
      "author": {
        "name": "Innocent Djiofack",
        "email": "djiofack007@gmail.com",
        "time": "Sat Jan 31 01:03:16 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jan 31 16:03:16 2026 +0800"
      },
      "message": "feat: add json serde for expression operations (#532)\n\n"
    },
    {
      "commit": "7c325fa6ad7483f20326a0b5ae9431208977468d",
      "tree": "6c72d30556e969ba6475ecfe8483a1d98e70ae7b",
      "parents": [
        "02f03354189d5e39c64d3a9d95f30c49a515e864"
      ],
      "author": {
        "name": "Junwang Zhao",
        "email": "zhjwpku@gmail.com",
        "time": "Sat Jan 31 15:31:23 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jan 31 15:31:23 2026 +0800"
      },
      "message": "refactor(manifest): remove MakeVxWriter functions in favor of MakeWriter (#551)\n\nRemove MakeVxWriter functions in favor of MakeWriter, and apply int8_t\nto all format version parameters for consistency."
    },
    {
      "commit": "02f03354189d5e39c64d3a9d95f30c49a515e864",
      "tree": "642af075b10ba8e1aec1989ef84f72796d072ca6",
      "parents": [
        "5dda5a39aadd412b45d2b01d96d4dc6826e030bc"
      ],
      "author": {
        "name": "Maxim Zibitsker",
        "email": "max.zibitsker@gmail.com",
        "time": "Fri Jan 30 21:00:46 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jan 31 10:00:46 2026 +0800"
      },
      "message": "refactor: Reduce extra lookup in RegisterTable (#549)\n\n"
    },
    {
      "commit": "5dda5a39aadd412b45d2b01d96d4dc6826e030bc",
      "tree": "07d6500b29659bef8fd74201cf85a74d422a7cff",
      "parents": [
        "fa2a3d52849208dd743cb1ca03a337cac4836cdd"
      ],
      "author": {
        "name": "Feiyang Li",
        "email": "lifeiyang@zju.edu.cn",
        "time": "Thu Jan 29 22:04:31 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jan 29 22:04:31 2026 +0800"
      },
      "message": "test: Rename TypeTest to VisitTypeTest to avoid naming conflict (#546)\n\n"
    },
    {
      "commit": "fa2a3d52849208dd743cb1ca03a337cac4836cdd",
      "tree": "d5aee3edb4dc928690c90f60009ac2f0443f0d3a",
      "parents": [
        "911494abb09845f82d0e2cfcc41dc4366871ca13"
      ],
      "author": {
        "name": "Feiyang Li",
        "email": "lifeiyang@zju.edu.cn",
        "time": "Thu Jan 29 22:04:00 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jan 29 22:04:00 2026 +0800"
      },
      "message": "fix(test): fix missing registering of avro map logical type (#547)\n\n"
    },
    {
      "commit": "911494abb09845f82d0e2cfcc41dc4366871ca13",
      "tree": "18efdebe436e2ec5a7677a3ee8821af3b13a7b7e",
      "parents": [
        "e7f1d0f539eb9586319cb9115e47e395e8377aea"
      ],
      "author": {
        "name": "Feiyang Li",
        "email": "lifeiyang@zju.edu.cn",
        "time": "Thu Jan 29 22:02:38 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jan 29 22:02:38 2026 +0800"
      },
      "message": "refactor: replace std::vformat with std::format for ListType|MapType::ToString (#545)\n\n"
    },
    {
      "commit": "e7f1d0f539eb9586319cb9115e47e395e8377aea",
      "tree": "1b15b8faab3d5dca0eb1d680a8a00c417b0f1a10",
      "parents": [
        "c46b38ec278e6b00492edcc02c68f7ac04d64c03"
      ],
      "author": {
        "name": "liuxiaoyu",
        "email": "45345701+MisterRaindrop@users.noreply.github.com",
        "time": "Wed Jan 28 21:28:44 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jan 28 21:28:44 2026 +0800"
      },
      "message": "fix(cmake): require Parquet when using system Arrow (#541)\n\nWhen using system Arrow, ensure Parquet is also discovered so\nParquet::parquet_* targets are available for iceberg_bundle linking.\nThis restores find_package(Parquet) and adds Parquet to\nICEBERG_SYSTEM_DEPENDENCIES to avoid missing target errors."
    },
    {
      "commit": "c46b38ec278e6b00492edcc02c68f7ac04d64c03",
      "tree": "b40c595915897b4e9a14ca4d3820f416f5a40561",
      "parents": [
        "e2d6496e0d3e1fb157aee4b2701fbffdcbc84205"
      ],
      "author": {
        "name": "Junwang Zhao",
        "email": "zhjwpku@gmail.com",
        "time": "Wed Jan 28 10:34:22 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jan 28 10:34:22 2026 +0800"
      },
      "message": "fix: SetSnapshotRef::ApplyTo should call SetRef (#540)\n\n"
    },
    {
      "commit": "e2d6496e0d3e1fb157aee4b2701fbffdcbc84205",
      "tree": "f1f6ff9cc8daf510e05e1ad6241862c1f7f62a3a",
      "parents": [
        "6f1cdfd800c540cb7d4892a8644e2cfde2729301"
      ],
      "author": {
        "name": "Junwang Zhao",
        "email": "zhjwpku@gmail.com",
        "time": "Wed Jan 28 10:33:24 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jan 28 10:33:24 2026 +0800"
      },
      "message": "chore: consolidate json serde file names (#539)\n\nWe have the convention that only header files should use the `_internal`\nsuffix, so that iceberg_install_all_headers does not install them.\nHowever, we have some existing .cc files with the\n _internal suffix, which should be fixed.\n\nThis commit only addresses json_internal.h/.cc, since we discussed\nrenaming them to json_serde_internal.h and json_serde.cc in #534"
    },
    {
      "commit": "6f1cdfd800c540cb7d4892a8644e2cfde2729301",
      "tree": "92d34211ac7c948514ffb8246332081aa523a79e",
      "parents": [
        "c426aff4ffd01003a592dce48c5faa0696afcd3e"
      ],
      "author": {
        "name": "Feiyang Li",
        "email": "lifeiyang@zju.edu.cn",
        "time": "Tue Jan 27 13:38:52 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jan 27 13:38:52 2026 +0800"
      },
      "message": "feat: add update partition stats (#538)\n\n"
    },
    {
      "commit": "c426aff4ffd01003a592dce48c5faa0696afcd3e",
      "tree": "119d03eeddb79b8722e827ea854cd1cf94343d15",
      "parents": [
        "31d4a4a5808b5868f2636d96e6025b6dea16e2bd"
      ],
      "author": {
        "name": "Gang Wu",
        "email": "ustcwg@gmail.com",
        "time": "Mon Jan 26 22:53:35 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jan 26 22:53:35 2026 +0800"
      },
      "message": "test: add test case for table scan planning (#492)\n\n"
    },
    {
      "commit": "31d4a4a5808b5868f2636d96e6025b6dea16e2bd",
      "tree": "883419142d67fafdc2f8aece206f5aa2587c6256",
      "parents": [
        "9ffb29f73fab54f2485b3f1ed3c2ca27c137f0dd"
      ],
      "author": {
        "name": "Feiyang Li",
        "email": "lifeiyang@zju.edu.cn",
        "time": "Mon Jan 26 22:48:09 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jan 26 22:48:09 2026 +0800"
      },
      "message": "refactor(rest): switch HttpClient to use connection pool (#530)\n\n"
    },
    {
      "commit": "9ffb29f73fab54f2485b3f1ed3c2ca27c137f0dd",
      "tree": "f61cba1462f2e151b86fc70333437f964a588d22",
      "parents": [
        "1e56803e89d394eaee022454867a0ecd69baed15"
      ],
      "author": {
        "name": "Junwang Zhao",
        "email": "zhjwpku@gmail.com",
        "time": "Mon Jan 26 16:18:47 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jan 26 16:18:47 2026 +0800"
      },
      "message": "chore: update copyright year to 2026 (#537)\n\n"
    },
    {
      "commit": "1e56803e89d394eaee022454867a0ecd69baed15",
      "tree": "cf536d256e0a326dc7c486eeb0bfee45c8bde11a",
      "parents": [
        "fb7dead8a6a3db5e5b61fe5cc51df90616416d5a"
      ],
      "author": {
        "name": "Zehua Zou",
        "email": "zehuazou2000@gmail.com",
        "time": "Mon Jan 26 14:05:32 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jan 26 14:05:32 2026 +0800"
      },
      "message": "chore(doc): fix minimum compiler version (#528)\n\n"
    },
    {
      "commit": "fb7dead8a6a3db5e5b61fe5cc51df90616416d5a",
      "tree": "095af7a752b1adbefb7b7877e1d78fdff51aaabb",
      "parents": [
        "e32a3ec2fd8a9dcf5d8adf3ef3f5370381918016"
      ],
      "author": {
        "name": "Junwang Zhao",
        "email": "zhjwpku@gmail.com",
        "time": "Mon Jan 26 14:05:19 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jan 26 14:05:19 2026 +0800"
      },
      "message": "chore: refactor Transaction::Apply to use separate smaller functions (#527)\n\n"
    },
    {
      "commit": "e32a3ec2fd8a9dcf5d8adf3ef3f5370381918016",
      "tree": "1d4cfcff55538151f5060e43319e97b7b1bcf243",
      "parents": [
        "65c178852a369bbdb059c114c05d9803b2b09e13"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Jan 26 14:05:05 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jan 26 14:05:05 2026 +0800"
      },
      "message": "chore(deps): bump actions/checkout from 6.0.1 to 6.0.2 (#529)\n\nBumps [actions/checkout](https://github.com/actions/checkout) from 6.0.1\nto 6.0.2.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/actions/checkout/releases\"\u003eactions/checkout\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev6.0.2\u003c/h2\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd orchestration_id to git user-agent when ACTIONS_ORCHESTRATION_ID\nis set by \u003ca\nhref\u003d\"https://github.com/TingluoHuang\"\u003e\u003ccode\u003e@​TingluoHuang\u003c/code\u003e\u003c/a\u003e\nin \u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/pull/2355\"\u003eactions/checkout#2355\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix tag handling: preserve annotations and explicit fetch-tags by \u003ca\nhref\u003d\"https://github.com/ericsciple\"\u003e\u003ccode\u003e@​ericsciple\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/pull/2356\"\u003eactions/checkout#2356\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca\nhref\u003d\"https://github.com/actions/checkout/compare/v6.0.1...v6.0.2\"\u003ehttps://github.com/actions/checkout/compare/v6.0.1...v6.0.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/checkout/commit/de0fac2e4500dabe0009e67214ff5f5447ce83dd\"\u003e\u003ccode\u003ede0fac2\u003c/code\u003e\u003c/a\u003e\nFix tag handling: preserve annotations and explicit fetch-tags (\u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/issues/2356\"\u003e#2356\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/checkout/commit/064fe7f3312418007dea2b49a19844a9ee378f49\"\u003e\u003ccode\u003e064fe7f\u003c/code\u003e\u003c/a\u003e\nAdd orchestration_id to git user-agent when ACTIONS_ORCHESTRATION_ID is\nset (...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca\nhref\u003d\"https://github.com/actions/checkout/compare/v6.0.1...v6.0.2\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility\nscore](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name\u003dactions/checkout\u0026package-manager\u003dgithub_actions\u0026previous-version\u003d6.0.1\u0026new-version\u003d6.0.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don\u0027t\nalter it yourself. You can also trigger a rebase manually by commenting\n`@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits\nthat have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after\nyour CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge\nand block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating\nit. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all\nof the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop\nDependabot creating any more for this major version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop\nDependabot creating any more for this minor version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop\nDependabot creating any more for this dependency (unless you reopen the\nPR or upgrade to it yourself)\n\n\n\u003c/details\u003e\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "65c178852a369bbdb059c114c05d9803b2b09e13",
      "tree": "88ad03d48b4ca087515e5498f344fd396cf45dcf",
      "parents": [
        "4407419a8913bd2f424cc6ac3bbec2791c0b377b"
      ],
      "author": {
        "name": "Gang Wu",
        "email": "ustcwg@gmail.com",
        "time": "Mon Jan 26 14:04:47 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jan 26 14:04:47 2026 +0800"
      },
      "message": "chore: post release 0.2.0 (#536)\n\n- bump version to 0.3.0-SNAPSHOT\n- refine announcement email"
    },
    {
      "commit": "4407419a8913bd2f424cc6ac3bbec2791c0b377b",
      "tree": "95ac36267f98eed8741a95739a6228b09f3919b6",
      "parents": [
        "883a43ff0c16d46f634f21f3917e1d24f356669a"
      ],
      "author": {
        "name": "Feiyang Li",
        "email": "lifeiyang@zju.edu.cn",
        "time": "Mon Jan 26 14:04:35 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jan 26 14:04:35 2026 +0800"
      },
      "message": "chore: bump cpr to 1.14.1 (#535)\n\n"
    },
    {
      "commit": "883a43ff0c16d46f634f21f3917e1d24f356669a",
      "tree": "dd385297ae1f697cfe099fb22269e502a235b04a",
      "parents": [
        "268427ef3410912b9f5308bce6a6f13ee745692d"
      ],
      "author": {
        "name": "Gang Wu",
        "email": "ustcwg@gmail.com",
        "time": "Thu Jan 22 16:24:27 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jan 22 16:24:27 2026 +0800"
      },
      "message": "chore: fix rc.yml to download dependencies (#526)\n\n"
    },
    {
      "commit": "268427ef3410912b9f5308bce6a6f13ee745692d",
      "tree": "43f4cdc7e381a8c89477cd6b626479c75733ae86",
      "parents": [
        "d1807682fc8de9ec8aa9d2206c65a0071501bb6f"
      ],
      "author": {
        "name": "Gang Wu",
        "email": "ustcwg@gmail.com",
        "time": "Thu Jan 22 15:54:31 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jan 22 15:54:31 2026 +0800"
      },
      "message": "chore: add missing license header to docs.yml (#525)\n\n"
    },
    {
      "commit": "d1807682fc8de9ec8aa9d2206c65a0071501bb6f",
      "tree": "8ce6de682869c48964a37239558d67bffd44cde2",
      "parents": [
        "0862d64eff69017e03ff589e9f2cabb128ed1e6c"
      ],
      "author": {
        "name": "Junwang Zhao",
        "email": "zhjwpku@gmail.com",
        "time": "Thu Jan 22 15:11:24 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jan 22 15:11:24 2026 +0800"
      },
      "message": "feat: add UpdateSnapshotReference (#512)\n\n"
    },
    {
      "commit": "0862d64eff69017e03ff589e9f2cabb128ed1e6c",
      "tree": "dba3ea5843968e976f8c4685d5c6636a0f1cf84f",
      "parents": [
        "f9f1449306a2857bf8fbf0f8c1d1c3d6bc1b1700"
      ],
      "author": {
        "name": "Gang Wu",
        "email": "ustcwg@gmail.com",
        "time": "Thu Jan 22 14:00:24 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jan 22 14:00:24 2026 +0800"
      },
      "message": "feat: add compression config to writer properties (#524)\n\n- refactor writer and reader properties not to use pointers\n- bump avro-cpp to use codec enum\n- adapter parquet and avro writers to respect codec config"
    },
    {
      "commit": "f9f1449306a2857bf8fbf0f8c1d1c3d6bc1b1700",
      "tree": "601647286cd6be1c6ec5421c0ff7c466b36624e6",
      "parents": [
        "024bbf11504eb3526b115204e41f989280c4942e"
      ],
      "author": {
        "name": "Feiyang Li",
        "email": "lifeiyang@zju.edu.cn",
        "time": "Wed Jan 21 17:57:55 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jan 21 17:57:55 2026 +0800"
      },
      "message": "feat: add update table stats (#511)\n\n"
    },
    {
      "commit": "024bbf11504eb3526b115204e41f989280c4942e",
      "tree": "728949d1aba3fa2d6054312b30393b62cabb8ac3",
      "parents": [
        "75204b171563739f71bb0e4cc865c2c3c8c6b50e"
      ],
      "author": {
        "name": "Feiyang Li",
        "email": "lifeiyang@zju.edu.cn",
        "time": "Wed Jan 21 17:55:27 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jan 21 17:55:27 2026 +0800"
      },
      "message": "feat: add non-validated version of FromJson for SortOrder and PartitionSpec (#518)\n\n"
    },
    {
      "commit": "75204b171563739f71bb0e4cc865c2c3c8c6b50e",
      "tree": "422068dfb171c8bc1fa2575ab3ff13f787130c37",
      "parents": [
        "3994b5d98eb17907ce591aa4258787a459c78735"
      ],
      "author": {
        "name": "Junwang Zhao",
        "email": "zhjwpku@gmail.com",
        "time": "Wed Jan 21 12:49:04 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jan 21 12:49:04 2026 +0800"
      },
      "message": "chore: refactor DataFileSet and make WriteManifests to accept span (#519)\n\n- Move DataFileSet out of content_file_util.h to data_file_set.h to\nreduce header dependencies\n- Refactor WriteDataManifests and WriteDeleteManifests to accept span\ninstead of vector"
    },
    {
      "commit": "3994b5d98eb17907ce591aa4258787a459c78735",
      "tree": "18869d58ffade9f541a6a93960cf913d3293b51b",
      "parents": [
        "93989daaf9b23f5ff16c606a66ab069d8e9c2dc7"
      ],
      "author": {
        "name": "Feiyang Li",
        "email": "lifeiyang@zju.edu.cn",
        "time": "Tue Jan 20 20:40:17 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jan 20 20:40:17 2026 +0800"
      },
      "message": "feat: implement set snapshot (#509)\n\n"
    },
    {
      "commit": "93989daaf9b23f5ff16c606a66ab069d8e9c2dc7",
      "tree": "c4b2c595e29c1366acb425c50bc8f748b7bef151",
      "parents": [
        "a457099e60cdd763b758d71c4c6a77e122dcb181"
      ],
      "author": {
        "name": "Junwang Zhao",
        "email": "zhjwpku@gmail.com",
        "time": "Tue Jan 20 20:39:53 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jan 20 20:39:53 2026 +0800"
      },
      "message": "chore: add missing snapshot summary fields (#520)\n\nper spec\nhttps://iceberg.apache.org/spec/#optional-snapshot-summary-fields"
    },
    {
      "commit": "a457099e60cdd763b758d71c4c6a77e122dcb181",
      "tree": "8e18be593eaa1bfd40979bacff942cad61d57733",
      "parents": [
        "bc2e0266eb428d058c1cf2e4d957ad6cb980a649"
      ],
      "author": {
        "name": "Junwang Zhao",
        "email": "zhjwpku@gmail.com",
        "time": "Tue Jan 20 17:46:39 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jan 20 17:46:39 2026 +0800"
      },
      "message": "feat: add FastAppend (#516)\n\n"
    },
    {
      "commit": "bc2e0266eb428d058c1cf2e4d957ad6cb980a649",
      "tree": "6babfe6a7116a5f8df5c7234fd533a96a2042cd5",
      "parents": [
        "437f252f88ce9acbd7e83ab3168ddb113c4f7856"
      ],
      "author": {
        "name": "Guotao Yu",
        "email": "guotao.yugt@gmail.com",
        "time": "Tue Jan 20 10:00:57 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jan 20 10:00:57 2026 +0800"
      },
      "message": "feat: add move column to update schema (#517)\n\n"
    },
    {
      "commit": "437f252f88ce9acbd7e83ab3168ddb113c4f7856",
      "tree": "00320ecd4b422ac5ae584df926a6897c37a97ba4",
      "parents": [
        "20a961a5b24379acb9bdc7c1606b6331377d0a21"
      ],
      "author": {
        "name": "lishuxu",
        "email": "lishuxu@gmail.com",
        "time": "Sat Jan 17 20:04:23 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jan 17 20:04:23 2026 +0800"
      },
      "message": "feat: add restcatalog authentication api (#479)\n\n"
    },
    {
      "commit": "20a961a5b24379acb9bdc7c1606b6331377d0a21",
      "tree": "311b76890ca535c366749702ba34a5b14d81b1c2",
      "parents": [
        "f15967568f2f6205fb35890e21c88383e5ae31a7"
      ],
      "author": {
        "name": "Junwang Zhao",
        "email": "zhjwpku@gmail.com",
        "time": "Sat Jan 17 11:21:14 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jan 17 11:21:14 2026 +0800"
      },
      "message": "feat: add SnapshotSummaryBuilder (#515)\n\nImplement SnapshotSummaryBuilder class based on Java\u0027s\nSnapshotSummary.Builder to provide functionality for building snapshot\nsummaries for Iceberg tables."
    },
    {
      "commit": "f15967568f2f6205fb35890e21c88383e5ae31a7",
      "tree": "b2ffb23d2e46797313daf2d2a139b3120aa472ac",
      "parents": [
        "34d5a1ddbedacb0a4d66f330385edea10b9b3360"
      ],
      "author": {
        "name": "Feiyang Li",
        "email": "lifeiyang@zju.edu.cn",
        "time": "Fri Jan 16 20:54:29 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jan 16 20:54:29 2026 +0800"
      },
      "message": "feat: implement update location (#508)\n\n"
    }
  ],
  "next": "34d5a1ddbedacb0a4d66f330385edea10b9b3360"
}
