)]}'
{
  "log": [
    {
      "commit": "6fdbf69efb2bb4433f0b0f5931a7ae2a8f0a08b9",
      "tree": "bc083eef1948cf910d8c2ca2bee7c19c25f8e938",
      "parents": [
        "0e7b58671fff7980f24ec1963cb60d53ba624a0c"
      ],
      "author": {
        "name": "Andrei Tserakhau",
        "email": "laskoviymishka@gmail.com",
        "time": "Mon Apr 27 18:23:17 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 27 12:23:17 2026 -0400"
      },
      "message": "feat(table): wire conflict validators into producers (#934)\n\nPart of #830: fourth of five PRs. \n\nThe conflict-validation framework from the previous slice is now\nreachable: every producer runs a validate() pre-flight before\ncat.CommitTable.\n\nPer producer:\n  - fastAppendFiles / mergeAppendFiles: no-op (appends are safe).\n- overwriteFiles: rejects concurrent adds into the committer\u0027s filter\nregion under SERIALIZABLE. Isolation key is op-gated — OpDelete reads\nwrite.delete.isolation-level, everything else reads\nwrite.update.isolation-level (matches Java).\n- RowDelta: pos-deletes check that referenced data files are still\nreachable; eq-deletes reject concurrent appends under SERIALIZABLE\n(conservative AlwaysTrue filter — opt out with\nwrite.delete.isolation-level\u003dsnapshot).\n- RewriteDataFiles: rejects concurrent pos-deletes targeting a rewritten\nfile, and conservatively rejects any concurrent eq-delete during a\nrewrite.\n\ndoCommit runs the registered validators once on the first attempt.\nErrCommitDiverged is terminal (does not wrap ErrCommitFailed), so the\nretry loop leaves it alone. On the first attempt base \u003d\u003d current, so the\nconcurrent-snapshot walk is empty and validators short-circuit — full\nbehavioral coverage lights up once the next PR adds refresh-and-replay\nbetween retries.\n\nUser-visible: ReplaceDataFiles (string-path) now enforces the\nserializable-reject default on concurrent appends. Set\nwrite.update.isolation-level\u003dsnapshot to opt out.\n\nStill to come:\n- Next PR: refresh-and-replay in the retry loop; flip\nCommitNumRetriesDefault 0 → 4; wrap ErrCommitFailed in Glue/SQL/Hive so\nretry fires outside REST.\n- Separate follow-up, WIP: restructure table/ into sub-packages on\ntransaction boundaries."
    },
    {
      "commit": "0e7b58671fff7980f24ec1963cb60d53ba624a0c",
      "tree": "973a50ee8b5b6adceb8bdd18db01774901f65bf5",
      "parents": [
        "a95d093f0e4e2d41e3bfbdd454ff3bef829af845"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Apr 27 12:01:50 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 27 12:01:50 2026 -0400"
      },
      "message": "build(deps): bump github/codeql-action from 4.35.1 to 4.35.2 (#938)\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": "a95d093f0e4e2d41e3bfbdd454ff3bef829af845",
      "tree": "57898a25177d268073b4390d8bd94f62aa7bb9e5",
      "parents": [
        "7179c11d1cb324b04fce2edcd0b00800e64fd670"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Apr 27 12:01:00 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 27 12:01:00 2026 -0400"
      },
      "message": "build(deps): bump the gomod_updates group with 7 updates (#939)\n\nBumps the gomod_updates group with 7 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [github.com/aws/aws-sdk-go-v2](https://github.com/aws/aws-sdk-go-v2) |\n`1.41.5` | `1.41.6` |\n|\n[github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2)\n| `1.32.14` | `1.32.16` |\n|\n[github.com/aws/aws-sdk-go-v2/credentials](https://github.com/aws/aws-sdk-go-v2)\n| `1.19.14` | `1.19.15` |\n|\n[github.com/aws/aws-sdk-go-v2/service/glue](https://github.com/aws/aws-sdk-go-v2)\n| `1.139.1` | `1.139.3` |\n|\n[github.com/aws/aws-sdk-go-v2/service/s3](https://github.com/aws/aws-sdk-go-v2)\n| `1.99.0` | `1.99.1` |\n| [github.com/aws/smithy-go](https://github.com/aws/smithy-go) |\n`1.24.3` | `1.25.0` |\n|\n[google.golang.org/api](https://github.com/googleapis/google-api-go-client)\n| `0.275.0` | `0.276.0` |\n\nUpdates `github.com/aws/aws-sdk-go-v2` from 1.41.5 to 1.41.6\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/9bc9c51d733fd437a60a8710531477ca0347dcc4\"\u003e\u003ccode\u003e9bc9c51\u003c/code\u003e\u003c/a\u003e\nRelease 2026-04-17\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/2b41455a8d88032b9b76b0bafbe23de0a61a6f29\"\u003e\u003ccode\u003e2b41455\u003c/code\u003e\u003c/a\u003e\nRegenerated Clients\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/2327a1b15b5f16414e715325bc9579082fde0767\"\u003e\u003ccode\u003e2327a1b\u003c/code\u003e\u003c/a\u003e\nUpdate endpoints model\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/9225797aa8ce8661d61f4628973aface4e01c922\"\u003e\u003ccode\u003e9225797\u003c/code\u003e\u003c/a\u003e\nUpdate API model\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/7b6f675adb365c7b069aaf2a8e81c4b8f8a5d08e\"\u003e\u003ccode\u003e7b6f675\u003c/code\u003e\u003c/a\u003e\nBump smithy-go to 1.25 (again) (\u003ca\nhref\u003d\"https://redirect.github.com/aws/aws-sdk-go-v2/issues/3390\"\u003e#3390\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/c8b6a97220901cccfd8a06f6f25aef65a967384c\"\u003e\u003ccode\u003ec8b6a97\u003c/code\u003e\u003c/a\u003e\nRelease 2026-04-16\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/4a05c2ba948715d305aff4519154abe2c4799246\"\u003e\u003ccode\u003e4a05c2b\u003c/code\u003e\u003c/a\u003e\nRegenerated Clients\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/6cd4cc9201382be2638c8b4951b5d92de73c1161\"\u003e\u003ccode\u003e6cd4cc9\u003c/code\u003e\u003c/a\u003e\nUpdate endpoints model\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/3153bed494fb9e426640b30c7b91be0510b20362\"\u003e\u003ccode\u003e3153bed\u003c/code\u003e\u003c/a\u003e\nUpdate API model\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/fe3cef6cc115a2915f5410c739dc73d51553d709\"\u003e\u003ccode\u003efe3cef6\u003c/code\u003e\u003c/a\u003e\nMake AccountIDEndpointRouting aware of bdd endpoints (\u003ca\nhref\u003d\"https://redirect.github.com/aws/aws-sdk-go-v2/issues/3387\"\u003e#3387\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/compare/v1.41.5...v1.41.6\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `github.com/aws/aws-sdk-go-v2/config` from 1.32.14 to 1.32.16\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/9bc9c51d733fd437a60a8710531477ca0347dcc4\"\u003e\u003ccode\u003e9bc9c51\u003c/code\u003e\u003c/a\u003e\nRelease 2026-04-17\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/2b41455a8d88032b9b76b0bafbe23de0a61a6f29\"\u003e\u003ccode\u003e2b41455\u003c/code\u003e\u003c/a\u003e\nRegenerated Clients\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/2327a1b15b5f16414e715325bc9579082fde0767\"\u003e\u003ccode\u003e2327a1b\u003c/code\u003e\u003c/a\u003e\nUpdate endpoints model\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/9225797aa8ce8661d61f4628973aface4e01c922\"\u003e\u003ccode\u003e9225797\u003c/code\u003e\u003c/a\u003e\nUpdate API model\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/7b6f675adb365c7b069aaf2a8e81c4b8f8a5d08e\"\u003e\u003ccode\u003e7b6f675\u003c/code\u003e\u003c/a\u003e\nBump smithy-go to 1.25 (again) (\u003ca\nhref\u003d\"https://redirect.github.com/aws/aws-sdk-go-v2/issues/3390\"\u003e#3390\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/c8b6a97220901cccfd8a06f6f25aef65a967384c\"\u003e\u003ccode\u003ec8b6a97\u003c/code\u003e\u003c/a\u003e\nRelease 2026-04-16\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/4a05c2ba948715d305aff4519154abe2c4799246\"\u003e\u003ccode\u003e4a05c2b\u003c/code\u003e\u003c/a\u003e\nRegenerated Clients\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/6cd4cc9201382be2638c8b4951b5d92de73c1161\"\u003e\u003ccode\u003e6cd4cc9\u003c/code\u003e\u003c/a\u003e\nUpdate endpoints model\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/3153bed494fb9e426640b30c7b91be0510b20362\"\u003e\u003ccode\u003e3153bed\u003c/code\u003e\u003c/a\u003e\nUpdate API model\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/fe3cef6cc115a2915f5410c739dc73d51553d709\"\u003e\u003ccode\u003efe3cef6\u003c/code\u003e\u003c/a\u003e\nMake AccountIDEndpointRouting aware of bdd endpoints (\u003ca\nhref\u003d\"https://redirect.github.com/aws/aws-sdk-go-v2/issues/3387\"\u003e#3387\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/compare/config/v1.32.14...config/v1.32.16\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `github.com/aws/aws-sdk-go-v2/credentials` from 1.19.14 to\n1.19.15\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/9bc9c51d733fd437a60a8710531477ca0347dcc4\"\u003e\u003ccode\u003e9bc9c51\u003c/code\u003e\u003c/a\u003e\nRelease 2026-04-17\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/2b41455a8d88032b9b76b0bafbe23de0a61a6f29\"\u003e\u003ccode\u003e2b41455\u003c/code\u003e\u003c/a\u003e\nRegenerated Clients\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/2327a1b15b5f16414e715325bc9579082fde0767\"\u003e\u003ccode\u003e2327a1b\u003c/code\u003e\u003c/a\u003e\nUpdate endpoints model\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/9225797aa8ce8661d61f4628973aface4e01c922\"\u003e\u003ccode\u003e9225797\u003c/code\u003e\u003c/a\u003e\nUpdate API model\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/7b6f675adb365c7b069aaf2a8e81c4b8f8a5d08e\"\u003e\u003ccode\u003e7b6f675\u003c/code\u003e\u003c/a\u003e\nBump smithy-go to 1.25 (again) (\u003ca\nhref\u003d\"https://redirect.github.com/aws/aws-sdk-go-v2/issues/3390\"\u003e#3390\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/c8b6a97220901cccfd8a06f6f25aef65a967384c\"\u003e\u003ccode\u003ec8b6a97\u003c/code\u003e\u003c/a\u003e\nRelease 2026-04-16\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/4a05c2ba948715d305aff4519154abe2c4799246\"\u003e\u003ccode\u003e4a05c2b\u003c/code\u003e\u003c/a\u003e\nRegenerated Clients\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/6cd4cc9201382be2638c8b4951b5d92de73c1161\"\u003e\u003ccode\u003e6cd4cc9\u003c/code\u003e\u003c/a\u003e\nUpdate endpoints model\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/3153bed494fb9e426640b30c7b91be0510b20362\"\u003e\u003ccode\u003e3153bed\u003c/code\u003e\u003c/a\u003e\nUpdate API model\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/fe3cef6cc115a2915f5410c739dc73d51553d709\"\u003e\u003ccode\u003efe3cef6\u003c/code\u003e\u003c/a\u003e\nMake AccountIDEndpointRouting aware of bdd endpoints (\u003ca\nhref\u003d\"https://redirect.github.com/aws/aws-sdk-go-v2/issues/3387\"\u003e#3387\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/compare/credentials/v1.19.14...credentials/v1.19.15\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `github.com/aws/aws-sdk-go-v2/service/glue` from 1.139.1 to\n1.139.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/9bc9c51d733fd437a60a8710531477ca0347dcc4\"\u003e\u003ccode\u003e9bc9c51\u003c/code\u003e\u003c/a\u003e\nRelease 2026-04-17\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/2b41455a8d88032b9b76b0bafbe23de0a61a6f29\"\u003e\u003ccode\u003e2b41455\u003c/code\u003e\u003c/a\u003e\nRegenerated Clients\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/2327a1b15b5f16414e715325bc9579082fde0767\"\u003e\u003ccode\u003e2327a1b\u003c/code\u003e\u003c/a\u003e\nUpdate endpoints model\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/9225797aa8ce8661d61f4628973aface4e01c922\"\u003e\u003ccode\u003e9225797\u003c/code\u003e\u003c/a\u003e\nUpdate API model\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/7b6f675adb365c7b069aaf2a8e81c4b8f8a5d08e\"\u003e\u003ccode\u003e7b6f675\u003c/code\u003e\u003c/a\u003e\nBump smithy-go to 1.25 (again) (\u003ca\nhref\u003d\"https://redirect.github.com/aws/aws-sdk-go-v2/issues/3390\"\u003e#3390\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/c8b6a97220901cccfd8a06f6f25aef65a967384c\"\u003e\u003ccode\u003ec8b6a97\u003c/code\u003e\u003c/a\u003e\nRelease 2026-04-16\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/4a05c2ba948715d305aff4519154abe2c4799246\"\u003e\u003ccode\u003e4a05c2b\u003c/code\u003e\u003c/a\u003e\nRegenerated Clients\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/6cd4cc9201382be2638c8b4951b5d92de73c1161\"\u003e\u003ccode\u003e6cd4cc9\u003c/code\u003e\u003c/a\u003e\nUpdate endpoints model\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/3153bed494fb9e426640b30c7b91be0510b20362\"\u003e\u003ccode\u003e3153bed\u003c/code\u003e\u003c/a\u003e\nUpdate API model\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/fe3cef6cc115a2915f5410c739dc73d51553d709\"\u003e\u003ccode\u003efe3cef6\u003c/code\u003e\u003c/a\u003e\nMake AccountIDEndpointRouting aware of bdd endpoints (\u003ca\nhref\u003d\"https://redirect.github.com/aws/aws-sdk-go-v2/issues/3387\"\u003e#3387\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/compare/service/glue/v1.139.1...service/glue/v1.139.3\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `github.com/aws/aws-sdk-go-v2/service/s3` from 1.99.0 to 1.99.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/9bc9c51d733fd437a60a8710531477ca0347dcc4\"\u003e\u003ccode\u003e9bc9c51\u003c/code\u003e\u003c/a\u003e\nRelease 2026-04-17\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/2b41455a8d88032b9b76b0bafbe23de0a61a6f29\"\u003e\u003ccode\u003e2b41455\u003c/code\u003e\u003c/a\u003e\nRegenerated Clients\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/2327a1b15b5f16414e715325bc9579082fde0767\"\u003e\u003ccode\u003e2327a1b\u003c/code\u003e\u003c/a\u003e\nUpdate endpoints model\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/9225797aa8ce8661d61f4628973aface4e01c922\"\u003e\u003ccode\u003e9225797\u003c/code\u003e\u003c/a\u003e\nUpdate API model\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/7b6f675adb365c7b069aaf2a8e81c4b8f8a5d08e\"\u003e\u003ccode\u003e7b6f675\u003c/code\u003e\u003c/a\u003e\nBump smithy-go to 1.25 (again) (\u003ca\nhref\u003d\"https://redirect.github.com/aws/aws-sdk-go-v2/issues/3390\"\u003e#3390\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/c8b6a97220901cccfd8a06f6f25aef65a967384c\"\u003e\u003ccode\u003ec8b6a97\u003c/code\u003e\u003c/a\u003e\nRelease 2026-04-16\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/4a05c2ba948715d305aff4519154abe2c4799246\"\u003e\u003ccode\u003e4a05c2b\u003c/code\u003e\u003c/a\u003e\nRegenerated Clients\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/6cd4cc9201382be2638c8b4951b5d92de73c1161\"\u003e\u003ccode\u003e6cd4cc9\u003c/code\u003e\u003c/a\u003e\nUpdate endpoints model\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/3153bed494fb9e426640b30c7b91be0510b20362\"\u003e\u003ccode\u003e3153bed\u003c/code\u003e\u003c/a\u003e\nUpdate API model\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/fe3cef6cc115a2915f5410c739dc73d51553d709\"\u003e\u003ccode\u003efe3cef6\u003c/code\u003e\u003c/a\u003e\nMake AccountIDEndpointRouting aware of bdd endpoints (\u003ca\nhref\u003d\"https://redirect.github.com/aws/aws-sdk-go-v2/issues/3387\"\u003e#3387\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.99.0...service/s3/v1.99.1\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `github.com/aws/smithy-go` from 1.24.3 to 1.25.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/aws/smithy-go/releases\"\u003egithub.com/aws/smithy-go\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.25.0\u003c/h2\u003e\n\u003ch1\u003eRelease (2026-04-15)\u003c/h1\u003e\n\u003ch2\u003eGeneral Highlights\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDependency Update\u003c/strong\u003e: Updated to the latest SDK module\nversions\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eModule Highlights\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003egithub.com/aws/smithy-go\u003c/code\u003e: v1.25.0\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFeature\u003c/strong\u003e: Add support for endpointBdd trait\u003c/li\u003e\n\u003c/ul\u003e\n\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/aws/smithy-go/blob/main/CHANGELOG.md\"\u003egithub.com/aws/smithy-go\u0027s\nchangelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease (2026-04-23)\u003c/h1\u003e\n\u003ch2\u003eGeneral Highlights\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDependency Update\u003c/strong\u003e: Updated to the latest SDK module\nversions\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eModule Highlights\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003egithub.com/aws/smithy-go\u003c/code\u003e: v1.25.1\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eBug Fix\u003c/strong\u003e: Fixed a memory leak in the LRU cache\nimplementation used by some AWS services.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eRelease (2026-04-15)\u003c/h1\u003e\n\u003ch2\u003eGeneral Highlights\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDependency Update\u003c/strong\u003e: Updated to the latest SDK module\nversions\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eModule Highlights\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003egithub.com/aws/smithy-go\u003c/code\u003e: v1.25.0\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFeature\u003c/strong\u003e: Add support for endpointBdd trait\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eRelease (2026-04-02)\u003c/h1\u003e\n\u003ch2\u003eGeneral Highlights\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDependency Update\u003c/strong\u003e: Updated to the latest SDK module\nversions\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eModule Highlights\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003egithub.com/aws/smithy-go\u003c/code\u003e: v1.24.3\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eBug Fix\u003c/strong\u003e: Add additional sigv4 configuration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003egithub.com/aws/smithy-go/aws-http-auth\u003c/code\u003e: \u003ca\nhref\u003d\"https://github.com/aws/smithy-go/blob/main/aws-http-auth/CHANGELOG.md#v113-2026-04-02\"\u003ev1.1.3\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eBug Fix\u003c/strong\u003e: Add additional sigv4 configuration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eRelease (2026-02-27)\u003c/h1\u003e\n\u003ch2\u003eGeneral Highlights\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDependency Update\u003c/strong\u003e: Bump minimum go version to\n1.24.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eRelease (2026-02-20)\u003c/h1\u003e\n\u003ch2\u003eGeneral Highlights\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDependency Update\u003c/strong\u003e: Updated to the latest SDK module\nversions\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eModule Highlights\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003egithub.com/aws/smithy-go\u003c/code\u003e: v1.24.1\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFeature\u003c/strong\u003e: Add new middleware functions to get event\nstream output from middleware\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eRelease (2025-12-01)\u003c/h1\u003e\n\u003ch2\u003eGeneral Highlights\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDependency Update\u003c/strong\u003e: Updated to the latest SDK module\nversions\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eModule Highlights\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003egithub.com/aws/smithy-go\u003c/code\u003e: v1.24.0\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/aws/smithy-go/commit/73bb8a7d6e222332d46eec7209ba3cd0ba520239\"\u003e\u003ccode\u003e73bb8a7\u003c/code\u003e\u003c/a\u003e\nRelease 2026-04-15\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/smithy-go/commit/f056c6fb0b43ba9bfeca6c29c8c1e1046437e45e\"\u003e\u003ccode\u003ef056c6f\u003c/code\u003e\u003c/a\u003e\nChangelog\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/smithy-go/commit/ee36afc3d70050ba990c8de8d65043ac11d1f9f4\"\u003e\u003ccode\u003eee36afc\u003c/code\u003e\u003c/a\u003e\nImplement BDD generator for \u003ca\nhref\u003d\"https://github.com/endpointBdd\"\u003e\u003ccode\u003e@​endpointBdd\u003c/code\u003e\u003c/a\u003e\nSmithy trait (\u003ca\nhref\u003d\"https://redirect.github.com/aws/smithy-go/issues/647\"\u003e#647\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca\nhref\u003d\"https://github.com/aws/smithy-go/compare/v1.24.3...v1.25.0\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google.golang.org/api` from 0.275.0 to 0.276.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/releases\"\u003egoogle.golang.org/api\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.276.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/compare/v0.275.0...v0.276.0\"\u003e0.276.0\u003c/a\u003e\n(2026-04-14)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eall:\u003c/strong\u003e Auto-regenerate discovery clients (\u003ca\nhref\u003d\"https://redirect.github.com/googleapis/google-api-go-client/issues/3561\"\u003e#3561\u003c/a\u003e)\n(\u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/commit/dd3f1bb7976124341e045b9f519d059a3f636ea1\"\u003edd3f1bb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eall:\u003c/strong\u003e Auto-regenerate discovery clients (\u003ca\nhref\u003d\"https://redirect.github.com/googleapis/google-api-go-client/issues/3565\"\u003e#3565\u003c/a\u003e)\n(\u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/commit/7c11b5a39bde8b58642e8e95f067cf6b1592d46c\"\u003e7c11b5a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eall:\u003c/strong\u003e Auto-regenerate discovery clients (\u003ca\nhref\u003d\"https://redirect.github.com/googleapis/google-api-go-client/issues/3566\"\u003e#3566\u003c/a\u003e)\n(\u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/commit/54188cf11d69c99be6b485eb6b92898c233422bd\"\u003e54188cf\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/googleapis/google-api-go-client/blob/main/CHANGES.md\"\u003egoogle.golang.org/api\u0027s\nchangelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/compare/v0.275.0...v0.276.0\"\u003e0.276.0\u003c/a\u003e\n(2026-04-14)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eall:\u003c/strong\u003e Auto-regenerate discovery clients (\u003ca\nhref\u003d\"https://redirect.github.com/googleapis/google-api-go-client/issues/3561\"\u003e#3561\u003c/a\u003e)\n(\u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/commit/dd3f1bb7976124341e045b9f519d059a3f636ea1\"\u003edd3f1bb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eall:\u003c/strong\u003e Auto-regenerate discovery clients (\u003ca\nhref\u003d\"https://redirect.github.com/googleapis/google-api-go-client/issues/3565\"\u003e#3565\u003c/a\u003e)\n(\u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/commit/7c11b5a39bde8b58642e8e95f067cf6b1592d46c\"\u003e7c11b5a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eall:\u003c/strong\u003e Auto-regenerate discovery clients (\u003ca\nhref\u003d\"https://redirect.github.com/googleapis/google-api-go-client/issues/3566\"\u003e#3566\u003c/a\u003e)\n(\u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/commit/54188cf11d69c99be6b485eb6b92898c233422bd\"\u003e54188cf\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\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/googleapis/google-api-go-client/commit/006c411fe2e60e3d756f9f3c844942d06b3a8489\"\u003e\u003ccode\u003e006c411\u003c/code\u003e\u003c/a\u003e\nchore(main): release 0.276.0 (\u003ca\nhref\u003d\"https://redirect.github.com/googleapis/google-api-go-client/issues/3562\"\u003e#3562\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/commit/54188cf11d69c99be6b485eb6b92898c233422bd\"\u003e\u003ccode\u003e54188cf\u003c/code\u003e\u003c/a\u003e\nfeat(all): auto-regenerate discovery clients (\u003ca\nhref\u003d\"https://redirect.github.com/googleapis/google-api-go-client/issues/3566\"\u003e#3566\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/commit/7c11b5a39bde8b58642e8e95f067cf6b1592d46c\"\u003e\u003ccode\u003e7c11b5a\u003c/code\u003e\u003c/a\u003e\nfeat(all): auto-regenerate discovery clients (\u003ca\nhref\u003d\"https://redirect.github.com/googleapis/google-api-go-client/issues/3565\"\u003e#3565\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/commit/245032203a6ea0cd32115da349b7c0fe254d2e04\"\u003e\u003ccode\u003e2450322\u003c/code\u003e\u003c/a\u003e\nchore: embargo discoveryengine:v1 from generation (\u003ca\nhref\u003d\"https://redirect.github.com/googleapis/google-api-go-client/issues/3564\"\u003e#3564\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/commit/0c9c60fb07ea9f814d866b675350777012fb56ba\"\u003e\u003ccode\u003e0c9c60f\u003c/code\u003e\u003c/a\u003e\nchore: embargo discoveryengine:v1alpha from generation (\u003ca\nhref\u003d\"https://redirect.github.com/googleapis/google-api-go-client/issues/3563\"\u003e#3563\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/commit/dd3f1bb7976124341e045b9f519d059a3f636ea1\"\u003e\u003ccode\u003edd3f1bb\u003c/code\u003e\u003c/a\u003e\nfeat(all): auto-regenerate discovery clients (\u003ca\nhref\u003d\"https://redirect.github.com/googleapis/google-api-go-client/issues/3561\"\u003e#3561\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/compare/v0.275.0...v0.276.0\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\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 \u003cdependency name\u003e major version` will close this\ngroup update PR and stop Dependabot creating any more for the specific\ndependency\u0027s major version (unless you unignore this specific\ndependency\u0027s major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this\ngroup update PR and stop Dependabot creating any more for the specific\ndependency\u0027s minor version (unless you unignore this specific\ndependency\u0027s minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR\nand stop Dependabot creating any more for the specific dependency\n(unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore\nconditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will\nremove the ignore condition of the specified dependency and ignore\nconditions\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": "7179c11d1cb324b04fce2edcd0b00800e64fd670",
      "tree": "1ab7c3a082048d179ef8aa6b7a2162167eda576c",
      "parents": [
        "a1d883edd53dabb076ec4cfa44f706f8f204d7b9"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Apr 27 12:00:30 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 27 12:00:30 2026 -0400"
      },
      "message": "build(deps): bump zizmorcore/zizmor-action from 0.5.2 to 0.5.3 (#937)\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": "a1d883edd53dabb076ec4cfa44f706f8f204d7b9",
      "tree": "078f9e5abc11ffdb2e6a9c91551ed2d0bebde7e3",
      "parents": [
        "41f5c54c2841780f2a9ddd62702b2ee8326daf77"
      ],
      "author": {
        "name": "Tanmay Rauth",
        "email": "t_rauth@apple.com",
        "time": "Thu Apr 23 09:47:46 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 23 12:47:46 2026 -0400"
      },
      "message": "feat(cli): add --schema-from-file flag to infer table schema from parquet files (#927)\n\nAdded a new --schema-from-file flag to `iceberg create table` that\ninfers the table schema from a local data file. Currently supports\nParquet (.parquet, .parq), with the dispatch designed to support\nadditional formats (e.g. Avro, ORC) in the future.\nWhen a Parquet file contains Iceberg field IDs, they are preserved.\nFiles without field IDs are assigned fresh sequential IDs. The flag is\nmutually exclusive with --schema, and the inferred schema is printed\nbefore table creation for user verification."
    },
    {
      "commit": "41f5c54c2841780f2a9ddd62702b2ee8326daf77",
      "tree": "d7486cbb283cab8272e827281da0ccc6460ded1d",
      "parents": [
        "fe9bcf47c5adf98c1e4d0009a489b0c6e5b25073"
      ],
      "author": {
        "name": "Tanmay Rauth",
        "email": "t_rauth@apple.com",
        "time": "Thu Apr 23 09:47:03 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 23 12:47:03 2026 -0400"
      },
      "message": "feat(io): add BulkRemovableIO interface(#914) (#916)\n\nWhy: Orphan cleanup and snapshot expiration delete files one at a time\nwith Remove(). On cloud object stores (S3, GCS, Azure), this means one\nHTTP round-trip per file — extremely slow when cleaning up thousands of\norphans.\n                                                            \nThis PR adds a BulkRemovableIO interface with DeleteFiles(ctx, paths)\nfor batch deletion. blobFileIO implements it. Orphan cleanup and\nsnapshot expiration try bulk delete first when available, falling back\nto per-file deletion on failure or when a custom delete function is set.\nMissing files are treated as successful deletions. Tests cover bulk\npath, fallback path, partial failure, and edge cases.\n\nFixes #914"
    },
    {
      "commit": "fe9bcf47c5adf98c1e4d0009a489b0c6e5b25073",
      "tree": "5f648614c9a0a1734f5a61bcce042293cc0d8755",
      "parents": [
        "c576fd1726f29845f4810c6d877c34cfc8a870d0"
      ],
      "author": {
        "name": "Matt Topol",
        "email": "zotthewizard@gmail.com",
        "time": "Thu Apr 23 12:46:01 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 23 12:46:01 2026 -0400"
      },
      "message": "feat(config,cmd/iceberg): support more rest options in config (#933)\n\nWhen testing and playing around with AWS S3 Tables, I discovered that we\nneed a way to specify more of the REST options (and likely more for\nother catalogs in the future) to be able to leverage and connect to s3\ntables using the `iceberg` binary that is created here.\n\nThis PR creates an initial pattern (modeled somewhat on how pyiceberg\nmanages it\u0027s config) that introduces a subsection in the catalog yaml\ndefinition for adding more options. I also add a test case here that\nmatches what you\u0027d have to do for the `cmd/iceberg` mainprog to be able\nto access s3 tables using the yaml config.\n\nMore options for rest and other catalogs can be added in follow-up PRs\nnow that this establishes a pattern to follow."
    },
    {
      "commit": "c576fd1726f29845f4810c6d877c34cfc8a870d0",
      "tree": "c10131c41bd39a54a23fe79f7b8b7617969e0de9",
      "parents": [
        "f8df330465c722387f2a2b0032332700ea68a32d"
      ],
      "author": {
        "name": "Ashley Jeffs",
        "email": "ash@jeffail.uk",
        "time": "Thu Apr 23 17:45:23 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 23 12:45:23 2026 -0400"
      },
      "message": "fix(table): seed UpdateSchema id counter from metadata LastColumnID (#936)\n\n## Problem\n\n`NewUpdateSchema` seeds its fresh-id counter from\n`txn.meta.CurrentSchema().HighestFieldID()`. The Iceberg spec reserves\n`last-column-id` on table metadata as the monotonic counter for this\npurpose; Java\u0027s\n[`SchemaUpdate`](https://github.com/apache/iceberg/blob/main/core/src/main/java/org/apache/iceberg/SchemaUpdate.java)\nseeds from `metadata.lastColumnId()`.\n\nWhen the current schema\u0027s highest id is lower than the lifetime max —\nafter a previous evolution added columns that were later dropped, or\nafter a schema swap — `AddColumn` allocates ids already referenced by\nfields in historical schemas. Catalogs that index the full schema\nhistory (e.g. AWS Glue\u0027s `schemasToGlueColumns`) then reject the commit\nwith a duplicate field id error.\n\n## Fix\n\nSeed `lastColumnID` from `txn.meta.LastColumnID()` in `NewUpdateSchema`.\nAdds a public `LastColumnID()` getter on `*MetadataBuilder` — the\n`Metadata` interface already exposes this value, but `txn.meta` is the\nbuilder.\n\n`MetadataBuilder.AddSchema` already keeps `last-column-id` monotonic via\n`max(b.lastColumnId, schema.HighestFieldID())`, so no other allocator\nsites need changes.\n\n## Testing\n\nAdds `TestAddColumnMonotonicFieldIDs`: constructs metadata whose\n`last-column-id` exceeds the current schema\u0027s `HighestFieldID()` (by\nadding a higher-id schema while leaving the original as current) and\nasserts that `AddColumn` allocates above `last-column-id`. Confirmed\nfailing on `main` before the fix and passing after.\n\n`go test ./...` passes.\n\nFixes #935\n\nSigned-off-by: Ashley Jeffs \u003cash@jeffail.uk\u003e"
    },
    {
      "commit": "f8df330465c722387f2a2b0032332700ea68a32d",
      "tree": "b3990ab642a3c96ac311c02db7335c2e9e859cfd",
      "parents": [
        "eb37c1aa2ba577f4d5074e42daa0b1166c5118bd"
      ],
      "author": {
        "name": "Tanmay Rauth",
        "email": "t_rauth@apple.com",
        "time": "Wed Apr 22 13:14:51 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 22 16:14:51 2026 -0400"
      },
      "message": "fix: use floored division in HourTransform for pre-epoch timestamps (#924) (#926)\n\nHourTransform used truncated division (rounds toward zero) which\nproduced incorrect hour buckets for pre-epoch timestamps. Switch to\nfloored division to match Java\u0027s Math.floorDiv behavior."
    },
    {
      "commit": "eb37c1aa2ba577f4d5074e42daa0b1166c5118bd",
      "tree": "39299ec5813abafb3e1a5d4b23bebdaa5b991315",
      "parents": [
        "bb94be70ecc5991cc173286ef4f011c1061ba801"
      ],
      "author": {
        "name": "Tanmay Rauth",
        "email": "t_rauth@apple.com",
        "time": "Wed Apr 22 09:16:57 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 22 12:16:57 2026 -0400"
      },
      "message": "feat(io): add ListableIO interface to replace reflect-based directory walking (#913) (#917)\n\nWhy: Orphan cleanup\u0027s walkDirectory used reflect to reach into blob\nstorage internals (extracting the Bucket field by name). This is fragile\n— it breaks if the struct changes, bypasses Go\u0027s type system, and panics\non unexpected IO types.\nThis PR introduces a ListableIO interface with a WalkDir method so\ndirectory walking works through a proper type assertion. Both LocalFS\nand blobFileIO implement it. Orphan cleanup prefers ListableIO when\navailable, falling back to the original reflect-based implementation for\nIO types that don\u0027t implement it yet. Includes Azure URI userinfo\npreservation and tests for local, cloud, and Azure paths.\n\nFixes: #913"
    },
    {
      "commit": "bb94be70ecc5991cc173286ef4f011c1061ba801",
      "tree": "a8e840ebe15129ac15b68d80c7bac3871f251543",
      "parents": [
        "9cc7e2fdd135dc08171e006b434dc1a118735701"
      ],
      "author": {
        "name": "Andrei Tserakhau",
        "email": "laskoviymishka@gmail.com",
        "time": "Wed Apr 22 17:12:43 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 22 11:12:43 2026 -0400"
      },
      "message": "feat(table): add conflict validation framework (#928)\n\nAdds the foundational types, errors, and validator functions that a\nproducer uses to detect conflicting concurrent commits before re-issuing\nits updates. Framework part of #830.\n\nNo producer is wired to use these yet, that step lands with next slice;\nthis change is library plumbing only and has no behavior impact on\nexisting paths.\n\n- IsolationLevel type with SERIALIZABLE and SNAPSHOT constants, plus\nwrite.delete.isolation-level / write.update.isolation-level property\nkeys (matching Java\u0027s TableProperties names).\n- Four conflict sentinels that wrap table.ErrCommitFailed so the\nexisting retry loop in doCommit continues to treat them as retryable\nconflicts.\n- ConflictContext walks AncestorsBetween (from the snapshot ancestry\nutility) to enumerate concurrent snapshots on the committer\u0027s branch and\nreturns ErrCommitDiverged if the base snapshot is no longer on the\nbranch.\n- Four validators matching Java\u0027s BaseRowDelta / BaseOverwriteFiles /\nBaseRewriteFiles:\n* ValidateDataFilesExist — pos-delete referenced files still reachable\nfrom current head.\n* ValidateAddedDataFilesMatchingFilter — no concurrent data-file add in\nthe committer\u0027s filter region (manifest-level partition-summary pruning\nvia the existing evaluators). * ValidateNoConflictingDataFiles —\nisolation-level-gated variant of the above for RowDelta eq-delete\ncommits. * ValidateNoNewDeletesForRewrittenFiles — no concurrent\nposition deletes targeting files a rewrite is replacing.\n- Per-spec filter projection cache so a walk across snapshots written\nunder different partition spec ids reuses its projection work.\n\nTests cover the framework\u0027s logic (isolation-level parsing, error\nwrapping, ConflictContext edge cases, validator short-circuit paths).\n\nEnd-to-end conflict detection under real concurrent-snapshot conditions\nlives with the producer-wiring follow up PR."
    },
    {
      "commit": "9cc7e2fdd135dc08171e006b434dc1a118735701",
      "tree": "25f47007e55460c077806688b8ffe994e03bb6aa",
      "parents": [
        "931a2e033697ee178b0c737080eee136e8b4f087"
      ],
      "author": {
        "name": "Andrei Tserakhau",
        "email": "laskoviymishka@gmail.com",
        "time": "Tue Apr 21 19:29:22 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 21 13:29:22 2026 -0400"
      },
      "message": "docs(website): add generator scaffold for example-driven concept pages (#920)\n\nIntroduces website/gen, a small stdlib-only program that walks the repo\nfor example_*_test.go files carrying an `iceberg:doc` header and\nregenerates the Concepts section of the mdbook site from them. Code\nblocks will be emitted as mdbook `{{#include file:anchor}}` directives,\nso the compiled test, not a hand-maintained snippet, is the source of\ntruth for each example.\n\nNo test file carries the header yet, so the generator is a no-op at this\npoint; it exits 0 with a log line.\n\nThis PR is more a question - should we already automate generation of\ndocs? cc @zeroshade / @kevinjqliu.\n\nIf yes - after merge i\u0027ll do a follow-up PR will anchor the existing\nexamples, add the SUMMARY marker block, commit the first generated page,\nand wire the CI gate.\n\nAdds a `docs-gen` Makefile target so `make docs-gen` regenerates the\nconcepts in one command."
    },
    {
      "commit": "931a2e033697ee178b0c737080eee136e8b4f087",
      "tree": "f1257ca4ef2ae9f6d601eef279c85fece2759922",
      "parents": [
        "021046913af19d3cef02d293682180241ec8a2a2"
      ],
      "author": {
        "name": "Lovro Mažgon",
        "email": "lovro.mazgon@gmail.com",
        "time": "Tue Apr 21 18:41:28 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 21 12:41:28 2026 -0400"
      },
      "message": "feat(catalog): add `WithOAuthTLSConfig` for separate OAuth server TLS (#895)\n\nThe Iceberg REST spec allows configuring the OAuth2 server separately\nfrom the catalog via `oauth2-server-uri`. When the OAuth2 server is a\ndifferent host, it may require different TLS settings (different CA,\nclient certificates, etc.).\n\nCurrently `setupOAuthManager` reuses the catalog\u0027s HTTP client for token\nrequests, making it impossible to configure separate TLS trust without\ncreating a custom AuthManager.\n\nThis adds `WithOAuthTLSConfig(*tls.Config)` which creates a dedicated\nHTTP client for OAuth token requests. When not set, behavior is\nunchanged."
    },
    {
      "commit": "021046913af19d3cef02d293682180241ec8a2a2",
      "tree": "9ce94b281c584a3426fb1c20f17ca7c9511cf6fa",
      "parents": [
        "41822100df472621fec39c60aa12ebc634c38e35"
      ],
      "author": {
        "name": "Ali Asghar",
        "email": "98263017+alliasgher@users.noreply.github.com",
        "time": "Tue Apr 21 01:31:04 2026 +0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 20 16:31:04 2026 -0400"
      },
      "message": "fix(rest): apply header.* additional props as HTTP headers on all requests (#921)\n\n## What\n\nProperties with a `\"header.\"` prefix passed via `WithAdditionalProps`\nwere stored in `additionalProps` but never converted to HTTP request\nheaders, so they had no effect on any request — including the initial\n`/v1/config` call.\n\nThis PR applies `header.*` keys from `additionalProps` as session\n`defaultHeaders` in `createSession`, alongside the explicitly-set\n`WithHeaders` map. This matches the behavior of `iceberg-python` and the\n[iceberg REST spec\nconvention](https://github.com/apache/iceberg/blob/main/docs/rest-catalog.md)\nfor `header.*` config properties.\n\n## Why\n\nGoogle BigLake requires the `x-goog-user-project` header on **every**\nrequest, including the initial `/v1/config` call, for quota attribution.\nWithout this fix, connecting to BigLake with:\n\n```go\nrest.WithAdditionalProps(iceberg.Properties{\n    \"header.x-goog-user-project\": \"my-project\",\n})\n```\n\nfails with `\"biglake.googleapis.com API requires a quota project\"`\nbecause the header is absent from the config request.\n\nAfter this fix, both `WithHeaders` and `header.*` additional props apply\nheaders to all requests.\n\n## Testing\n\nAdded `TestAdditionalPropsHeaderPrefix` to `rest_test.go` verifying that\na `header.*` prop appears on subsequent requests. All existing tests\npass.\n\nFixes #532\n\nSigned-off-by: Ali \u003calliasgher123@gmail.com\u003e"
    },
    {
      "commit": "41822100df472621fec39c60aa12ebc634c38e35",
      "tree": "f038ea2b1523fdf9a6eec35e7d772c7647e74cec",
      "parents": [
        "93d8c6e91d0f478af82bffacacd28881c7d64b92"
      ],
      "author": {
        "name": "Andrei Tserakhau",
        "email": "laskoviymishka@gmail.com",
        "time": "Mon Apr 20 22:25:24 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 20 16:25:24 2026 -0400"
      },
      "message": "feat(table): retry doCommit on commit-conflict errors (#830) (#912)\n\nWrap Table.doCommit in an exponential-backoff retry loop that retries\nonly on errors.Is(err, table.ErrCommitFailed). 5xx/unknown-state errors\nare never retried because the commit may have actually succeeded.\n\nErrCommitFailed is a new sentinel in the table package; catalog/rest\u0027s\nexisting sentinel now wraps it via fmt.Errorf(\"%w: %w\", ...) so callers\ncan detect retryable conflicts with errors.Is(err,\ntable.ErrCommitFailed).\n\nRetry budget is enforced via context.WithTimeout so both the sleep loop\nand the CommitTable call itself respect the deadline. Backoff is minMs\n\u003c\u003c attempt clamped to maxMs, with jitter in [minMs, ceiling] to avoid\nzero-wait retry stampedes.\n\nThe default num-retries is 0 until refresh-and-replay lands in a\nfollow-up; without refreshing requirements between attempts, retrying a\ncontended OCC commit would fail deterministically and just delay the\neventual error. Glue/SQL/Hive catalogs do not yet wrap the sentinel, so\nretries only engage for the REST catalog today.\n\nConfigurable via:\n  commit.retry.num-retries       (default 0)\n  commit.retry.min-wait-ms       (default 100)\n  commit.retry.max-wait-ms       (default 60000)\n  commit.retry.total-timeout-ms  (default 1800000)\n\nPart of #830 (concurrent writer conflict detection)."
    },
    {
      "commit": "93d8c6e91d0f478af82bffacacd28881c7d64b92",
      "tree": "a74d6ae6329413fc173f54826ef0345f266bb48b",
      "parents": [
        "17090ae42bc3c85333e42eb1d59ebb8e0283b247"
      ],
      "author": {
        "name": "Tanmay Rauth",
        "email": "t_rauth@apple.com",
        "time": "Fri Apr 17 10:33:28 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 17 13:33:28 2026 -0400"
      },
      "message": "fix: decode pre-1.4 Java Iceberg legacy manifest list field names (#889) (#890)\n\nIceberg Java used added_data_files_count, existing_data_files_count, and\ndeleted_data_files_count as manifest list field names (IDs 504/505/506)\nuntil apache/iceberg#5338 renamed them to match the spec in the 1.4\nrelease.\n\nTables written before that fix, or by engines still on older Java\nversions (Athena, some Trino deployments), embed the legacy names in the\nwriter schema of every manifest list OCF file. When iceberg-go read such\na file, hamba/avro could not match writer-schema fields to struct tags\nand silently left the three count fields at zero.\n\nZero counts caused HasAddedFiles() and HasExistingFiles() to return\nfalse, which broke fast-append manifest inheritance and caused\nTable.Scan() to return no data.\n\nFix: add parallel struct fields with the legacy avro tags to\nmanifestFileV1 and manifestFile. Accessors coalesce — preferring the\nspec-correct name, falling back to the legacy name. No write-path or\nschema-registration changes are made.\n\nAdds two tests (V1 and V2) that write raw Avro OCF using the pre-1.4\nfield names and assert the counts decode correctly.\n\nFixes #889"
    },
    {
      "commit": "17090ae42bc3c85333e42eb1d59ebb8e0283b247",
      "tree": "b73c507c37c54df25efc69fb24b4842af0dbcf3d",
      "parents": [
        "dd38a995f099a3c3cb931b1f1896bc32b77702ba"
      ],
      "author": {
        "name": "Tanmay Rauth",
        "email": "t_rauth@apple.com",
        "time": "Fri Apr 17 10:30:18 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 17 13:30:18 2026 -0400"
      },
      "message": "docs(website): add scanner, writer, and transaction API documentation (#919)\n\nThe api.md page documented catalog and schema operations but was missing\ndocumentation for the primary data-path APIs that users needs:\n\n- Scanner: reading data with column projection, row filtering, time\ntravel, and snapshot selection\n- Writer: appending, overwriting, and deleting data using Arrow\nRecordReaders and Tables\n- Transactions: grouping multiple operations into atomic commits,\nincluding branch transactions\n\nAlso fixed an outdated text claiming only the REST catalog is\nimplemented when Hive, Glue, and SQL catalogs are all available."
    },
    {
      "commit": "dd38a995f099a3c3cb931b1f1896bc32b77702ba",
      "tree": "2a8e5dac7b4773086186d3a30d38db8e03a3124e",
      "parents": [
        "48e640c677016d07a226430445d5a46ee3e954dc"
      ],
      "author": {
        "name": "Tanmay Rauth",
        "email": "t_rauth@apple.com",
        "time": "Fri Apr 17 10:29:05 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 17 13:29:05 2026 -0400"
      },
      "message": "docs(website): sync feature tables with README.md (#918)\n\nThe feature support tables in website/src/introduction.md had diverged\nfrom README.md:\n\n- Hive catalog: shown as unsupported despite full implementation\n- Write operations: missing Overwrite Files, Copy-On-Write Delete, and\nWrite Pos Delete which are all implemented\n- Catalog table header alignment was inconsistent\n\nSync all tables to match README.md, which reflects the actual code."
    },
    {
      "commit": "48e640c677016d07a226430445d5a46ee3e954dc",
      "tree": "8d4cbcad85ce4e0b1e4de45dd5e7db47ade8c1c2",
      "parents": [
        "add5fce0fe83d29eb0f88b39ac8eedae5ee888cc"
      ],
      "author": {
        "name": "Andrei Tserakhau",
        "email": "laskoviymishka@gmail.com",
        "time": "Fri Apr 17 09:23:57 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 17 12:23:57 2026 -0400"
      },
      "message": "feat(table): add snapshot ancestry utility (#911)\n\nAdd AncestorsOf, AncestorsBetween, and IsAncestorOf helpers for walking\nsnapshot parent chains. Foundation for concurrent writer conflict\ndetection (#830).\n\n- AncestorsOf(id, lookup): walks chain newest-first, handles broken\nchains and cycles defensively\n- AncestorsBetween(latest, base, lookup): returns (snapshots, baseFound)\nwhere baseFound distinguishes \"complete concurrent snapshots\" from\n\"divergent/broken chain, treat as conflict\"\n- IsAncestorOf(id, ancestor, lookup): verifies snapshotID exists before\nshort-circuiting on self-match; returns false on broken mid-chain\n\nSnapshotLookup is a func type matching Metadata.SnapshotByID, chosen\nover taking Metadata directly to keep the utility testable without a\nfake Metadata implementation.\n\nPart of #830 (concurrent writer conflict detection)."
    },
    {
      "commit": "add5fce0fe83d29eb0f88b39ac8eedae5ee888cc",
      "tree": "54624dbafc295dba276acaf52070712366d068b1",
      "parents": [
        "c5f82b59daafe8480cdaba28dc0019b998913862"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Apr 16 14:26:23 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 16 14:26:23 2026 -0400"
      },
      "message": "build(deps): bump actions/setup-go from 4.3.0 to 6.4.0 (#908)\n\nBumps [actions/setup-go](https://github.com/actions/setup-go) from 4.3.0\nto 6.4.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/actions/setup-go/releases\"\u003eactions/setup-go\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev6.4.0\u003c/h2\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003ch3\u003eEnhancement\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd go-download-base-url input for custom Go distributions by \u003ca\nhref\u003d\"https://github.com/gdams\"\u003e\u003ccode\u003e@​gdams\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-go/pull/721\"\u003eactions/setup-go#721\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDependency update\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade minimatch from 3.1.2 to 3.1.5 by \u003ca\nhref\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-go/pull/727\"\u003eactions/setup-go#727\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation update\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRearrange README.md, add advanced-usage.md by \u003ca\nhref\u003d\"https://github.com/priyagupta108\"\u003e\u003ccode\u003e@​priyagupta108\u003c/code\u003e\u003c/a\u003e\nin \u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-go/pull/724\"\u003eactions/setup-go#724\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Microsoft build of Go link by \u003ca\nhref\u003d\"https://github.com/gdams\"\u003e\u003ccode\u003e@​gdams\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-go/pull/734\"\u003eactions/setup-go#734\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/gdams\"\u003e\u003ccode\u003e@​gdams\u003c/code\u003e\u003c/a\u003e made\ntheir first contribution in \u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-go/pull/721\"\u003eactions/setup-go#721\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/setup-go/compare/v6...v6.4.0\"\u003ehttps://github.com/actions/setup-go/compare/v6...v6.4.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev6.3.0\u003c/h2\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate default Go module caching to use go.mod by \u003ca\nhref\u003d\"https://github.com/priyagupta108\"\u003e\u003ccode\u003e@​priyagupta108\u003c/code\u003e\u003c/a\u003e\nin \u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-go/pull/705\"\u003eactions/setup-go#705\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix golang download url to go.dev by \u003ca\nhref\u003d\"https://github.com/178inaba\"\u003e\u003ccode\u003e@​178inaba\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-go/pull/469\"\u003eactions/setup-go#469\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/setup-go/compare/v6...v6.3.0\"\u003ehttps://github.com/actions/setup-go/compare/v6...v6.3.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev6.2.0\u003c/h2\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eExample for restore-only cache in documentation by \u003ca\nhref\u003d\"https://github.com/aparnajyothi-y\"\u003e\u003ccode\u003e@​aparnajyothi-y\u003c/code\u003e\u003c/a\u003e\nin \u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-go/pull/696\"\u003eactions/setup-go#696\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Node.js version in action.yml by \u003ca\nhref\u003d\"https://github.com/ccoVeille\"\u003e\u003ccode\u003e@​ccoVeille\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-go/pull/691\"\u003eactions/setup-go#691\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocumentation update of actions/checkout by \u003ca\nhref\u003d\"https://github.com/deining\"\u003e\u003ccode\u003e@​deining\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-go/pull/683\"\u003eactions/setup-go#683\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDependency updates\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade js-yaml from 3.14.1 to 3.14.2 by \u003ca\nhref\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-go/pull/682\"\u003eactions/setup-go#682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003e@​actions/cache\u003c/code\u003e to v5 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/setup-go/pull/695\"\u003eactions/setup-go#695\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade actions/checkout from 5 to 6 by \u003ca\nhref\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-go/pull/686\"\u003eactions/setup-go#686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade qs from 6.14.0 to 6.14.1 by \u003ca\nhref\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-go/pull/703\"\u003eactions/setup-go#703\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/ccoVeille\"\u003e\u003ccode\u003e@​ccoVeille\u003c/code\u003e\u003c/a\u003e\nmade their first contribution in \u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-go/pull/691\"\u003eactions/setup-go#691\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/deining\"\u003e\u003ccode\u003e@​deining\u003c/code\u003e\u003c/a\u003e made\ntheir first contribution in \u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-go/pull/683\"\u003eactions/setup-go#683\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/setup-go/compare/v6...v6.2.0\"\u003ehttps://github.com/actions/setup-go/compare/v6...v6.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev6.1.0\u003c/h2\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFall back to downloading from go.dev/dl instead of\nstorage.googleapis.com/golang by \u003ca\nhref\u003d\"https://github.com/nicholasngai\"\u003e\u003ccode\u003e@​nicholasngai\u003c/code\u003e\u003c/a\u003e\nin \u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-go/pull/665\"\u003eactions/setup-go#665\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for .tool-versions file and update workflow by \u003ca\nhref\u003d\"https://github.com/priya-kinthali\"\u003e\u003ccode\u003e@​priya-kinthali\u003c/code\u003e\u003c/a\u003e\nin \u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-go/pull/673\"\u003eactions/setup-go#673\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd comprehensive breaking changes documentation for v6 by \u003ca\nhref\u003d\"https://github.com/mahabaleshwars\"\u003e\u003ccode\u003e@​mahabaleshwars\u003c/code\u003e\u003c/a\u003e\nin \u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-go/pull/674\"\u003eactions/setup-go#674\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/setup-go/commit/4a3601121dd01d1626a1e23e37211e3254c1c06c\"\u003e\u003ccode\u003e4a36011\u003c/code\u003e\u003c/a\u003e\ndocs: fix Microsoft build of Go link (\u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-go/issues/734\"\u003e#734\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/setup-go/commit/8f19afcc704763637be6b1718da0af52ca05785d\"\u003e\u003ccode\u003e8f19afc\u003c/code\u003e\u003c/a\u003e\nfeat: add go-download-base-url input for custom Go distributions (\u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-go/issues/721\"\u003e#721\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/setup-go/commit/27fdb267c15a8835f1ead03dfa07f89be2bb741a\"\u003e\u003ccode\u003e27fdb26\u003c/code\u003e\u003c/a\u003e\nBump minimatch from 3.1.2 to 3.1.5 (\u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-go/issues/727\"\u003e#727\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/setup-go/commit/def8c394e3ad351a79bc93815e4a585520fe993b\"\u003e\u003ccode\u003edef8c39\u003c/code\u003e\u003c/a\u003e\nRearrange README.md, add advanced-usage.md (\u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-go/issues/724\"\u003e#724\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/setup-go/commit/4b73464bb391d4059bd26b0524d20df3927bd417\"\u003e\u003ccode\u003e4b73464\u003c/code\u003e\u003c/a\u003e\nFix golang download url to go.dev (\u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-go/issues/469\"\u003e#469\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/setup-go/commit/a5f9b05d2d216f63e13859e0d847461041025775\"\u003e\u003ccode\u003ea5f9b05\u003c/code\u003e\u003c/a\u003e\nUpdate default Go module caching to use go.mod (\u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-go/issues/705\"\u003e#705\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/setup-go/commit/7a3fe6cf4cb3a834922a1244abfce67bcef6a0c5\"\u003e\u003ccode\u003e7a3fe6c\u003c/code\u003e\u003c/a\u003e\nBump qs from 6.14.0 to 6.14.1 (\u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-go/issues/703\"\u003e#703\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/setup-go/commit/b9adafd441833a027479ddd0db37eaece68d35cb\"\u003e\u003ccode\u003eb9adafd\u003c/code\u003e\u003c/a\u003e\nBump actions/checkout from 5 to 6 (\u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-go/issues/686\"\u003e#686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/setup-go/commit/d73f6bcfc2b419b74f47075f8a487b40cc4680f8\"\u003e\u003ccode\u003ed73f6bc\u003c/code\u003e\u003c/a\u003e\nREADME.md: correct to actions/checkout@v6 (\u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-go/issues/683\"\u003e#683\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/setup-go/commit/ae252ee6fb24babc50e89fc67c4aa608e69fbf8f\"\u003e\u003ccode\u003eae252ee\u003c/code\u003e\u003c/a\u003e\nBump \u003ccode\u003e@​actions/cache\u003c/code\u003e to v5 (\u003ca\nhref\u003d\"https://redirect.github.com/actions/setup-go/issues/695\"\u003e#695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/actions/setup-go/compare/v4.3.0...4a3601121dd01d1626a1e23e37211e3254c1c06c\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\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: Matt Topol \u003czotthewizard@gmail.com\u003e"
    },
    {
      "commit": "c5f82b59daafe8480cdaba28dc0019b998913862",
      "tree": "471f21df9ee0a82e968432bb1c8fc00064e5f74e",
      "parents": [
        "536ca05ebddecdbe08cdfb7c19c242b4047c2e8f"
      ],
      "author": {
        "name": "Tanmay Rauth",
        "email": "t_rauth@apple.com",
        "time": "Thu Apr 16 11:07:36 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 16 14:07:36 2026 -0400"
      },
      "message": "feat(#492): implement SetStatistics, RemoveStatistics, AddEncryptionKey, RemoveEncryptionKey updates (#902)\n\nAdds the four remaining table update types required for REST catalog\ncompatibility. Without these, any commit response containing these\nactions fails with \"unknown update action\".\n\nChanges:\n- table/encryption.go: new file; defines EncryptionKey type (key-id,\nkey-metadata, key-algorithm) separate from statistics types\n- table/statistics.go: remove EncryptionKey (moved to encryption.go)\n- table/updates.go: add constants and update structs for set-statistics,\nremove-statistics, add-encryption-key, remove-encryption-key; register\nall four in UnmarshalJSON\n- table/metadata.go:\n- add EncryptionKeys() iter.Seq2[string, EncryptionKey] to Metadata\ninterface and implement on commonMetadata\n- add EncryptionKeyMap field to commonMetadata with JSON tag\nencryption-keys (omitempty; inert on V1/V2 tables)\n- add encryptionKeyMap to MetadataBuilder; initialize in\nNewMetadataBuilder alongside refs; copy in MetadataBuilderFromBase;\nwrite through in buildCommonMetadata\n- add SetStatistics (upsert by snapshot-id), RemoveStatistics,\nAddEncryptionKey, RemoveEncryptionKey builder methods\n  - include EncryptionKeyMap in commonMetadata.Equals\n- table/updates_test.go: unmarshal and Apply tests for all four update\ntypes including replace-not-append semantics for SetStatistics and no-op\nremove cases\n\n\nFeature #492\n\n---------\n\nCo-authored-by: Matt Topol \u003czotthewizard@gmail.com\u003e"
    },
    {
      "commit": "536ca05ebddecdbe08cdfb7c19c242b4047c2e8f",
      "tree": "bd9bce1e4856d4ae80c1d950aeabf288e4faa3c7",
      "parents": [
        "4f5a94491a50184a44cf35b26bd3854d56611645"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Apr 15 18:28:25 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 15 18:28:25 2026 -0400"
      },
      "message": "build(deps): bump actions/download-artifact from 4.3.0 to 8.0.1 (#907)\n\nBumps\n[actions/download-artifact](https://github.com/actions/download-artifact)\nfrom 4.3.0 to 8.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/download-artifact/releases\"\u003eactions/download-artifact\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for CJK characters in the artifact name 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/471\"\u003eactions/download-artifact#471\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd a regression test for artifact name + content-type mismatches by\n\u003ca href\u003d\"https://github.com/danwkennedy\"\u003e\u003ccode\u003e@​danwkennedy\u003c/code\u003e\u003c/a\u003e\nin \u003ca\nhref\u003d\"https://redirect.github.com/actions/download-artifact/pull/472\"\u003eactions/download-artifact#472\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/v8...v8.0.1\"\u003ehttps://github.com/actions/download-artifact/compare/v8...v8.0.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev8.0.0\u003c/h2\u003e\n\u003ch2\u003ev8 - What\u0027s new\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!IMPORTANT]\nactions/download-artifact@v8 has been migrated to an ESM module. This\nshould be transparent to the caller but forks might need to make\nsignificant changes.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!IMPORTANT]\nHash mismatches will now error by default. Users can override this\nbehavior with a setting change (see below).\u003c/p\u003e\n\u003c/blockquote\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\u003etrue\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\u003ch2\u003ev7.0.0\u003c/h2\u003e\n\u003ch2\u003ev7 - What\u0027s new\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!IMPORTANT]\nactions/download-artifact@v7 now runs on Node.js 24 (\u003ccode\u003eruns.using:\nnode24\u003c/code\u003e) and requires a minimum Actions Runner version of 2.327.1.\nIf you are using self-hosted runners, ensure they are updated before\nupgrading.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch3\u003eNode.js 24\u003c/h3\u003e\n\u003cp\u003eThis release updates the runtime to Node.js 24. v6 had preliminary\nsupport for Node 24, however this action was by default still running on\nNode.js 20. Now this action by default will run on Node.js 24.\u003c/p\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate GHES guidance to include reference to Node 20 version by \u003ca\nhref\u003d\"https://github.com/patrikpolyak\"\u003e\u003ccode\u003e@​patrikpolyak\u003c/code\u003e\u003c/a\u003e\nin \u003ca\nhref\u003d\"https://redirect.github.com/actions/download-artifact/pull/440\"\u003eactions/download-artifact#440\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDownload Artifact Node24 support 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/download-artifact/pull/415\"\u003eactions/download-artifact#415\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: update \u003ccode\u003e@​actions/artifact\u003c/code\u003e to fix Node.js 24\npunycode deprecation 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/download-artifact/pull/451\"\u003eactions/download-artifact#451\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eprepare release v7.0.0 for Node.js 24 support 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/download-artifact/pull/452\"\u003eactions/download-artifact#452\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/download-artifact/commit/3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c\"\u003e\u003ccode\u003e3e5f45b\u003c/code\u003e\u003c/a\u003e\nAdd regression tests for CJK characters (\u003ca\nhref\u003d\"https://redirect.github.com/actions/download-artifact/issues/471\"\u003e#471\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/download-artifact/commit/e6d03f67377d4412c7aa56a8e2e4988e6ec479dd\"\u003e\u003ccode\u003ee6d03f6\u003c/code\u003e\u003c/a\u003e\nAdd a regression test for artifact name + content-type mismatches (\u003ca\nhref\u003d\"https://redirect.github.com/actions/download-artifact/issues/472\"\u003e#472\u003c/a\u003e)\u003c/li\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\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/actions/download-artifact/compare/d3f86a106a0bac45b974a628896c90dbdf5c8093...3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\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": "4f5a94491a50184a44cf35b26bd3854d56611645",
      "tree": "b5db5d42c8696bcff3d4e41a93a2e358fae6b972",
      "parents": [
        "4c1d77f4c6b6f7cc8bf9d3138cfba952edc65c99"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Apr 15 18:28:07 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 15 18:28:07 2026 -0400"
      },
      "message": "build(deps): bump golangci/golangci-lint-action from 7.0.0 to 9.2.0 (#905)\n\nBumps\n[golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action)\nfrom 7.0.0 to 9.2.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/golangci/golangci-lint-action/releases\"\u003egolangci/golangci-lint-action\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev9.2.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efeat: add version-file option by \u003ca\nhref\u003d\"https://github.com/ldez\"\u003e\u003ccode\u003e@​ldez\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/golangci/golangci-lint-action/pull/1320\"\u003egolangci/golangci-lint-action#1320\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: move samples into fixtures by \u003ca\nhref\u003d\"https://github.com/ldez\"\u003e\u003ccode\u003e@​ldez\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/golangci/golangci-lint-action/pull/1321\"\u003egolangci/golangci-lint-action#1321\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDependencies\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebuild(deps-dev): bump the dev-dependencies group with 2 updates by\n\u003ca\nhref\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot]\nin \u003ca\nhref\u003d\"https://redirect.github.com/golangci/golangci-lint-action/pull/1317\"\u003egolangci/golangci-lint-action#1317\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/checkout from 5 to 6 by \u003ca\nhref\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot]\nin \u003ca\nhref\u003d\"https://redirect.github.com/golangci/golangci-lint-action/pull/1318\"\u003egolangci/golangci-lint-action#1318\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump the dev-dependencies group with 3 updates by\n\u003ca\nhref\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot]\nin \u003ca\nhref\u003d\"https://redirect.github.com/golangci/golangci-lint-action/pull/1323\"\u003egolangci/golangci-lint-action#1323\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump yaml from 2.8.1 to 2.8.2 in the dependencies group\nby \u003ca\nhref\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot]\nin \u003ca\nhref\u003d\"https://redirect.github.com/golangci/golangci-lint-action/pull/1324\"\u003egolangci/golangci-lint-action#1324\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/golangci/golangci-lint-action/compare/v9.1.0...v9.2.0\"\u003ehttps://github.com/golangci/golangci-lint-action/compare/v9.1.0...v9.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev9.1.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efeat: automatic module directories by \u003ca\nhref\u003d\"https://github.com/ldez\"\u003e\u003ccode\u003e@​ldez\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/golangci/golangci-lint-action/pull/1315\"\u003egolangci/golangci-lint-action#1315\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edocs: organize options by \u003ca\nhref\u003d\"https://github.com/ldez\"\u003e\u003ccode\u003e@​ldez\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/golangci/golangci-lint-action/pull/1314\"\u003egolangci/golangci-lint-action#1314\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDependencies\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebuild(deps-dev): bump the dev-dependencies group with 2 updates by\n\u003ca\nhref\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot]\nin \u003ca\nhref\u003d\"https://redirect.github.com/golangci/golangci-lint-action/pull/1307\"\u003egolangci/golangci-lint-action#1307\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump js-yaml from 4.1.0 to 4.1.1 by \u003ca\nhref\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot]\nin \u003ca\nhref\u003d\"https://redirect.github.com/golangci/golangci-lint-action/pull/1309\"\u003egolangci/golangci-lint-action#1309\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump the dev-dependencies group with 2 updates by\n\u003ca\nhref\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot]\nin \u003ca\nhref\u003d\"https://redirect.github.com/golangci/golangci-lint-action/pull/1310\"\u003egolangci/golangci-lint-action#1310\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump the dependencies group with 2 updates by \u003ca\nhref\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot]\nin \u003ca\nhref\u003d\"https://redirect.github.com/golangci/golangci-lint-action/pull/1311\"\u003egolangci/golangci-lint-action#1311\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/golangci/golangci-lint-action/compare/v9.0.0...v9.1.0\"\u003ehttps://github.com/golangci/golangci-lint-action/compare/v9.0.0...v9.1.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev9.0.0\u003c/h2\u003e\n\u003cp\u003eIn the scope of this release, we change Nodejs runtime from node20 to\nnode24 (\u003ca\nhref\u003d\"https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/\"\u003ehttps://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efeat: add install-only option by \u003ca\nhref\u003d\"https://github.com/ldez\"\u003e\u003ccode\u003e@​ldez\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/golangci/golangci-lint-action/pull/1305\"\u003egolangci/golangci-lint-action#1305\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: support Module Plugin System by \u003ca\nhref\u003d\"https://github.com/ldez\"\u003e\u003ccode\u003e@​ldez\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/golangci/golangci-lint-action/pull/1306\"\u003egolangci/golangci-lint-action#1306\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/golangci/golangci-lint-action/compare/v8.0.0...v9.0.0\"\u003ehttps://github.com/golangci/golangci-lint-action/compare/v8.0.0...v9.0.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev8.0.0\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eRequires \u003ccode\u003egolangci-lint\u003c/code\u003e version \u0026gt;\u003d\n\u003ccode\u003ev2.1.0\u003c/code\u003e\u003c/strong\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\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/golangci/golangci-lint-action/commit/1e7e51e771db61008b38414a730f564565cf7c20\"\u003e\u003ccode\u003e1e7e51e\u003c/code\u003e\u003c/a\u003e\nbuild(deps): bump yaml from 2.8.1 to 2.8.2 in the dependencies group (\u003ca\nhref\u003d\"https://redirect.github.com/golangci/golangci-lint-action/issues/1324\"\u003e#1324\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/golangci/golangci-lint-action/commit/5256ff0c0a28a49774a7304d8e3c609d402d00be\"\u003e\u003ccode\u003e5256ff0\u003c/code\u003e\u003c/a\u003e\nbuild(deps-dev): bump the dev-dependencies group with 3 updates (\u003ca\nhref\u003d\"https://redirect.github.com/golangci/golangci-lint-action/issues/1323\"\u003e#1323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/golangci/golangci-lint-action/commit/13fed6f9113a193550868ae0b2ad583e9fe7f811\"\u003e\u003ccode\u003e13fed6f\u003c/code\u003e\u003c/a\u003e\nchore: update workflows\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/golangci/golangci-lint-action/commit/7afe8ff8631b3f19e5fff3457847f75327ededbc\"\u003e\u003ccode\u003e7afe8ff\u003c/code\u003e\u003c/a\u003e\nchore: update workflows\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/golangci/golangci-lint-action/commit/5a9289952f648d2ca431c4fb972d46f239f3d84f\"\u003e\u003ccode\u003e5a92899\u003c/code\u003e\u003c/a\u003e\nchore: move samples into fixtures (\u003ca\nhref\u003d\"https://redirect.github.com/golangci/golangci-lint-action/issues/1321\"\u003e#1321\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/golangci/golangci-lint-action/commit/aa6fad0ea02e00c7c9e34e4ce5c63572b250d70c\"\u003e\u003ccode\u003eaa6fad0\u003c/code\u003e\u003c/a\u003e\nfeat: add version-file option (\u003ca\nhref\u003d\"https://redirect.github.com/golangci/golangci-lint-action/issues/1320\"\u003e#1320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/golangci/golangci-lint-action/commit/a6071aaacb11b27c22bb795a84223812526187b5\"\u003e\u003ccode\u003ea6071aa\u003c/code\u003e\u003c/a\u003e\nbuild(deps): bump actions/checkout from 5 to 6 (\u003ca\nhref\u003d\"https://redirect.github.com/golangci/golangci-lint-action/issues/1318\"\u003e#1318\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/golangci/golangci-lint-action/commit/6e36c8460ff73f9b5a168b4f556dc6bb34aa0d86\"\u003e\u003ccode\u003e6e36c84\u003c/code\u003e\u003c/a\u003e\nbuild(deps-dev): bump the dev-dependencies group with 2 updates (\u003ca\nhref\u003d\"https://redirect.github.com/golangci/golangci-lint-action/issues/1317\"\u003e#1317\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/golangci/golangci-lint-action/commit/e7fa5ac41e1cf5b7d48e45e42232ce7ada589601\"\u003e\u003ccode\u003ee7fa5ac\u003c/code\u003e\u003c/a\u003e\nfeat: automatic module directories (\u003ca\nhref\u003d\"https://redirect.github.com/golangci/golangci-lint-action/issues/1315\"\u003e#1315\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/golangci/golangci-lint-action/commit/f3ae99f5f564eecb7524e0e89b9fd098650b67d7\"\u003e\u003ccode\u003ef3ae99f\u003c/code\u003e\u003c/a\u003e\ndocs: organize options (\u003ca\nhref\u003d\"https://redirect.github.com/golangci/golangci-lint-action/issues/1314\"\u003e#1314\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/golangci/golangci-lint-action/compare/1481404843c368bc19ca9406f87d6e0fc97bdcfd...1e7e51e771db61008b38414a730f564565cf7c20\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\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": "4c1d77f4c6b6f7cc8bf9d3138cfba952edc65c99",
      "tree": "405657bfc017b0b59ae292bac95824f6c54806a5",
      "parents": [
        "588ca00612d4138627bffdf8ad6a62282d44f330"
      ],
      "author": {
        "name": "Andrei Tserakhau",
        "email": "laskoviymishka@gmail.com",
        "time": "Wed Apr 15 15:27:27 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 15 18:27:27 2026 -0400"
      },
      "message": "feat(table): reject reserved metadata column IDs in user schemas (#821)\n\nAdd validation in checkSchemaCompatibility to reject schemas that use\nreserved metadata column field IDs (2147483540 for _row_id, 2147483539\nfor _last_updated_sequence_number). These IDs are reserved by the\nIceberg v3 spec for row lineage and must not be used by user-defined\nfields.\n\nTogether with #735  should close #727"
    },
    {
      "commit": "588ca00612d4138627bffdf8ad6a62282d44f330",
      "tree": "a5f03a5605cbe1cd5312239bc6ae74dbe3362ff3",
      "parents": [
        "40c33635deed8e39332307c5f2642d80e11d51fc"
      ],
      "author": {
        "name": "Andrei Tserakhau",
        "email": "laskoviymishka@gmail.com",
        "time": "Wed Apr 15 15:25:10 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 15 18:25:10 2026 -0400"
      },
      "message": "fix(table): warn on row count mismatch in Overwrite (#894)\n\nAdd a diagnostic slog.Warn in Transaction.Overwrite when the newly\nwritten data files contain fewer rows than the files being deleted. This\nsurfaces silent row loss from broken RecordReader adapters or iterator\nissues that would otherwise go unnoticed.\n\nThe warning is non-blocking — callers that intentionally reduce data via\noverwrite are not affected. Ref #860."
    },
    {
      "commit": "40c33635deed8e39332307c5f2642d80e11d51fc",
      "tree": "14f84d4d7845e706c994ebc30c10bc40460897c6",
      "parents": [
        "0c2543de3a131f6cbcbfb2cc4149e789e0a2a9eb"
      ],
      "author": {
        "name": "Andrei Tserakhau",
        "email": "laskoviymishka@gmail.com",
        "time": "Wed Apr 15 15:24:09 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 15 18:24:09 2026 -0400"
      },
      "message": "feat(cli): add compact analyze and compact run commands (#903)\n\nAdd `iceberg compact analyze TABLE_ID` for dry-run compaction planning\nand `iceberg compact run TABLE_ID` for executing bin-pack compaction.\n\n- Plans via compaction.Analyze, executes via\nTransaction.RewriteDataFiles\n- Flags: --target-file-size, --partial-progress\n- Prints per-group breakdown table with partition, file count, size,\ndeletes\n- Partial progress message printed before fatal error on failure\n\nPart of #832 (table compaction)."
    },
    {
      "commit": "0c2543de3a131f6cbcbfb2cc4149e789e0a2a9eb",
      "tree": "55b039312884b090690035f556598b0f7c414a76",
      "parents": [
        "f3a283bd2ee06397864bc7c126b10120be980c70"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Apr 15 18:23:25 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 15 18:23:25 2026 -0400"
      },
      "message": "build(deps): bump actions/upload-artifact from 4.6.2 to 7.0.0 (#906)\n\nBumps\n[actions/upload-artifact](https://github.com/actions/upload-artifact)\nfrom 4.6.2 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\u003ch2\u003ev6.0.0\u003c/h2\u003e\n\u003ch2\u003ev6 - What\u0027s new\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!IMPORTANT]\nactions/upload-artifact@v6 now runs on Node.js 24 (\u003ccode\u003eruns.using:\nnode24\u003c/code\u003e) and requires a minimum Actions Runner version of 2.327.1.\nIf you are using self-hosted runners, ensure they are updated before\nupgrading.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch3\u003eNode.js 24\u003c/h3\u003e\n\u003cp\u003eThis release updates the runtime to Node.js 24. v5 had preliminary\nsupport for Node.js 24, however this action was by default still running\non Node.js 20. Now this action by default will run on Node.js 24.\u003c/p\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpload Artifact Node 24 support 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/upload-artifact/pull/719\"\u003eactions/upload-artifact#719\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: update \u003ccode\u003e@​actions/artifact\u003c/code\u003e for Node.js 24 punycode\ndeprecation 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/upload-artifact/pull/744\"\u003eactions/upload-artifact#744\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eprepare release v6.0.0 for Node.js 24 support 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/upload-artifact/pull/745\"\u003eactions/upload-artifact#745\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/v5.0.0...v6.0.0\"\u003ehttps://github.com/actions/upload-artifact/compare/v5.0.0...v6.0.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.0.0\u003c/h2\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBREAKING CHANGE:\u003c/strong\u003e this update supports Node\n\u003ccode\u003ev24.x\u003c/code\u003e. This is not a breaking change per-se but we\u0027re\ntreating it as such.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate README.md by \u003ca\nhref\u003d\"https://github.com/GhadimiR\"\u003e\u003ccode\u003e@​GhadimiR\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/upload-artifact/pull/681\"\u003eactions/upload-artifact#681\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate README.md by \u003ca\nhref\u003d\"https://github.com/nebuk89\"\u003e\u003ccode\u003e@​nebuk89\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/upload-artifact/pull/712\"\u003eactions/upload-artifact#712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReadme: spell out the first use of GHES 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/727\"\u003eactions/upload-artifact#727\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate GHES guidance to include reference to Node 20 version by \u003ca\nhref\u003d\"https://github.com/patrikpolyak\"\u003e\u003ccode\u003e@​patrikpolyak\u003c/code\u003e\u003c/a\u003e\nin \u003ca\nhref\u003d\"https://redirect.github.com/actions/upload-artifact/pull/725\"\u003eactions/upload-artifact#725\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003e@actions/artifact\u003c/code\u003e to \u003ccode\u003ev4.0.0\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003ePrepare \u003ccode\u003ev5.0.0\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/upload-artifact/pull/734\"\u003eactions/upload-artifact#734\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/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\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\u003e\u003ca\nhref\u003d\"https://github.com/actions/upload-artifact/commit/b7c566a772e6b6bfb58ed0dc250532a479d7789f\"\u003e\u003ccode\u003eb7c566a\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/actions/upload-artifact/issues/745\"\u003e#745\u003c/a\u003e\nfrom actions/upload-artifact-v6-release\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/upload-artifact/commit/e516bc8500aaf3d07d591fcd4ae6ab5f9c391d5b\"\u003e\u003ccode\u003ee516bc8\u003c/code\u003e\u003c/a\u003e\ndocs: correct description of Node.js 24 support in README\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/actions/upload-artifact/compare/ea165f8d65b6e75b540449e92b4886f43607fa02...043fb46d1a93c77aae656e7c1c64a875d1fc6a0a\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\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": "f3a283bd2ee06397864bc7c126b10120be980c70",
      "tree": "c895656aac84bfe217fc2a4723ca1c526f15a937",
      "parents": [
        "fc0e7673ce8791b6847a5c7b59948ddeb1ea8856"
      ],
      "author": {
        "name": "Dao Thanh Tung",
        "email": "ttdao.2015@accountancy.smu.edu.sg",
        "time": "Wed Apr 15 23:02:49 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 15 18:02:49 2026 -0400"
      },
      "message": "feat(table): Add support for row lineage in v3 (#735)\n\nThis should fully support read path and partially support write path\nUnsupported write path:\n- Rewrite/compaction: When overwrite or rewrite copies existing rows\ninto new data files, existing non-null `_row_id` and\n`_last_updated_sequence_number` are not copied into the new files. Row\nlineage is preserved for appends and for metadata/manifest list; it is\nnot yet preserved when rewriting data files.\n- Explicit null columns on append: New data files do not write\n`_row_id/_last_updated_sequence_number` as null columns (they are\nomitted); that is allowed by the\n[spec](https://iceberg.apache.org/spec/#reserved-field-ids) and is not\nplanned in this PR.\n\n\u003eA data file with only new rows for the table may omit the\n_last_updated_sequence_number and _row_id. If the columns are missing,\nreaders should treat both columns as if they exist and are set to null\nfor all rows.\n\n---------\n\nSigned-off-by: dttung2905 \u003cttdao.2015@accountancy.smu.edu.sg\u003e"
    },
    {
      "commit": "fc0e7673ce8791b6847a5c7b59948ddeb1ea8856",
      "tree": "39f2cf17024fff2f00c5672b7d30754d6d0e7e5e",
      "parents": [
        "22115e0a38960a30e233ecf059e34c48b515013b"
      ],
      "author": {
        "name": "Matt Topol",
        "email": "zotthewizard@gmail.com",
        "time": "Wed Apr 15 17:57:50 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 15 17:57:50 2026 -0400"
      },
      "message": "ci: fix triage labeler (#910)\n\nLooks like the current config is incorrect based on the updated labeler\naction\n\n---------\n\nCo-authored-by: Kevin Liu \u003ckevinjqliu@users.noreply.github.com\u003e"
    },
    {
      "commit": "22115e0a38960a30e233ecf059e34c48b515013b",
      "tree": "6e47c76ab691f705d77f351db2f0f247bfc4c607",
      "parents": [
        "55502252b5725c704be8a243062d1eaa2655db76"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Apr 15 17:42:39 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 15 17:42:39 2026 -0400"
      },
      "message": "build(deps): bump actions/checkout from 3.6.0 to 6.0.2 (#909)\n\nBumps [actions/checkout](https://github.com/actions/checkout) from 3.6.0\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\u003ch2\u003ev6.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate all references from v5 and v4 to 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/2314\"\u003eactions/checkout#2314\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd worktree support for persist-credentials includeIf 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/2327\"\u003eactions/checkout#2327\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClarify v6 README 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/2328\"\u003eactions/checkout#2328\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...v6.0.1\"\u003ehttps://github.com/actions/checkout/compare/v6...v6.0.1\u003c/a\u003e\u003c/p\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\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/actions/checkout/blob/main/CHANGELOG.md\"\u003eactions/checkout\u0027s\nchangelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003ev6.0.2\u003c/h2\u003e\n\u003cul\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\u003ch2\u003ev6.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd worktree support for persist-credentials includeIf 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/2327\"\u003eactions/checkout#2327\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev6.0.0\u003c/h2\u003e\n\u003cul\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\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\u003c/ul\u003e\n\u003ch2\u003ev5.0.1\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\u003ch2\u003ev5.0.0\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\u003c/ul\u003e\n\u003ch2\u003ev4.3.1\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\u003ch2\u003ev4.3.0\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\u003cli\u003eAdjust positioning of user email note and permissions heading by \u003ca\nhref\u003d\"https://github.com/joshmgross\"\u003e\u003ccode\u003e@​joshmgross\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/pull/2044\"\u003eactions/checkout#2044\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate README.md by \u003ca\nhref\u003d\"https://github.com/nebuk89\"\u003e\u003ccode\u003e@​nebuk89\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/pull/2194\"\u003eactions/checkout#2194\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate CODEOWNERS for actions 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/2224\"\u003eactions/checkout#2224\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate package dependencies 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/2236\"\u003eactions/checkout#2236\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev4.2.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eurl-helper.ts\u003c/code\u003e now leverages well-known environment\nvariables by \u003ca href\u003d\"https://github.com/jww3\"\u003e\u003ccode\u003e@​jww3\u003c/code\u003e\u003c/a\u003e\nin \u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/pull/1941\"\u003eactions/checkout#1941\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpand unit test coverage for \u003ccode\u003eisGhes\u003c/code\u003e by \u003ca\nhref\u003d\"https://github.com/jww3\"\u003e\u003ccode\u003e@​jww3\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/pull/1946\"\u003eactions/checkout#1946\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev4.2.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCheck out other refs/* by commit if provided, fall back to ref by \u003ca\nhref\u003d\"https://github.com/orhantoy\"\u003e\u003ccode\u003e@​orhantoy\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/pull/1924\"\u003eactions/checkout#1924\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev4.2.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Ref and Commit outputs by \u003ca\nhref\u003d\"https://github.com/lucacome\"\u003e\u003ccode\u003e@​lucacome\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/pull/1180\"\u003eactions/checkout#1180\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDependency updates by \u003ca\nhref\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e- \u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/pull/1777\"\u003eactions/checkout#1777\u003c/a\u003e,\n\u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/pull/1872\"\u003eactions/checkout#1872\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev4.1.7\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump the minor-npm-dependencies group across 1 directory with 4\nupdates by \u003ca\nhref\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/pull/1739\"\u003eactions/checkout#1739\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 3 to 4 by \u003ca\nhref\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/pull/1697\"\u003eactions/checkout#1697\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCheck out other refs/* by commit by \u003ca\nhref\u003d\"https://github.com/orhantoy\"\u003e\u003ccode\u003e@​orhantoy\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/pull/1774\"\u003eactions/checkout#1774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePin actions/checkout\u0027s own workflows to a known, good, stable\nversion. by \u003ca href\u003d\"https://github.com/jww3\"\u003e\u003ccode\u003e@​jww3\u003c/code\u003e\u003c/a\u003e in\n\u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/pull/1776\"\u003eactions/checkout#1776\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev4.1.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCheck platform to set archive extension appropriately by \u003ca\nhref\u003d\"https://github.com/cory-miller\"\u003e\u003ccode\u003e@​cory-miller\u003c/code\u003e\u003c/a\u003e in\n\u003ca\nhref\u003d\"https://redirect.github.com/actions/checkout/pull/1732\"\u003eactions/checkout#1732\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/v3.6.0...de0fac2e4500dabe0009e67214ff5f5447ce83dd\"\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\u003d3.6.0\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 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": "55502252b5725c704be8a243062d1eaa2655db76",
      "tree": "ae404f08b8ee7ea291f8dce6c849b95d091a8309",
      "parents": [
        "f3b406da279fe765afd535493f7127edf13aec3a"
      ],
      "author": {
        "name": "Tanmay Rauth",
        "email": "t_rauth@apple.com",
        "time": "Wed Apr 15 13:02:12 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 15 16:02:12 2026 -0400"
      },
      "message": "feat(table): bloom filter scan pruning for Parquet row groups (#834) (#891)\n\nAfter stats-based row group filtering, apply an additional bloom filter\ncheck for EqualTo and In predicates. Row groups where none of the\nqueried values appear in the column bloom filter are skipped, reducing\nI/O for selective point lookups.\n\n- Add RowGroupBloomPred and ParquetRowGroupTester types to\nparquet_files.go; GetRecords runs stats then bloom filter checks per row\ngroup using the physical-byte hasher from the bloom filter itself to\nguarantee algorithm consistency with the writer\n- Add literalToPhysBytes and bloomPredicateCollector in evaluators.go to\nextract bloom-filterable predicates from bound expressions; And merges\npredicates from both sides, Or suppresses collection\n- Wire ParquetRowGroupTester in arrow_scanner.go processRecords\n- Add TestBloomFilterRowGroupPruning covering present/absent/In/unknown\nfield ID cases; add TestLiteralToPhysBytes and\nTestBloomPredicateCollector"
    },
    {
      "commit": "f3b406da279fe765afd535493f7127edf13aec3a",
      "tree": "1277c2686b02b8fd9ed63e41fc6a5dfdff13b833",
      "parents": [
        "758b24a31ad91a68b183702efc3edda65b2c43a5"
      ],
      "author": {
        "name": "Kevin Liu",
        "email": "kevinjqliu@users.noreply.github.com",
        "time": "Wed Apr 15 11:53:29 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 15 14:53:29 2026 -0400"
      },
      "message": "ci: apply github workflow best practice (zizmor/codeql/asf-allowlist-check) (#904)\n\nAdding these 3 checks for all apache/iceberg* repos as part of\nhttps://github.com/apache/iceberg/issues/15742\n\n+ include missing dependabot for `github-actions`"
    },
    {
      "commit": "758b24a31ad91a68b183702efc3edda65b2c43a5",
      "tree": "3e1a5a4c832ec41852749ef81566273edaaa8e53",
      "parents": [
        "aa6f01d768087fc85a6d2ea4b754042421204bf4"
      ],
      "author": {
        "name": "Abhi Rathod",
        "email": "abhirathod95@users.noreply.github.com",
        "time": "Wed Apr 15 10:55:31 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 15 11:55:31 2026 -0400"
      },
      "message": "perf(table): Add optional skip duplicate check on AddDataFiles (#901)\n\nAddDataFiles unconditionally scans every manifest in the current\nsnapshot to check whether any file being added already exists in the\ntable. Each manifest requires a storage read (e.g. an S3 GET). For\ntables with many commits and manifests this means hundreds of sequential\nreads, easily pushing the operation past reasonable processing time.\n\nAddFiles method already has an ignoreDuplicates parameter that skips\nthis scan, but AddDataFiles has no equivalent.\n\nWithoutDuplicateCheck() fills this gap. Callers who can guarantee the\nfiles being added are new (e.g. freshly written by a compaction job or\nan ingestion pipeline with unique naming) can opt out of the scan and\navoid the I/O cost entirely."
    },
    {
      "commit": "aa6f01d768087fc85a6d2ea4b754042421204bf4",
      "tree": "c63a69325ba2c67ffbb968e44abcf6450fe4dfe2",
      "parents": [
        "7f6ab3a35da582c82e8a28f521fc5913dfdeb690"
      ],
      "author": {
        "name": "Ali Asghar",
        "email": "98263017+alliasgher@users.noreply.github.com",
        "time": "Wed Apr 15 02:00:17 2026 +0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 14 17:00:17 2026 -0400"
      },
      "message": "feat(table): support committing snapshots to branches other than main (#899)\n\nFixes #714.\n\nAdds `Table.NewTransactionOnBranch(branch string)` so callers can commit\nto a named branch. The existing `NewTransaction()` becomes a convenience\nwrapper for `NewTransactionOnBranch(MainBranch)`.\n\nThe branch name flows through `Transaction.branch` into\n`snapshotProducer`, replacing the two hardcoded `\"main\"` strings in\n`NewSetSnapshotRefUpdate` and `AssertRefSnapshotID`.\n\n```go\n// Commit to a feature branch\ntxn :\u003d tbl.NewTransactionOnBranch(\"my-feature-branch\")\nif err :\u003d txn.Append(ctx, reader, nil); err !\u003d nil { ... }\nif _, err :\u003d txn.Commit(ctx); err !\u003d nil { ... }\n```\n\nSigned-off-by: alliasgher \u003calliasgher123@gmail.com\u003e"
    },
    {
      "commit": "7f6ab3a35da582c82e8a28f521fc5913dfdeb690",
      "tree": "d1c0e2be527480d61160dfeb54bdb038e37ec067",
      "parents": [
        "285632c52ef829addb14254704f14b4368ac1f13"
      ],
      "author": {
        "name": "Ali Asghar",
        "email": "98263017+alliasgher@users.noreply.github.com",
        "time": "Wed Apr 15 01:51:29 2026 +0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 14 16:51:29 2026 -0400"
      },
      "message": "cmd/iceberg: fix CLI YAML config being ignored when docopt sets defaults (#898)\n\nFixes #324.\n\n`mergeConf` was checking `len(resConfig.Field) \u003d\u003d 0` before applying\nvalues from the YAML config file. Since `docopt` populates `resConfig`\nwith default values (e.g. `Output\u003d\"text\"`) before `mergeConf` runs,\nthe file-config was silently ignored for any option that has a docopt\ndefault.\n\n**Fix:** scan `os.Args` to record which flags were explicitly provided,\nthen apply the file-config value only when the corresponding flag was\nabsent from the command line. CLI-provided values always take\nprecedence; file-config fills in everything else.\n\n**Precedence after this change:**\n1. Explicit CLI flag (highest)\n2. YAML config file\n3. docopt default (lowest)\n\nSigned-off-by: alliasgher \u003calliasgher123@gmail.com\u003e"
    },
    {
      "commit": "285632c52ef829addb14254704f14b4368ac1f13",
      "tree": "44774a93677551f7901b86778946a6af0951c549",
      "parents": [
        "ea55f3d67b5fdc3570cff4496f28709b94574a9b"
      ],
      "author": {
        "name": "Andrei Tserakhau",
        "email": "laskoviymishka@gmail.com",
        "time": "Tue Apr 14 13:49:52 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 14 16:49:52 2026 -0400"
      },
      "message": "feat(table): add RewriteDataFiles for compaction execution (#892)\n\nAdd Transaction.RewriteDataFiles() that reads data with deletes applied,\nwrites new consolidated files, and atomically replaces old files via\nReplaceFiles. Position delete files matched to rewritten data files are\nremoved in the same commit.\n\n- CompactionTaskGroup bridges compaction planner and executor (avoids\ncircular import between table/ and table/compaction/)\n- collectSafePositionDeletes only removes pos deletes with explicit\ncontent type check; equality deletes preserved (may apply outside scope)\n- Context cancellation checked between groups\n- Empty groups skipped gracefully\n\nE2e tests with real Parquet files:\n- Small file compaction (5→1 file, row count preserved)\n- Position delete cleanup (delete applied, delete file removed)\n- Empty plan / empty group handling\n- Partial progress mode\n- Context cancellation\n\nPart of #832 (table compaction)."
    },
    {
      "commit": "ea55f3d67b5fdc3570cff4496f28709b94574a9b",
      "tree": "f1d13b7b861574b6147b3d4913bc2501f5c5a8ac",
      "parents": [
        "df817dc25d566f5f4f2b2a374759a9a3973af9a2"
      ],
      "author": {
        "name": "cassio-paesleme",
        "email": "cassio.paesleme@docker.com",
        "time": "Tue Apr 14 15:21:55 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 14 16:21:55 2026 -0400"
      },
      "message": "fix(table): fast-append must inherit all parent manifests unconditionally (#869)\n\n## Problem\n\n`fastAppendFiles.existingManifests()` filters parent manifests using:\n\n```go\nif m.HasAddedFiles() || m.HasExistingFiles() || m.SnapshotID() \u003d\u003d fa.base.snapshotID {\n    existing \u003d append(existing, m)\n}\n```\n\n`HasAddedFiles()` returns `AddedFilesCount !\u003d 0` and\n`HasExistingFiles()` returns `ExistingFilesCount !\u003d 0` (v2 manifest\nfile). Both return `false` when a manifest list entry has\n`added_files_count\u003d0` and `existing_files_count\u003d0`, which is the\nstandard Iceberg v2 representation for **inherited manifests** written\nby external writers (Athena, Spark, Trino, etc.).\n\nAs a result, any data written by an external writer is **silently\ndropped** from the snapshot on the next iceberg-go fast-append. After\nthe append, queries return only the iceberg-go-written rows; all\npreviously existing data becomes invisible.\n\n## Root Cause Confirmed\n\nReproduction: create a table with Athena, insert 2 rows, append 1 row\nwith iceberg-go. After the append the parent snapshot\u0027s manifest list\nentries have `added_files_count\u003d0, existing_files_count\u003d0`. Both\nmanifests are filtered out. Athena queries the new snapshot and sees\nonly the 1 iceberg-go row.\n\nDiagnostic output from the new test (before fix):\n```\nParent has 2 manifests:\n[0] snapshot_id\u003d... added_files\u003d0 existing_files\u003d0 HasAdded\u003dfalse HasExisting\u003dfalse\n[1] snapshot_id\u003d... added_files\u003d0 existing_files\u003d0 HasAdded\u003dfalse HasExisting\u003dfalse\n```\n\nThis was discovered and confirmed during a production Iceberg table\nremediation at Docker. See\n[docker/data-platform#406](https://github.com/docker/data-platform/pull/406)\nfor the full investigation.\n\n## Fix\n\nA fast-append never removes or overwrites data files, so all parent\nmanifests should be inherited unconditionally. Remove the filter and\nreturn `previous.Manifests()` directly.\n\n## Testing\n\n- New test `TestFastAppendInheritsZeroCountManifests` reproduces the bug\n(FAIL before patch, PASS after): creates two zero-count manifests\nsimulating an Athena-written snapshot, fast-appends one new data file,\nasserts all 3 manifests are present in the resulting snapshot.\n- Full `./table/...` suite passes with no regressions."
    },
    {
      "commit": "df817dc25d566f5f4f2b2a374759a9a3973af9a2",
      "tree": "e068d2459901b15fb075a7fa6f4f1f17df37f666",
      "parents": [
        "e175604d1d0582a7942e9402bd3f49e2acee5c0b"
      ],
      "author": {
        "name": "Andrei Tserakhau",
        "email": "laskoviymishka@gmail.com",
        "time": "Tue Apr 14 13:16:07 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 14 16:16:07 2026 -0400"
      },
      "message": "feat(compaction): add Analyze for dry-run compaction planning (#893)\n\nAdd compaction.Analyze(ctx, tbl, cfg) as a read-only entry point that\nscans the table via PlanFiles and produces a compaction Plan without\nmodifying anything. Useful for dry-run analysis, CLI tooling, and\ndeciding whether compaction is worthwhile before executing.\n\nE2e tests with real Parquet files:\n- Small files detected as compaction candidates\n- Optimal files skipped when below MinInputFiles\n- Empty table produces empty plan\n- Invalid config returns error\n\nPart of #832 (table compaction)."
    },
    {
      "commit": "e175604d1d0582a7942e9402bd3f49e2acee5c0b",
      "tree": "8b5cd2af3019ee53fc6283ce5d9850d331e6537f",
      "parents": [
        "5d312c6068dde48bd1be8c1ce354aec744e6554a"
      ],
      "author": {
        "name": "Travis Bischel",
        "email": "twmb+github@protonmail.com",
        "time": "Tue Apr 14 10:23:33 2026 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 14 12:23:33 2026 -0400"
      },
      "message": "feat(avro): replace hamba/avro with twmb/avro v1.5.0 (#871)\n\nDrop github.com/hamba/avro/v2 in favor of github.com/twmb/avro v1.5.0\nfor manifest reading, writing, and partition schema construction,\nreplacing the archived hamba/avro.\n\n# Behavior differences visible to callers\n\n- DataFile.Partition() returns int32 for plain integer partition fields\n(was int). Correct per Avro spec — Avro int is 32-bit signed. Go code\ndoing v.(int) on partition values needs to switch to v.(int32).\n\n- NewDataFileBuilder takes map[int]string instead of\nmap[int]avro.LogicalType. The corresponding field on dataFile and the\nhasFieldToIDMap interface also now use string. Logical type constants\nlive in the new github.com/twmb/avro/atype subpackage (atype.Date,\natype.TimestampMicros, etc.), untyped string constants, drop-in wherever\na string is expected.\n\nAll other hamba/avro types used by the public surface are replaced:\navro.Schema → *avro.Schema on the handful of exported helpers that\nreferenced them; avro.SchemaCache (internal.AvroSchemaCache) →\nmap[string]*avro.Schema (internal.AvroSchemaMap).\n\n# Dependency footprint\n\nRemoves five transitive dependencies: json-iterator/go,\nmodern-go/concurrent, modern-go/reflect2, ettle/strcase, and\ngo-viper/mapstructure (hamba\u0027s chain). twmb/avro\u0027s only direct\ndependency is klauspost/compress, which iceberg-go already transitively\nrequires.\n\n# Tests\n\nNew TestPartitionTypeToAvroSchemaDuplicateNamedTypes covers partition\nspec scenarios with multiple fields of the same named Avro type (two\nUUIDs, two same-size Fixed, two same-precision Decimal).\n\nCo-authored-by: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "5d312c6068dde48bd1be8c1ce354aec744e6554a",
      "tree": "c3ab93466b6e593e7a7066ce88e4da801acc3619",
      "parents": [
        "a0827dcbeaca8e9655d8e830c8c472c6e26c6114"
      ],
      "author": {
        "name": "Rohil Surana",
        "email": "rohilsurana96@gmail.com",
        "time": "Tue Apr 14 03:04:10 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 13 17:34:10 2026 -0400"
      },
      "message": "fix(deletes): change equality_ids array elements avro schema type from Long to Integer to match spec (#880)\n\n## Description\n\nThe `equality_ids` field (field-id 135) in the manifest entry\u0027s\n`data_file` struct is currently defined with `LongSchema` (Avro `long` /\n64-bit) for its array element type. The [Iceberg\nspec](https://iceberg.apache.org/spec/#manifests) defines this field as\n`list\u003cint\u003e` (Avro `int` / 32-bit), and the [Java\nimplementation](https://github.com/apache/iceberg/blob/main/core/src/main/java/org/apache/iceberg/BaseFile.java#L365)\nreads it as `int[]` via `ArrayUtil.toIntArray`.\n\nThis mismatch causes failures when other Iceberg implementations read\nmanifests containing equality delete files written by iceberg-go:\n\n**Apache Spark / Java runtime:**\n```\njava.lang.ClassCastException: class java.lang.Long cannot be cast to class java.lang.Integer\n  at org.apache.iceberg.util.ArrayUtil.toIntArray(ArrayUtil.java:50)\n  at org.apache.iceberg.BaseFile.internalSet(BaseFile.java:336)\n```\n\n### Spec reference\n\n[Iceberg Table Spec — Manifests — Data File\nfields](https://iceberg.apache.org/spec/#manifests):\n\n| Field id | Field name     | Type       |\n|----------|----------------|------------|\n| 135      | equality_ids   | list\\\u003cint\\\u003e |\n\n### How to reproduce\n\n1. Write an Iceberg V2 table with equality delete files using iceberg-go\n(e.g., via `RowDelta.AddDeletes`)\n2. Read the table with Spark: `SELECT * FROM table` →\n`ClassCastException`\n\n### NOTE\n\nThis would fix compatibility only for new manifests, old ones need to\nmigrated somehow."
    },
    {
      "commit": "a0827dcbeaca8e9655d8e830c8c472c6e26c6114",
      "tree": "1908be5e199f638c2e8b3c9f656228f5793a5845",
      "parents": [
        "8ab09f560fe8b234723bd16c231a50fb77e9b1d7"
      ],
      "author": {
        "name": "Abhi Rathod",
        "email": "abhirathod95@users.noreply.github.com",
        "time": "Mon Apr 13 16:33:26 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 13 17:33:26 2026 -0400"
      },
      "message": "perf(table): Decrease memory pressure by releasing records (#886)\n\nThe fanout function currently defer\u0027s `record.Release()`. This isn\u0027t a\nbig deal if the iterable it reads from contains a small amount of data.\nHowever, if it\u0027s a long lived streaming channel or contains a lot of\ndata, the fanout function will hold on to **all ** the records until it\nprocesses all of them. This dramatically increases memory use,\nespecially in a streaming use case.\n\nThis PR extracts out the code to process each record into it\u0027s own\nfunction, and calls `defer record.Release()` there. No functional\nmodifications were made. This will release each record after\nsuccessfully processing the data."
    },
    {
      "commit": "8ab09f560fe8b234723bd16c231a50fb77e9b1d7",
      "tree": "11b0fded4545ba77d96687d46952d0624b6451f5",
      "parents": [
        "9836607384031a9db802e311cb6e4fb27d5163f9"
      ],
      "author": {
        "name": "Ali Asghar",
        "email": "98263017+alliasgher@users.noreply.github.com",
        "time": "Tue Apr 14 01:48:06 2026 +0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 13 16:48:06 2026 -0400"
      },
      "message": "refactor(table): collapse DataFileStatistics.ToDataFile args into DataFileOpts (#888)\n\n## Summary\n\nFollow-up to the review comment on\n[#875](https://github.com/apache/iceberg-go/pull/875#discussion_r3074078181)\n— `DataFileStatistics.ToDataFile` grew to eight positional arguments\nincluding two adjacent `int`s (`filesize` and `sortOrderID`), which is\nhard to read at call sites and easy to swap by mistake.\n\nThis PR collapses the parameters into a `DataFileOpts` struct:\n\n```go\ntype DataFileOpts struct {\n    Schema          *iceberg.Schema\n    Spec            iceberg.PartitionSpec\n    Path            string\n    Format          iceberg.FileFormat\n    Content         iceberg.ManifestEntryContent\n    FileSize        int64\n    PartitionValues map[int]any\n    SortOrderID     int\n}\n\nfunc (d *DataFileStatistics) ToDataFile(opts DataFileOpts) iceberg.DataFile\n```\n\nAll six call sites (two production, four tests) are updated to the\nnamed-field form. Future additions are source-compatible.\n\n## Notes\n\n- Stacked on #875 — this PR will show both diffs until #875 merges, at\nwhich point only the refactor remains.\n- No behaviour change.\n\n## Test plan\n\n- [x] `go test ./...`\n- [x] `gofmt` clean\n\nSigned-off-by: Ali \u003calliasgher123@gmail.com\u003e\n\nSigned-off-by: Ali \u003calliasgher123@gmail.com\u003e"
    },
    {
      "commit": "9836607384031a9db802e311cb6e4fb27d5163f9",
      "tree": "4aec5bb779e33464693ed9f9275d8914178a616e",
      "parents": [
        "2ddaa2cb1c39c7c7f8f18f3d87ab43e2640c7cd6"
      ],
      "author": {
        "name": "Tanmay Rauth",
        "email": "tanmayrauth@gmail.com",
        "time": "Mon Apr 13 13:43:06 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 13 16:43:06 2026 -0400"
      },
      "message": "fix(table): delete statistics files in ExpireSnapshots PostCommit #837 (#882)\n\nPostCommit was collecting manifest lists, manifests, and data files for\ndeletion when expiring snapshots, but never collected StatisticsFile or\nPartitionStatisticsFile paths. Statistics files for expired snapshots\nwere never deleted, leaking storage.\n\nNote: This PR depends on #873 (MetadataBuilderFromBase preserving\nStatisticsList/PartitionStatsList). Until that merges, the subtraction\nat PostCommit (lines 517–523 of updates.go) relies on\npostTable.Metadata().Statistics( returning surviving entries — which it\nwon\u0027t in the current main for a mixed expiry scenario.\nFixes #837"
    },
    {
      "commit": "2ddaa2cb1c39c7c7f8f18f3d87ab43e2640c7cd6",
      "tree": "5fb5d62a04c9f005aac5192702957f079c2fa3d2",
      "parents": [
        "9b117e257ca5c00edbfd0828859be671fd3dff52"
      ],
      "author": {
        "name": "Tanmay Rauth",
        "email": "tanmayrauth@gmail.com",
        "time": "Mon Apr 13 13:41:05 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 13 16:41:05 2026 -0400"
      },
      "message": "fix: emit proper Avro fixed schema for FixedType partition columns (#845) (#881)\n\nReplace the bytes fallback with avro.NewFixedSchema of the correct size.\nUpdate write path to encode []byte as [N]byte fixed arrays, and read\npath to decode them back. Adds round-trip test for fixed partition\ncolumns."
    },
    {
      "commit": "9b117e257ca5c00edbfd0828859be671fd3dff52",
      "tree": "4f459f07ca49079b93157a761b0377af7ac42da5",
      "parents": [
        "083e9c79ae308c81801015d4162810388a635df3"
      ],
      "author": {
        "name": "Ali Asghar",
        "email": "98263017+alliasgher@users.noreply.github.com",
        "time": "Tue Apr 14 00:31:36 2026 +0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 13 15:31:36 2026 -0400"
      },
      "message": "fix(schema): reject duplicate field IDs at schema construction (#879)\n\n## Summary\n\n`NewSchema` silently accepted multiple fields sharing the same positive\ninteger ID. The Java implementation throws `IllegalArgumentException` at\nconstruction time with _\"Multiple entries with same key:\n6\u003dstruct.inner_req and 6\u003dstruct.inner_op\"_.\n\nAdds `checkDuplicateFieldIDs` — a lightweight recursive walk over\n`NestedField`, `*StructType`, `*ListType`, and `*MapType` that only\nreads field IDs without dereferencing type pointers. It is called from\n`NewSchemaWithIdentifiers` before returning the schema. A duplicate\npositive ID panics with `ErrInvalidSchema`, consistent with the\n`indexByName` panic for duplicate field names (schema.go line 851).\n\nNon-positive IDs (`-1` etc. used as \"unassigned\" placeholders in schema\nbuilders) are skipped so existing internal usage is unaffected.\n\nFixes #593\n\n## Test plan\n\n- [x] `go test ./...`\n- [x] `gofmt` clean\n- [x] `TestNewSchemaPanicsOnDuplicateFieldIDs`: top-level duplicate +\nthe exact nested-struct case from the bug report.\n\nSigned-off-by: Ali \u003calliasgher123@gmail.com\u003e\n\n---------\n\nSigned-off-by: Ali \u003calliasgher123@gmail.com\u003e"
    },
    {
      "commit": "083e9c79ae308c81801015d4162810388a635df3",
      "tree": "1319cddf8c3e0d1a8ab2717234da9e3f3bcb9f97",
      "parents": [
        "8587fd1d251602cb35e4f9e933207e65abab5831"
      ],
      "author": {
        "name": "Ali Asghar",
        "email": "98263017+alliasgher@users.noreply.github.com",
        "time": "Tue Apr 14 00:17:23 2026 +0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 13 15:17:23 2026 -0400"
      },
      "message": "fix(table): populate WriteTask.SortOrderID in data file writers (#875)\n\n## Summary\n\nThe `SortOrderID` field on `WriteTask` was declared but never set by any\nproducer, so every data file written via the\nstandard/partitioned/rolling/equality-delete paths ended up with a nil\n`sort_order_id` in the manifest entry. This leaves readers with no way\nto know which sort order the file was written against.\n\nThis PR threads `SortOrderID` end-to-end:\n\n* `WriteFileInfo` gains a `SortOrderID` field and\n`DataFileStatistics.ToDataFile` now calls `DataFileBuilder.SortOrderID`\nso the value lands on the final `DataFile`.\n* `arrow_utils.filesToDataFiles`, `writer.writeFile`, and\n`writerFactory` all pass the table\u0027s default sort order id down to\n`WriteFileInfo`, and the equality-delete / position-delete / rolling\ndata writer paths populate the `WriteTask.SortOrderID` accordingly.\n\nFixes #842\n\n## Test plan\n\n- [x] `go test ./table/...`\n- [x] `go vet ./...`\n- [x] New assertion: `withSortOrderIDMatching` added to\n`defaultPositionDeleteMatching` in\n`TestPositionDeletePartitionedFanoutWriterProcessBatch`; `mockDataFile`\ngains an overridable sort order id so this path is covered end-to-end.\n\nSigned-off-by: Ali \u003cali@kscope.ai\u003e\n\n---------\n\nSigned-off-by: Ali \u003cali@kscope.ai\u003e\nSigned-off-by: Ali \u003calliasgher123@gmail.com\u003e"
    },
    {
      "commit": "8587fd1d251602cb35e4f9e933207e65abab5831",
      "tree": "66477563b23afad4811ce4bf1d13503389a224d0",
      "parents": [
        "a002b130b3d4a41fafbcbfb0e6fd2a05adc95b63"
      ],
      "author": {
        "name": "Ali Asghar",
        "email": "98263017+alliasgher@users.noreply.github.com",
        "time": "Tue Apr 14 00:11:03 2026 +0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 13 15:11:03 2026 -0400"
      },
      "message": "feat(table): wire bloom filter properties into Parquet writer (#878)\n\n## Summary\n\n`GetWriteProperties` read compression, page size, row group size etc.\nbut silently ignored the two bloom filter properties defined in the same\nfile:\n\n- `write.parquet.bloom-filter-max-bytes` — caps the per-column bloom\nfilter size (default 1 MB)\n- `write.parquet.bloom-filter-enabled.column.\u003cname\u003e` — enables bloom\nfilters per column\n\nWire them through to the Arrow Parquet writer:\n\n- `WithMaxBloomFilterBytes` is always applied (defaults to the existing\n`ParquetBloomFilterMaxBytesDefault` constant).\n- All table properties whose key starts with\n`write.parquet.bloom-filter-enabled.column.` are scanned; for each match\n`WithBloomFilterEnabledFor` is called with the column name and parsed\nboolean.\n\nFixes #844\n\n## Test plan\n\n- [x] `go test ./...`\n- [x] `gofmt` clean\n- [x] New `TestGetWritePropertiesBloomFilter` covering default\nmax-bytes, custom max-bytes, and per-column enable/disable.\n\nSigned-off-by: Ali \u003calliasgher123@gmail.com\u003e\n\n---------\n\nSigned-off-by: Ali \u003calliasgher123@gmail.com\u003e"
    },
    {
      "commit": "a002b130b3d4a41fafbcbfb0e6fd2a05adc95b63",
      "tree": "2dde496f1a096d60a2cbde336841a17ddbcf9f5b",
      "parents": [
        "c82d2546be93b0a87f6f5805f62ffe15f91e871f"
      ],
      "author": {
        "name": "Ali Asghar",
        "email": "98263017+alliasgher@users.noreply.github.com",
        "time": "Tue Apr 14 00:01:03 2026 +0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 13 15:01:03 2026 -0400"
      },
      "message": "fix(table): read retention table properties as defaults in ExpireSnapshots (#877)\n\n## Summary\n\n`ExpireSnapshots` required callers to always pass `WithRetainLast` and\n`WithOlderThan`; it never consulted the table-level retention properties\n(`min-snapshots-to-keep`, `max-snapshot-age-ms`, `max-ref-age-ms`), even\nthough their keys and defaults are defined in `properties.go`. Tables\nthat set these properties via a catalog would not honor them during\nsnapshot expiry, diverging from the Java implementation.\n\n**Fix:** read the three retention properties from table metadata and use\nthem as the last-resort fallback in the `cmp.Or` chains for\n`maxRefAgeMs`, `minSnapshotsToKeep`, and `maxSnapshotAgeMs`. When a\nproperty is absent the `math.MaxInt` constants apply, preserving current\nbehaviour for callers that pass explicit options.\n\nFixes #839\n\n## Test plan\n\n- [x] `go test ./...`\n- [x] `gofmt -l` clean\n- [x] New test `TestExpireSnapshotsUsesTableProperties`: creates a table\nwith `min-snapshots-to-keep\u003d2` and `max-snapshot-age-ms\u003d0` set as\nproperties, calls `ExpireSnapshots()` with no options, and asserts\nexactly 2 snapshots survive.\n\nSigned-off-by: Ali \u003calliasgher123@gmail.com\u003e\n\n---------\n\nSigned-off-by: Ali \u003calliasgher123@gmail.com\u003e"
    },
    {
      "commit": "c82d2546be93b0a87f6f5805f62ffe15f91e871f",
      "tree": "dbfe59e77098b92d07d2687c202456a013150b96",
      "parents": [
        "653375c6fd999072b3fef8a44df6a140ee9f2d18"
      ],
      "author": {
        "name": "Ali Asghar",
        "email": "98263017+alliasgher@users.noreply.github.com",
        "time": "Mon Apr 13 23:54:11 2026 +0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 13 14:54:11 2026 -0400"
      },
      "message": "fix(table): prune StatisticsList and PartitionStatsList in RemoveSnapshots (#873)\n\n## Summary\n\nThis PR fixes two related bugs:\n\n**1. `buildCommonMetadata` silently dropped all statistics (primary\nbug)**\n\n`buildCommonMetadata` in `metadata.go` was not copying `StatisticsList`\nor `PartitionStatsList` into the rebuilt metadata. This meant *every*\n`Build()` call — not just `RemoveSnapshots` — silently dropped all\nstatistics files. Any builder operation (add snapshot, update schema,\nset properties, etc.) would lose statistics on the resulting metadata.\n\n**2. `RemoveSnapshots` left orphaned statistics entries**\n\nEven after fixing the builder, `RemoveSnapshots` would leave stale\n`StatisticsList`/`PartitionStatsList` entries pointing at snapshots that\nhad just been removed. Added pruning logic consistent with the existing\n`snapshotList`/`snapshotLog` pattern.\n\nFixes #836\n\n## Test plan\n\n- [x] `go test ./...`\n- [x] `gofmt` clean  \n- [x] `TestRemoveSnapshotsPrunesStatistics` — seeds statistics for two\nsnapshots, removes one, asserts the right entry is pruned and the result\nsurvives `Build()`.\n- [x] `TestBuildPreservesStatistics` — no-op `MetadataBuilderFromBase →\nBuild()` round-trip, asserts statistics are preserved. Pins the\n`buildCommonMetadata` fix independently of `RemoveSnapshots`.\n\nSigned-off-by: Ali \u003calliasgher123@gmail.com\u003e\n\n---------\n\nSigned-off-by: Ali \u003calliasgher123@gmail.com\u003e"
    },
    {
      "commit": "653375c6fd999072b3fef8a44df6a140ee9f2d18",
      "tree": "a9a46a914942b8dbcd9026df32a97f8f7f0a2129",
      "parents": [
        "dbc261601256ce3d23e5003b8a5c793e587b66f8"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Apr 13 14:51:58 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 13 14:51:58 2026 -0400"
      },
      "message": "build(deps): bump the gomod_updates group with 4 updates (#872)\n\nBumps the gomod_updates group with 4 updates:\n[cloud.google.com/go/storage](https://github.com/googleapis/google-cloud-go),\n[github.com/aws/aws-sdk-go-v2/service/s3](https://github.com/aws/aws-sdk-go-v2),\n[github.com/testcontainers/testcontainers-go/modules/compose](https://github.com/testcontainers/testcontainers-go)\nand\n[google.golang.org/api](https://github.com/googleapis/google-api-go-client).\n\nUpdates `cloud.google.com/go/storage` from 1.61.3 to 1.62.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/googleapis/google-cloud-go/commit/01df6e18f052807c7e0b5cc92cb329b339e8ba37\"\u003e\u003ccode\u003e01df6e1\u003c/code\u003e\u003c/a\u003e\nchore(main): release spanner 1.62.0 (\u003ca\nhref\u003d\"https://redirect.github.com/googleapis/google-cloud-go/issues/10073\"\u003e#10073\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/googleapis/google-cloud-go/commit/8e675cd0ccf12c6912209aa5c56092db3716c40d\"\u003e\u003ccode\u003e8e675cd\u003c/code\u003e\u003c/a\u003e\nfix(spanner): Add ARRAY keywords to keywords (\u003ca\nhref\u003d\"https://redirect.github.com/googleapis/google-cloud-go/issues/10079\"\u003e#10079\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/googleapis/google-cloud-go/commit/db8216e54c8d9d23dd90bc47a081eb2754f7c92a\"\u003e\u003ccode\u003edb8216e\u003c/code\u003e\u003c/a\u003e\nfeat(pubsub/pstest): add support to register other servers into\ngrpc.Server (...\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/googleapis/google-cloud-go/commit/292e81231b957ae7ac243b47b8926564cee35920\"\u003e\u003ccode\u003e292e812\u003c/code\u003e\u003c/a\u003e\ndocs(maps/fleetengine): mark TerminalPointId as deprecated (\u003ca\nhref\u003d\"https://redirect.github.com/googleapis/google-cloud-go/issues/10130\"\u003e#10130\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/googleapis/google-cloud-go/commit/0e6413db32f2a27269602fa88afa762abdb837c0\"\u003e\u003ccode\u003e0e6413d\u003c/code\u003e\u003c/a\u003e\nfeat(bigtable): Add ignore_warnings flag to SetGcPolicy (\u003ca\nhref\u003d\"https://redirect.github.com/googleapis/google-cloud-go/issues/9372\"\u003e#9372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/googleapis/google-cloud-go/commit/2d34bf378974c64ec599a89a496cee1490f58996\"\u003e\u003ccode\u003e2d34bf3\u003c/code\u003e\u003c/a\u003e\nchore(all): update deps (\u003ca\nhref\u003d\"https://redirect.github.com/googleapis/google-cloud-go/issues/10156\"\u003e#10156\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/googleapis/google-cloud-go/commit/73716659ed3caa636f29a89248506b4076dac6a7\"\u003e\u003ccode\u003e7371665\u003c/code\u003e\u003c/a\u003e\ntest(pubsub): make error checking of receive less brittle (\u003ca\nhref\u003d\"https://redirect.github.com/googleapis/google-cloud-go/issues/10165\"\u003e#10165\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/googleapis/google-cloud-go/commit/fa3bfdb23aaa45b34394a8b61e753b3587506782\"\u003e\u003ccode\u003efa3bfdb\u003c/code\u003e\u003c/a\u003e\nfix(auth): handle non-Transport DefaultTransport (\u003ca\nhref\u003d\"https://redirect.github.com/googleapis/google-cloud-go/issues/10162\"\u003e#10162\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/googleapis/google-cloud-go/commit/1320d7db0df61940c5e4ad705d6658474c7c38c4\"\u003e\u003ccode\u003e1320d7d\u003c/code\u003e\u003c/a\u003e\nchore(main): release vertexai 0.9.0 (\u003ca\nhref\u003d\"https://redirect.github.com/googleapis/google-cloud-go/issues/10163\"\u003e#10163\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/googleapis/google-cloud-go/commit/b452014e0a8ea81ef6b3363a0832da6384092ba1\"\u003e\u003ccode\u003eb452014\u003c/code\u003e\u003c/a\u003e\nchore(vertexai): skip tests that check blocked inputs for model (\u003ca\nhref\u003d\"https://redirect.github.com/googleapis/google-cloud-go/issues/10152\"\u003e#10152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/googleapis/google-cloud-go/compare/storage/v1.61.3...spanner/v1.62.0\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `github.com/aws/aws-sdk-go-v2/service/s3` from 1.98.0 to 1.99.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/159f4d23fd3150aa3b14c231c434f46f42b72c2a\"\u003e\u003ccode\u003e159f4d2\u003c/code\u003e\u003c/a\u003e\nRelease 2026-04-07\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/50223dc5168c2eb6316a108f23a7fd0803afba76\"\u003e\u003ccode\u003e50223dc\u003c/code\u003e\u003c/a\u003e\nRegenerated Clients\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/af25337605d0de4dc7f4141c6b1627ec31254415\"\u003e\u003ccode\u003eaf25337\u003c/code\u003e\u003c/a\u003e\nUpdate endpoints model\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/277dc017b3b8ea944865ffb901eea3bf82121f5d\"\u003e\u003ccode\u003e277dc01\u003c/code\u003e\u003c/a\u003e\nUpdate API model\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/22bc35ca5a2af77140a47680f80873b4d61b6551\"\u003e\u003ccode\u003e22bc35c\u003c/code\u003e\u003c/a\u003e\nRelease 2026-04-06\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/9a35fedd65d0cdad42281199a7659146234893a1\"\u003e\u003ccode\u003e9a35fed\u003c/code\u003e\u003c/a\u003e\nRegenerated Clients\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/867b085ecb8579affb591d0e98bbe362376ce911\"\u003e\u003ccode\u003e867b085\u003c/code\u003e\u003c/a\u003e\nUpdate endpoints model\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/61d367c87617dbe79f6cb8fe8809d09ce949d2fa\"\u003e\u003ccode\u003e61d367c\u003c/code\u003e\u003c/a\u003e\nUpdate API model\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/8560a07e8b7ed78b0962b6df18050500a32705e7\"\u003e\u003ccode\u003e8560a07\u003c/code\u003e\u003c/a\u003e\nRelease 2026-04-03\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/a5aafdff76b34debb6940077fc4377ed80d24805\"\u003e\u003ccode\u003ea5aafdf\u003c/code\u003e\u003c/a\u003e\nRegenerated Clients\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.98.0...service/s3/v1.99.0\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `github.com/testcontainers/testcontainers-go/modules/compose`\nfrom 0.41.0 to 0.42.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/testcontainers/testcontainers-go/releases\"\u003egithub.com/testcontainers/testcontainers-go/modules/compose\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.42.0\u003c/h2\u003e\n\u003ch1\u003eWhat\u0027s Changed\u003c/h1\u003e\n\u003ch2\u003e⚠️ Breaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore!: migrate to moby modules (\u003ca\nhref\u003d\"https://redirect.github.com/testcontainers/testcontainers-go/issues/3591\"\u003e#3591\u003c/a\u003e)\n\u003ca href\u003d\"https://github.com/thaJeztah\"\u003e\u003ccode\u003e@​thaJeztah\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🔒 Security\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps): bump moby/client v0.4.0, moby/api v1.54.1 (\u003ca\nhref\u003d\"https://redirect.github.com/testcontainers/testcontainers-go/issues/3634\"\u003e#3634\u003c/a\u003e)\n\u003ca href\u003d\"https://github.com/thaJeztah\"\u003e\u003ccode\u003e@​thaJeztah\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: return an error when docker host cannot be retrieved (\u003ca\nhref\u003d\"https://redirect.github.com/testcontainers/testcontainers-go/issues/3613\"\u003e#3613\u003c/a\u003e)\n\u003ca href\u003d\"https://github.com/ash2k\"\u003e\u003ccode\u003e@​ash2k\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧹 Housekeeping\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: gitignore Gas Town agent artifacts (\u003ca\nhref\u003d\"https://redirect.github.com/testcontainers/testcontainers-go/issues/3633\"\u003e#3633\u003c/a\u003e)\n\u003ca\nhref\u003d\"https://github.com/mdelapenya\"\u003e\u003ccode\u003e@​mdelapenya\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(usage-metrics): include last release in the legend pop over (\u003ca\nhref\u003d\"https://redirect.github.com/testcontainers/testcontainers-go/issues/3630\"\u003e#3630\u003c/a\u003e)\n\u003ca\nhref\u003d\"https://github.com/mdelapenya\"\u003e\u003ccode\u003e@​mdelapenya\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update usage metrics (2026-04) (\u003ca\nhref\u003d\"https://redirect.github.com/testcontainers/testcontainers-go/issues/3621\"\u003e#3621\u003c/a\u003e)\n@\u003ca\nhref\u003d\"https://github.com/apps/github-actions\"\u003egithub-actions[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(usage-metrics): order of actions matters (\u003ca\nhref\u003d\"https://redirect.github.com/testcontainers/testcontainers-go/issues/3623\"\u003e#3623\u003c/a\u003e)\n\u003ca\nhref\u003d\"https://github.com/mdelapenya\"\u003e\u003ccode\u003e@​mdelapenya\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(usage-metrics): reduce rate-limit cascade errors (\u003ca\nhref\u003d\"https://redirect.github.com/testcontainers/testcontainers-go/issues/3622\"\u003e#3622\u003c/a\u003e)\n\u003ca\nhref\u003d\"https://github.com/mdelapenya\"\u003e\u003ccode\u003e@​mdelapenya\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(usage-metrics): replace the per-version inline retry with a\nmulti-pass approach (\u003ca\nhref\u003d\"https://redirect.github.com/testcontainers/testcontainers-go/issues/3620\"\u003e#3620\u003c/a\u003e)\n\u003ca\nhref\u003d\"https://github.com/mdelapenya\"\u003e\u003ccode\u003e@​mdelapenya\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e📦 Dependency updates\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps): bump\ngo.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp from\n1.28.0 to 1.43.0 in /modules/grafana-lgtm (\u003ca\nhref\u003d\"https://redirect.github.com/testcontainers/testcontainers-go/issues/3639\"\u003e#3639\u003c/a\u003e)\n@\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump\ngo.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp from\n1.42.0 to 1.43.0 in /modules/compose (\u003ca\nhref\u003d\"https://redirect.github.com/testcontainers/testcontainers-go/issues/3641\"\u003e#3641\u003c/a\u003e)\n@\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump\ngo.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp from\n1.42.0 to 1.43.0 in /modules/compose (\u003ca\nhref\u003d\"https://redirect.github.com/testcontainers/testcontainers-go/issues/3645\"\u003e#3645\u003c/a\u003e)\n@\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump mkdocs-include-markdown-plugin from 7.2.1 to 7.2.2\n(\u003ca\nhref\u003d\"https://redirect.github.com/testcontainers/testcontainers-go/issues/3626\"\u003e#3626\u003c/a\u003e)\n@\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump github.com/aws/aws-sdk-go-v2/service/s3 from\n1.51.2 to 1.97.3 in /modules/localstack (\u003ca\nhref\u003d\"https://redirect.github.com/testcontainers/testcontainers-go/issues/3638\"\u003e#3638\u003c/a\u003e)\n@\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump\ngo.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp from\n1.41.0 to 1.43.0 in /modules/grafana-lgtm (\u003ca\nhref\u003d\"https://redirect.github.com/testcontainers/testcontainers-go/issues/3643\"\u003e#3643\u003c/a\u003e)\n@\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump go.opentelemetry.io/otel/sdk from 1.41.0 to 1.43.0\nin /modules/milvus (\u003ca\nhref\u003d\"https://redirect.github.com/testcontainers/testcontainers-go/issues/3644\"\u003e#3644\u003c/a\u003e)\n@\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update to Go 1.25.9, 1.26.9 (\u003ca\nhref\u003d\"https://redirect.github.com/testcontainers/testcontainers-go/issues/3647\"\u003e#3647\u003c/a\u003e)\n\u003ca href\u003d\"https://github.com/thaJeztah\"\u003e\u003ccode\u003e@​thaJeztah\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump bump github.com/klauspost/compress v1.18.5,\ngithub.com/docker/compose v5.1.2 (\u003ca\nhref\u003d\"https://redirect.github.com/testcontainers/testcontainers-go/issues/3646\"\u003e#3646\u003c/a\u003e)\n\u003ca href\u003d\"https://github.com/thaJeztah\"\u003e\u003ccode\u003e@​thaJeztah\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump moby/client v0.4.0, moby/api v1.54.1 (\u003ca\nhref\u003d\"https://redirect.github.com/testcontainers/testcontainers-go/issues/3634\"\u003e#3634\u003c/a\u003e)\n\u003ca href\u003d\"https://github.com/thaJeztah\"\u003e\u003ccode\u003e@​thaJeztah\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump golang.org/x/sys from 0.41.0 to 0.42.0 (\u003ca\nhref\u003d\"https://redirect.github.com/testcontainers/testcontainers-go/issues/3629\"\u003e#3629\u003c/a\u003e)\n@\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump github.com/moby/patternmatcher from 0.6.0 to 0.6.1\n(\u003ca\nhref\u003d\"https://redirect.github.com/testcontainers/testcontainers-go/issues/3628\"\u003e#3628\u003c/a\u003e)\n@\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump github.com/shirou/gopsutil/v4 from 4.26.2 to\n4.26.3 (\u003ca\nhref\u003d\"https://redirect.github.com/testcontainers/testcontainers-go/issues/3627\"\u003e#3627\u003c/a\u003e)\n@\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(localstack): accept community-archive as a valid tag (\u003ca\nhref\u003d\"https://redirect.github.com/testcontainers/testcontainers-go/issues/3601\"\u003e#3601\u003c/a\u003e)\n\u003ca\nhref\u003d\"https://github.com/johnduhart\"\u003e\u003ccode\u003e@​johnduhart\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump github.com/go-jose/go-jose/v4 from 4.1.3 to 4.1.4\nin /modules/gcloud (\u003ca\nhref\u003d\"https://redirect.github.com/testcontainers/testcontainers-go/issues/3632\"\u003e#3632\u003c/a\u003e)\n@\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump actions/upload-artifact from 6.0.0 to 7.0.0 (\u003ca\nhref\u003d\"https://redirect.github.com/testcontainers/testcontainers-go/issues/3625\"\u003e#3625\u003c/a\u003e)\n@\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump pygments from 2.19.2 to 2.20.0 (\u003ca\nhref\u003d\"https://redirect.github.com/testcontainers/testcontainers-go/issues/3615\"\u003e#3615\u003c/a\u003e)\n@\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump google.golang.org/grpc from 1.67.0 to 1.79.3 in\n/modules/milvus (\u003ca\nhref\u003d\"https://redirect.github.com/testcontainers/testcontainers-go/issues/3612\"\u003e#3612\u003c/a\u003e)\n@\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump google.golang.org/grpc from 1.67.0 to 1.79.3 in\n/modules/etcd (\u003ca\nhref\u003d\"https://redirect.github.com/testcontainers/testcontainers-go/issues/3611\"\u003e#3611\u003c/a\u003e)\n@\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump google.golang.org/grpc from 1.79.1 to 1.79.3 in\n/modules/ollama (\u003ca\nhref\u003d\"https://redirect.github.com/testcontainers/testcontainers-go/issues/3610\"\u003e#3610\u003c/a\u003e)\n@\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump google.golang.org/grpc from 1.67.0 to 1.79.3 in\n/modules/pinecone (\u003ca\nhref\u003d\"https://redirect.github.com/testcontainers/testcontainers-go/issues/3609\"\u003e#3609\u003c/a\u003e)\n@\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump google.golang.org/grpc from 1.67.0 to 1.79.3 in\n/modules/couchbase (\u003ca\nhref\u003d\"https://redirect.github.com/testcontainers/testcontainers-go/issues/3608\"\u003e#3608\u003c/a\u003e)\n@\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump requests from 2.32.4 to 2.33.0 (\u003ca\nhref\u003d\"https://redirect.github.com/testcontainers/testcontainers-go/issues/3604\"\u003e#3604\u003c/a\u003e)\n@\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump google.golang.org/grpc from 1.79.1 to 1.79.3 in\n/modules/meilisearch (\u003ca\nhref\u003d\"https://redirect.github.com/testcontainers/testcontainers-go/issues/3607\"\u003e#3607\u003c/a\u003e)\n@\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump github.com/moby/buildkit from 0.27.1 to 0.28.1 in\n/modules/compose (\u003ca\nhref\u003d\"https://redirect.github.com/testcontainers/testcontainers-go/issues/3605\"\u003e#3605\u003c/a\u003e)\n@\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\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/testcontainers/testcontainers-go/commit/6e584183e1623fb83a78db902462eb9ee255327b\"\u003e\u003ccode\u003e6e58418\u003c/code\u003e\u003c/a\u003e\nchore: use new version (v0.42.0) in modules and examples\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/testcontainers/testcontainers-go/commit/f713dc0c78c37558ed13c985f5ed15101a6cba08\"\u003e\u003ccode\u003ef713dc0\u003c/code\u003e\u003c/a\u003e\nchore(deps): bump\ngo.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetr...\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/testcontainers/testcontainers-go/commit/300827abcec0b6e2d8c10c8360d335f29962f701\"\u003e\u003ccode\u003e300827a\u003c/code\u003e\u003c/a\u003e\nchore(deps): bump\ngo.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetr...\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/testcontainers/testcontainers-go/commit/7a15ac1b7214c0bc5cb14c31a979a166ac5c088c\"\u003e\u003ccode\u003e7a15ac1\u003c/code\u003e\u003c/a\u003e\nchore(deps): bump\ngo.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptrace...\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/testcontainers/testcontainers-go/commit/5bae3d2aa7281a71d1c24b5f8bde1391e2e8dfcb\"\u003e\u003ccode\u003e5bae3d2\u003c/code\u003e\u003c/a\u003e\nfix: return an error when docker host cannot be retrieved (\u003ca\nhref\u003d\"https://redirect.github.com/testcontainers/testcontainers-go/issues/3613\"\u003e#3613\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/testcontainers/testcontainers-go/commit/fc19484a8ae088b714a9e9d7d9bba2ae383e3e69\"\u003e\u003ccode\u003efc19484\u003c/code\u003e\u003c/a\u003e\nchore(deps): bump mkdocs-include-markdown-plugin from 7.2.1 to 7.2.2 (\u003ca\nhref\u003d\"https://redirect.github.com/testcontainers/testcontainers-go/issues/3626\"\u003e#3626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/testcontainers/testcontainers-go/commit/95bdc0c4a0b368564f052bd7a533f055adab694a\"\u003e\u003ccode\u003e95bdc0c\u003c/code\u003e\u003c/a\u003e\nchore(deps): bump github.com/aws/aws-sdk-go-v2/service/s3 (\u003ca\nhref\u003d\"https://redirect.github.com/testcontainers/testcontainers-go/issues/3638\"\u003e#3638\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/testcontainers/testcontainers-go/commit/75aa22665b03ec8d597341575001d71ff693f1fc\"\u003e\u003ccode\u003e75aa226\u003c/code\u003e\u003c/a\u003e\nchore(deps): bump\ngo.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptrace...\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/testcontainers/testcontainers-go/commit/2f59938fb9ce365d974fe21a426ffffe7231caca\"\u003e\u003ccode\u003e2f59938\u003c/code\u003e\u003c/a\u003e\nchore(deps): bump go.opentelemetry.io/otel/sdk in /modules/milvus (\u003ca\nhref\u003d\"https://redirect.github.com/testcontainers/testcontainers-go/issues/3644\"\u003e#3644\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/testcontainers/testcontainers-go/commit/580abf68d44021bc7e54f8655a2fb66578205527\"\u003e\u003ccode\u003e580abf6\u003c/code\u003e\u003c/a\u003e\nchore: update to Go 1.25.9, 1.26.9 (\u003ca\nhref\u003d\"https://redirect.github.com/testcontainers/testcontainers-go/issues/3647\"\u003e#3647\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/testcontainers/testcontainers-go/compare/v0.41.0...v0.42.0\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google.golang.org/api` from 0.274.0 to 0.275.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/releases\"\u003egoogle.golang.org/api\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.275.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/compare/v0.274.0...v0.275.0\"\u003e0.275.0\u003c/a\u003e\n(2026-04-07)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eall:\u003c/strong\u003e Auto-regenerate discovery clients (\u003ca\nhref\u003d\"https://redirect.github.com/googleapis/google-api-go-client/issues/3557\"\u003e#3557\u003c/a\u003e)\n(\u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/commit/2b2ef99cb9f245743690a4d26e4fdc65287253e0\"\u003e2b2ef99\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eall:\u003c/strong\u003e Auto-regenerate discovery clients (\u003ca\nhref\u003d\"https://redirect.github.com/googleapis/google-api-go-client/issues/3560\"\u003e#3560\u003c/a\u003e)\n(\u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/commit/9437d4d741a6ae9e1c20a6f727b9c8f64e1bc19e\"\u003e9437d4d\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/googleapis/google-api-go-client/blob/main/CHANGES.md\"\u003egoogle.golang.org/api\u0027s\nchangelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/compare/v0.274.0...v0.275.0\"\u003e0.275.0\u003c/a\u003e\n(2026-04-07)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eall:\u003c/strong\u003e Auto-regenerate discovery clients (\u003ca\nhref\u003d\"https://redirect.github.com/googleapis/google-api-go-client/issues/3557\"\u003e#3557\u003c/a\u003e)\n(\u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/commit/2b2ef99cb9f245743690a4d26e4fdc65287253e0\"\u003e2b2ef99\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eall:\u003c/strong\u003e Auto-regenerate discovery clients (\u003ca\nhref\u003d\"https://redirect.github.com/googleapis/google-api-go-client/issues/3560\"\u003e#3560\u003c/a\u003e)\n(\u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/commit/9437d4d741a6ae9e1c20a6f727b9c8f64e1bc19e\"\u003e9437d4d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\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/googleapis/google-api-go-client/commit/d43aa15bdf02279f1beaa366b551587391355265\"\u003e\u003ccode\u003ed43aa15\u003c/code\u003e\u003c/a\u003e\nchore(main): release 0.275.0 (\u003ca\nhref\u003d\"https://redirect.github.com/googleapis/google-api-go-client/issues/3558\"\u003e#3558\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/commit/9437d4d741a6ae9e1c20a6f727b9c8f64e1bc19e\"\u003e\u003ccode\u003e9437d4d\u003c/code\u003e\u003c/a\u003e\nfeat(all): auto-regenerate discovery clients (\u003ca\nhref\u003d\"https://redirect.github.com/googleapis/google-api-go-client/issues/3560\"\u003e#3560\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/commit/0a62c64ae95b23c6ecb9fc71db89f09c479b0442\"\u003e\u003ccode\u003e0a62c64\u003c/code\u003e\u003c/a\u003e\nchore(all): update cloud.google.com/go/auth to v0.20.0 (\u003ca\nhref\u003d\"https://redirect.github.com/googleapis/google-api-go-client/issues/3559\"\u003e#3559\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/commit/2b2ef99cb9f245743690a4d26e4fdc65287253e0\"\u003e\u003ccode\u003e2b2ef99\u003c/code\u003e\u003c/a\u003e\nfeat(all): auto-regenerate discovery clients (\u003ca\nhref\u003d\"https://redirect.github.com/googleapis/google-api-go-client/issues/3557\"\u003e#3557\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/compare/v0.274.0...v0.275.0\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\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 \u003cdependency name\u003e major version` will close this\ngroup update PR and stop Dependabot creating any more for the specific\ndependency\u0027s major version (unless you unignore this specific\ndependency\u0027s major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this\ngroup update PR and stop Dependabot creating any more for the specific\ndependency\u0027s minor version (unless you unignore this specific\ndependency\u0027s minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR\nand stop Dependabot creating any more for the specific dependency\n(unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore\nconditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will\nremove the ignore condition of the specified dependency and ignore\nconditions\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": "dbc261601256ce3d23e5003b8a5c793e587b66f8",
      "tree": "a02491897403ed5e9dce6b269d5f18a3e88a1499",
      "parents": [
        "bb81e9c59ac1c1f4380fa48ff9cf58a2b7895693"
      ],
      "author": {
        "name": "Andrei Tserakhau",
        "email": "laskoviymishka@gmail.com",
        "time": "Mon Apr 13 11:51:22 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 13 14:51:22 2026 -0400"
      },
      "message": "docs: expand CONTRIBUTING.md with issue claiming and PR guidelines (#887)\n\nAdd a contribution guideline rules for new-contributors, especially how\nto claim issue, work with reviews and where to seek for feedback and\nping people."
    },
    {
      "commit": "bb81e9c59ac1c1f4380fa48ff9cf58a2b7895693",
      "tree": "0b1d6fd005f73afff1e448e8237069497b59d6aa",
      "parents": [
        "993d2170e575e2c997f11a9b681ffa2fa8b0c8a3"
      ],
      "author": {
        "name": "Tyler Rockwood",
        "email": "rockwood@redpanda.com",
        "time": "Mon Apr 13 11:30:29 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 13 12:30:29 2026 -0400"
      },
      "message": "fix: handle missing format-version in NewManifestReader for v1 manifests (#868)\n\n## Problem\n\n`NewManifestReader` in `manifest.go` calls `strconv.Atoi`\nunconditionally on `metadata[\"format-version\"]`. The Java Iceberg\nlibrary omits this key from v1 manifest file Avro OCF headers —\n`format-version` is optional for v1 per the spec. When iceberg-go reads\nthose files, `metadata[\"format-version\"]` returns `nil` → empty string →\n`Atoi(\"\")` → error:\n\n```\nmanifest file\u0027s \u0027format-version\u0027 metadata is invalid: strconv.Atoi: parsing \"\": invalid syntax\n```\n\n## Fix\n\nDefault `formatVersion` to `1` and only parse the metadata key when it\nis present. This matches the spec (`format-version` is optional for v1,\nrequired for v2+) and the same pattern already used in\n`ReadManifestList` since #826.\n\nThe existing `formatVersion !\u003d file.Version()` check below is unaffected\nand still catches real version mismatches.\n\n## Testing\n\nAdded `TestNewManifestReaderMissingFormatVersion`: writes a v1 manifest\nAvro file without the `format-version` metadata key (simulating Java\nIceberg output) and verifies `NewManifestReader` succeeds and reports\nversion 1.\n\n## Related\n\n- Follows the same pattern as #826 which fixed `ReadManifestList`\n- Spec reference: `format/spec.md` Avro manifest file metadata table —\n`format-version` is `optional` for v1, `required` for v2"
    },
    {
      "commit": "993d2170e575e2c997f11a9b681ffa2fa8b0c8a3",
      "tree": "e518ff6fbdc97cc7da34acb7541149453bdd850f",
      "parents": [
        "049516eb23f49fa6d6891bc31b4908f98965ebb6"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Apr 13 12:29:41 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 13 12:29:41 2026 -0400"
      },
      "message": "build(deps): bump go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp from 1.38.0 to 1.43.0 (#862)\n\nBumps\n[go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp](https://github.com/open-telemetry/opentelemetry-go)\nfrom 1.38.0 to 1.43.0.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md\"\u003ego.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp\u0027s\nchangelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.43.0/0.65.0/0.19.0] 2026-04-02\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eIsRandom\u003c/code\u003e and \u003ccode\u003eWithRandom\u003c/code\u003e on\n\u003ccode\u003eTraceFlags\u003c/code\u003e, and \u003ccode\u003eIsRandom\u003c/code\u003e on\n\u003ccode\u003eSpanContext\u003c/code\u003e in \u003ccode\u003ego.opentelemetry.io/otel/trace\u003c/code\u003e\nfor \u003ca\nhref\u003d\"https://www.w3.org/TR/trace-context-2/#random-trace-id-flag\"\u003eW3C\nTrace Context Level 2 Random Trace ID Flag\u003c/a\u003e support. (\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8012\"\u003e#8012\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd service detection with \u003ccode\u003eWithService\u003c/code\u003e in\n\u003ccode\u003ego.opentelemetry.io/otel/sdk/resource\u003c/code\u003e. (\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7642\"\u003e#7642\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eDefaultWithContext\u003c/code\u003e and\n\u003ccode\u003eEnvironmentWithContext\u003c/code\u003e in\n\u003ccode\u003ego.opentelemetry.io/otel/sdk/resource\u003c/code\u003e to support plumbing\n\u003ccode\u003econtext.Context\u003c/code\u003e through default and environment detectors.\n(\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8051\"\u003e#8051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport attributes with empty value (\u003ccode\u003eattribute.EMPTY\u003c/code\u003e)\nin\n\u003ccode\u003ego.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc\u003c/code\u003e.\n(\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8038\"\u003e#8038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport attributes with empty value (\u003ccode\u003eattribute.EMPTY\u003c/code\u003e)\nin\n\u003ccode\u003ego.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc\u003c/code\u003e.\n(\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8038\"\u003e#8038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport attributes with empty value (\u003ccode\u003eattribute.EMPTY\u003c/code\u003e)\nin\n\u003ccode\u003ego.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc\u003c/code\u003e.\n(\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8038\"\u003e#8038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport attributes with empty value (\u003ccode\u003eattribute.EMPTY\u003c/code\u003e)\nin\n\u003ccode\u003ego.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp\u003c/code\u003e.\n(\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8038\"\u003e#8038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport attributes with empty value (\u003ccode\u003eattribute.EMPTY\u003c/code\u003e)\nin\n\u003ccode\u003ego.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp\u003c/code\u003e.\n(\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8038\"\u003e#8038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport attributes with empty value (\u003ccode\u003eattribute.EMPTY\u003c/code\u003e)\nin\n\u003ccode\u003ego.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp\u003c/code\u003e.\n(\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8038\"\u003e#8038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport attributes with empty value (\u003ccode\u003eattribute.EMPTY\u003c/code\u003e)\nin\n\u003ccode\u003ego.opentelemetry.io/otel/sdk/metric/metricdata/metricdatatest\u003c/code\u003e.\n(\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8038\"\u003e#8038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for per-series start time tracking for cumulative\nmetrics in \u003ccode\u003ego.opentelemetry.io/otel/sdk/metric\u003c/code\u003e.\nSet \u003ccode\u003eOTEL_GO_X_PER_SERIES_START_TIMESTAMPS\u003dtrue\u003c/code\u003e to enable.\n(\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8060\"\u003e#8060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eWithCardinalityLimitSelector\u003c/code\u003e for metric reader for\nconfiguring cardinality limits specific to the instrument kind. (\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7855\"\u003e#7855\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIntroduce the \u003ccode\u003eEMPTY\u003c/code\u003e Type in\n\u003ccode\u003ego.opentelemetry.io/otel/attribute\u003c/code\u003e to reflect that an empty\nvalue is now a valid value, with \u003ccode\u003eINVALID\u003c/code\u003e remaining as a\ndeprecated alias of \u003ccode\u003eEMPTY\u003c/code\u003e. (\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8038\"\u003e#8038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove slice handling in\n\u003ccode\u003ego.opentelemetry.io/otel/attribute\u003c/code\u003e to optimize short slice\nvalues with fixed-size fast paths. (\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8039\"\u003e#8039\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove performance of span metric recording in\n\u003ccode\u003ego.opentelemetry.io/otel/sdk/trace\u003c/code\u003e by returning early if\nself-observability is not enabled. (\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8067\"\u003e#8067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove formatting of metric data diffs in\n\u003ccode\u003ego.opentelemetry.io/otel/sdk/metric/metricdata/metricdatatest\u003c/code\u003e.\n(\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8073\"\u003e#8073\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDeprecated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate \u003ccode\u003eINVALID\u003c/code\u003e in\n\u003ccode\u003ego.opentelemetry.io/otel/attribute\u003c/code\u003e. Use \u003ccode\u003eEMPTY\u003c/code\u003e\ninstead. (\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8038\"\u003e#8038\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReturn spec-compliant \u003ccode\u003eTraceIdRatioBased\u003c/code\u003e description.\nThis is a breaking behavioral change, but it is necessary to\nmake the implementation \u003ca\nhref\u003d\"https://opentelemetry.io/docs/specs/otel/trace/sdk/#traceidratiobased\"\u003espec-compliant\u003c/a\u003e.\n(\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8027\"\u003e#8027\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix a race condition in\n\u003ccode\u003ego.opentelemetry.io/otel/sdk/metric\u003c/code\u003e where the lastvalue\naggregation could collect the value 0 even when no zero-value\nmeasurements were recorded. (\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8056\"\u003e#8056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLimit HTTP response body to 4 MiB in\n\u003ccode\u003ego.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp\u003c/code\u003e\nto mitigate excessive memory usage caused by a misconfigured or\nmalicious server.\nResponses exceeding the limit are treated as non-retryable errors. (\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8108\"\u003e#8108\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLimit HTTP response body to 4 MiB in\n\u003ccode\u003ego.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp\u003c/code\u003e\nto mitigate excessive memory usage caused by a misconfigured or\nmalicious server.\nResponses exceeding the limit are treated as non-retryable errors. (\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8108\"\u003e#8108\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLimit HTTP response body to 4 MiB in\n\u003ccode\u003ego.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp\u003c/code\u003e\nto mitigate excessive memory usage caused by a misconfigured or\nmalicious server.\nResponses exceeding the limit are treated as non-retryable errors. (\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8108\"\u003e#8108\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eWithHostID\u003c/code\u003e detector in\n\u003ccode\u003ego.opentelemetry.io/otel/sdk/resource\u003c/code\u003e to use full path for\n\u003ccode\u003ekenv\u003c/code\u003e command on BSD. (\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8113\"\u003e#8113\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix missing \u003ccode\u003erequest.GetBody\u003c/code\u003e in\n\u003ccode\u003ego.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp\u003c/code\u003e\nto correctly handle HTTP2 GOAWAY frame. (\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8096\"\u003e#8096\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[1.42.0/0.64.0/0.18.0/0.0.16] 2026-03-06\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003ego.opentelemetry.io/otel/semconv/v1.40.0\u003c/code\u003e package.\nThe package contains semantic conventions from the \u003ccode\u003ev1.40.0\u003c/code\u003e\nversion of the OpenTelemetry Semantic Conventions.\nSee the \u003ca\nhref\u003d\"https://github.com/open-telemetry/opentelemetry-go/blob/main/semconv/v1.40.0/MIGRATION.md\"\u003emigration\ndocumentation\u003c/a\u003e for information on how to upgrade from\n\u003ccode\u003ego.opentelemetry.io/otel/semconv/v1.39.0\u003c/code\u003e. (\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7985\"\u003e#7985\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/open-telemetry/opentelemetry-go/commit/9276201a64b623606e3eaa0d61ae8ee6d62756c0\"\u003e\u003ccode\u003e9276201\u003c/code\u003e\u003c/a\u003e\nRelease v1.43.0 / v0.65.0 / v0.19.0 (\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8128\"\u003e#8128\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/open-telemetry/opentelemetry-go/commit/61b8c9466c4e6b17e69b622279fe9b63fb15c89a\"\u003e\u003ccode\u003e61b8c94\u003c/code\u003e\u003c/a\u003e\nchore(deps): update module github.com/mattn/go-runewidth to v0.0.22 (\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8131\"\u003e#8131\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/open-telemetry/opentelemetry-go/commit/97a086e82ffe01502f4c620e9c447efa229e2a23\"\u003e\u003ccode\u003e97a086e\u003c/code\u003e\u003c/a\u003e\nchore(deps): update github.com/golangci/dupl digest to c99c5cf (\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8122\"\u003e#8122\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/open-telemetry/opentelemetry-go/commit/5e363de517dba6db62736b2f5cdef0e0929b4cd0\"\u003e\u003ccode\u003e5e363de\u003c/code\u003e\u003c/a\u003e\nlimit response body size for OTLP HTTP exporters (\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8108\"\u003e#8108\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/open-telemetry/opentelemetry-go/commit/35214b60138eac8dec97a2d2b851d8c8471680c7\"\u003e\u003ccode\u003e35214b6\u003c/code\u003e\u003c/a\u003e\nUse an absolute path when calling bsd kenv (\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8113\"\u003e#8113\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/open-telemetry/opentelemetry-go/commit/290024ceaf695f9cdbf29a0c6731a317d92bc361\"\u003e\u003ccode\u003e290024c\u003c/code\u003e\u003c/a\u003e\nfix(deps): update module google.golang.org/grpc to v1.80.0 (\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8121\"\u003e#8121\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/open-telemetry/opentelemetry-go/commit/e70658e098033d6bb5ec1b399de16bbb2642f6dc\"\u003e\u003ccode\u003ee70658e\u003c/code\u003e\u003c/a\u003e\nfix: support getBody in otelploghttp (\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8096\"\u003e#8096\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/open-telemetry/opentelemetry-go/commit/4afe468e3b4859c949a1c1e8d92684d43d86ef8a\"\u003e\u003ccode\u003e4afe468\u003c/code\u003e\u003c/a\u003e\nfix(deps): update googleapis to 9d38bb4 (\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8117\"\u003e#8117\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/open-telemetry/opentelemetry-go/commit/b9ca729776309e3c08fe700c131797a3b4d10634\"\u003e\u003ccode\u003eb9ca729\u003c/code\u003e\u003c/a\u003e\nchore(deps): update module github.com/go-git/go-git/v5 to v5.17.2 (\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8115\"\u003e#8115\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/open-telemetry/opentelemetry-go/commit/69472ec56cb7674d55ca2e2bcb04dea73228ab79\"\u003e\u003ccode\u003e69472ec\u003c/code\u003e\u003c/a\u003e\nchore(deps): update fossas/fossa-action action to v1.9.0 (\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8118\"\u003e#8118\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/open-telemetry/opentelemetry-go/compare/v1.38.0...v1.43.0\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\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": "049516eb23f49fa6d6891bc31b4908f98965ebb6",
      "tree": "2307572739004216c9ec13e3cd4418105dde72d9",
      "parents": [
        "ac8ed2bd9048eb9cf0aa8395744920f8c21dfac4"
      ],
      "author": {
        "name": "Andrei Tserakhau",
        "email": "laskoviymishka@gmail.com",
        "time": "Mon Apr 13 09:26:29 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 13 12:26:29 2026 -0400"
      },
      "message": "feat(table): add bin-pack compaction strategy (#850)\n\nAdd CompactionConfig and Plan() that groups FileScanTasks by partition,\nclassifies files as candidates based on size thresholds and delete file\ncounts, and bin-packs candidates into CompactionGroups using the\nexisting SlicePacker. This is the planning layer for RewriteDataFiles\n(#832).\n\n- Oversized files skipped unless delete count exceeds threshold\n- Deterministic partition key via sorted field IDs\n- Config validation (target between min/max, positive thresholds)\n- Ceiling division for output file estimation"
    },
    {
      "commit": "ac8ed2bd9048eb9cf0aa8395744920f8c21dfac4",
      "tree": "a85055b3696b276b8646ddc489faa07bb7ebdac3",
      "parents": [
        "526492a886ee2651de254eefedd863e10b77cd0d"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Apr 13 12:14:17 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 13 12:14:17 2026 -0400"
      },
      "message": "build(deps): bump go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp from 1.41.0 to 1.43.0 (#864)\n\nBumps\n[go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp](https://github.com/open-telemetry/opentelemetry-go)\nfrom 1.41.0 to 1.43.0.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md\"\u003ego.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp\u0027s\nchangelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.43.0/0.65.0/0.19.0] 2026-04-02\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eIsRandom\u003c/code\u003e and \u003ccode\u003eWithRandom\u003c/code\u003e on\n\u003ccode\u003eTraceFlags\u003c/code\u003e, and \u003ccode\u003eIsRandom\u003c/code\u003e on\n\u003ccode\u003eSpanContext\u003c/code\u003e in \u003ccode\u003ego.opentelemetry.io/otel/trace\u003c/code\u003e\nfor \u003ca\nhref\u003d\"https://www.w3.org/TR/trace-context-2/#random-trace-id-flag\"\u003eW3C\nTrace Context Level 2 Random Trace ID Flag\u003c/a\u003e support. (\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8012\"\u003e#8012\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd service detection with \u003ccode\u003eWithService\u003c/code\u003e in\n\u003ccode\u003ego.opentelemetry.io/otel/sdk/resource\u003c/code\u003e. (\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7642\"\u003e#7642\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eDefaultWithContext\u003c/code\u003e and\n\u003ccode\u003eEnvironmentWithContext\u003c/code\u003e in\n\u003ccode\u003ego.opentelemetry.io/otel/sdk/resource\u003c/code\u003e to support plumbing\n\u003ccode\u003econtext.Context\u003c/code\u003e through default and environment detectors.\n(\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8051\"\u003e#8051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport attributes with empty value (\u003ccode\u003eattribute.EMPTY\u003c/code\u003e)\nin\n\u003ccode\u003ego.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc\u003c/code\u003e.\n(\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8038\"\u003e#8038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport attributes with empty value (\u003ccode\u003eattribute.EMPTY\u003c/code\u003e)\nin\n\u003ccode\u003ego.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc\u003c/code\u003e.\n(\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8038\"\u003e#8038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport attributes with empty value (\u003ccode\u003eattribute.EMPTY\u003c/code\u003e)\nin\n\u003ccode\u003ego.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc\u003c/code\u003e.\n(\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8038\"\u003e#8038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport attributes with empty value (\u003ccode\u003eattribute.EMPTY\u003c/code\u003e)\nin\n\u003ccode\u003ego.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp\u003c/code\u003e.\n(\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8038\"\u003e#8038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport attributes with empty value (\u003ccode\u003eattribute.EMPTY\u003c/code\u003e)\nin\n\u003ccode\u003ego.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp\u003c/code\u003e.\n(\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8038\"\u003e#8038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport attributes with empty value (\u003ccode\u003eattribute.EMPTY\u003c/code\u003e)\nin\n\u003ccode\u003ego.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp\u003c/code\u003e.\n(\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8038\"\u003e#8038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport attributes with empty value (\u003ccode\u003eattribute.EMPTY\u003c/code\u003e)\nin\n\u003ccode\u003ego.opentelemetry.io/otel/sdk/metric/metricdata/metricdatatest\u003c/code\u003e.\n(\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8038\"\u003e#8038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for per-series start time tracking for cumulative\nmetrics in \u003ccode\u003ego.opentelemetry.io/otel/sdk/metric\u003c/code\u003e.\nSet \u003ccode\u003eOTEL_GO_X_PER_SERIES_START_TIMESTAMPS\u003dtrue\u003c/code\u003e to enable.\n(\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8060\"\u003e#8060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eWithCardinalityLimitSelector\u003c/code\u003e for metric reader for\nconfiguring cardinality limits specific to the instrument kind. (\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7855\"\u003e#7855\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIntroduce the \u003ccode\u003eEMPTY\u003c/code\u003e Type in\n\u003ccode\u003ego.opentelemetry.io/otel/attribute\u003c/code\u003e to reflect that an empty\nvalue is now a valid value, with \u003ccode\u003eINVALID\u003c/code\u003e remaining as a\ndeprecated alias of \u003ccode\u003eEMPTY\u003c/code\u003e. (\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8038\"\u003e#8038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove slice handling in\n\u003ccode\u003ego.opentelemetry.io/otel/attribute\u003c/code\u003e to optimize short slice\nvalues with fixed-size fast paths. (\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8039\"\u003e#8039\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove performance of span metric recording in\n\u003ccode\u003ego.opentelemetry.io/otel/sdk/trace\u003c/code\u003e by returning early if\nself-observability is not enabled. (\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8067\"\u003e#8067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove formatting of metric data diffs in\n\u003ccode\u003ego.opentelemetry.io/otel/sdk/metric/metricdata/metricdatatest\u003c/code\u003e.\n(\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8073\"\u003e#8073\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDeprecated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate \u003ccode\u003eINVALID\u003c/code\u003e in\n\u003ccode\u003ego.opentelemetry.io/otel/attribute\u003c/code\u003e. Use \u003ccode\u003eEMPTY\u003c/code\u003e\ninstead. (\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8038\"\u003e#8038\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReturn spec-compliant \u003ccode\u003eTraceIdRatioBased\u003c/code\u003e description.\nThis is a breaking behavioral change, but it is necessary to\nmake the implementation \u003ca\nhref\u003d\"https://opentelemetry.io/docs/specs/otel/trace/sdk/#traceidratiobased\"\u003espec-compliant\u003c/a\u003e.\n(\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8027\"\u003e#8027\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix a race condition in\n\u003ccode\u003ego.opentelemetry.io/otel/sdk/metric\u003c/code\u003e where the lastvalue\naggregation could collect the value 0 even when no zero-value\nmeasurements were recorded. (\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8056\"\u003e#8056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLimit HTTP response body to 4 MiB in\n\u003ccode\u003ego.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp\u003c/code\u003e\nto mitigate excessive memory usage caused by a misconfigured or\nmalicious server.\nResponses exceeding the limit are treated as non-retryable errors. (\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8108\"\u003e#8108\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLimit HTTP response body to 4 MiB in\n\u003ccode\u003ego.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp\u003c/code\u003e\nto mitigate excessive memory usage caused by a misconfigured or\nmalicious server.\nResponses exceeding the limit are treated as non-retryable errors. (\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8108\"\u003e#8108\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLimit HTTP response body to 4 MiB in\n\u003ccode\u003ego.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp\u003c/code\u003e\nto mitigate excessive memory usage caused by a misconfigured or\nmalicious server.\nResponses exceeding the limit are treated as non-retryable errors. (\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8108\"\u003e#8108\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eWithHostID\u003c/code\u003e detector in\n\u003ccode\u003ego.opentelemetry.io/otel/sdk/resource\u003c/code\u003e to use full path for\n\u003ccode\u003ekenv\u003c/code\u003e command on BSD. (\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8113\"\u003e#8113\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix missing \u003ccode\u003erequest.GetBody\u003c/code\u003e in\n\u003ccode\u003ego.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp\u003c/code\u003e\nto correctly handle HTTP2 GOAWAY frame. (\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8096\"\u003e#8096\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[1.42.0/0.64.0/0.18.0/0.0.16] 2026-03-06\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003ego.opentelemetry.io/otel/semconv/v1.40.0\u003c/code\u003e package.\nThe package contains semantic conventions from the \u003ccode\u003ev1.40.0\u003c/code\u003e\nversion of the OpenTelemetry Semantic Conventions.\nSee the \u003ca\nhref\u003d\"https://github.com/open-telemetry/opentelemetry-go/blob/main/semconv/v1.40.0/MIGRATION.md\"\u003emigration\ndocumentation\u003c/a\u003e for information on how to upgrade from\n\u003ccode\u003ego.opentelemetry.io/otel/semconv/v1.39.0\u003c/code\u003e. (\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7985\"\u003e#7985\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/open-telemetry/opentelemetry-go/commit/9276201a64b623606e3eaa0d61ae8ee6d62756c0\"\u003e\u003ccode\u003e9276201\u003c/code\u003e\u003c/a\u003e\nRelease v1.43.0 / v0.65.0 / v0.19.0 (\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8128\"\u003e#8128\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/open-telemetry/opentelemetry-go/commit/61b8c9466c4e6b17e69b622279fe9b63fb15c89a\"\u003e\u003ccode\u003e61b8c94\u003c/code\u003e\u003c/a\u003e\nchore(deps): update module github.com/mattn/go-runewidth to v0.0.22 (\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8131\"\u003e#8131\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/open-telemetry/opentelemetry-go/commit/97a086e82ffe01502f4c620e9c447efa229e2a23\"\u003e\u003ccode\u003e97a086e\u003c/code\u003e\u003c/a\u003e\nchore(deps): update github.com/golangci/dupl digest to c99c5cf (\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8122\"\u003e#8122\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/open-telemetry/opentelemetry-go/commit/5e363de517dba6db62736b2f5cdef0e0929b4cd0\"\u003e\u003ccode\u003e5e363de\u003c/code\u003e\u003c/a\u003e\nlimit response body size for OTLP HTTP exporters (\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8108\"\u003e#8108\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/open-telemetry/opentelemetry-go/commit/35214b60138eac8dec97a2d2b851d8c8471680c7\"\u003e\u003ccode\u003e35214b6\u003c/code\u003e\u003c/a\u003e\nUse an absolute path when calling bsd kenv (\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8113\"\u003e#8113\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/open-telemetry/opentelemetry-go/commit/290024ceaf695f9cdbf29a0c6731a317d92bc361\"\u003e\u003ccode\u003e290024c\u003c/code\u003e\u003c/a\u003e\nfix(deps): update module google.golang.org/grpc to v1.80.0 (\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8121\"\u003e#8121\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/open-telemetry/opentelemetry-go/commit/e70658e098033d6bb5ec1b399de16bbb2642f6dc\"\u003e\u003ccode\u003ee70658e\u003c/code\u003e\u003c/a\u003e\nfix: support getBody in otelploghttp (\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8096\"\u003e#8096\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/open-telemetry/opentelemetry-go/commit/4afe468e3b4859c949a1c1e8d92684d43d86ef8a\"\u003e\u003ccode\u003e4afe468\u003c/code\u003e\u003c/a\u003e\nfix(deps): update googleapis to 9d38bb4 (\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8117\"\u003e#8117\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/open-telemetry/opentelemetry-go/commit/b9ca729776309e3c08fe700c131797a3b4d10634\"\u003e\u003ccode\u003eb9ca729\u003c/code\u003e\u003c/a\u003e\nchore(deps): update module github.com/go-git/go-git/v5 to v5.17.2 (\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8115\"\u003e#8115\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/open-telemetry/opentelemetry-go/commit/69472ec56cb7674d55ca2e2bcb04dea73228ab79\"\u003e\u003ccode\u003e69472ec\u003c/code\u003e\u003c/a\u003e\nchore(deps): update fossas/fossa-action action to v1.9.0 (\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8118\"\u003e#8118\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/open-telemetry/opentelemetry-go/compare/v1.41.0...v1.43.0\"\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\u003dgo.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp\u0026package-manager\u003dgo_modules\u0026previous-version\u003d1.41.0\u0026new-version\u003d1.43.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)\nYou can disable automated security fix PRs for this repo from the\n[Security Alerts\npage](https://github.com/apache/iceberg-go/network/alerts).\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": "526492a886ee2651de254eefedd863e10b77cd0d",
      "tree": "313518049aac14bc34df8574f707ebfad5e728e0",
      "parents": [
        "1ad5ff643f2c3c0e4dff142f79d0b3190e727f5d"
      ],
      "author": {
        "name": "Andrei Tserakhau",
        "email": "laskoviymishka@gmail.com",
        "time": "Tue Apr 07 15:59:09 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 07 18:59:09 2026 -0400"
      },
      "message": "feat(table): classify deletion vectors in scan planning (#855)\n\nSeparate deletion vectors from regular positional delete files during\nscan planning. DVs are identified by having ReferencedDataFile set on a\npositional delete manifest entry (Iceberg v3 spec).\n\n- Add dvEntries bucket to manifestEntries with isDeletionVector() helper\n- In collectManifestEntries: route DV entries separately from pos\ndeletes\n- Add DeletionVectorFiles field to FileScanTask\n- Index DVs by referenced data file path for O(1) matching in PlanFiles\n- Unit tests for classification, matching, and FileScanTask field\n\nPart of #589 (v3 deletion vector support)."
    },
    {
      "commit": "1ad5ff643f2c3c0e4dff142f79d0b3190e727f5d",
      "tree": "c5ab58c7fbfd723222a6be0e96984104c012730a",
      "parents": [
        "77c45f9a93329bbc15b0e7e9f9c50ad41b6ad45b"
      ],
      "author": {
        "name": "Andrei Tserakhau",
        "email": "laskoviymishka@gmail.com",
        "time": "Tue Apr 07 15:58:27 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 07 18:58:27 2026 -0400"
      },
      "message": "feat(table): support delete file removal in overwrite commits (#851)\n\nExtend the overwrite snapshot producer to atomically remove delete files\n(position + equality) alongside data file replacement. This is the\ncommit primitive needed for compaction (#832) to clean up fully-applied\ndelete files.\n\n- Add deletedDeleteFiles tracking to snapshotProducer with\nremoveDeleteFile()\n- existingManifests() cross-checks content type when filtering entries\n- deletedEntries() splits by content type into separate data/delete\nmanifests with correct ManifestContent in both Avro metadata and\nmanifest list\n- newManifestWriter accepts ManifestWriterOption for content type\npropagation\n- New Transaction.ReplaceFiles() validates both data and delete files\nexist in the table with content-type gating before commit"
    },
    {
      "commit": "77c45f9a93329bbc15b0e7e9f9c50ad41b6ad45b",
      "tree": "9c21349ca3f3d68aab6e62ccff5c74e9313e3956",
      "parents": [
        "7f350219c76b04ef0bf48089058ef634de19f6c0"
      ],
      "author": {
        "name": "Narwhal-fish",
        "email": "67782688+Narwhal-fish@users.noreply.github.com",
        "time": "Wed Apr 08 04:19:09 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 07 16:19:09 2026 -0400"
      },
      "message": "fix: require Transform in NewSortOrder and add related tests (#859)\n\n## Problem\nFrom #843\n`SortField.Transform` can be nil when constructing a `SortOrder`, which\ncauses\ntransform validation to be skipped. This allows invalid sort orders to\nbe created.\n\n## Solution\n\nRequire `SortField.Transform` to be non-nil. Return\n`ErrInvalidTransform` when\na sort field has no transform, and always perform transform\ncompatibility checks.\n\n## Test\n\n- Added test to ensure nil transform is rejected\n- Added test to verify valid transform is accepted\n- Added compatibility test with valid schema and transform"
    },
    {
      "commit": "7f350219c76b04ef0bf48089058ef634de19f6c0",
      "tree": "8385525a69d25c038423b18c3a817310f4a5f278",
      "parents": [
        "b4722bb1f1a43160598e6d469810173bf5d92d87"
      ],
      "author": {
        "name": "Dao Thanh Tung",
        "email": "ttdao.2015@accountancy.smu.edu.sg",
        "time": "Tue Apr 07 21:15:46 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 07 16:15:46 2026 -0400"
      },
      "message": "feat(table): strengthen orphan-cleanup stats referenced-set tests and document empty-path guard (#856)\n\nThis follow-up addresses review feedback on [PR\n#848](https://github.com/apache/iceberg-go/pull/848)\n([discussion](https://github.com/apache/iceberg-go/pull/848#discussion_r3034275179))\nfrom @laskoviymishka\n\nSigned-off-by: dttung2905 \u003cttdao.2015@accountancy.smu.edu.sg\u003e"
    },
    {
      "commit": "b4722bb1f1a43160598e6d469810173bf5d92d87",
      "tree": "21a78be823a75cba6f67274fa6a612f36760d20e",
      "parents": [
        "a9c733137bbbe8855bcabbe2f6d6d475b3bd3eca"
      ],
      "author": {
        "name": "Dao Thanh Tung",
        "email": "ttdao.2015@accountancy.smu.edu.sg",
        "time": "Tue Apr 07 21:10:23 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 07 16:10:23 2026 -0400"
      },
      "message": "feat(table): Add OpReplace to updateSnapshotSummaries (#853)\n\nFixes: https://github.com/apache/iceberg-go/issues/840\n\nSigned-off-by: dttung2905 \u003cttdao.2015@accountancy.smu.edu.sg\u003e"
    },
    {
      "commit": "a9c733137bbbe8855bcabbe2f6d6d475b3bd3eca",
      "tree": "86f1e9c04795d4930765e14ed5390c71db355241",
      "parents": [
        "d9ef097140a81fdfda7ee3e290ada345c0377b2c"
      ],
      "author": {
        "name": "Kelly Navarro",
        "email": "gabrnavarro@gmail.com",
        "time": "Tue Apr 07 22:08:07 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 07 16:08:07 2026 -0400"
      },
      "message": "fix(table): read Parquet batch size from table properties (#849)\n\n## What changed\n\n- Added `ParquetBatchSizeKey` (`read.parquet.batch-size`) and\n`ParquetBatchSizeDefault` (131072) constants to the internal and public\nproperties packages.\n- Added `WithTableProperties` / `TablePropertiesFromContext` context\nhelpers in `table/internal` to carry table properties through the read\npath.\n- `arrowScan.GetRecords` injects the table\u0027s `Metadata.Properties()`\ninto the context before any file reads (data files and delete files).\n- `ParquetFileSource.GetReader` reads `read.parquet.batch-size` from\ncontext properties instead of hardcoding `1 \u003c\u003c 17`.\n\n## Why\n\n`parquet_files.go` hardcoded `BatchSize: 1 \u003c\u003c 17` with a TODO comment to\ngrab it from context. The write path already reads page row limit from\ntable properties via `ParquetPageRowLimitKey`; this PR brings the read\npath into alignment.\n\nFixes #846\n\n## Testing\n\n- Added `TestParquetBatchSizeFromTableProperties` in\n`table/internal/parquet_files_test.go` covering default, custom, and\ninvalid values.\n- All existing unit tests pass (`go test ./...`).\n- Linter passes (`golangci-lint run`).\n\n---------\n\nSigned-off-by: gabrnavarro \u003cgabrnavarro@users.noreply.github.com\u003e\nCo-authored-by: gabrnavarro \u003cgabrnavarro@users.noreply.github.com\u003e"
    },
    {
      "commit": "d9ef097140a81fdfda7ee3e290ada345c0377b2c",
      "tree": "c4d4c2013e45c1469889f8dcdf9f3e7cf09ede40",
      "parents": [
        "f39fb26e2ff75f395116d728d8e4fdb4b83b979b"
      ],
      "author": {
        "name": "Andrei Tserakhau",
        "email": "laskoviymishka@gmail.com",
        "time": "Tue Apr 07 13:07:34 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 07 16:07:34 2026 -0400"
      },
      "message": "bench(table): read-perf degradation under equality delete pressure (#852)\n\nAdd TestReadPerfUnderDeletePressure and BenchmarkScanWithEqualityDeletes\nthat measure how Scan.ToArrowRecords latency scales with the number of\nequality delete files. Each delete file is committed individually to\nsimulate real CDC workloads where deletes accumulate over time.\n\n```\nResults on Apple M3 (1000 data rows):\n    0 delete files:  1.8ms (baseline)\n   10 delete files:  3.3ms  (1.8x)\n   50 delete files: 10.2ms  (5.8x)\n  100 delete files: 18.5ms (10.4x)\n  200 delete files: 34.4ms (19.5x)\n```\n\nDegradation is ~linear with delete file count. Each delete file requires\na separate hash-set anti-join during scan. This documents the baseline\nthat compaction (#832) and deletion vectors (#589) will improve."
    },
    {
      "commit": "f39fb26e2ff75f395116d728d8e4fdb4b83b979b",
      "tree": "e432331dd577f1ad09c571fce4037230585b204e",
      "parents": [
        "f610324ec346d13045215f397c617c912dd42b52"
      ],
      "author": {
        "name": "Andrei Tserakhau",
        "email": "laskoviymishka@gmail.com",
        "time": "Mon Apr 06 11:34:08 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 06 14:34:08 2026 -0400"
      },
      "message": "fix(ci): resolve flaky integration-setup (#858)\n\nThe provision.py script used a 3-part dotted identifier for\nbranch-scoped DELETE which caused the REST catalog to encode a \\x1F\nnamespace separator in the URL path. Newer Jetty versions reject this as\na suspicious character, causing intermittent failures depending on\ncached image versions.\n\nPin docker images to specific versions and use spark.wap.branch for\nbranch-scoped DML instead of the ambiguous dotted identifier syntax.\nEnable `write.wap.enabled` on the table so `spark.wap.branch` is not\nsilently ignored.\n\nCloses #857"
    },
    {
      "commit": "f610324ec346d13045215f397c617c912dd42b52",
      "tree": "12e83b6cd5c505b42351c0660f0d416cfeb99536",
      "parents": [
        "42184e186a7be910ca40fcdd3ff24940fefe63f8"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Sun Apr 05 13:42:39 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Apr 05 13:42:39 2026 -0400"
      },
      "message": "build(deps): bump the gomod_updates group with 5 updates (#854)\n\nBumps the gomod_updates group with 5 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n|\n[github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2)\n| `1.32.13` | `1.32.14` |\n|\n[github.com/aws/aws-sdk-go-v2/credentials](https://github.com/aws/aws-sdk-go-v2)\n| `1.19.13` | `1.19.14` |\n|\n[github.com/aws/aws-sdk-go-v2/service/s3](https://github.com/aws/aws-sdk-go-v2)\n| `1.97.3` | `1.98.0` |\n| [github.com/aws/smithy-go](https://github.com/aws/smithy-go) |\n`1.24.2` | `1.24.3` |\n|\n[google.golang.org/api](https://github.com/googleapis/google-api-go-client)\n| `0.273.0` | `0.274.0` |\n\nUpdates `github.com/aws/aws-sdk-go-v2/config` from 1.32.13 to 1.32.14\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/d15107640a5073c5ce53dc395210858e316d5e82\"\u003e\u003ccode\u003ed151076\u003c/code\u003e\u003c/a\u003e\nRelease 2026-04-02\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/e33c9a9f67577e2dd5fcd3b15b9a8a2e83683f53\"\u003e\u003ccode\u003ee33c9a9\u003c/code\u003e\u003c/a\u003e\nRegenerated Clients\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/e06655901c88ef90432f41a7b9c92b33b4537c75\"\u003e\u003ccode\u003ee066559\u003c/code\u003e\u003c/a\u003e\nUpdate endpoints model\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/a635ee4303d8cac381be8788519a1a8bba5ccf12\"\u003e\u003ccode\u003ea635ee4\u003c/code\u003e\u003c/a\u003e\nUpdate API model\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/9074b3ddace9c195f00993c8ae509bc8977a6c4c\"\u003e\u003ccode\u003e9074b3d\u003c/code\u003e\u003c/a\u003e\nRelease 2026-04-01\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/f6ad4c082d3a1995b9add26af4eb7553b13df252\"\u003e\u003ccode\u003ef6ad4c0\u003c/code\u003e\u003c/a\u003e\nRegenerated Clients\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/12a971a61d5226cd72102c66b188ae4968cb9b81\"\u003e\u003ccode\u003e12a971a\u003c/code\u003e\u003c/a\u003e\nUpdate API model\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/8bd8eee331c2fa1553e57d18d5dbbf1dc83820fc\"\u003e\u003ccode\u003e8bd8eee\u003c/code\u003e\u003c/a\u003e\nchore: add additional text to CONTRIBUTING.md (\u003ca\nhref\u003d\"https://redirect.github.com/aws/aws-sdk-go-v2/issues/3372\"\u003e#3372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/e4deb657ddb9c5d8ac36c335391aafb19034e9de\"\u003e\u003ccode\u003ee4deb65\u003c/code\u003e\u003c/a\u003e\nRelease 2026-03-31\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/1f758f207351302f9f4e1a2aa4c255a75d81446b\"\u003e\u003ccode\u003e1f758f2\u003c/code\u003e\u003c/a\u003e\nRegenerated Clients\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/compare/config/v1.32.13...config/v1.32.14\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `github.com/aws/aws-sdk-go-v2/credentials` from 1.19.13 to\n1.19.14\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/d15107640a5073c5ce53dc395210858e316d5e82\"\u003e\u003ccode\u003ed151076\u003c/code\u003e\u003c/a\u003e\nRelease 2026-04-02\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/e33c9a9f67577e2dd5fcd3b15b9a8a2e83683f53\"\u003e\u003ccode\u003ee33c9a9\u003c/code\u003e\u003c/a\u003e\nRegenerated Clients\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/e06655901c88ef90432f41a7b9c92b33b4537c75\"\u003e\u003ccode\u003ee066559\u003c/code\u003e\u003c/a\u003e\nUpdate endpoints model\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/a635ee4303d8cac381be8788519a1a8bba5ccf12\"\u003e\u003ccode\u003ea635ee4\u003c/code\u003e\u003c/a\u003e\nUpdate API model\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/9074b3ddace9c195f00993c8ae509bc8977a6c4c\"\u003e\u003ccode\u003e9074b3d\u003c/code\u003e\u003c/a\u003e\nRelease 2026-04-01\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/f6ad4c082d3a1995b9add26af4eb7553b13df252\"\u003e\u003ccode\u003ef6ad4c0\u003c/code\u003e\u003c/a\u003e\nRegenerated Clients\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/12a971a61d5226cd72102c66b188ae4968cb9b81\"\u003e\u003ccode\u003e12a971a\u003c/code\u003e\u003c/a\u003e\nUpdate API model\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/8bd8eee331c2fa1553e57d18d5dbbf1dc83820fc\"\u003e\u003ccode\u003e8bd8eee\u003c/code\u003e\u003c/a\u003e\nchore: add additional text to CONTRIBUTING.md (\u003ca\nhref\u003d\"https://redirect.github.com/aws/aws-sdk-go-v2/issues/3372\"\u003e#3372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/e4deb657ddb9c5d8ac36c335391aafb19034e9de\"\u003e\u003ccode\u003ee4deb65\u003c/code\u003e\u003c/a\u003e\nRelease 2026-03-31\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/1f758f207351302f9f4e1a2aa4c255a75d81446b\"\u003e\u003ccode\u003e1f758f2\u003c/code\u003e\u003c/a\u003e\nRegenerated Clients\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/compare/credentials/v1.19.13...credentials/v1.19.14\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `github.com/aws/aws-sdk-go-v2/service/s3` from 1.97.3 to 1.98.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/e4deb657ddb9c5d8ac36c335391aafb19034e9de\"\u003e\u003ccode\u003ee4deb65\u003c/code\u003e\u003c/a\u003e\nRelease 2026-03-31\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/1f758f207351302f9f4e1a2aa4c255a75d81446b\"\u003e\u003ccode\u003e1f758f2\u003c/code\u003e\u003c/a\u003e\nRegenerated Clients\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/ba7e432545fa3203d98f593b2aceaba66c02db7a\"\u003e\u003ccode\u003eba7e432\u003c/code\u003e\u003c/a\u003e\nUpdate API model\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/607cb0afad6e6a655a356be54f9fdec5cc558a80\"\u003e\u003ccode\u003e607cb0a\u003c/code\u003e\u003c/a\u003e\nRelease 2026-03-30\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/a44005fd4a2e2b7308c0346da970890757aaeda5\"\u003e\u003ccode\u003ea44005f\u003c/code\u003e\u003c/a\u003e\nRegenerated Clients\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/dbbd8465f03f1931d85d38af45f18362cbc4c469\"\u003e\u003ccode\u003edbbd846\u003c/code\u003e\u003c/a\u003e\nUpdate API model\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/5b5c3f960e98cf024a8b7d6a6a8f0a1452e028fa\"\u003e\u003ccode\u003e5b5c3f9\u003c/code\u003e\u003c/a\u003e\nRevert \u0026quot;drop service/internal/benchmark (\u003ca\nhref\u003d\"https://redirect.github.com/aws/aws-sdk-go-v2/issues/3368\"\u003e#3368\u003c/a\u003e)\u0026quot;\n(\u003ca\nhref\u003d\"https://redirect.github.com/aws/aws-sdk-go-v2/issues/3369\"\u003e#3369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/7ca3f9d52a718e4be3a78be0d05e6437ae362e20\"\u003e\u003ccode\u003e7ca3f9d\u003c/code\u003e\u003c/a\u003e\ndrop service/internal/benchmark (\u003ca\nhref\u003d\"https://redirect.github.com/aws/aws-sdk-go-v2/issues/3368\"\u003e#3368\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/338088bc3ce801d773863578da6a0a835d6012af\"\u003e\u003ccode\u003e338088b\u003c/code\u003e\u003c/a\u003e\nRelease 2026-03-27\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/f0e5f3dc09ddb548bccfc11b297229839516bff9\"\u003e\u003ccode\u003ef0e5f3d\u003c/code\u003e\u003c/a\u003e\nRegenerated Clients\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.97.3...service/s3/v1.98.0\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `github.com/aws/smithy-go` from 1.24.2 to 1.24.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/aws/smithy-go/blob/main/CHANGELOG.md\"\u003egithub.com/aws/smithy-go\u0027s\nchangelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease (2026-04-02)\u003c/h1\u003e\n\u003ch2\u003eGeneral Highlights\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDependency Update\u003c/strong\u003e: Updated to the latest SDK module\nversions\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eModule Highlights\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003egithub.com/aws/smithy-go\u003c/code\u003e: v1.24.3\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eBug Fix\u003c/strong\u003e: Add additional sigv4 configuration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003egithub.com/aws/smithy-go/aws-http-auth\u003c/code\u003e: \u003ca\nhref\u003d\"https://github.com/aws/smithy-go/blob/main/aws-http-auth/CHANGELOG.md#v113-2026-04-02\"\u003ev1.1.3\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eBug Fix\u003c/strong\u003e: Add additional sigv4 configuration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eRelease (2026-02-27)\u003c/h1\u003e\n\u003ch2\u003eGeneral Highlights\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDependency Update\u003c/strong\u003e: Bump minimum go version to\n1.24.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eRelease (2026-02-20)\u003c/h1\u003e\n\u003ch2\u003eGeneral Highlights\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDependency Update\u003c/strong\u003e: Updated to the latest SDK module\nversions\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eModule Highlights\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003egithub.com/aws/smithy-go\u003c/code\u003e: v1.24.1\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFeature\u003c/strong\u003e: Add new middleware functions to get event\nstream output from middleware\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eRelease (2025-12-01)\u003c/h1\u003e\n\u003ch2\u003eGeneral Highlights\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDependency Update\u003c/strong\u003e: Updated to the latest SDK module\nversions\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eModule Highlights\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003egithub.com/aws/smithy-go\u003c/code\u003e: v1.24.0\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFeature\u003c/strong\u003e: Improve allocation footprint of the\nmiddleware stack. This should convey a ~10% reduction in allocations per\nSDK request.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eRelease (2025-11-03)\u003c/h1\u003e\n\u003ch2\u003eGeneral Highlights\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDependency Update\u003c/strong\u003e: Updated to the latest SDK module\nversions\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eModule Highlights\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003egithub.com/aws/smithy-go\u003c/code\u003e: v1.23.2\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eBug Fix\u003c/strong\u003e: Adjust the initial sizes of each\nmiddleware phase to avoid some unnecessary reallocation.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eBug Fix\u003c/strong\u003e: Avoid unnecessary allocation overhead from\nthe metrics system when not in use.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eRelease (2025-10-15)\u003c/h1\u003e\n\u003ch2\u003eGeneral Highlights\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDependency Update\u003c/strong\u003e: Bump minimum go version to\n1.23.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eDependency Update\u003c/strong\u003e: Updated to the latest SDK module\nversions\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/aws/smithy-go/commit/3dbea7015f5ed79312e2a3cb6bbf39f7a26e46ea\"\u003e\u003ccode\u003e3dbea70\u003c/code\u003e\u003c/a\u003e\nRelease 2026-04-02\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/smithy-go/commit/f08a600f5709eee40b1e2d5d191402e3ddc20f78\"\u003e\u003ccode\u003ef08a600\u003c/code\u003e\u003c/a\u003e\nchangelog\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/smithy-go/commit/dff9455bd9fa895e0cd09809ca3bcf795fc86ff9\"\u003e\u003ccode\u003edff9455\u003c/code\u003e\u003c/a\u003e\ninclude getAttr as a static condition when evaluating need for fallback\n(\u003ca\nhref\u003d\"https://redirect.github.com/aws/smithy-go/issues/643\"\u003e#643\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/smithy-go/commit/a43da41a6b397e0613cc1b0abf398a7d1049f6d8\"\u003e\u003ccode\u003ea43da41\u003c/code\u003e\u003c/a\u003e\nfix binding member name (\u003ca\nhref\u003d\"https://redirect.github.com/aws/smithy-go/issues/642\"\u003e#642\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/smithy-go/commit/b64db94c52a12377b42bb0a2295f964f7ea0b1b4\"\u003e\u003ccode\u003eb64db94\u003c/code\u003e\u003c/a\u003e\nreplace usages of SmithyGoTypes (\u003ca\nhref\u003d\"https://redirect.github.com/aws/smithy-go/issues/637\"\u003e#637\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/smithy-go/commit/3e78a2b051855163a6921110590f7b817ce31528\"\u003e\u003ccode\u003e3e78a2b\u003c/code\u003e\u003c/a\u003e\nadd AGENTS.md (\u003ca\nhref\u003d\"https://redirect.github.com/aws/smithy-go/issues/638\"\u003e#638\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/smithy-go/commit/c53a167c47ab83db2c802885eec2902afeebd4b4\"\u003e\u003ccode\u003ec53a167\u003c/code\u003e\u003c/a\u003e\ngenerate protocol tests (\u003ca\nhref\u003d\"https://redirect.github.com/aws/smithy-go/issues/634\"\u003e#634\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/smithy-go/commit/5bb6ea94670a2f7e21da4f5e44f893e59275109a\"\u003e\u003ccode\u003e5bb6ea9\u003c/code\u003e\u003c/a\u003e\nv4/signer: add codecommit git signing options (\u003ca\nhref\u003d\"https://redirect.github.com/aws/smithy-go/issues/628\"\u003e#628\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/smithy-go/commit/a46ced700b2b64c1db83ace21668b666dd901980\"\u003e\u003ccode\u003ea46ced7\u003c/code\u003e\u003c/a\u003e\nmigrate protocol test codegen to smithy-go (\u003ca\nhref\u003d\"https://redirect.github.com/aws/smithy-go/issues/630\"\u003e#630\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/smithy-go/commit/a27260fac103bb3e98839df5d562bc36596e3c0d\"\u003e\u003ccode\u003ea27260f\u003c/code\u003e\u003c/a\u003e\nRelease 2026-02-27\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca\nhref\u003d\"https://github.com/aws/smithy-go/compare/v1.24.2...v1.24.3\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google.golang.org/api` from 0.273.0 to 0.274.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/releases\"\u003egoogle.golang.org/api\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.274.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/compare/v0.273.1...v0.274.0\"\u003e0.274.0\u003c/a\u003e\n(2026-04-02)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eall:\u003c/strong\u003e Auto-regenerate discovery clients (\u003ca\nhref\u003d\"https://redirect.github.com/googleapis/google-api-go-client/issues/3555\"\u003e#3555\u003c/a\u003e)\n(\u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/commit/0e634ae13e626c6082c534eda8c03d5d3e673605\"\u003e0e634ae\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.273.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/compare/v0.273.0...v0.273.1\"\u003e0.273.1\u003c/a\u003e\n(2026-03-31)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMerge duplicate x-goog-request-params header (\u003ca\nhref\u003d\"https://redirect.github.com/googleapis/google-api-go-client/issues/3547\"\u003e#3547\u003c/a\u003e)\n(\u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/commit/2008108eb50215407a945afc2db9c45998c42bbe\"\u003e2008108\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/googleapis/google-api-go-client/blob/main/CHANGES.md\"\u003egoogle.golang.org/api\u0027s\nchangelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/compare/v0.273.1...v0.274.0\"\u003e0.274.0\u003c/a\u003e\n(2026-04-02)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eall:\u003c/strong\u003e Auto-regenerate discovery clients (\u003ca\nhref\u003d\"https://redirect.github.com/googleapis/google-api-go-client/issues/3555\"\u003e#3555\u003c/a\u003e)\n(\u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/commit/0e634ae13e626c6082c534eda8c03d5d3e673605\"\u003e0e634ae\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/compare/v0.273.0...v0.273.1\"\u003e0.273.1\u003c/a\u003e\n(2026-03-31)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMerge duplicate x-goog-request-params header (\u003ca\nhref\u003d\"https://redirect.github.com/googleapis/google-api-go-client/issues/3547\"\u003e#3547\u003c/a\u003e)\n(\u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/commit/2008108eb50215407a945afc2db9c45998c42bbe\"\u003e2008108\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\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/googleapis/google-api-go-client/commit/6c759a2bb66da9db49027475e4e76301b8d063df\"\u003e\u003ccode\u003e6c759a2\u003c/code\u003e\u003c/a\u003e\nchore(main): release 0.274.0 (\u003ca\nhref\u003d\"https://redirect.github.com/googleapis/google-api-go-client/issues/3556\"\u003e#3556\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/commit/0e634ae13e626c6082c534eda8c03d5d3e673605\"\u003e\u003ccode\u003e0e634ae\u003c/code\u003e\u003c/a\u003e\nfeat(all): auto-regenerate discovery clients (\u003ca\nhref\u003d\"https://redirect.github.com/googleapis/google-api-go-client/issues/3555\"\u003e#3555\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/commit/0f75259689c5e80bd73e6e7018dbb9ec0dfd7d48\"\u003e\u003ccode\u003e0f75259\u003c/code\u003e\u003c/a\u003e\nchore: embargo aiplatform:v1beta1 temporarily (\u003ca\nhref\u003d\"https://redirect.github.com/googleapis/google-api-go-client/issues/3554\"\u003e#3554\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/commit/550f00c8f854c300c59f266cc0ddd60568ccfe20\"\u003e\u003ccode\u003e550f00c\u003c/code\u003e\u003c/a\u003e\nchore(main): release 0.273.1 (\u003ca\nhref\u003d\"https://redirect.github.com/googleapis/google-api-go-client/issues/3551\"\u003e#3551\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/commit/da01f6aec8d3dd7914c6be434ce3bf26c1903396\"\u003e\u003ccode\u003eda01f6a\u003c/code\u003e\u003c/a\u003e\nchore(deps): bump github.com/go-git/go-git/v5 (\u003ca\nhref\u003d\"https://redirect.github.com/googleapis/google-api-go-client/issues/3552\"\u003e#3552\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/commit/2008108eb50215407a945afc2db9c45998c42bbe\"\u003e\u003ccode\u003e2008108\u003c/code\u003e\u003c/a\u003e\nfix: merge duplicate x-goog-request-params header (\u003ca\nhref\u003d\"https://redirect.github.com/googleapis/google-api-go-client/issues/3547\"\u003e#3547\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/compare/v0.273.0...v0.274.0\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\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 \u003cdependency name\u003e major version` will close this\ngroup update PR and stop Dependabot creating any more for the specific\ndependency\u0027s major version (unless you unignore this specific\ndependency\u0027s major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this\ngroup update PR and stop Dependabot creating any more for the specific\ndependency\u0027s minor version (unless you unignore this specific\ndependency\u0027s minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR\nand stop Dependabot creating any more for the specific dependency\n(unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore\nconditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will\nremove the ignore condition of the specified dependency and ignore\nconditions\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": "42184e186a7be910ca40fcdd3ff24940fefe63f8",
      "tree": "558b4b1a11a11eef00b24bf6822314d947cf5649",
      "parents": [
        "311cc3c7f333c860ff30e32970948fbbff739a59"
      ],
      "author": {
        "name": "Dao Thanh Tung",
        "email": "ttdao.2015@accountancy.smu.edu.sg",
        "time": "Fri Apr 03 21:28:02 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 03 16:28:02 2026 -0400"
      },
      "message": "feat(table): Add statistics files to orphan cleanup referenced set (#848)\n\nFixes https://github.com/apache/iceberg-go/issues/835\n\nSigned-off-by: dttung2905 \u003cttdao.2015@accountancy.smu.edu.sg\u003e"
    },
    {
      "commit": "311cc3c7f333c860ff30e32970948fbbff739a59",
      "tree": "a77b820874d66f1a005cb89696a8a2f53b05ec37",
      "parents": [
        "d437be5c8d3639604eb3a566ca670e145f7ccf99"
      ],
      "author": {
        "name": "TT",
        "email": "70463940+Herrtian@users.noreply.github.com",
        "time": "Fri Apr 03 22:00:20 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 03 16:00:20 2026 -0400"
      },
      "message": "Thread context.Context through deletedEntries() (#847)\n\n## Summary\n- Thread `context.Context` through the `deletedEntries()` call chain,\nreplacing `context.TODO()` with a real context propagated from the write\ntransaction\n- This allows cancellation to propagate to manifest reads during\noverwrite commits\n\n## Changes\n- `producerImpl.deletedEntries()` → `deletedEntries(ctx\ncontext.Context)`\n- `snapshotProducer.manifests()` → `manifests(ctx context.Context)`\n- `snapshotProducer.commit()` → `commit(ctx context.Context)`\n- Updated all call sites in `transaction.go`, `row_delta.go`, and tests\nto pass `ctx`\n\nCloses #838"
    },
    {
      "commit": "d437be5c8d3639604eb3a566ca670e145f7ccf99",
      "tree": "923fb655042a9f58d3d0e6987f8177326d1fd8e9",
      "parents": [
        "e5a1118d50faa7d75689252595c9488510c136b1"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Apr 03 13:16:32 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 03 13:16:32 2026 -0400"
      },
      "message": "build(deps): bump github.com/go-jose/go-jose/v4 from 4.1.3 to 4.1.4 (#828)\n\nBumps\n[github.com/go-jose/go-jose/v4](https://github.com/go-jose/go-jose) from\n4.1.3 to 4.1.4.\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/go-jose/go-jose/commit/0e59876635f3dbf46d7b5e97b52bb75a3f96e7d9\"\u003e\u003ccode\u003e0e59876\u003c/code\u003e\u003c/a\u003e\nMerge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/go-jose/go-jose/commit/ddffdbcec8bdadea8e02a20bdf19239878228215\"\u003e\u003ccode\u003eddffdbc\u003c/code\u003e\u003c/a\u003e\nBump actions/checkout from 5 to 6 (\u003ca\nhref\u003d\"https://redirect.github.com/go-jose/go-jose/issues/213\"\u003e#213\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca\nhref\u003d\"https://github.com/go-jose/go-jose/compare/v4.1.3...v4.1.4\"\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.com/go-jose/go-jose/v4\u0026package-manager\u003dgo_modules\u0026previous-version\u003d4.1.3\u0026new-version\u003d4.1.4)](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)\nYou can disable automated security fix PRs for this repo from the\n[Security Alerts\npage](https://github.com/apache/iceberg-go/network/alerts).\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": "e5a1118d50faa7d75689252595c9488510c136b1",
      "tree": "36d3bec365ba4c6e69332303e1ac407453333150",
      "parents": [
        "f51578fc03182c70d9b1c0c29db48638e0bb7e40"
      ],
      "author": {
        "name": "Andrei Tserakhau",
        "email": "laskoviymishka@gmail.com",
        "time": "Fri Apr 03 19:16:08 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 03 13:16:08 2026 -0400"
      },
      "message": "feat(table)!: multi-arg transforms in partition and sort fields (#824)\n\nAdd SourceIDs field to PartitionField and SortField for multi-argument\ntransform support per the Iceberg v3 spec. The spec defines source-ids\nas infrastructure for future multi-argument transforms — no concrete\ntransforms exist yet, but metadata must be readable and writable.\n\nChanges:\n- PartitionField: add SourceIDs []int, MarshalJSON writes source-ids\nwhen len \u003e 1, UnmarshalJSON accepts multiple source-ids\n- SortField: same treatment with source-ids support\n- Update Equals methods to compare SourceIDs\n- Fix slices.Equal calls for non-comparable types (use EqualFunc)\n\nBREAKING CHANGE: The `SourceID` field of `Partitions` and `SortField` have been replaced with `SourceIDs` which is a `[]int` to facilitate simpler processing. Having a `len(SourceIDs) \u003e 1` in a version \u003c 3 will still produce an error though."
    },
    {
      "commit": "f51578fc03182c70d9b1c0c29db48638e0bb7e40",
      "tree": "6a38bddbad3655d928cdb1dbe2e1d28f0ecff396",
      "parents": [
        "005a9006d4028f7eec00a150dfa27e192f58179d"
      ],
      "author": {
        "name": "Tyler Rockwood",
        "email": "rockwood@redpanda.com",
        "time": "Thu Apr 02 12:37:35 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 02 13:37:35 2026 -0400"
      },
      "message": "feat(table): add Transaction.UpgradeFormatVersion (#827)\n\nAdds a public method to upgrade a table\u0027s format version via a\ntransaction, following the pattern of PyIceberg\u0027s\n`transaction.upgrade_table_version()`:\n\n```go\ntx :\u003d tbl.NewTransaction()\nif err :\u003d tx.UpgradeFormatVersion(2); err !\u003d nil {\n    return err\n}\nnewTable, err :\u003d tx.Commit(ctx)\n```\n\n- Downgrading returns an error\n- Upgrading to the current version is a no-op\n- Both behaviours are enforced by the existing\n`MetadataBuilder.SetFormatVersion` logic"
    },
    {
      "commit": "005a9006d4028f7eec00a150dfa27e192f58179d",
      "tree": "d0aa0e579c3a6b1073426852764aa6ecde2682e0",
      "parents": [
        "270f0c73cec146c0ec4d8c21e03d16916c99baa8"
      ],
      "author": {
        "name": "Tyler Rockwood",
        "email": "rockwood@redpanda.com",
        "time": "Wed Apr 01 14:39:57 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 01 15:39:57 2026 -0400"
      },
      "message": "fix(manifest): default to v1 files (#826)\n\nWhen reading manifests, if there is no format-version, then we default\nthe version to v1, which did not require this field.\n\nFixes: #416"
    },
    {
      "commit": "270f0c73cec146c0ec4d8c21e03d16916c99baa8",
      "tree": "47c0a13cf894a1e3f33e7ffd3a99dec21128e90d",
      "parents": [
        "e48015ba25577dd9f8964c1a425ae3ba15711a3b"
      ],
      "author": {
        "name": "Harrison Crosse",
        "email": "harrison@crosse.dev",
        "time": "Tue Mar 31 19:45:50 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 31 19:45:50 2026 -0400"
      },
      "message": "fix(table): goroutine leak in positionDeleteRecordsToDataFiles (#825)\n\n`positionDeleteRecordsToDataFiles` calls `iter.Pull(args.counter)`\nunconditionally, but in the partitioned path `newWriterFactory` creates\nits own pulled counter and the original `stopCount` is never called.\nThis leaks one goroutine per write - we noticed via pprof after a few\nhours of steady writes.\n\nThe fix scopes `iter.Pull` to the unpartitioned branch where it\u0027s\nactually used, same as `equality_delete_writer.go`. The partitioned path\ngets its own counter through `newWriterFactory`.\n\nAdded a regression test that calls the partitioned path 50 times and\nchecks goroutine count doesn\u0027t grow."
    },
    {
      "commit": "e48015ba25577dd9f8964c1a425ae3ba15711a3b",
      "tree": "8c0407500ea1e704d9ef8017d64b26f489615f62",
      "parents": [
        "7493f2c671674decd71b059896cb3bd7bc076ccf"
      ],
      "author": {
        "name": "Andrei Tserakhau",
        "email": "laskoviymishka@gmail.com",
        "time": "Tue Mar 31 22:43:32 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 31 16:43:32 2026 -0400"
      },
      "message": "feat(table): equality delete writing for partitioned tables (#823)\n\nCloses #808.\n\nFor partitioned tables, the equality delete writer now expands the\nrecord schema to include partition source columns alongside the equality\nkey columns. This allows the existing partitionedFanoutWriter to extract\npartition values and route records to the correct partition directories.\nThe actual delete files still contain only the equality key columns —\npartition columns are used for routing and stripped during the\nToRequestedSchema projection.\n\nWhen partition source columns overlap with the equality key (e.g.,\ndeleting by partition column), no extra columns are needed."
    },
    {
      "commit": "7493f2c671674decd71b059896cb3bd7bc076ccf",
      "tree": "c90ca6071fc1ed83cd66cf2e62a161352098e046",
      "parents": [
        "c7839cad314a094af5fa90717b4f99294aa58169"
      ],
      "author": {
        "name": "Lovro Mažgon",
        "email": "lovro.mazgon@gmail.com",
        "time": "Tue Mar 31 22:23:24 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 31 16:23:24 2026 -0400"
      },
      "message": "feat(rest): add audience and resource params to OAuth requests (#815)\n\n- Add `WithAudience` and `WithResource` options to the REST catalog\nclient\n- These are forwarded as form parameters in OAuth2 token requests, per\n[RFC 8707](https://datatracker.ietf.org/doc/html/rfc8707) and [RFC\n8693](https://datatracker.ietf.org/doc/html/rfc8693)\n- Refactor `TestScope` into a table-driven `TestOAuthTokenRequestParams`\ncovering scope, audience, and resource combinations"
    },
    {
      "commit": "c7839cad314a094af5fa90717b4f99294aa58169",
      "tree": "1090292a7e831ca9e60bc250d961c4abc2a55a31",
      "parents": [
        "26478792c09a435de1ed64b9322d4486d5d4f45b"
      ],
      "author": {
        "name": "Andrei Tserakhau",
        "email": "laskoviymishka@gmail.com",
        "time": "Sun Mar 29 20:05:21 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Mar 29 14:05:21 2026 -0400"
      },
      "message": "feat(table): equality delete read path in scanner (#818)\n\nCollect equality delete entries during manifest scanning instead of\nrejecting them. Match equality deletes to data files by partition and\nsequence number (strictly greater, per spec). Apply hash-based anti-join\nfilter in the Arrow record processing pipeline.\n\nKey encoding uses type-tagged, length-prefixed values to avoid\ncollisions. Delete files with different equality field IDs are applied\nas independent filter groups.\n\nPartitioned tables are not yet tested for the read path."
    },
    {
      "commit": "26478792c09a435de1ed64b9322d4486d5d4f45b",
      "tree": "8aecd6d63312e11a995e3cec950e68bee18da9bf",
      "parents": [
        "829a91e1bda175e3b28a415c22bf537837dbfc55"
      ],
      "author": {
        "name": "Andrei Tserakhau",
        "email": "laskoviymishka@gmail.com",
        "time": "Sun Mar 29 20:02:22 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Mar 29 14:02:22 2026 -0400"
      },
      "message": "feat(table): enforce write-default and initial-default for required fields (#820)\n\nWhen a required field is missing from input data during schema\nprojection, apply its default value instead of panicking:\n- Write path (useWriteDefault\u003dtrue): apply write-default\n- Read path (useWriteDefault\u003dfalse): apply initial-default\n\nThis aligns with the Iceberg v3 spec (#589): write-default is used at\nwrite time when a field value is not supplied, and initial-default\npopulates the field value for rows written before the field was added.\n\nThe schema compatibility check is also updated to allow missing required\nfields through when they have either default set."
    },
    {
      "commit": "829a91e1bda175e3b28a415c22bf537837dbfc55",
      "tree": "bfcfc9ed65ff114b72438a8f9b2390f3dab5dbfc",
      "parents": [
        "9b7bfeccbea2b990aa537fb64a0b49dd02ce9750"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Sun Mar 29 13:56:12 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Mar 29 13:56:12 2026 -0400"
      },
      "message": "build(deps): bump the gomod_updates group with 6 updates (#822)\n\nBumps the gomod_updates group with 6 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [github.com/aws/aws-sdk-go-v2](https://github.com/aws/aws-sdk-go-v2) |\n`1.41.4` | `1.41.5` |\n|\n[github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2)\n| `1.32.12` | `1.32.13` |\n|\n[github.com/aws/aws-sdk-go-v2/credentials](https://github.com/aws/aws-sdk-go-v2)\n| `1.19.12` | `1.19.13` |\n|\n[github.com/aws/aws-sdk-go-v2/service/glue](https://github.com/aws/aws-sdk-go-v2)\n| `1.139.0` | `1.139.1` |\n|\n[github.com/aws/aws-sdk-go-v2/service/s3](https://github.com/aws/aws-sdk-go-v2)\n| `1.97.1` | `1.97.3` |\n|\n[google.golang.org/api](https://github.com/googleapis/google-api-go-client)\n| `0.272.0` | `0.273.0` |\n\nUpdates `github.com/aws/aws-sdk-go-v2` from 1.41.4 to 1.41.5\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/90650dd22735ab68f6089ae5c39b6614286ae9ec\"\u003e\u003ccode\u003e90650dd\u003c/code\u003e\u003c/a\u003e\nRelease 2026-03-26\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/dd88818bee7d632a8b9da6e2c78ef92e23c94c62\"\u003e\u003ccode\u003edd88818\u003c/code\u003e\u003c/a\u003e\nRegenerated Clients\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/b662c50138bd393927871b46e84ee3483377f5be\"\u003e\u003ccode\u003eb662c50\u003c/code\u003e\u003c/a\u003e\nUpdate endpoints model\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/500a9cb3522a0e71d798d7079ff5856b23c2cac1\"\u003e\u003ccode\u003e500a9cb\u003c/code\u003e\u003c/a\u003e\nUpdate API model\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/6221102f763bd65d7e403fa62c3a1e3d39e24dc6\"\u003e\u003ccode\u003e6221102\u003c/code\u003e\u003c/a\u003e\nfix stale skew and delayed skew healing (\u003ca\nhref\u003d\"https://redirect.github.com/aws/aws-sdk-go-v2/issues/3359\"\u003e#3359\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/0a39373433a121800bc68efa743a7486eb07aa3f\"\u003e\u003ccode\u003e0a39373\u003c/code\u003e\u003c/a\u003e\nfix order of generated event header handlers (\u003ca\nhref\u003d\"https://redirect.github.com/aws/aws-sdk-go-v2/issues/3361\"\u003e#3361\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/098f3898271e2eaaf8a92e38d1d928fb018805a6\"\u003e\u003ccode\u003e098f389\u003c/code\u003e\u003c/a\u003e\nOnly generate resolveAccountID when it\u0027s required (\u003ca\nhref\u003d\"https://redirect.github.com/aws/aws-sdk-go-v2/issues/3360\"\u003e#3360\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/6ebab66428e97db0ee252fea042d56b1313cb9f6\"\u003e\u003ccode\u003e6ebab66\u003c/code\u003e\u003c/a\u003e\nRelease 2026-03-25\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/b2ec3beebb986a5e74e50d0c105119d84e1e934e\"\u003e\u003ccode\u003eb2ec3be\u003c/code\u003e\u003c/a\u003e\nRegenerated Clients\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/abc126f6b35bfe2f77e2505f6d04f8ceced971ee\"\u003e\u003ccode\u003eabc126f\u003c/code\u003e\u003c/a\u003e\nUpdate API model\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/compare/v1.41.4...v1.41.5\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `github.com/aws/aws-sdk-go-v2/config` from 1.32.12 to 1.32.13\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/90650dd22735ab68f6089ae5c39b6614286ae9ec\"\u003e\u003ccode\u003e90650dd\u003c/code\u003e\u003c/a\u003e\nRelease 2026-03-26\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/dd88818bee7d632a8b9da6e2c78ef92e23c94c62\"\u003e\u003ccode\u003edd88818\u003c/code\u003e\u003c/a\u003e\nRegenerated Clients\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/b662c50138bd393927871b46e84ee3483377f5be\"\u003e\u003ccode\u003eb662c50\u003c/code\u003e\u003c/a\u003e\nUpdate endpoints model\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/500a9cb3522a0e71d798d7079ff5856b23c2cac1\"\u003e\u003ccode\u003e500a9cb\u003c/code\u003e\u003c/a\u003e\nUpdate API model\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/6221102f763bd65d7e403fa62c3a1e3d39e24dc6\"\u003e\u003ccode\u003e6221102\u003c/code\u003e\u003c/a\u003e\nfix stale skew and delayed skew healing (\u003ca\nhref\u003d\"https://redirect.github.com/aws/aws-sdk-go-v2/issues/3359\"\u003e#3359\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/0a39373433a121800bc68efa743a7486eb07aa3f\"\u003e\u003ccode\u003e0a39373\u003c/code\u003e\u003c/a\u003e\nfix order of generated event header handlers (\u003ca\nhref\u003d\"https://redirect.github.com/aws/aws-sdk-go-v2/issues/3361\"\u003e#3361\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/098f3898271e2eaaf8a92e38d1d928fb018805a6\"\u003e\u003ccode\u003e098f389\u003c/code\u003e\u003c/a\u003e\nOnly generate resolveAccountID when it\u0027s required (\u003ca\nhref\u003d\"https://redirect.github.com/aws/aws-sdk-go-v2/issues/3360\"\u003e#3360\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/6ebab66428e97db0ee252fea042d56b1313cb9f6\"\u003e\u003ccode\u003e6ebab66\u003c/code\u003e\u003c/a\u003e\nRelease 2026-03-25\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/b2ec3beebb986a5e74e50d0c105119d84e1e934e\"\u003e\u003ccode\u003eb2ec3be\u003c/code\u003e\u003c/a\u003e\nRegenerated Clients\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/abc126f6b35bfe2f77e2505f6d04f8ceced971ee\"\u003e\u003ccode\u003eabc126f\u003c/code\u003e\u003c/a\u003e\nUpdate API model\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/compare/config/v1.32.12...config/v1.32.13\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `github.com/aws/aws-sdk-go-v2/credentials` from 1.19.12 to\n1.19.13\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/90650dd22735ab68f6089ae5c39b6614286ae9ec\"\u003e\u003ccode\u003e90650dd\u003c/code\u003e\u003c/a\u003e\nRelease 2026-03-26\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/dd88818bee7d632a8b9da6e2c78ef92e23c94c62\"\u003e\u003ccode\u003edd88818\u003c/code\u003e\u003c/a\u003e\nRegenerated Clients\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/b662c50138bd393927871b46e84ee3483377f5be\"\u003e\u003ccode\u003eb662c50\u003c/code\u003e\u003c/a\u003e\nUpdate endpoints model\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/500a9cb3522a0e71d798d7079ff5856b23c2cac1\"\u003e\u003ccode\u003e500a9cb\u003c/code\u003e\u003c/a\u003e\nUpdate API model\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/6221102f763bd65d7e403fa62c3a1e3d39e24dc6\"\u003e\u003ccode\u003e6221102\u003c/code\u003e\u003c/a\u003e\nfix stale skew and delayed skew healing (\u003ca\nhref\u003d\"https://redirect.github.com/aws/aws-sdk-go-v2/issues/3359\"\u003e#3359\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/0a39373433a121800bc68efa743a7486eb07aa3f\"\u003e\u003ccode\u003e0a39373\u003c/code\u003e\u003c/a\u003e\nfix order of generated event header handlers (\u003ca\nhref\u003d\"https://redirect.github.com/aws/aws-sdk-go-v2/issues/3361\"\u003e#3361\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/098f3898271e2eaaf8a92e38d1d928fb018805a6\"\u003e\u003ccode\u003e098f389\u003c/code\u003e\u003c/a\u003e\nOnly generate resolveAccountID when it\u0027s required (\u003ca\nhref\u003d\"https://redirect.github.com/aws/aws-sdk-go-v2/issues/3360\"\u003e#3360\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/6ebab66428e97db0ee252fea042d56b1313cb9f6\"\u003e\u003ccode\u003e6ebab66\u003c/code\u003e\u003c/a\u003e\nRelease 2026-03-25\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/b2ec3beebb986a5e74e50d0c105119d84e1e934e\"\u003e\u003ccode\u003eb2ec3be\u003c/code\u003e\u003c/a\u003e\nRegenerated Clients\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/abc126f6b35bfe2f77e2505f6d04f8ceced971ee\"\u003e\u003ccode\u003eabc126f\u003c/code\u003e\u003c/a\u003e\nUpdate API model\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/compare/service/sqs/v1.19.12...credentials/v1.19.13\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `github.com/aws/aws-sdk-go-v2/service/glue` from 1.139.0 to\n1.139.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/90650dd22735ab68f6089ae5c39b6614286ae9ec\"\u003e\u003ccode\u003e90650dd\u003c/code\u003e\u003c/a\u003e\nRelease 2026-03-26\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/dd88818bee7d632a8b9da6e2c78ef92e23c94c62\"\u003e\u003ccode\u003edd88818\u003c/code\u003e\u003c/a\u003e\nRegenerated Clients\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/b662c50138bd393927871b46e84ee3483377f5be\"\u003e\u003ccode\u003eb662c50\u003c/code\u003e\u003c/a\u003e\nUpdate endpoints model\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/500a9cb3522a0e71d798d7079ff5856b23c2cac1\"\u003e\u003ccode\u003e500a9cb\u003c/code\u003e\u003c/a\u003e\nUpdate API model\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/6221102f763bd65d7e403fa62c3a1e3d39e24dc6\"\u003e\u003ccode\u003e6221102\u003c/code\u003e\u003c/a\u003e\nfix stale skew and delayed skew healing (\u003ca\nhref\u003d\"https://redirect.github.com/aws/aws-sdk-go-v2/issues/3359\"\u003e#3359\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/0a39373433a121800bc68efa743a7486eb07aa3f\"\u003e\u003ccode\u003e0a39373\u003c/code\u003e\u003c/a\u003e\nfix order of generated event header handlers (\u003ca\nhref\u003d\"https://redirect.github.com/aws/aws-sdk-go-v2/issues/3361\"\u003e#3361\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/098f3898271e2eaaf8a92e38d1d928fb018805a6\"\u003e\u003ccode\u003e098f389\u003c/code\u003e\u003c/a\u003e\nOnly generate resolveAccountID when it\u0027s required (\u003ca\nhref\u003d\"https://redirect.github.com/aws/aws-sdk-go-v2/issues/3360\"\u003e#3360\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/6ebab66428e97db0ee252fea042d56b1313cb9f6\"\u003e\u003ccode\u003e6ebab66\u003c/code\u003e\u003c/a\u003e\nRelease 2026-03-25\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/b2ec3beebb986a5e74e50d0c105119d84e1e934e\"\u003e\u003ccode\u003eb2ec3be\u003c/code\u003e\u003c/a\u003e\nRegenerated Clients\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/abc126f6b35bfe2f77e2505f6d04f8ceced971ee\"\u003e\u003ccode\u003eabc126f\u003c/code\u003e\u003c/a\u003e\nUpdate API model\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/compare/service/ec2/v1.139.0...service/glue/v1.139.1\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `github.com/aws/aws-sdk-go-v2/service/s3` from 1.97.1 to 1.97.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/90650dd22735ab68f6089ae5c39b6614286ae9ec\"\u003e\u003ccode\u003e90650dd\u003c/code\u003e\u003c/a\u003e\nRelease 2026-03-26\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/dd88818bee7d632a8b9da6e2c78ef92e23c94c62\"\u003e\u003ccode\u003edd88818\u003c/code\u003e\u003c/a\u003e\nRegenerated Clients\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/b662c50138bd393927871b46e84ee3483377f5be\"\u003e\u003ccode\u003eb662c50\u003c/code\u003e\u003c/a\u003e\nUpdate endpoints model\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/500a9cb3522a0e71d798d7079ff5856b23c2cac1\"\u003e\u003ccode\u003e500a9cb\u003c/code\u003e\u003c/a\u003e\nUpdate API model\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/6221102f763bd65d7e403fa62c3a1e3d39e24dc6\"\u003e\u003ccode\u003e6221102\u003c/code\u003e\u003c/a\u003e\nfix stale skew and delayed skew healing (\u003ca\nhref\u003d\"https://redirect.github.com/aws/aws-sdk-go-v2/issues/3359\"\u003e#3359\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/0a39373433a121800bc68efa743a7486eb07aa3f\"\u003e\u003ccode\u003e0a39373\u003c/code\u003e\u003c/a\u003e\nfix order of generated event header handlers (\u003ca\nhref\u003d\"https://redirect.github.com/aws/aws-sdk-go-v2/issues/3361\"\u003e#3361\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/098f3898271e2eaaf8a92e38d1d928fb018805a6\"\u003e\u003ccode\u003e098f389\u003c/code\u003e\u003c/a\u003e\nOnly generate resolveAccountID when it\u0027s required (\u003ca\nhref\u003d\"https://redirect.github.com/aws/aws-sdk-go-v2/issues/3360\"\u003e#3360\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/6ebab66428e97db0ee252fea042d56b1313cb9f6\"\u003e\u003ccode\u003e6ebab66\u003c/code\u003e\u003c/a\u003e\nRelease 2026-03-25\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/b2ec3beebb986a5e74e50d0c105119d84e1e934e\"\u003e\u003ccode\u003eb2ec3be\u003c/code\u003e\u003c/a\u003e\nRegenerated Clients\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/abc126f6b35bfe2f77e2505f6d04f8ceced971ee\"\u003e\u003ccode\u003eabc126f\u003c/code\u003e\u003c/a\u003e\nUpdate API model\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.97.1...service/s3/v1.97.3\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google.golang.org/api` from 0.272.0 to 0.273.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/releases\"\u003egoogle.golang.org/api\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.273.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/compare/v0.272.0...v0.273.0\"\u003e0.273.0\u003c/a\u003e\n(2026-03-23)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eall:\u003c/strong\u003e Auto-regenerate discovery clients (\u003ca\nhref\u003d\"https://redirect.github.com/googleapis/google-api-go-client/issues/3542\"\u003e#3542\u003c/a\u003e)\n(\u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/commit/a4b47110f2ba5bf8bdb32174f26f609615e0e8dc\"\u003ea4b4711\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eall:\u003c/strong\u003e Auto-regenerate discovery clients (\u003ca\nhref\u003d\"https://redirect.github.com/googleapis/google-api-go-client/issues/3546\"\u003e#3546\u003c/a\u003e)\n(\u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/commit/0cacfa8557f0f7d21166c4dfef84f60c6d9f1a49\"\u003e0cacfa8\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/googleapis/google-api-go-client/blob/main/CHANGES.md\"\u003egoogle.golang.org/api\u0027s\nchangelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/compare/v0.272.0...v0.273.0\"\u003e0.273.0\u003c/a\u003e\n(2026-03-23)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eall:\u003c/strong\u003e Auto-regenerate discovery clients (\u003ca\nhref\u003d\"https://redirect.github.com/googleapis/google-api-go-client/issues/3542\"\u003e#3542\u003c/a\u003e)\n(\u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/commit/a4b47110f2ba5bf8bdb32174f26f609615e0e8dc\"\u003ea4b4711\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eall:\u003c/strong\u003e Auto-regenerate discovery clients (\u003ca\nhref\u003d\"https://redirect.github.com/googleapis/google-api-go-client/issues/3546\"\u003e#3546\u003c/a\u003e)\n(\u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/commit/0cacfa8557f0f7d21166c4dfef84f60c6d9f1a49\"\u003e0cacfa8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\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/googleapis/google-api-go-client/commit/2e86962ce58da59e39ffacd1cb9930abe979fd3c\"\u003e\u003ccode\u003e2e86962\u003c/code\u003e\u003c/a\u003e\nchore(main): release 0.273.0 (\u003ca\nhref\u003d\"https://redirect.github.com/googleapis/google-api-go-client/issues/3545\"\u003e#3545\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/commit/50ea74c1b06b4bb59546145272bc51fc205b36ed\"\u003e\u003ccode\u003e50ea74c\u003c/code\u003e\u003c/a\u003e\nchore(google-api-go-generator): restore aiplatform:v1beta1 (\u003ca\nhref\u003d\"https://redirect.github.com/googleapis/google-api-go-client/issues/3549\"\u003e#3549\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/commit/0cacfa8557f0f7d21166c4dfef84f60c6d9f1a49\"\u003e\u003ccode\u003e0cacfa8\u003c/code\u003e\u003c/a\u003e\nfeat(all): auto-regenerate discovery clients (\u003ca\nhref\u003d\"https://redirect.github.com/googleapis/google-api-go-client/issues/3546\"\u003e#3546\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/commit/d38a12991f9cee22a29ada664c5eef3942116ad9\"\u003e\u003ccode\u003ed38a129\u003c/code\u003e\u003c/a\u003e\nchore(all): update all (\u003ca\nhref\u003d\"https://redirect.github.com/googleapis/google-api-go-client/issues/3548\"\u003e#3548\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/commit/a4b47110f2ba5bf8bdb32174f26f609615e0e8dc\"\u003e\u003ccode\u003ea4b4711\u003c/code\u003e\u003c/a\u003e\nfeat(all): auto-regenerate discovery clients (\u003ca\nhref\u003d\"https://redirect.github.com/googleapis/google-api-go-client/issues/3542\"\u003e#3542\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/commit/67cf706bd3f9bd26f2a61ada3290190c0c8545ff\"\u003e\u003ccode\u003e67cf706\u003c/code\u003e\u003c/a\u003e\nchore(all): update module google.golang.org/grpc to v1.79.3 [SECURITY]\n(\u003ca\nhref\u003d\"https://redirect.github.com/googleapis/google-api-go-client/issues/3544\"\u003e#3544\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/compare/v0.272.0...v0.273.0\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\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 \u003cdependency name\u003e major version` will close this\ngroup update PR and stop Dependabot creating any more for the specific\ndependency\u0027s major version (unless you unignore this specific\ndependency\u0027s major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this\ngroup update PR and stop Dependabot creating any more for the specific\ndependency\u0027s minor version (unless you unignore this specific\ndependency\u0027s minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR\nand stop Dependabot creating any more for the specific dependency\n(unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore\nconditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will\nremove the ignore condition of the specified dependency and ignore\nconditions\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": "9b7bfeccbea2b990aa537fb64a0b49dd02ce9750",
      "tree": "60ddaf2871efe84a966e1dc9897c7782928cf1f4",
      "parents": [
        "d1663c417eeb0a327967f24994b312eaea0bc311"
      ],
      "author": {
        "name": "Andrei Tserakhau",
        "email": "laskoviymishka@gmail.com",
        "time": "Sat Mar 28 19:25:03 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Mar 28 14:25:03 2026 -0400"
      },
      "message": "feat(types): add Parquet support for nanosecond timestamp types (v3) (#819)\n\nAdd TimestampNsType and TimestampTzNsType to Parquet physical type\nmapping (INT64) and stats aggregation. These v3 types were supported in\nthe type system and Arrow conversion but missing from the Parquet layer,\ncausing stats collection to fail for nanosecond timestamp columns.\n\nPR #594 added TimestampNs/TimestampTzNs types and Arrow conversion, but\nthe Parquet physical type mapping and stats aggregation were missing —\nnanosecond timestamp columns would fail during Parquet stats collection,\nrelated to #589"
    },
    {
      "commit": "d1663c417eeb0a327967f24994b312eaea0bc311",
      "tree": "684a4545c91719e51708deae458c1cf223f31cf3",
      "parents": [
        "35cc1a68c8cdde30de527dd91f6a555d4330642d"
      ],
      "author": {
        "name": "Andrei Tserakhau",
        "email": "laskoviymishka@gmail.com",
        "time": "Sat Mar 28 19:23:50 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Mar 28 14:23:50 2026 -0400"
      },
      "message": "feat(catalog): add CommitAndReload, error ctx, and 404 test for multi-tx (#817)\n\nAdd MultiTableTransaction.CommitAndReload() that commits atomically and\nreloads all affected tables, since the 204 response returns no metadata.\nOn partial reload failure, successfully loaded tables are still returned\nalongside the error.\n\nWrap commit errors with the involved table identifiers so failures are\nactionable without correlating logs.\n\nAdd missing unit test for 404 (ErrNoSuchTable) response mapping in REST\nCommitTransaction.\n\nAdd godoc example for the multi-table transaction workflow.\n\nCloses #785"
    },
    {
      "commit": "35cc1a68c8cdde30de527dd91f6a555d4330642d",
      "tree": "ed6425e904719d61ebd73722736bde6c781116af",
      "parents": [
        "ee11239f61247380f8e03254322923367e5f47ee"
      ],
      "author": {
        "name": "Andrei Tserakhau",
        "email": "laskoviymishka@gmail.com",
        "time": "Sat Mar 28 19:21:12 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Mar 28 14:21:12 2026 -0400"
      },
      "message": "feat(table): equality delete write path (#809)\n\nAdd EqualityDeleteSchema() for projecting table schema to delete key\ncolumns and Transaction.WriteEqualityDeletes() for writing equality\ndelete Parquet files with correct content type and EqualityFieldIDs\nmetadata. Produced DataFiles integrate with the existing RowDelta API.\n\nWire EqualityFieldIDs through WriteFileInfo → DataFileStatistics →\nDataFileBuilder so field IDs propagate to manifest entries.\n\nPartitioned tables are not yet supported (#808)."
    },
    {
      "commit": "ee11239f61247380f8e03254322923367e5f47ee",
      "tree": "eb423568ffa3e9576b65fca52402ef0e779c79d2",
      "parents": [
        "884868cbe569a5a6867e6a7a1c5c8374a3d16e62"
      ],
      "author": {
        "name": "Ankit Sharma",
        "email": "67190631+Hashcode-Ankit@users.noreply.github.com",
        "time": "Sat Mar 28 23:48:26 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Mar 28 14:18:26 2026 -0400"
      },
      "message": "feat(hive): adding register table in hive catalog (#816)\n\n## Description\nAdding hive register table functionality, where the user can register\ndifferent catalog iceberg tables in the Hive catalog.\n\n## Changes \n-\u003e catalog/hive/hive.go:  added function for registering catalog \n-\u003e catalog/hive/hive_integration_test.go: integration test for function\n-\u003e catalog/hive/hive_test.go: unit tests for register table function\n\n## Issue\nCloses https://github.com/apache/iceberg-go/issues/790\n\n## Test\n1. Created a JDBC catalog table \n2. verified in pg and collected metadata location \n3. Registered it with Hive \n4. checked in Hive metastore as well as queried through Spark"
    },
    {
      "commit": "884868cbe569a5a6867e6a7a1c5c8374a3d16e62",
      "tree": "c7aa4bc02ff8d792b263d4288756639eb3014370",
      "parents": [
        "387d209c8baddf7e3a7efaa0a33c8572937e3897"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Mar 27 17:18:51 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Mar 27 17:18:51 2026 -0400"
      },
      "message": "build(deps): bump github.com/moby/buildkit from 0.27.1 to 0.28.1 (#813)\n\nBumps [github.com/moby/buildkit](https://github.com/moby/buildkit) from\n0.27.1 to 0.28.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/moby/buildkit/releases\"\u003egithub.com/moby/buildkit\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.28.1\u003c/h2\u003e\n\u003cp\u003eWelcome to the v0.28.1 release of buildkit!\u003c/p\u003e\n\u003cp\u003ePlease try out the release binaries and report any issues at\n\u003ca\nhref\u003d\"https://github.com/moby/buildkit/issues\"\u003ehttps://github.com/moby/buildkit/issues\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eTõnis Tiigi\u003c/li\u003e\n\u003cli\u003eCrazyMax\u003c/li\u003e\n\u003cli\u003eSebastiaan van Stijn\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNotable Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix insufficient validation of Git URL \u003ccode\u003e#ref:subdir\u003c/code\u003e\nfragments that could allow access to restricted files outside the\nchecked-out repository root. \u003ca\nhref\u003d\"https://github.com/moby/buildkit/security/advisories/GHSA-4vrq-3vrq-g6gg\"\u003eGHSA-4vrq-3vrq-g6gg\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix a vulnerability where an untrusted custom frontend could cause\nfiles to be written outside the BuildKit state directory. \u003ca\nhref\u003d\"https://github.com/moby/buildkit/security/advisories/GHSA-4c29-8rgm-jvjj\"\u003eGHSA-4c29-8rgm-jvjj\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix a panic when processing invalid \u003ccode\u003e.dockerignore\u003c/code\u003e\npatterns during \u003ccode\u003eCOPY\u003c/code\u003e. \u003ca\nhref\u003d\"https://redirect.github.com/moby/buildkit/issues/6610\"\u003e#6610\u003c/a\u003e\n\u003ca\nhref\u003d\"https://redirect.github.com/moby/patternmatcher/issues/9\"\u003emoby/patternmatcher#9\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDependency Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003egithub.com/moby/patternmatcher\u003c/strong\u003e v0.6.0 -\u0026gt;\nv0.6.1\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePrevious release can be found at \u003ca\nhref\u003d\"https://github.com/moby/buildkit/releases/tag/v0.28.0\"\u003ev0.28.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.28.0\u003c/h2\u003e\n\u003cp\u003ebuildkit 0.28.0\u003c/p\u003e\n\u003cp\u003eWelcome to the v0.28.0 release of buildkit!\u003c/p\u003e\n\u003cp\u003ePlease try out the release binaries and report any issues at\n\u003ca\nhref\u003d\"https://github.com/moby/buildkit/issues\"\u003ehttps://github.com/moby/buildkit/issues\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eTõnis Tiigi\u003c/li\u003e\n\u003cli\u003eCrazyMax\u003c/li\u003e\n\u003cli\u003eSebastiaan van Stijn\u003c/li\u003e\n\u003cli\u003eJonathan A. Sternberg\u003c/li\u003e\n\u003cli\u003eAkihiro Suda\u003c/li\u003e\n\u003cli\u003eAmr Mahdi\u003c/li\u003e\n\u003cli\u003eDan Duvall\u003c/li\u003e\n\u003cli\u003eDavid Karlsson\u003c/li\u003e\n\u003cli\u003eJonas Geiler\u003c/li\u003e\n\u003cli\u003eKevin L.\u003c/li\u003e\n\u003cli\u003ersteube\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/moby/buildkit/commit/45b038cd0b2ec2d34013ce0f085522276f7ee0d8\"\u003e\u003ccode\u003e45b038c\u003c/code\u003e\u003c/a\u003e\ngit: normalize and validate subdir paths\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/moby/buildkit/commit/f5462c216098af766f97ea4cb328e65c6d8f7256\"\u003e\u003ccode\u003ef5462c2\u003c/code\u003e\u003c/a\u003e\ngit: harden ref arg handling\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/moby/buildkit/commit/71577a5da7a2b3ab75a90c2cfedfda0c27d1ef40\"\u003e\u003ccode\u003e71577a5\u003c/code\u003e\u003c/a\u003e\nsource: extract SafeFileName into shared pathutil package\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/moby/buildkit/commit/df4378316f3b000403d097551a8139a700bd823d\"\u003e\u003ccode\u003edf43783\u003c/code\u003e\u003c/a\u003e\nsource/http: use os.Root for saved file operations\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/moby/buildkit/commit/9ce6f62aca0653657047ee613cdef22f38b31244\"\u003e\u003ccode\u003e9ce6f62\u003c/code\u003e\u003c/a\u003e\nsource/http: sanitize downloaded filenames\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/moby/buildkit/commit/099cf80f5ebc935c48d2925499bffe703a54cff4\"\u003e\u003ccode\u003e099cf80\u003c/code\u003e\u003c/a\u003e\nexecutor: validate container IDs centrally\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/moby/buildkit/commit/2642113bbc9d969d223c37aaabca4b50613fddf9\"\u003e\u003ccode\u003e2642113\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/moby/buildkit/issues/6610\"\u003e#6610\u003c/a\u003e\nfrom thaJeztah/0.28_backport_bump_patternmatcher\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/moby/buildkit/commit/802da78332d9f2c6c9d856c1648ab52c701076fa\"\u003e\u003ccode\u003e802da78\u003c/code\u003e\u003c/a\u003e\nvendor: github.com/moby/patternmatcher v0.6.1\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/moby/buildkit/commit/5245d869d85d9c98f986b600584c332a3b001986\"\u003e\u003ccode\u003e5245d86\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/moby/buildkit/issues/6551\"\u003e#6551\u003c/a\u003e\nfrom tonistiigi/v0.28-cherry-picks\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/moby/buildkit/commit/90ee5deef6c6efcb82358eb48d76235191196db1\"\u003e\u003ccode\u003e90ee5de\u003c/code\u003e\u003c/a\u003e\nvendor: update x/net to v0.51.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/moby/buildkit/compare/v0.27.1...v0.28.1\"\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.com/moby/buildkit\u0026package-manager\u003dgo_modules\u0026previous-version\u003d0.27.1\u0026new-version\u003d0.28.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)\nYou can disable automated security fix PRs for this repo from the\n[Security Alerts\npage](https://github.com/apache/iceberg-go/network/alerts).\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": "387d209c8baddf7e3a7efaa0a33c8572937e3897",
      "tree": "f62e33ea5f21f7b765cc1e11c9a7951933126207",
      "parents": [
        "131cc9269e549a2a53ed1561c6cbff42fe34138d"
      ],
      "author": {
        "name": "Andrei Tserakhau",
        "email": "laskoviymishka@gmail.com",
        "time": "Fri Mar 27 21:31:09 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Mar 27 16:31:09 2026 -0400"
      },
      "message": "fix(table): add warnings for silent data-affecting behavior (#811)\n\nReplace TODO/placeholder comments with log.Printf warnings for two cases\nthat silently affect data without notifying the caller:\n\n- Nanosecond timestamp downcast to microsecond (precision loss)\n- Unrecognized compression codec falling back to uncompressed\n\nIt\u0027s better then nothing\n\nCloses #797"
    },
    {
      "commit": "131cc9269e549a2a53ed1561c6cbff42fe34138d",
      "tree": "162511dec245212a6317a44bf5844436f5fc0ff0",
      "parents": [
        "6314acf5b8805dc1d97d7a0ec92cfb7cdd8af6ec"
      ],
      "author": {
        "name": "Andrei Tserakhau",
        "email": "laskoviymishka@gmail.com",
        "time": "Fri Mar 27 21:14:15 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Mar 27 16:14:15 2026 -0400"
      },
      "message": "fix(table): deadlock in MapExec when workers error (#810)\n\nUse errgroup.WithContext so the first worker error cancels a derived\ncontext. Add select on ctx.Done() for both the feeder (ch \u003c- v) and\nworker (out \u003c- result) sends, allowing them to unblock when the context\nis cancelled instead of blocking forever.\n\nCloses #796"
    },
    {
      "commit": "6314acf5b8805dc1d97d7a0ec92cfb7cdd8af6ec",
      "tree": "e37c34b6491ba2d7a07c8d39f9f0f75a6e0d116e",
      "parents": [
        "cfb21e62d8f0017b23f0178e560c5c515c2239d3"
      ],
      "author": {
        "name": "Matt Topol",
        "email": "zotthewizard@gmail.com",
        "time": "Fri Mar 27 13:40:26 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Mar 27 10:40:26 2026 -0700"
      },
      "message": "chore: add CODEOWNERS file (#814)\n\nAdds a CODEOWNERS file with myself listed so I always automatically get\nadded to PR reviews, but also allowing others to add themselves to\nsubdirectories or other areas if they so choose."
    },
    {
      "commit": "cfb21e62d8f0017b23f0178e560c5c515c2239d3",
      "tree": "5d6b36abb41cd96c0f11d70a16274d92acd9785e",
      "parents": [
        "dc7a9c384ad425979543e70cbd5205c5f02e40a3"
      ],
      "author": {
        "name": "Andrei Tserakhau",
        "email": "laskoviymishka@gmail.com",
        "time": "Thu Mar 26 23:03:58 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Mar 26 18:03:58 2026 -0400"
      },
      "message": "feat(table): configure Parquet DataPage version (#812)\n\nAdd write.parquet.page-version property (\"1\" or \"2\", default \"2\").\nResolves compatibility with consumers that don\u0027t support DataPage V2\n(e.g. Snowflake). Default keeps current V2 behavior for backward compat.\n\nFix: https://github.com/apache/iceberg-go/issues/800"
    },
    {
      "commit": "dc7a9c384ad425979543e70cbd5205c5f02e40a3",
      "tree": "b01eb02bfcf3f42723a5e9b221a259da5d6c6ec6",
      "parents": [
        "b168e015f81456dd81ee7cc9f60991101d893da6"
      ],
      "author": {
        "name": "Rudy",
        "email": "43504809+RSP22@users.noreply.github.com",
        "time": "Wed Mar 25 13:18:44 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Mar 25 16:18:44 2026 -0400"
      },
      "message": "fix(table): AddFiles() should respect commit.manifest-merge.enabled (#806)\n\n## Summary\n\nCloses #805\n\n`AddFiles()` hardcodes `.fastAppend()` at line 780, bypassing\n`appendSnapshotProducer()`\nwhich reads `commit.manifest-merge.enabled`. Setting this property has\nno effect when\nusing `AddFiles()` — manifests accumulate one-per-commit indefinitely\nregardless of the\nproperty value.\n\n---\n\n## Root Cause\n\n`appendSnapshotProducer()` already exists at line 126 and correctly\nreads the property.\nIt is used by `AddDataFiles()` and `Append()` but was missed in\n`AddFiles()`:\n\n```go\n// transaction.go line 780 — BEFORE (hardcoded, ignores property):\nupdater :\u003d t.updateSnapshot(fs, snapshotProps, OpAppend).fastAppend()\n\n// AFTER (same as AddDataFiles() and Append()):\nupdater :\u003d t.appendSnapshotProducer(fs, snapshotProps)\n```\n\n| Method | Uses `appendSnapshotProducer()` |\n|---|---|\n| `AddDataFiles()` | ✅ yes |\n| `Append()` | ✅ yes |\n| `AddFiles()` | ❌ hardcoded `.fastAppend()` — **this bug** |\n\n---\n\n## Java Reference\n\n`BaseTable.newAppend()` always returns `MergeAppend`.\n`MANIFEST_MERGE_ENABLED_DEFAULT \u003d true`\nin the Java implementation. The Go implementation should behave\nconsistently with the\nreference implementation.\n\n---\n\n## Test Gap\n\nThree existing tests set `commit.manifest-merge.enabled\u003dtrue` but none\ncall `AddFiles()`:\n\n| Test | File | Uses `AddFiles()`? |\n|---|---|---|\n| `TestCommitV3RowLineageDeltaIncludesExistingRows` |\n`snapshot_producers_test.go` | ❌ calls `newMergeAppendFilesProducer()`\ndirectly |\n| `TestMergeManifests` | `table_test.go` | ❌ uses `AppendTable()` →\n`Append()` |\n| `TestSetProperties` | `transaction_test.go` | ❌ only sets the\nproperty, never appends |\n\nThe new regression test `table/addfiles_merge_regression_test.go`\nexercises `AddFiles()`\ndirectly with `commit.manifest-merge.enabled\u003dtrue` and verifies the\nmerge fires.\nIt can be moved into `transaction_test.go` if preferred by reviewers.\n\n---\n\n## Changes\n\n- **`table/transaction.go`** — 1-line fix: use\n`appendSnapshotProducer()` instead of hardcoded `.fastAppend()`\n- **`table/addfiles_merge_regression_test.go`** — regression test\nproving the bug (fails before fix, passes after)\n\n---\n\n## Verification\n\n**Regression test:**\n- 3 sequential `AddFiles()` commits with `minCountToMerge\u003d2`\n- Before fix: 3 manifests (merge never fires)\n- After fix: 1 merged manifest (merge fires on commit 3)\n\n**Production verification** on a table with 1 commit/min:\n- Before fix: HEAD snapshot accumulated **1121 manifests** after 18\nhours (one per commit, never merged)\n- After fix: HEAD snapshot has **16 manifests** after the next commit\n(merge fired)\n\n---\n\n## Note on AI Assistance\n\nThis PR was developed with AI assistance (Claude). The author has\nverified the\nimplementation, Java reference behavior, test coverage gap, and\nproduction impact end-to-end."
    },
    {
      "commit": "b168e015f81456dd81ee7cc9f60991101d893da6",
      "tree": "68714dc64d83286c428102f6f39c11a993d48d8a",
      "parents": [
        "6fab25ce5797164b16022ce1ebc0d97d4311ed2d"
      ],
      "author": {
        "name": "Tyler Rockwood",
        "email": "rockwood@redpanda.com",
        "time": "Wed Mar 25 09:52:51 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Mar 25 10:52:51 2026 -0400"
      },
      "message": "feat(catalog,io): refresh vended credentials (#795)\n\nCurrently credential lifetimes are tied to the table instead, only load\ntable refreshes the credentials. This commit caches and refreshes the\ncredentials based on the response included in the table load response\nand refreshes it dynamically.\n\nThis does still have the effect that holding on to a table IO for a long\ntime does not refresh the table, but this makes steps in that direction.\n\nFixes: https://github.com/apache/iceberg-go/issues/792"
    },
    {
      "commit": "6fab25ce5797164b16022ce1ebc0d97d4311ed2d",
      "tree": "0c2e066db24897c3b42b974963b6c7476f2c320f",
      "parents": [
        "1cf6c7a9031f2fda4627ec2a7e76eaed9c403052"
      ],
      "author": {
        "name": "Andrei Tserakhau",
        "email": "laskoviymishka@gmail.com",
        "time": "Wed Mar 25 00:25:31 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 24 19:25:31 2026 -0400"
      },
      "message": "feat(catalog): add TransactionalCatalog interface and REST multi-table commit (#787)\n\nAdd support for atomic multi-table commits via the Iceberg REST spec\u0027s\nPOST /v1/transactions/commit endpoint.\n\n- Add TableCommit type bundling identifier, requirements, and updates\n- Add TransactionalCatalog optional interface with CommitTransaction\n- Implement CommitTransaction on REST catalog\n- Add Transaction.TableCommit() to extract pending changes without\ncommitting\n- Add Transaction.MarkCommitted() for use after multi-table commit\n\nCloses #784"
    },
    {
      "commit": "1cf6c7a9031f2fda4627ec2a7e76eaed9c403052",
      "tree": "12c3d9e0716ea962d90ff951daf21bbdb0efe643",
      "parents": [
        "36705d7b9ff5e53806a32e5d31fcf9c80932b076"
      ],
      "author": {
        "name": "starpact",
        "email": "58423997+starpact@users.noreply.github.com",
        "time": "Wed Mar 25 07:23:32 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 24 19:23:32 2026 -0400"
      },
      "message": "fix(table): AddFiles: close file after usage and parallelize (#799)\n\nPreviously files are closed only after the whole iteration finishes:\n\nhttps://github.com/apache/iceberg-go/blob/55bdfbf836359142f7c010b0b80f0b7e06af2dca/table/arrow_utils.go#L1372\ncausing resource leak within a single `filesToDataFiles` invocation as\nthe file holds an open S3 read stream:\n\nhttps://github.com/apache/iceberg-go/blob/55bdfbf836359142f7c010b0b80f0b7e06af2dca/io/gocloud/blob.go#L39\n\nA sample trace can demonstrate it clearly:\n\u003cimg width\u003d\"1367\" height\u003d\"559\" alt\u003d\"image\"\nsrc\u003d\"https://github.com/user-attachments/assets/c98e2b86-1ef6-4a08-b8fc-008fafc3f4aa\"\n/\u003e\n\nBesides, I also added parallelism to `AddFiles`.\n\nFuture improvements:\nParallelism partially \"fixes\" the performance issue of `AddFiles` but a\nmore fundamental improvement is related to IO, currently for extracting\nParquet metadata, the IO layer needs to:\n1. do one GetObject and hold the read stream. The size is used by\n`Seek`, but the reader is never used(but still consumes quite some\nmemory due to underlying buffering)\n2. do one range GetObject for the last 8 bytes\n3. do one range GetObject for the footer\n\nA common trick is optimistically prefetching the footer(e.g. 512KB) to\ncoleasce the above 3 requests. However, this requires leaking the IO\nabstraction, e.g. by determining the file format from the path and\nreturning different implementations accordingly, which may require more\ndiscussions."
    },
    {
      "commit": "36705d7b9ff5e53806a32e5d31fcf9c80932b076",
      "tree": "559f7765b94d76b0b45704d1a9b139863df43885",
      "parents": [
        "e40dec4a1d10f73b1689b0aea027dc2c83167752"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Mar 23 17:09:26 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 23 17:09:26 2026 -0400"
      },
      "message": "build(deps): bump the gomod_updates group with 2 updates (#807)\n\nBumps the gomod_updates group with 2 updates:\n[github.com/aws/aws-sdk-go-v2/service/glue](https://github.com/aws/aws-sdk-go-v2)\nand\n[google.golang.org/api](https://github.com/googleapis/google-api-go-client).\n\nUpdates `github.com/aws/aws-sdk-go-v2/service/glue` from 1.138.0 to\n1.139.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/9805a196767e31076150a0e5ff38e2356a93e840\"\u003e\u003ccode\u003e9805a19\u003c/code\u003e\u003c/a\u003e\nRelease 2023-12-05\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/26cb6b4486d9e3b8a7e9f8b3c023b237310302eb\"\u003e\u003ccode\u003e26cb6b4\u003c/code\u003e\u003c/a\u003e\nRegenerated Clients\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/5beea61355437cd3871d3c37435c5adbb30dc431\"\u003e\u003ccode\u003e5beea61\u003c/code\u003e\u003c/a\u003e\nUpdate API model\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/baa4447e926a969a69a8faba52c0acf46c827ef3\"\u003e\u003ccode\u003ebaa4447\u003c/code\u003e\u003c/a\u003e\nSmithy upgrade (\u003ca\nhref\u003d\"https://redirect.github.com/aws/aws-sdk-go-v2/issues/2407\"\u003e#2407\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/b8307d199c3c49b8ec6bde395f07d9de0294fe89\"\u003e\u003ccode\u003eb8307d1\u003c/code\u003e\u003c/a\u003e\nRelease 2023-12-04\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/14590dd5a7419101b6b4d321be04c69c72115974\"\u003e\u003ccode\u003e14590dd\u003c/code\u003e\u003c/a\u003e\nRegenerated Clients\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/2eec40c07b17f686037e7a4cb1a920b7a428ad61\"\u003e\u003ccode\u003e2eec40c\u003c/code\u003e\u003c/a\u003e\nUpdate endpoints model\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/2aa573b01db4959e84c5415281802eb6d384c381\"\u003e\u003ccode\u003e2aa573b\u003c/code\u003e\u003c/a\u003e\nUpdate API model\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/b3d9e145604fdc1b77a075ed3cc321d0c28cf9c3\"\u003e\u003ccode\u003eb3d9e14\u003c/code\u003e\u003c/a\u003e\nfeat: add express integration test (\u003ca\nhref\u003d\"https://redirect.github.com/aws/aws-sdk-go-v2/issues/2402\"\u003e#2402\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/commit/ce842a7ed4981d404542e66d3ccd71f8bd7d8b2c\"\u003e\u003ccode\u003ece842a7\u003c/code\u003e\u003c/a\u003e\nRelease 2023-12-01\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/aws/aws-sdk-go-v2/compare/service/ec2/v1.138.0...service/ec2/v1.139.0\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google.golang.org/api` from 0.271.0 to 0.272.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/releases\"\u003egoogle.golang.org/api\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.272.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/compare/v0.271.0...v0.272.0\"\u003e0.272.0\u003c/a\u003e\n(2026-03-16)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eall:\u003c/strong\u003e Auto-regenerate discovery clients (\u003ca\nhref\u003d\"https://redirect.github.com/googleapis/google-api-go-client/issues/3534\"\u003e#3534\u003c/a\u003e)\n(\u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/commit/b4d37a1279665d52b8b4672a6a91732ae8eb3cf6\"\u003eb4d37a1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eall:\u003c/strong\u003e Auto-regenerate discovery clients (\u003ca\nhref\u003d\"https://redirect.github.com/googleapis/google-api-go-client/issues/3536\"\u003e#3536\u003c/a\u003e)\n(\u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/commit/549ef3e69575edbe4fee27bc485a093dc88b90b3\"\u003e549ef3e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eall:\u003c/strong\u003e Auto-regenerate discovery clients (\u003ca\nhref\u003d\"https://redirect.github.com/googleapis/google-api-go-client/issues/3537\"\u003e#3537\u003c/a\u003e)\n(\u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/commit/6def284013185ab4ac2fa389594ee6013086d5d0\"\u003e6def284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eall:\u003c/strong\u003e Auto-regenerate discovery clients (\u003ca\nhref\u003d\"https://redirect.github.com/googleapis/google-api-go-client/issues/3538\"\u003e#3538\u003c/a\u003e)\n(\u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/commit/319b5abcbc42b77f6acc861e45365b65695e8096\"\u003e319b5ab\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eall:\u003c/strong\u003e Auto-regenerate discovery clients (\u003ca\nhref\u003d\"https://redirect.github.com/googleapis/google-api-go-client/issues/3539\"\u003e#3539\u003c/a\u003e)\n(\u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/commit/73bcfcf9b2fd8def3aec1cdff10e6d4ee646af41\"\u003e73bcfcf\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eall:\u003c/strong\u003e Auto-regenerate discovery clients (\u003ca\nhref\u003d\"https://redirect.github.com/googleapis/google-api-go-client/issues/3541\"\u003e#3541\u003c/a\u003e)\n(\u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/commit/6374c496fde577aa9f5b32470e45676ff4f69dde\"\u003e6374c49\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/googleapis/google-api-go-client/blob/main/CHANGES.md\"\u003egoogle.golang.org/api\u0027s\nchangelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/compare/v0.271.0...v0.272.0\"\u003e0.272.0\u003c/a\u003e\n(2026-03-16)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eall:\u003c/strong\u003e Auto-regenerate discovery clients (\u003ca\nhref\u003d\"https://redirect.github.com/googleapis/google-api-go-client/issues/3534\"\u003e#3534\u003c/a\u003e)\n(\u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/commit/b4d37a1279665d52b8b4672a6a91732ae8eb3cf6\"\u003eb4d37a1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eall:\u003c/strong\u003e Auto-regenerate discovery clients (\u003ca\nhref\u003d\"https://redirect.github.com/googleapis/google-api-go-client/issues/3536\"\u003e#3536\u003c/a\u003e)\n(\u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/commit/549ef3e69575edbe4fee27bc485a093dc88b90b3\"\u003e549ef3e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eall:\u003c/strong\u003e Auto-regenerate discovery clients (\u003ca\nhref\u003d\"https://redirect.github.com/googleapis/google-api-go-client/issues/3537\"\u003e#3537\u003c/a\u003e)\n(\u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/commit/6def284013185ab4ac2fa389594ee6013086d5d0\"\u003e6def284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eall:\u003c/strong\u003e Auto-regenerate discovery clients (\u003ca\nhref\u003d\"https://redirect.github.com/googleapis/google-api-go-client/issues/3538\"\u003e#3538\u003c/a\u003e)\n(\u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/commit/319b5abcbc42b77f6acc861e45365b65695e8096\"\u003e319b5ab\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eall:\u003c/strong\u003e Auto-regenerate discovery clients (\u003ca\nhref\u003d\"https://redirect.github.com/googleapis/google-api-go-client/issues/3539\"\u003e#3539\u003c/a\u003e)\n(\u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/commit/73bcfcf9b2fd8def3aec1cdff10e6d4ee646af41\"\u003e73bcfcf\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eall:\u003c/strong\u003e Auto-regenerate discovery clients (\u003ca\nhref\u003d\"https://redirect.github.com/googleapis/google-api-go-client/issues/3541\"\u003e#3541\u003c/a\u003e)\n(\u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/commit/6374c496fde577aa9f5b32470e45676ff4f69dde\"\u003e6374c49\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\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/googleapis/google-api-go-client/commit/e7df9fe0b92461f87b6d267a600e6825d1221e75\"\u003e\u003ccode\u003ee7df9fe\u003c/code\u003e\u003c/a\u003e\nchore(main): release 0.272.0 (\u003ca\nhref\u003d\"https://redirect.github.com/googleapis/google-api-go-client/issues/3535\"\u003e#3535\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/commit/5d8b2662ac4cd19ac978d9f08bedb59dc41c8247\"\u003e\u003ccode\u003e5d8b266\u003c/code\u003e\u003c/a\u003e\nchore(all): update all (\u003ca\nhref\u003d\"https://redirect.github.com/googleapis/google-api-go-client/issues/3540\"\u003e#3540\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/commit/6374c496fde577aa9f5b32470e45676ff4f69dde\"\u003e\u003ccode\u003e6374c49\u003c/code\u003e\u003c/a\u003e\nfeat(all): auto-regenerate discovery clients (\u003ca\nhref\u003d\"https://redirect.github.com/googleapis/google-api-go-client/issues/3541\"\u003e#3541\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/commit/73bcfcf9b2fd8def3aec1cdff10e6d4ee646af41\"\u003e\u003ccode\u003e73bcfcf\u003c/code\u003e\u003c/a\u003e\nfeat(all): auto-regenerate discovery clients (\u003ca\nhref\u003d\"https://redirect.github.com/googleapis/google-api-go-client/issues/3539\"\u003e#3539\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/commit/319b5abcbc42b77f6acc861e45365b65695e8096\"\u003e\u003ccode\u003e319b5ab\u003c/code\u003e\u003c/a\u003e\nfeat(all): auto-regenerate discovery clients (\u003ca\nhref\u003d\"https://redirect.github.com/googleapis/google-api-go-client/issues/3538\"\u003e#3538\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/commit/6def284013185ab4ac2fa389594ee6013086d5d0\"\u003e\u003ccode\u003e6def284\u003c/code\u003e\u003c/a\u003e\nfeat(all): auto-regenerate discovery clients (\u003ca\nhref\u003d\"https://redirect.github.com/googleapis/google-api-go-client/issues/3537\"\u003e#3537\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/commit/549ef3e69575edbe4fee27bc485a093dc88b90b3\"\u003e\u003ccode\u003e549ef3e\u003c/code\u003e\u003c/a\u003e\nfeat(all): auto-regenerate discovery clients (\u003ca\nhref\u003d\"https://redirect.github.com/googleapis/google-api-go-client/issues/3536\"\u003e#3536\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/commit/b4d37a1279665d52b8b4672a6a91732ae8eb3cf6\"\u003e\u003ccode\u003eb4d37a1\u003c/code\u003e\u003c/a\u003e\nfeat(all): auto-regenerate discovery clients (\u003ca\nhref\u003d\"https://redirect.github.com/googleapis/google-api-go-client/issues/3534\"\u003e#3534\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca\nhref\u003d\"https://github.com/googleapis/google-api-go-client/compare/v0.271.0...v0.272.0\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\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 \u003cdependency name\u003e major version` will close this\ngroup update PR and stop Dependabot creating any more for the specific\ndependency\u0027s major version (unless you unignore this specific\ndependency\u0027s major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this\ngroup update PR and stop Dependabot creating any more for the specific\ndependency\u0027s minor version (unless you unignore this specific\ndependency\u0027s minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR\nand stop Dependabot creating any more for the specific dependency\n(unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore\nconditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will\nremove the ignore condition of the specified dependency and ignore\nconditions\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": "e40dec4a1d10f73b1689b0aea027dc2c83167752",
      "tree": "d4506a93a43935e10b313e837534edea10b1cc4f",
      "parents": [
        "6c041dde5bd35cefa7c1bce2d245d7aeb4dfeddd"
      ],
      "author": {
        "name": "Dao Thanh Tung",
        "email": "ttdao.2015@accountancy.smu.edu.sg",
        "time": "Mon Mar 23 21:09:06 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 23 17:09:06 2026 -0400"
      },
      "message": "feate(hive): Add Create View for Hive catalog (#788)\n\nAdd the missing Create View for Hive catalog . Related to\nhttps://github.com/apache/iceberg-go/issues/739\n\n---------\n\nSigned-off-by: dttung2905 \u003cttdao.2015@accountancy.smu.edu.sg\u003e"
    },
    {
      "commit": "6c041dde5bd35cefa7c1bce2d245d7aeb4dfeddd",
      "tree": "b52434fa867d08122908d1cae23ca4f29d267796",
      "parents": [
        "d0cc60deeb8b98e9aa6663e3ed0e2e1ff622acaa"
      ],
      "author": {
        "name": "Andrei Tserakhau",
        "email": "laskoviymishka@gmail.com",
        "time": "Mon Mar 23 22:06:57 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 23 17:06:57 2026 -0400"
      },
      "message": "feat(table): add RowDelta API for atomic row-level mutations (#789)\n\nAdds `Transaction.NewRowDelta()` — Go equivalent of Java\u0027s\n`BaseRowDelta`. Commits data files and delete files (position or\nequality) in one atomic snapshot. This is needed for row-level\nmutations: an UPDATE becomes an equality delete for the old row + append\nof the new row, both in one commit.\n\nResolves #602.\n\n## API\n\n```go\nrd :\u003d tx.NewRowDelta(snapshotProps)\nrd.AddRows(dataFile1, dataFile2)\nrd.AddDeletes(posDeleteFile, eqDeleteFile)\nrd.Commit(ctx)\n```\n\nOperation type picked automatically: data-only → `append`, deletes-only\n→ `delete`, both → `overwrite`.\n\n## Validation\n\n- Delete files require format version \u003e\u003d 2\n- Equality deletes must have non-empty `EqualityFieldIDs` referencing\nexisting schema columns\n- Content types checked: no data files in `AddDeletes`, no delete files\nin `AddRows`\n\n## Known limitations\n\n- No conflict detection for concurrent writers — documented in the type\ncomment\n- Uses fast-append producer (no manifest merging)\n\n## What\u0027s tested\n\nThe interesting ones:\n\n- Commit data + position deletes, check snapshot summary has\n`added-data-files\u003d1`, `added-delete-files\u003d1`, operation is `overwrite`\n- Commit equality deletes, check `added-equality-delete-files` shows up\nin summary\n- Read back manifests after commit, verify there\u0027s one data manifest and\none delete manifest with correct content types in entries\n- Two RowDeltas on same transaction (batch1 append, batch2\nappend+delete), verify cumulative `total-data-files`\n- v1 table rejects delete files with clear error\n- Equality delete file without field IDs → error\n- Equality delete file with field ID 999 (not in schema) → error\n\nThe round-trip integration test:\n1. Write 5 rows as real Parquet, append to table\n2. Write a position delete file targeting positions 1 and 3, commit via\nRowDelta\n3. Scan the table back — get 3 rows, verify IDs are `[1, 3, 5]` (beta\nand delta gone)\n\nThis covers the full path: write parquet → RowDelta commit → scan with\nposition delete filtering applied.\n\n## What\u0027s left to do\n\nThis PR covers the commit API. Remaining work for full DML support:\n\n- **Equality delete file writing** — a writer that produces Parquet\nfiles with PK-only schema and `EntryContentEqDeletes` content type. The\nRowDelta API already accepts them, but there\u0027s no convenient writer yet.\n- **Equality delete reading** — the scanner currently errors with\n\"iceberg-go does not yet support equality deletes\" (`scanner.go:415`).\nNeeds: collect eq delete entries during scan planning, match to data\nfiles by partition + sequence number, apply hash-based anti-join during\nArrow reads.\n- **Conflict validation** — `validateFromSnapshot`,\n`validateNoConflictingDataFiles`, etc. Java\u0027s Flink connector skips most\nof this for streaming, so it\u0027s not blocking for CDC use cases."
    },
    {
      "commit": "d0cc60deeb8b98e9aa6663e3ed0e2e1ff622acaa",
      "tree": "1dbb313f95bd5d97e6a5768159ffaaa58e95fd3c",
      "parents": [
        "2b83eed356d68fa99bd0f3bafde8880f7e096617"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Mar 19 13:09:25 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Mar 19 13:09:25 2026 -0400"
      },
      "message": "build(deps): bump google.golang.org/grpc from 1.79.2 to 1.79.3 (#804)\n\nBumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from\n1.79.2 to 1.79.3.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/grpc/grpc-go/releases\"\u003egoogle.golang.org/grpc\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 1.79.3\u003c/h2\u003e\n\u003ch1\u003eSecurity\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eserver: fix an authorization bypass where malformed :path headers\n(missing the leading slash) could bypass path-based restricted\n\u0026quot;deny\u0026quot; rules in interceptors like \u003ccode\u003egrpc/authz\u003c/code\u003e. Any\nrequest with a non-canonical path is now immediately rejected with an\n\u003ccode\u003eUnimplemented\u003c/code\u003e error. (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8981\"\u003e#8981\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\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/grpc/grpc-go/commit/dda86dbd9cecb8b35b58c73d507d81d67761205f\"\u003e\u003ccode\u003edda86db\u003c/code\u003e\u003c/a\u003e\nChange version to 1.79.3 (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8983\"\u003e#8983\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/grpc/grpc-go/commit/72186f163e75a065c39e6f7df9b6dea07fbdeff5\"\u003e\u003ccode\u003e72186f1\u003c/code\u003e\u003c/a\u003e\ngrpc: enforce strict path checking for incoming requests on the server\n(\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8981\"\u003e#8981\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/grpc/grpc-go/commit/97ca3522b239edf6813e2b1106924e9d55e89d43\"\u003e\u003ccode\u003e97ca352\u003c/code\u003e\u003c/a\u003e\nChanging version to 1.79.3-dev (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8954\"\u003e#8954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca\nhref\u003d\"https://github.com/grpc/grpc-go/compare/v1.79.2...v1.79.3\"\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\u003dgoogle.golang.org/grpc\u0026package-manager\u003dgo_modules\u0026previous-version\u003d1.79.2\u0026new-version\u003d1.79.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)\nYou can disable automated security fix PRs for this repo from the\n[Security Alerts\npage](https://github.com/apache/iceberg-go/network/alerts).\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": "2b83eed356d68fa99bd0f3bafde8880f7e096617",
      "tree": "ee147c54289854449b6008a3b044b01072efc69e",
      "parents": [
        "6e679fc689a81b439da751b54a1f7718ddede388"
      ],
      "author": {
        "name": "Tyler Rockwood",
        "email": "rockwood@redpanda.com",
        "time": "Thu Mar 19 12:05:30 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Mar 19 13:05:30 2026 -0400"
      },
      "message": "fix(table): don\u0027t always set schema.name-mapping.default (#803)\n\nIt seems Databricks Unity Catalog is unhappy with this, so don\u0027t set it\nby default and ask the caller if they are in the sophisticated method of\nsupplying their own DataFiles.\n\nFixes: https://github.com/apache/iceberg-go/issues/802"
    },
    {
      "commit": "6e679fc689a81b439da751b54a1f7718ddede388",
      "tree": "8eeec92118a5e677c4cb4f8bec491a871e651809",
      "parents": [
        "13cf142fe1b1067548a21dde56b0d5da5f220992"
      ],
      "author": {
        "name": "Tobias Pütz",
        "email": "tobias@minio.io",
        "time": "Thu Mar 19 17:30:38 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Mar 19 12:30:38 2026 -0400"
      },
      "message": "fix: remove unnecessary safe-guard (#775)\n\n`ArrowSchemaToIceberg` has a `hasIDs` branch which means it supports\nadd-files with field_ids now"
    },
    {
      "commit": "13cf142fe1b1067548a21dde56b0d5da5f220992",
      "tree": "723a7ea411ec8445a8cfd25c0b488ef2cf71024e",
      "parents": [
        "684205596d5c088c2d05823d4da70d49050d3f0e"
      ],
      "author": {
        "name": "Tobias Pütz",
        "email": "tobias@minio.io",
        "time": "Thu Mar 19 17:17:38 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Mar 19 12:17:38 2026 -0400"
      },
      "message": "feat(table): public write DataFile API (#776)\n\nThis exposes a `WriteRecords` function which enables users to write\nparquet files outside of a append transaction, this can be useful in\nconjunction with `ReplaceDataFilesWithDataFiles` or `AddDataFiles` for\nsomething like compaction or other rewrite operations."
    },
    {
      "commit": "684205596d5c088c2d05823d4da70d49050d3f0e",
      "tree": "68074b854e2badc4b5c8404a214c4e16f382d36c",
      "parents": [
        "55bdfbf836359142f7c010b0b80f0b7e06af2dca"
      ],
      "author": {
        "name": "Tyler Rockwood",
        "email": "rockwotj@gmail.com",
        "time": "Wed Mar 18 14:24:43 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Mar 18 15:24:43 2026 -0400"
      },
      "message": "feat(catalog): refresh oauth tokens (#793)\n\nThe rest catalog was using a fixed token for the lifetime of the\ncatalog. We need to refresh the token when the oauth server gives us an\nexpiration. This means the credential fetch needs to move into the\nroundtripper. Also, since we use the same http client for refreshing and\nmaking catalog requests, we add a context key to prevent recursion.\n\nFixes: #794"
    },
    {
      "commit": "55bdfbf836359142f7c010b0b80f0b7e06af2dca",
      "tree": "43c694889a857d630fb7bbf7731d67a899548cef",
      "parents": [
        "3c01a04602af53cb77e18c479aa3adfb654f9209"
      ],
      "author": {
        "name": "Tobias Pütz",
        "email": "tobias@minio.io",
        "time": "Tue Mar 17 18:18:27 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 17 13:18:27 2026 -0400"
      },
      "message": "feat(table): export StructLike and GetPartitionRecord (#791)\n\nPartitionRecord and GetPartitionRecord are the only way to go from a\nDataFile to something PartitionToPath accepts. Keeping them unexported\nforces external consumers to reimplement the same conversion.\n\nAlso deduplicates the manual record construction in the pos delete\nwriter."
    },
    {
      "commit": "3c01a04602af53cb77e18c479aa3adfb654f9209",
      "tree": "6f545935bb99e0fb398d19200132f683b2456a11",
      "parents": [
        "676d9dcfb1ff3fac866fb842fcb8c9537d5935f9"
      ],
      "author": {
        "name": "Tobias Pütz",
        "email": "tobias@minio.io",
        "time": "Tue Mar 17 17:56:56 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 17 12:56:56 2026 -0400"
      },
      "message": "feat(table): add Scan.ReadTasks for reading pre-planned file scan tasks (#781)\n\nThis extracts the read logic from ToArrowRecords as a shared readTasks\nmethod and exposes it as ReadTasks. This enables callers that already\nhave FileScanTasks to read them without re-planning.\n\nCurrently ToArrowRecords always goes through PlanFiles first. If you\u0027ve\nalready selected or filtered your tasks (e.g. for compaction, selective\nre-reads, or custom merge strategies), there\u0027s no way of using them\ndirectly."
    },
    {
      "commit": "676d9dcfb1ff3fac866fb842fcb8c9537d5935f9",
      "tree": "c50876a68d1c89a020478a417fc378ce2a80968f",
      "parents": [
        "de373a56ec8dae21860d868193799ac43cadf828"
      ],
      "author": {
        "name": "PranjalChaitanya",
        "email": "44535826+PranjalChaitanya@users.noreply.github.com",
        "time": "Tue Mar 17 12:56:07 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 17 12:56:07 2026 -0400"
      },
      "message": "feat: Implemented write-default v3 (#779)\n\nPart of #589\n\nThis PR implements support for write-default values when projecting\nArrow batches in `ToRequestedSchema`. If a column is not provided but\nthere is a `WriteDefault` specified in the schema, it will create a\ncolumn populated with the default value.\n\nTo generate the column, this PR uses the method `MakeArrayFromScalar()`.\nThis is similar to how\n[PyIceberg](https://github.com/apache/iceberg-python/blob/main/pyiceberg/io/pyarrow.py#L1998-L2009)\nhandles write-defaults.\n\nOne complication I ran into was converting Iceberg default values into\nArrow scalars. In the schema, WriteDefault is stored as any, which means\nthe concrete Go type information is lost at compile time. Iceberg\ndefault values are often stored using named Go types such as Date, Time,\nor Timestamp, which wrap primitive values like int32 or int64. Arrow’s\nscalar helpers (`MakeScalar`, `MakeScalarParam`) infer the scalar type\nfrom the Go value, and since these Iceberg types are not the same as\nArrow’s own types (such as `arrow.Date32`), Arrow may interpret them as\ngeneric numeric scalars instead of their intended logical types.\n\nFor example, an iceberg.Date may be interpreted as a generic integer\nrather than a date32 scalar. While the numeric value would still be\ncorrect, the resulting Arrow array would have the wrong logical type.\n\nJava and Python implementations don’t run into this issue in the same\nway. From what I can tell, Java\u0027s core writers do not seem to be using\nArrow. In Python, pa.scalar(value, type\u003d...) explicitly specifies the\nArrow type during scalar construction, so PyArrow does not need to infer\nthe type from the Python value.\n\nBecause Go stores the default as `any` in the schema, some runtime\ndispatch is required to normalize the value before constructing the\nArrow scalar. The implementation in this PR handles those cases to\nensure the resulting Arrow array matches the schema’s logical type.\n\nI added tests to test Write-Default across different iceberg types.\n\nIf there is a simpler or more idiomatic way to perform this conversion\nwithin the Arrow or Iceberg-Go codebase, I would be very open to\nchanging the implementation."
    }
  ],
  "next": "de373a56ec8dae21860d868193799ac43cadf828"
}
