)]}'
{
  "log": [
    {
      "commit": "ab69c48d525e09d230629d36c2468d9c528229fb",
      "tree": "30194058382fbffad8613ad692343a87629af8c8",
      "parents": [
        "8fdc370f078f640d96a3bbd54ae2a97f82348556"
      ],
      "author": {
        "name": "David Zbarsky",
        "email": "dzbarsky@gmail.com",
        "time": "Sat May 23 11:06:27 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat May 23 17:06:27 2026 +0200"
      },
      "message": "Add pahole and deps (#8980)"
    },
    {
      "commit": "8fdc370f078f640d96a3bbd54ae2a97f82348556",
      "tree": "8f47f4767aa3274b5ebdff754a714cdca0b74f92",
      "parents": [
        "7f2fb213badc4fe530f140bf932f337cf6277bed"
      ],
      "author": {
        "name": "Machine account for bazel-contrib",
        "email": "contrib@bazel.build",
        "time": "Sat May 23 03:01:09 2026 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat May 23 11:01:09 2026 +0200"
      },
      "message": "{rules_python,rules_python_gazelle_plugin}@1.9.1 (#8978)\n\nRelease:\nhttps://github.com/bazel-contrib/rules_python/releases/tag/1.9.1\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_\n\nCo-authored-by: aignas \u003c240938+aignas@users.noreply.github.com\u003e"
    },
    {
      "commit": "7f2fb213badc4fe530f140bf932f337cf6277bed",
      "tree": "b2387a3fa80e4a533e0a0517139066ab46ea5219",
      "parents": [
        "1a17fcb67c34cc2dc39b65a60fe4bc7a6a9c1499"
      ],
      "author": {
        "name": "Machine account for bazel-contrib",
        "email": "contrib@bazel.build",
        "time": "Sat May 23 00:47:37 2026 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat May 23 08:47:37 2026 +0200"
      },
      "message": "{rules_python,rules_python_gazelle_plugin,sphinxdocs}@2.0.2 (#8979)\n\nRelease:\nhttps://github.com/bazel-contrib/rules_python/releases/tag/2.0.2\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_\n\nCo-authored-by: aignas \u003c240938+aignas@users.noreply.github.com\u003e"
    },
    {
      "commit": "1a17fcb67c34cc2dc39b65a60fe4bc7a6a9c1499",
      "tree": "dbf9e003fdb194814f17701e30fef395aa893dfc",
      "parents": [
        "edc05c2e0df307f43ef70b17759624164a7b9dee"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri May 22 14:02:48 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 22 14:02:48 2026 -0400"
      },
      "message": "Bump step-security/harden-runner from 2.19.1 to 2.19.3 (#8955)\n\nBumps\n[step-security/harden-runner](https://github.com/step-security/harden-runner)\nfrom 2.19.1 to 2.19.3.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/step-security/harden-runner/releases\"\u003estep-security/harden-runner\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.19.3\u003c/h2\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDefault to audit mode when api-key missing with use-policy-store by\n\u003ca\nhref\u003d\"https://github.com/varunsh-coder\"\u003e\u003ccode\u003e@​varunsh-coder\u003c/code\u003e\u003c/a\u003e\nin \u003ca\nhref\u003d\"https://redirect.github.com/step-security/harden-runner/pull/665\"\u003estep-security/harden-runner#665\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/step-security/harden-runner/compare/v2.19.2...v2.19.3\"\u003ehttps://github.com/step-security/harden-runner/compare/v2.19.2...v2.19.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.19.2\u003c/h2\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate the Harden Runner agent for enterprise tier to use go 1.26\nand fix minor bugs.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca\nhref\u003d\"https://github.com/step-security/harden-runner/compare/v2.19.1...v2.19.2\"\u003ehttps://github.com/step-security/harden-runner/compare/v2.19.1...v2.19.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/step-security/harden-runner/commit/ab7a9404c0f3da075243ca237b5fac12c98deaa5\"\u003e\u003ccode\u003eab7a940\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/step-security/harden-runner/issues/665\"\u003e#665\u003c/a\u003e\nfrom step-security/fix/use-policy-store-default-audit\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/step-security/harden-runner/commit/ec41b783c27ed7f0db6855a6d9970abd4572858c\"\u003e\u003ccode\u003eec41b78\u003c/code\u003e\u003c/a\u003e\nDefault to audit mode when api-key missing with use-policy-store\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/step-security/harden-runner/commit/9ca718d3bf646d6534007c269a635b3e54cadf99\"\u003e\u003ccode\u003e9ca718d\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/step-security/harden-runner/issues/664\"\u003e#664\u003c/a\u003e\nfrom step-security/update-agent-v1.8.5\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/step-security/harden-runner/commit/1dee3df8d29f4225c582eee2ddb6053ca616c0df\"\u003e\u003ccode\u003e1dee3df\u003c/code\u003e\u003c/a\u003e\nUpdate agent to v1.8.5\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca\nhref\u003d\"https://github.com/step-security/harden-runner/compare/a5ad31d6a139d249332a2605b85202e8c0b78450...ab7a9404c0f3da075243ca237b5fac12c98deaa5\"\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\u003dstep-security/harden-runner\u0026package-manager\u003dgithub_actions\u0026previous-version\u003d2.19.1\u0026new-version\u003d2.19.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": "edc05c2e0df307f43ef70b17759624164a7b9dee",
      "tree": "662a8044839ce55fbf6e3d03dd67c66dd6c01e63",
      "parents": [
        "80d6a659b26edf368da8d509eb775c5b842391bb"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri May 22 14:02:28 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 22 14:02:28 2026 -0400"
      },
      "message": "Bump the all-pip group in /tools with 18 updates (#8956)\n\nBumps the all-pip group in /tools with 18 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [aiofile](https://github.com/mosquito/aiofile) | `3.9.0` | `3.11.1` |\n| [cachetools](https://github.com/tkem/cachetools) | `7.1.1` | `7.1.3` |\n| [certifi](https://github.com/certifi/python-certifi) | `2026.4.22` |\n`2026.5.20` |\n| [click](https://github.com/pallets/click) | `8.3.3` | `8.4.0` |\n| [cyclopts](https://github.com/BrianPugh/cyclopts) | `4.12.0` |\n`4.14.1` |\n| [fastmcp](https://github.com/PrefectHQ/fastmcp) | `3.2.4` | `3.3.1` |\n| [importlib-metadata](https://github.com/python/importlib_metadata) |\n`8.7.1` | `9.0.0` |\n| [jaraco-functools](https://github.com/jaraco/jaraco.functools) |\n`4.4.0` | `4.5.0` |\n| [jsonschema-path](https://github.com/p1c2u/jsonschema-path) | `0.4.6`\n| `0.5.0` |\n| [numpy](https://github.com/numpy/numpy) | `2.4.4` | `2.4.6` |\n|\n[opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python)\n| `1.41.1` | `1.42.0` |\n| [pathable](https://github.com/p1c2u/pathable) | `0.5.0` | `0.6.0` |\n| [python-multipart](https://github.com/Kludex/python-multipart) |\n`0.0.28` | `0.0.29` |\n| [requests](https://github.com/psf/requests) | `2.34.0` | `2.34.2` |\n| [rich-rst](https://github.com/wasi-master/rich-rst) | `1.3.2` |\n`2.0.1` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.46.0` | `0.47.0` |\n| [watchfiles](https://github.com/samuelcolvin/watchfiles) | `1.1.1` |\n`1.2.0` |\n| [zipp](https://github.com/jaraco/zipp) | `3.23.1` | `4.1.0` |\n\nUpdates `aiofile` from 3.9.0 to 3.11.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/mosquito/aiofile/releases\"\u003eaiofile\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.11.1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca\nhref\u003d\"https://github.com/mosquito/aiofile/compare/3.11.0...3.11.1\"\u003ehttps://github.com/mosquito/aiofile/compare/3.11.0...3.11.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.11.0\u003c/h2\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature/clone function by \u003ca\nhref\u003d\"https://github.com/mosquito\"\u003e\u003ccode\u003e@​mosquito\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/mosquito/aiofile/pull/86\"\u003emosquito/aiofile#86\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/mosquito/aiofile/compare/3.10.2...3.11.0\"\u003ehttps://github.com/mosquito/aiofile/compare/3.10.2...3.11.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.10.2\u003c/h2\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump setuptools from 75.9.1 to 78.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/mosquito/aiofile/pull/105\"\u003emosquito/aiofile#105\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003euse ruff and ty instead of pylama and mypy by \u003ca\nhref\u003d\"https://github.com/mosquito\"\u003e\u003ccode\u003e@​mosquito\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/mosquito/aiofile/pull/107\"\u003emosquito/aiofile#107\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot]\nmade their first contribution in \u003ca\nhref\u003d\"https://redirect.github.com/mosquito/aiofile/pull/105\"\u003emosquito/aiofile#105\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/mosquito/aiofile/compare/3.10.1...3.10.2\"\u003ehttps://github.com/mosquito/aiofile/compare/3.10.1...3.10.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.10.1\u003c/h2\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix KeyError when reading package metadata on Python 3.14 by \u003ca\nhref\u003d\"https://github.com/balloob\"\u003e\u003ccode\u003e@​balloob\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/mosquito/aiofile/pull/106\"\u003emosquito/aiofile#106\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/balloob\"\u003e\u003ccode\u003e@​balloob\u003c/code\u003e\u003c/a\u003e made\ntheir first contribution in \u003ca\nhref\u003d\"https://redirect.github.com/mosquito/aiofile/pull/106\"\u003emosquito/aiofile#106\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/mosquito/aiofile/compare/3.10.0...3.10.1\"\u003ehttps://github.com/mosquito/aiofile/compare/3.10.0...3.10.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.10.0\u003c/h2\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature/added fsync fdsync and flush by \u003ca\nhref\u003d\"https://github.com/mosquito\"\u003e\u003ccode\u003e@​mosquito\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/mosquito/aiofile/pull/85\"\u003emosquito/aiofile#85\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd missing offset in iter_chunked by \u003ca\nhref\u003d\"https://github.com/honglei\"\u003e\u003ccode\u003e@​honglei\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/mosquito/aiofile/pull/87\"\u003emosquito/aiofile#87\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove the performance of the LineReader by reducing the number of\nsystem calls whilst containing the tail size by \u003ca\nhref\u003d\"https://github.com/HaukurPall\"\u003e\u003ccode\u003e@​HaukurPall\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/mosquito/aiofile/pull/93\"\u003emosquito/aiofile#93\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump and actualize python versions by \u003ca\nhref\u003d\"https://github.com/mosquito\"\u003e\u003ccode\u003e@​mosquito\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/mosquito/aiofile/pull/95\"\u003emosquito/aiofile#95\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInclude tests in sdist by \u003ca\nhref\u003d\"https://github.com/nE0sIghT\"\u003e\u003ccode\u003e@​nE0sIghT\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/mosquito/aiofile/pull/99\"\u003emosquito/aiofile#99\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eProject-URL\u003c/code\u003e metadata field instead of deprecated\n\u003ccode\u003eHome-page\u003c/code\u003e by \u003ca\nhref\u003d\"https://github.com/nE0sIghT\"\u003e\u003ccode\u003e@​nE0sIghT\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/mosquito/aiofile/pull/98\"\u003emosquito/aiofile#98\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMigrate to uv by \u003ca\nhref\u003d\"https://github.com/mosquito\"\u003e\u003ccode\u003e@​mosquito\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/mosquito/aiofile/pull/104\"\u003emosquito/aiofile#104\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/honglei\"\u003e\u003ccode\u003e@​honglei\u003c/code\u003e\u003c/a\u003e made\ntheir first contribution in \u003ca\nhref\u003d\"https://redirect.github.com/mosquito/aiofile/pull/87\"\u003emosquito/aiofile#87\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/HaukurPall\"\u003e\u003ccode\u003e@​HaukurPall\u003c/code\u003e\u003c/a\u003e made\ntheir first contribution in \u003ca\nhref\u003d\"https://redirect.github.com/mosquito/aiofile/pull/93\"\u003emosquito/aiofile#93\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/nE0sIghT\"\u003e\u003ccode\u003e@​nE0sIghT\u003c/code\u003e\u003c/a\u003e\nmade their first contribution in \u003ca\nhref\u003d\"https://redirect.github.com/mosquito/aiofile/pull/99\"\u003emosquito/aiofile#99\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/mosquito/aiofile/compare/3.8.6...3.10.0\"\u003ehttps://github.com/mosquito/aiofile/compare/3.8.6...3.10.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca\nhref\u003d\"https://github.com/mosquito/aiofile/commits/3.11.1\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cachetools` from 7.1.1 to 7.1.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools\u0027s\nchangelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev7.1.3 (2026-05-18)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMinor type stub improvements.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate build environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev7.1.2 (2026-05-16)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMinor type stub improvements.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMinor documentation improvements.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eModernize build environment.\u003c/p\u003e\n\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/tkem/cachetools/commit/16952edb1eb2d2ced7601e12db722008e5156912\"\u003e\u003ccode\u003e16952ed\u003c/code\u003e\u003c/a\u003e\nRelease v7.1.3.\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/tkem/cachetools/commit/92dd756b93813d1ddfe70893e9c219342a52e19a\"\u003e\u003ccode\u003e92dd756\u003c/code\u003e\u003c/a\u003e\nPrepare v7.1.3.\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/tkem/cachetools/commit/ced08f52ef792a010b8171715c7842da4e11b9ac\"\u003e\u003ccode\u003eced08f5\u003c/code\u003e\u003c/a\u003e\nImprove cachetools.func type stubs.\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/tkem/cachetools/commit/d809d7be5a222effd3663c33baaaee3802972daa\"\u003e\u003ccode\u003ed809d7b\u003c/code\u003e\u003c/a\u003e\nUpdate build environment.\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/tkem/cachetools/commit/c84b5e5be3d33a32d33f0988b524fb86de1e44f2\"\u003e\u003ccode\u003ec84b5e5\u003c/code\u003e\u003c/a\u003e\nRelease v7.1.2.\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/tkem/cachetools/commit/39ad61c1db56600fe903f3c4216996c491e775bf\"\u003e\u003ccode\u003e39ad61c\u003c/code\u003e\u003c/a\u003e\nPrepare v7.1.2.\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/tkem/cachetools/commit/ed107816b6787d74f21684f6614d4fbbbbb935de\"\u003e\u003ccode\u003eed10781\u003c/code\u003e\u003c/a\u003e\nUpdate Copilot instructions.\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/tkem/cachetools/commit/c624ceb350d50bb733ccaa706613495999b9479f\"\u003e\u003ccode\u003ec624ceb\u003c/code\u003e\u003c/a\u003e\nFix \u003ca\nhref\u003d\"https://redirect.github.com/tkem/cachetools/issues/395\"\u003e#395\u003c/a\u003e:\nDocument FIFOCache update behavior.\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/tkem/cachetools/commit/1ddec068633641895b6926dcea27276d5149c038\"\u003e\u003ccode\u003e1ddec06\u003c/code\u003e\u003c/a\u003e\nFix/396 (\u003ca\nhref\u003d\"https://redirect.github.com/tkem/cachetools/issues/398\"\u003e#398\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/tkem/cachetools/commit/b91818c46624b3be3f4b321426061ba50c08a30e\"\u003e\u003ccode\u003eb91818c\u003c/code\u003e\u003c/a\u003e\nDrop MANIFEST.in.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/tkem/cachetools/compare/v7.1.1...v7.1.3\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2026.4.22 to 2026.5.20\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/certifi/python-certifi/commit/d7ea151afc2ce6bef0555b9349902bd867e928dd\"\u003e\u003ccode\u003ed7ea151\u003c/code\u003e\u003c/a\u003e\n2026.05.20 (\u003ca\nhref\u003d\"https://redirect.github.com/certifi/python-certifi/issues/413\"\u003e#413\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca\nhref\u003d\"https://github.com/certifi/python-certifi/compare/2026.04.22...2026.05.20\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.3.3 to 8.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/pallets/click/releases\"\u003eclick\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.4.0\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.4.0 feature release. A feature release may\ninclude new features, remove previously deprecated code, add new\ndeprecation, or introduce potentially breaking changes.\u003c/p\u003e\n\u003cp\u003eWe encourage everyone to upgrade. You can read more about our \u003ca\nhref\u003d\"https://palletsprojects.com/versions\"\u003eVersion Support Policy\u003c/a\u003e\non our website.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca\nhref\u003d\"https://pypi.org/project/click/8.4.0/\"\u003ehttps://pypi.org/project/click/8.4.0/\u003c/a\u003e\nChanges: \u003ca\nhref\u003d\"https://click.palletsprojects.com/page/changes/#version-8-4-0\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-4-0\u003c/a\u003e\nMilestone \u003ca\nhref\u003d\"https://github.com/pallets/click/milestone/30\"\u003ehttps://github.com/pallets/click/milestone/30\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eParamType\u003c/code\u003e typing improvements. \u003ca\nhref\u003d\"https://redirect.github.com/pallets/click/issues/3371\"\u003e#3371\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:class:\u003ccode\u003eParamType\u003c/code\u003e is now a generic abstract base class,\nparameterized by its converted value type.\u003c/li\u003e\n\u003cli\u003e:meth:\u003ccode\u003e~ParamType.convert\u003c/code\u003e return types are narrowed on\nall\nconcrete types (\u003ccode\u003estr\u003c/code\u003e for :class:\u003ccode\u003eSTRING\u003c/code\u003e,\n\u003ccode\u003eint\u003c/code\u003e for\n:class:\u003ccode\u003eINT\u003c/code\u003e, etc.).\u003c/li\u003e\n\u003cli\u003e:meth:\u003ccode\u003e~ParamType.to_info_dict\u003c/code\u003e returns specific\n:class:\u003ccode\u003e~typing.TypedDict\u003c/code\u003e subclasses instead of\n\u003ccode\u003edict[str, Any]\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e:class:\u003ccode\u003eCompositeParamType\u003c/code\u003e and the number-range base are\nnow\ngeneric with abstract methods.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRefactor \u003ccode\u003econvert_type\u003c/code\u003e to extract type inference into a\nprivate\n\u003ccode\u003e_guess_type\u003c/code\u003e helper, and add\n:func:\u003ccode\u003etyping.overload\u003c/code\u003e signatures.\n\u003ca\nhref\u003d\"https://redirect.github.com/pallets/click/issues/3372\"\u003e#3372\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eParameter\u003c/code\u003e typing improvements. \u003ca\nhref\u003d\"https://redirect.github.com/pallets/click/issues/2805\"\u003e#2805\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:class:\u003ccode\u003eParameter\u003c/code\u003e is now an abstract base class, making\nexplicit\nthat it cannot be instantiated directly.\u003c/li\u003e\n\u003cli\u003e:attr:\u003ccode\u003eParameter.name\u003c/code\u003e is now \u003ccode\u003estr\u003c/code\u003e instead of\n\u003ccode\u003estr | None\u003c/code\u003e.\nWhen \u003ccode\u003eexpose_value\u003dFalse\u003c/code\u003e, the name is set to\n\u003ccode\u003e\u0026quot;\u0026quot;\u003c/code\u003e instead\nof \u003ccode\u003eNone\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003ectx\u003c/code\u003e parameter of\n:meth:\u003ccode\u003eParameter.get_error_hint\u003c/code\u003e is now\ntyped as \u003ccode\u003eContext | None\u003c/code\u003e, matching the runtime\nbehavior.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSplit string values from \u003ccode\u003edefault_map\u003c/code\u003e for parameters with\n\u003ccode\u003enargs \u0026gt; 1\u003c/code\u003e\nor :class:\u003ccode\u003eTuple\u003c/code\u003e type, matching environment variable\nbehavior.\n\u003ca\nhref\u003d\"https://redirect.github.com/pallets/click/issues/2745\"\u003e#2745\u003c/a\u003e\n\u003ca\nhref\u003d\"https://redirect.github.com/pallets/click/issues/3364\"\u003e#3364\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAuto-detect \u003ccode\u003etype\u003dUNPROCESSED\u003c/code\u003e for \u003ccode\u003eflag_value\u003c/code\u003e\nof non-basic types\n(not \u003ccode\u003estr\u003c/code\u003e, \u003ccode\u003eint\u003c/code\u003e, \u003ccode\u003efloat\u003c/code\u003e, or\n\u003ccode\u003ebool\u003c/code\u003e), so programmer-provided\nPython objects like classes and enum members are passed through\nunchanged\ninstead of being stringified. Previously\n\u003ccode\u003etype\u003dclick.UNPROCESSED\u003c/code\u003e had\nto be set explicitly. \u003ca\nhref\u003d\"https://redirect.github.com/pallets/click/issues/2012\"\u003e#2012\u003c/a\u003e\n\u003ca\nhref\u003d\"https://redirect.github.com/pallets/click/issues/3363\"\u003e#3363\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe error hint now uses \u003ccode\u003eCommand.get_help_option_names\u003c/code\u003e to\npick\nnon-shadowed help option names, so \u003ccode\u003eTry \u0027... -h\u0027\u003c/code\u003e no longer\npoints to a\nsubcommand option that shadows \u003ccode\u003e-h\u003c/code\u003e. All surviving names are\nshown\n(\u003ccode\u003e-h/--help\u003c/code\u003e). \u003ca\nhref\u003d\"https://redirect.github.com/pallets/click/issues/2790\"\u003e#2790\u003c/a\u003e\n\u003ca\nhref\u003d\"https://redirect.github.com/pallets/click/issues/3208\"\u003e#3208\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix readline functionality on non-Windows platforms. Prompt text is\nnow\npassed directly to readline instead of being printed separately,\nallowing\nproper backspace, line editing, and line wrapping behavior. \u003ca\nhref\u003d\"https://redirect.github.com/pallets/click/issues/2968\"\u003e#2968\u003c/a\u003e\u003c/p\u003e\n\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/pallets/click/blob/main/CHANGES.rst\"\u003eclick\u0027s\nchangelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.4.0\u003c/h2\u003e\n\u003cp\u003eReleased 2026-05-17\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e:class:\u003ccode\u003eParamType\u003c/code\u003e typing improvements.\n:pr:\u003ccode\u003e3371\u003c/code\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:class:\u003ccode\u003eParamType\u003c/code\u003e is now a generic abstract base class,\nparameterized by its converted value type.\u003c/li\u003e\n\u003cli\u003e:meth:\u003ccode\u003e~ParamType.convert\u003c/code\u003e return types are narrowed on\nall\nconcrete types (\u003ccode\u003estr\u003c/code\u003e for :class:\u003ccode\u003eSTRING\u003c/code\u003e,\n\u003ccode\u003eint\u003c/code\u003e for\n:class:\u003ccode\u003eINT\u003c/code\u003e, etc.).\u003c/li\u003e\n\u003cli\u003e:meth:\u003ccode\u003e~ParamType.to_info_dict\u003c/code\u003e returns specific\n:class:\u003ccode\u003e~typing.TypedDict\u003c/code\u003e subclasses instead of\n\u003ccode\u003edict[str, Any]\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e:class:\u003ccode\u003eCompositeParamType\u003c/code\u003e and the number-range base are\nnow\ngeneric with abstract methods.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRefactor \u003ccode\u003econvert_type\u003c/code\u003e to extract type inference into a\nprivate\n\u003ccode\u003e_guess_type\u003c/code\u003e helper, and add\n:func:\u003ccode\u003etyping.overload\u003c/code\u003e signatures.\n:pr:\u003ccode\u003e3372\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e:class:\u003ccode\u003eParameter\u003c/code\u003e typing improvements.\n:pr:\u003ccode\u003e2805\u003c/code\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:class:\u003ccode\u003eParameter\u003c/code\u003e is now an abstract base class, making\nexplicit\nthat it cannot be instantiated directly.\u003c/li\u003e\n\u003cli\u003e:attr:\u003ccode\u003eParameter.name\u003c/code\u003e is now \u003ccode\u003estr\u003c/code\u003e instead of\n\u003ccode\u003estr | None\u003c/code\u003e.\nWhen \u003ccode\u003eexpose_value\u003dFalse\u003c/code\u003e, the name is set to\n\u003ccode\u003e\u0026quot;\u0026quot;\u003c/code\u003e instead\nof \u003ccode\u003eNone\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003ectx\u003c/code\u003e parameter of\n:meth:\u003ccode\u003eParameter.get_error_hint\u003c/code\u003e is now\ntyped as \u003ccode\u003eContext | None\u003c/code\u003e, matching the runtime\nbehavior.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSplit string values from \u003ccode\u003edefault_map\u003c/code\u003e for parameters with\n\u003ccode\u003enargs \u0026gt; 1\u003c/code\u003e\nor :class:\u003ccode\u003eTuple\u003c/code\u003e type, matching environment variable\nbehavior.\n:issue:\u003ccode\u003e2745\u003c/code\u003e :pr:\u003ccode\u003e3364\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAuto-detect \u003ccode\u003etype\u003dUNPROCESSED\u003c/code\u003e for \u003ccode\u003eflag_value\u003c/code\u003e\nof non-basic types\n(not \u003ccode\u003estr\u003c/code\u003e, \u003ccode\u003eint\u003c/code\u003e, \u003ccode\u003efloat\u003c/code\u003e, or\n\u003ccode\u003ebool\u003c/code\u003e), so programmer-provided\nPython objects like classes and enum members are passed through\nunchanged\ninstead of being stringified. Previously\n\u003ccode\u003etype\u003dclick.UNPROCESSED\u003c/code\u003e had\nto be set explicitly. :issue:\u003ccode\u003e2012\u003c/code\u003e :pr:\u003ccode\u003e3363\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe error hint now uses\n:meth:\u003ccode\u003eCommand.get_help_option_names\u003c/code\u003e to pick\nnon-shadowed help option names, so \u003ccode\u003eTry \u0027... -h\u0027\u003c/code\u003e no longer\npoints to a\nsubcommand option that shadows \u003ccode\u003e-h\u003c/code\u003e. All surviving names are\nshown\n(\u003ccode\u003e-h/--help\u003c/code\u003e). :issue:\u003ccode\u003e2790\u003c/code\u003e\n:pr:\u003ccode\u003e3208\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix readline functionality on non-Windows platforms. Prompt text is\nnow\npassed directly to readline instead of being printed separately,\nallowing\nproper backspace, line editing, and line wrapping behavior.\n:issue:\u003ccode\u003e2968\u003c/code\u003e\n:pr:\u003ccode\u003e2969\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse :func:\u003ccode\u003eos.startfile\u003c/code\u003e on Windows to open URLs in\n:func:\u003ccode\u003eopen_url\u003c/code\u003e,\nreplacing the \u003ccode\u003estart\u003c/code\u003e built-in which cannot be invoked\nwithout\n\u003ccode\u003eshell\u003dTrue\u003c/code\u003e. :issue:\u003ccode\u003e3164\u003c/code\u003e\n:pr:\u003ccode\u003e3186\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix Fish shell completion errors when option help text contains\nnewlines.\n:issue:\u003ccode\u003e3043\u003c/code\u003e :pr:\u003ccode\u003e3126\u003c/code\u003e\u003c/p\u003e\n\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/pallets/click/commit/41f410fb7528305d7e87c8cfa704f6c2456f57fc\"\u003e\u003ccode\u003e41f410f\u003c/code\u003e\u003c/a\u003e\nRelease 8.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/pallets/click/commit/e3e69e3bf8d749ac1a632f2ece4d38ec7f6588f5\"\u003e\u003ccode\u003ee3e69e3\u003c/code\u003e\u003c/a\u003e\nAdd type annotations for instance attributes in \u003ccode\u003eutils\u003c/code\u003e (\u003ca\nhref\u003d\"https://redirect.github.com/pallets/click/issues/3422\"\u003e#3422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/pallets/click/commit/3bb230dcd5d751f8605b46e9df5a541639d5fd4e\"\u003e\u003ccode\u003e3bb230d\u003c/code\u003e\u003c/a\u003e\nWIP: Fix \u003ccode\u003eHelpFormatter.write_usage\u003c/code\u003e producing spurious\ncharacters (\u003ca\nhref\u003d\"https://redirect.github.com/pallets/click/issues/3434\"\u003e#3434\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/pallets/click/commit/63274a79d08fdc5c19220696144489f7144a8547\"\u003e\u003ccode\u003e63274a7\u003c/code\u003e\u003c/a\u003e\n\u003ccode\u003eclick.get_pager_file\u003c/code\u003e: add tests (\u003ca\nhref\u003d\"https://redirect.github.com/pallets/click/issues/1572\"\u003e#1572\u003c/a\u003e\nfollowup) (\u003ca\nhref\u003d\"https://redirect.github.com/pallets/click/issues/3405\"\u003e#3405\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/pallets/click/commit/0551bf53588ae87f462d336f24f853a156fefe3a\"\u003e\u003ccode\u003e0551bf5\u003c/code\u003e\u003c/a\u003e\nFix \u003ccode\u003eHelpFormatter.write_usage\u003c/code\u003e producing spurious\ncharacters\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/pallets/click/commit/fc41aa1d0b62494eb93e92ff3929601221e3abf4\"\u003e\u003ccode\u003efc41aa1\u003c/code\u003e\u003c/a\u003e\nApply class-body annotations to \u003ccode\u003eKeepOpenFile\u003c/code\u003e for\nconsistency\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/pallets/click/commit/b761eda3bad977ec2f485451d85fd8ec365f0bf4\"\u003e\u003ccode\u003eb761eda\u003c/code\u003e\u003c/a\u003e\nSkip some tests on Windows\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/pallets/click/commit/98302ac4f49e443a48abd3fbb95c86202b89547d\"\u003e\u003ccode\u003e98302ac\u003c/code\u003e\u003c/a\u003e\nCheck \u003ccode\u003ePAGER\u003c/code\u003e usage, color preservation and edge-cases\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/pallets/click/commit/dbdae170879d460e78963f8af35c5cb9c5b86e89\"\u003e\u003ccode\u003edbdae17\u003c/code\u003e\u003c/a\u003e\nFix documentation\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/pallets/click/commit/1aa2d53d63ff68bf14b35931177aac9270e39713\"\u003e\u003ccode\u003e1aa2d53\u003c/code\u003e\u003c/a\u003e\nRedesigned tests and get_pager_file branching to be more clear and not\nset color\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/pallets/click/compare/8.3.3...8.4.0\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cyclopts` from 4.12.0 to 4.14.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/BrianPugh/cyclopts/releases\"\u003ecyclopts\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.14.1\u003c/h2\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003euse trusted publishing when uploading to pypi by \u003ca\nhref\u003d\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/BrianPugh/cyclopts/pull/812\"\u003eBrianPugh/cyclopts#812\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/BrianPugh/cyclopts/compare/v4.14.0...v4.14.1\"\u003ehttps://github.com/BrianPugh/cyclopts/compare/v4.14.0...v4.14.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.14.0\u003c/h2\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIncrease rich-rst version constraint upper-bound from\n\u003ccode\u003e\u0026lt;2.0.0\u003c/code\u003e to \u003ccode\u003e\u0026lt;3.0.0\u003c/code\u003e by \u003ca\nhref\u003d\"https://github.com/germa89\"\u003e\u003ccode\u003e@​germa89\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/BrianPugh/cyclopts/pull/810\"\u003eBrianPugh/cyclopts#810\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/germa89\"\u003e\u003ccode\u003e@​germa89\u003c/code\u003e\u003c/a\u003e made\ntheir first contribution in \u003ca\nhref\u003d\"https://redirect.github.com/BrianPugh/cyclopts/pull/810\"\u003eBrianPugh/cyclopts#810\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/BrianPugh/cyclopts/compare/v4.13.0...v4.14.0\"\u003ehttps://github.com/BrianPugh/cyclopts/compare/v4.13.0...v4.14.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.13.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFriendlier error message for enum/literal choices by \u003ca\nhref\u003d\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/BrianPugh/cyclopts/pull/806\"\u003eBrianPugh/cyclopts#806\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd more rich formatting to \u003ccode\u003eCycloptsError\u003c/code\u003e printing. by\n\u003ca href\u003d\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in\n\u003ca\nhref\u003d\"https://redirect.github.com/BrianPugh/cyclopts/pull/808\"\u003eBrianPugh/cyclopts#808\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/BrianPugh/cyclopts/compare/v4.12.0...v4.13.0\"\u003ehttps://github.com/BrianPugh/cyclopts/compare/v4.12.0...v4.13.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/BrianPugh/cyclopts/commit/bc3493e7fc73cb84c75713f300929b67c112b515\"\u003e\u003ccode\u003ebc3493e\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/BrianPugh/cyclopts/issues/812\"\u003e#812\u003c/a\u003e\nfrom BrianPugh/trusted-publishing\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/BrianPugh/cyclopts/commit/b4397be0c5edc0356431df5a26f7920b47d670c3\"\u003e\u003ccode\u003eb4397be\u003c/code\u003e\u003c/a\u003e\nuse trusted publishing when uploading to pypi\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/BrianPugh/cyclopts/commit/9c4102d7623b45b7ed120291727d089aad619c0a\"\u003e\u003ccode\u003e9c4102d\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/BrianPugh/cyclopts/issues/810\"\u003e#810\u003c/a\u003e\nfrom germa89/chore/increase-rich-rst-dependency-limit\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/BrianPugh/cyclopts/commit/665183305fb06925ad6b8bef40cbe06a42e43fe4\"\u003e\u003ccode\u003e6651833\u003c/code\u003e\u003c/a\u003e\nset rich-rst upper limit to \u0026lt;3.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/BrianPugh/cyclopts/commit/d0415facd05f662ac35a277065b21b5e5bbd94f6\"\u003e\u003ccode\u003ed0415fa\u003c/code\u003e\u003c/a\u003e\nbump rich-rst version constraint to \u0026lt;2.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/BrianPugh/cyclopts/commit/450e7ebf3164d20c4c556034252ef0d416a69536\"\u003e\u003ccode\u003e450e7eb\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/BrianPugh/cyclopts/issues/808\"\u003e#808\u003c/a\u003e\nfrom BrianPugh/more-rich-in-errors\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/BrianPugh/cyclopts/commit/efa1b9bce4ed38fb5558a8b0400e1ec32636890c\"\u003e\u003ccode\u003eefa1b9b\u003c/code\u003e\u003c/a\u003e\ndial back the rich colors a lil bit\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/BrianPugh/cyclopts/commit/129685e55167070802b57498b1224f39c5301a18\"\u003e\u003ccode\u003e129685e\u003c/code\u003e\u003c/a\u003e\ncleanup rich duplication\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/BrianPugh/cyclopts/commit/58a8f777419c7278e410f0dbfc1f1111090d5da2\"\u003e\u003ccode\u003e58a8f77\u003c/code\u003e\u003c/a\u003e\ndon\u0027t quote options starting with a dash\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/BrianPugh/cyclopts/commit/c026dad7214ea99e6cfc83727e9a61a7f58d89c7\"\u003e\u003ccode\u003ec026dad\u003c/code\u003e\u003c/a\u003e\nassert invariant\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/BrianPugh/cyclopts/compare/v4.12.0...v4.14.1\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastmcp` from 3.2.4 to 3.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/PrefectHQ/fastmcp/releases\"\u003efastmcp\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.3.1: Loop There It Is\u003c/h2\u003e\n\u003cp\u003eFastMCP 3.3.1 is a hotfix for the 3.3 packaging split. Clean installs\nof 3.3.0 could fail on standalone component imports like \u003ccode\u003efrom\nfastmcp.tools import tool\u003c/code\u003e because component modules reached auth\nand task primitives through \u003ccode\u003efastmcp.server\u003c/code\u003e, pulling in the\nserver/provider stack and exposing a circular import.\u003c/p\u003e\n\u003cp\u003eComponent-level auth and task primitives now live in lightweight\nutility modules, with the old server import paths preserved as\ncompatibility re-exports. Component imports stay lightweight, existing\nserver-facing imports continue to work, and the release also includes\nsmall docs corrections from the 3.3 rollout.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003ch3\u003eFixes 🐞\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix(docs): use valid FA icon on client-only package page by \u003ca\nhref\u003d\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/PrefectHQ/fastmcp/pull/4139\"\u003ePrefectHQ/fastmcp#4139\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDecouple component imports from server by \u003ca\nhref\u003d\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/PrefectHQ/fastmcp/pull/4150\"\u003ePrefectHQ/fastmcp#4150\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/PrefectHQ/fastmcp/compare/v3.3.0...v3.3.1\"\u003ehttps://github.com/PrefectHQ/fastmcp/compare/v3.3.0...v3.3.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev3.3.0: Slim Reaper\u003c/h2\u003e\n\u003cp\u003eFastMCP 3.3 ships \u003ccode\u003efastmcp-slim\u003c/code\u003e, a new lightweight\ndistribution that separates the client from the server stack. It also\ncloses out a meaningful backlog of security hardening, observability\nimprovements, and auth additions that accumulated through the 3.2\ncycle.\u003c/p\u003e\n\u003ch2\u003efastmcp-slim\u003c/h2\u003e\n\u003cp\u003eThe full FastMCP package pulls in Starlette, Uvicorn, and the rest of\nthe server machinery — necessary for running a server, but wasteful if\nyou\u0027re writing a client, a script, or an agent that just needs to talk\nto MCP. \u003ccode\u003efastmcp-slim\u003c/code\u003e is a dependency-light distribution\nthat ships the client and transport layer without any of that.\u003c/p\u003e\n\u003cp\u003eThe import namespace is unchanged:\u003c/p\u003e\n\u003cpre lang\u003d\"python\"\u003e\u003ccode\u003efrom fastmcp import Client\n\u003cp\u003easync with Client(\u0026quot;\u003ca\nhref\u003d\"https://example.com/mcp\"\u003ehttps://example.com/mcp\u003c/a\u003e\u0026quot;) as\nclient:\nresult \u003d await client.call_tool(\u0026quot;my_tool\u0026quot;, {\u0026quot;arg\u0026quot;:\n\u0026quot;value\u0026quot;})\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eInstall \u003ccode\u003efastmcp-slim[client]\u003c/code\u003e anywhere you want FastMCP\u0027s\nclient without the server footprint — CI environments, lightweight\nagents, library dependencies that shouldn\u0027t force Uvicorn on downstream\nusers.\u003c/p\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cp\u003eThe OAuth proxy received three hardening upgrades. Silent consent is\nnow guarded against AS-in-the-middle attacks — a malicious authorization\nserver can no longer silently approve a consent it wasn\u0027t meant to\nhandle. Redirect URI allowlist matching now rejects dot-segment paths\n(\u003ccode\u003e/../\u003c/code\u003e, \u003ccode\u003e/./\u003c/code\u003e) that could otherwise bypass prefix\nchecks. And \u003ccode\u003eResponseCachingMiddleware\u003c/code\u003e partitions its cache\nby access token, closing a gap where different users could see each\nother\u0027s cached responses.\u003c/p\u003e\n\u003ch2\u003eAuth\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003eAzureB2CProvider\u003c/code\u003e adds first-class support for Azure AD\nB2C user flows. The OCI provider is fixed for 3.x installs. And\n\u003ccode\u003eOAuthProxy\u003c/code\u003e gains a public \u003ccode\u003eupdate_scopes()\u003c/code\u003e API\nfor updating the proxy\u0027s required scopes after initialization — useful\nfor servers that determine scope requirements at runtime.\u003c/p\u003e\n\u003ch2\u003eObservability\u003c/h2\u003e\n\u003cp\u003eOTEL instrumentation is now fully compliant with MCP semantic\nconventions. List operations (\u003ccode\u003elist_tools\u003c/code\u003e,\n\u003ccode\u003elist_resources\u003c/code\u003e, \u003ccode\u003elist_prompts\u003c/code\u003e,\n\u003ccode\u003elist_resource_templates\u003c/code\u003e) are instrumented, and delegate\nspans on proxy servers are enriched with backend attributes.\u003c/p\u003e\n\u003ch2\u003eThread Affinity\u003c/h2\u003e\n\u003cp\u003eSync tools run in a thread pool by default. If your tool holds\nthread-local state or is bound to a specific thread (UI frameworks, some\ndatabase drivers), you can now opt out:\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\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/PrefectHQ/fastmcp/commit/d8dcc273cac9f6f17889a1b60adbdc654f948a50\"\u003e\u003ccode\u003ed8dcc27\u003c/code\u003e\u003c/a\u003e\nDecouple component imports from server (\u003ca\nhref\u003d\"https://redirect.github.com/PrefectHQ/fastmcp/issues/4150\"\u003e#4150\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/PrefectHQ/fastmcp/commit/255e3e491082d8fbaeb3ccf25be6983cbab8b657\"\u003e\u003ccode\u003e255e3e4\u003c/code\u003e\u003c/a\u003e\nfix(docs): use valid FA icon on client-only package page (\u003ca\nhref\u003d\"https://redirect.github.com/PrefectHQ/fastmcp/issues/4139\"\u003e#4139\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/PrefectHQ/fastmcp/commit/73df4dcaeeba6f985607f633786d38db6caf23f7\"\u003e\u003ccode\u003e73df4dc\u003c/code\u003e\u003c/a\u003e\nchore: Update SDK documentation (\u003ca\nhref\u003d\"https://redirect.github.com/PrefectHQ/fastmcp/issues/4096\"\u003e#4096\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/PrefectHQ/fastmcp/commit/ee48a0fd6e077e1c32e996f7b51fd442e31c514f\"\u003e\u003ccode\u003eee48a0f\u003c/code\u003e\u003c/a\u003e\nRefine fastmcp-slim packaging (\u003ca\nhref\u003d\"https://redirect.github.com/PrefectHQ/fastmcp/issues/4125\"\u003e#4125\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/PrefectHQ/fastmcp/commit/bb4894d2159cd10f0c07f038db9c56b14fb99586\"\u003e\u003ccode\u003ebb4894d\u003c/code\u003e\u003c/a\u003e\nAdd fastmcp-slim for client-only installs (\u003ca\nhref\u003d\"https://redirect.github.com/PrefectHQ/fastmcp/issues/4122\"\u003e#4122\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/PrefectHQ/fastmcp/commit/8209093871af25bc3ceb50bfbcec317632218afd\"\u003e\u003ccode\u003e8209093\u003c/code\u003e\u003c/a\u003e\nfix(http): terminate active streamable-HTTP transports before lifespan\nshutdo...\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/PrefectHQ/fastmcp/commit/cf59a4511ff1980fd932215ef886e665c829bdbf\"\u003e\u003ccode\u003ecf59a45\u003c/code\u003e\u003c/a\u003e\nFix OCI Provider issue in 3.x version. Add OCI auth provider example …\n(\u003ca\nhref\u003d\"https://redirect.github.com/PrefectHQ/fastmcp/issues/4116\"\u003e#4116\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/PrefectHQ/fastmcp/commit/89b99ecfb987781735295869d2e3d620dde7af4c\"\u003e\u003ccode\u003e89b99ec\u003c/code\u003e\u003c/a\u003e\nfix(proxy): fall back to live identifier for backend_* span attributes\n(\u003ca\nhref\u003d\"https://redirect.github.com/PrefectHQ/fastmcp/issues/4109\"\u003e#4109\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/PrefectHQ/fastmcp/commit/310314cf149a18d0a76e5703ee98f80ffb035171\"\u003e\u003ccode\u003e310314c\u003c/code\u003e\u003c/a\u003e\nfix: cli option --no-banner is NOT passed to cli but server-spec\nin-correctly...\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/PrefectHQ/fastmcp/commit/28722f846a0319913a4a7b67dd65131d615214b6\"\u003e\u003ccode\u003e28722f8\u003c/code\u003e\u003c/a\u003e\nfix: drop exc_info for expected tool failures, remove unreachable\nValidationE...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/PrefectHQ/fastmcp/compare/v3.2.4...v3.3.1\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `importlib-metadata` from 8.7.1 to 9.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/python/importlib_metadata/blob/main/NEWS.rst\"\u003eimportlib-metadata\u0027s\nchangelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev9.0.0\u003c/h1\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eMetadataNotFound\u003c/code\u003e (subclass of\n\u003ccode\u003eFileNotFoundError\u003c/code\u003e) and updated\n\u003ccode\u003eDistribution.metadata\u003c/code\u003e/\u003ccode\u003emetadata()\u003c/code\u003e to raise it\nwhen the metadata files are missing instead of returning\n\u003ccode\u003eNone\u003c/code\u003e\u003ccode\u003epython/cpython#143387\u003c/code\u003e\u003ca\nhref\u003d\"https://redirect.github.com/python/importlib_metadata/issues/532\"\u003e#532\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev8.9.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epython/cpython#110937\u003c/code\u003e\u003ca\nhref\u003d\"https://redirect.github.com/python/cpython/issues/140141\"\u003epython/cpython#140141\u003c/a\u003e,\n\u003ca\nhref\u003d\"https://redirect.github.com/python/cpython/issues/143658\"\u003epython/cpython#143658\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev8.8.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved Python 3.9 compatibility.\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/python/importlib_metadata/commit/a9f883fef337c667a81a987bc0cbc0dbb43b2bfe\"\u003e\u003ccode\u003ea9f883f\u003c/code\u003e\u003c/a\u003e\nFinalize\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/python/importlib_metadata/commit/9b0dfdfe2e187dca6644007570189aadc6c97a34\"\u003e\u003ccode\u003e9b0dfdf\u003c/code\u003e\u003c/a\u003e\nRaise an exception when no metadata file is found (\u003ca\nhref\u003d\"https://redirect.github.com/python/importlib_metadata/issues/532\"\u003e#532\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/python/importlib_metadata/commit/0f2229ca84f20be2ceaaa4c62a276fa9b003f5bc\"\u003e\u003ccode\u003e0f2229c\u003c/code\u003e\u003c/a\u003e\nMerge branch \u0027main\u0027 into feature/no-metadata-exception\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/python/importlib_metadata/commit/2f4088e490a73ac7f39b86214d2da16d2eb1ff39\"\u003e\u003ccode\u003e2f4088e\u003c/code\u003e\u003c/a\u003e\nRemove news fragments about internal details.\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/python/importlib_metadata/commit/0ac27203f8044daf634c22f385838122a0707449\"\u003e\u003ccode\u003e0ac2720\u003c/code\u003e\u003c/a\u003e\nAdd news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/python/importlib_metadata/commit/a5c2154835facb4a9d0a6f5b3aac1f3d1ff86170\"\u003e\u003ccode\u003ea5c2154\u003c/code\u003e\u003c/a\u003e\nFinalize\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/python/importlib_metadata/commit/e66e22634f7522e7778b66e8a8b19782a11d4943\"\u003e\u003ccode\u003ee66e226\u003c/code\u003e\u003c/a\u003e\nDrop support for EOL Python 3.9 (\u003ca\nhref\u003d\"https://redirect.github.com/python/importlib_metadata/issues/530\"\u003e#530\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/python/importlib_metadata/commit/6027933ae96c9e51dd0b7ce392cb30f6fcae1940\"\u003e\u003ccode\u003e6027933\u003c/code\u003e\u003c/a\u003e\nAdd news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/python/importlib_metadata/commit/b89388a53bf857127e0a6860dfcfe2cd69a79ab8\"\u003e\u003ccode\u003eb89388a\u003c/code\u003e\u003c/a\u003e\nImport os_helper directly.\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/python/importlib_metadata/commit/2dcb761d940b0115b786ab3b6f336af7d94630f4\"\u003e\u003ccode\u003e2dcb761\u003c/code\u003e\u003c/a\u003e\nAdd uniform exclusions for test.support.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/python/importlib_metadata/compare/v8.7.1...v9.0.0\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jaraco-functools` from 4.4.0 to 4.5.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/jaraco/jaraco.functools/blob/main/NEWS.rst\"\u003ejaraco-functools\u0027s\nchangelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev4.5.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ebypass_when\u003c/code\u003e and \u003ccode\u003ebypass_unless\u003c/code\u003e now accept\ncallable checks and evaluate\nthem on each invocation instead of binding only at decoration time. (\u003ca\nhref\u003d\"https://redirect.github.com/jaraco/jaraco.functools/issues/36\"\u003e#36\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/jaraco/jaraco.functools/commit/0e89d963ab0a2d6d0755df2424e5e3d5b983cf98\"\u003e\u003ccode\u003e0e89d96\u003c/code\u003e\u003c/a\u003e\nFinalize\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/jaraco/jaraco.functools/commit/4df0abd88dc7c36897b4f40abebda9ae7b24d33e\"\u003e\u003ccode\u003e4df0abd\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/jaraco/jaraco.functools/issues/36\"\u003e#36\u003c/a\u003e\nfrom jaraco/copilot/enhance-bypass-decorators-callables\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/jaraco/jaraco.functools/commit/e3ad23e72c049950d79d4c1c702a9b7e286d6983\"\u003e\u003ccode\u003ee3ad23e\u003c/code\u003e\u003c/a\u003e\n👹 Feed the hobgoblins (delint).\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/jaraco/jaraco.functools/commit/9ed118eb092ba639e925578576192d0da823d93f\"\u003e\u003ccode\u003e9ed118e\u003c/code\u003e\u003c/a\u003e\nMerge branch \u0027main\u0027 into\ncopilot/enhance-bypass-decorators-callables\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/jaraco/jaraco.functools/commit/d3cdfdf173d8f073d3c51f7d452e3860d783e283\"\u003e\u003ccode\u003ed3cdfdf\u003c/code\u003e\u003c/a\u003e\n👹 Feed the hobgoblins (delint).\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/jaraco/jaraco.functools/commit/dfc27da53d5b17d1d3b9b04459933f9054a1e3a2\"\u003e\u003ccode\u003edfc27da\u003c/code\u003e\u003c/a\u003e\nMerge \u003ca\nhref\u003d\"https://github.com/jaraco/skeleton\"\u003ehttps://github.com/jaraco/skeleton\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/jaraco/jaraco.functools/commit/dc2a6a50c7b45d357e608b6beafd1339719d2f7c\"\u003e\u003ccode\u003edc2a6a5\u003c/code\u003e\u003c/a\u003e\nRename towncrier fragment to PR number\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/jaraco/jaraco.functools/commit/a99352800c88bcac801dc3385cb9952f7729e946\"\u003e\u003ccode\u003ea993528\u003c/code\u003e\u003c/a\u003e\nAdd feature news fragment for callable bypass checks\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/jaraco/jaraco.functools/commit/2257f0ecead9b3b4bdc57615edb47485572b1669\"\u003e\u003ccode\u003e2257f0e\u003c/code\u003e\u003c/a\u003e\nInline bypass check normalization call\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/jaraco/jaraco.functools/commit/4d5cf8b5ba250ee46ef59fa7cd9760806ee06440\"\u003e\u003ccode\u003e4d5cf8b\u003c/code\u003e\u003c/a\u003e\nDrop redundant bypass unit tests\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/jaraco/jaraco.functools/compare/v4.4.0...v4.5.0\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jsonschema-path` from 0.4.6 to 0.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/p1c2u/jsonschema-path/releases\"\u003ejsonschema-path\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.5.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eResolved cache enabled and SchemaPath per-instance cache removed \u003ca\nhref\u003d\"https://redirect.github.com/p1c2u/jsonschema-path/issues/259\"\u003e#259\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eResolved cache evolution rebind \u003ca\nhref\u003d\"https://redirect.github.com/p1c2u/jsonschema-path/issues/260\"\u003e#260\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePer-accessor identity \u003ca\nhref\u003d\"https://redirect.github.com/p1c2u/jsonschema-path/issues/262\"\u003e#262\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBackward incompatible changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eResolved cache is enabled by default \u003ca\nhref\u003d\"https://redirect.github.com/p1c2u/jsonschema-path/issues/259\"\u003e#259\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSchemaPath per-accessor \u003ccode\u003e__eq__\u003c/code\u003e/\u003ccode\u003e__hash__\u003c/code\u003e \u003ca\nhref\u003d\"https://redirect.github.com/p1c2u/jsonschema-path/issues/262\"\u003e#262\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/p1c2u/jsonschema-path/commit/3af8fbf5e4143d6f26408ea1b91149ebaaaa01c5\"\u003e\u003ccode\u003e3af8fbf\u003c/code\u003e\u003c/a\u003e\nVersion 0.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/p1c2u/jsonschema-path/commit/6f414c1457ffa1748d4ee4aaa0b8886ae26a7841\"\u003e\u003ccode\u003e6f414c1\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/p1c2u/jsonschema-path/issues/262\"\u003e#262\u003c/a\u003e\nfrom p1c2u/feature/per-accessor-identity\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/p1c2u/jsonschema-path/commit/2f404256a7cfdbe1cbaae3cf0c27ff215c5b8e08\"\u003e\u003ccode\u003e2f40425\u003c/code\u003e\u003c/a\u003e\nPer-accessor identity\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/p1c2u/jsonschema-path/commit/146f7501294436068dc324c6945382314c34faec\"\u003e\u003ccode\u003e146f750\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/p1c2u/jsonschema-path/issues/250\"\u003e#250\u003c/a\u003e\nfrom p1c2u/dependabot/pip/deptry-0.24.0\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/p1c2u/jsonschema-path/commit/ee534b8af628c987506cd97572bb7af15e09d881\"\u003e\u003ccode\u003eee534b8\u003c/code\u003e\u003c/a\u003e\nBump deptry from 0.23.1 to 0.25.1\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/p1c2u/jsonschema-path/commit/e2b62d96c71a059ae5e0fd6772054b8db274e093\"\u003e\u003ccode\u003ee2b62d9\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/p1c2u/jsonschema-path/issues/256\"\u003e#256\u003c/a\u003e\nfrom p1c2u/dependabot/pip/pytest-9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/p1c2u/jsonschema-path/commit/1b0ebb2006c1249d1d2301a06a0a5791a792ce93\"\u003e\u003ccode\u003e1b0ebb2\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/p1c2u/jsonschema-path/issues/261\"\u003e#261\u003c/a\u003e\nfrom p1c2u/dependabot/pip/idna-3.15\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/p1c2u/jsonschema-path/commit/381db2f73cd6ec2370f454b031e66301b8df65d3\"\u003e\u003ccode\u003e381db2f\u003c/code\u003e\u003c/a\u003e\nBump pytest from 8.4.0 to 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/p1c2u/jsonschema-path/commit/1b8405c1bbec77ba638a12257540df2cb2ccc523\"\u003e\u003ccode\u003e1b8405c\u003c/code\u003e\u003c/a\u003e\nBump idna from 3.10 to 3.15\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/p1c2u/jsonschema-path/commit/3fd5876fbceb66b7fd4a922c79fe9868323dfee3\"\u003e\u003ccode\u003e3fd5876\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/p1c2u/jsonschema-path/issues/258\"\u003e#258\u003c/a\u003e\nfrom p1c2u/dependabot/pip/urllib3-2.7.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/p1c2u/jsonschema-path/compare/0.4.6...0.5.0\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `numpy` from 2.4.4 to 2.4.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/numpy/numpy/releases\"\u003enumpy\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.4.6 (May 18, 2026)\u003c/h2\u003e\n\u003ch1\u003eNumPy 2.4.6 Release Notes\u003c/h1\u003e\n\u003cp\u003eNumPy 2.4.6 is a quick release that fixes a regression discovered in\nthe 2.4.5\nrelease.\u003c/p\u003e\n\u003cp\u003eThis release supports Python versions 3.11-3.14\u003c/p\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eA total of 4 people contributed to this release. People with a\n\u0026quot;+\u0026quot; by their\nnames contributed a patch for the first time.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e!EarlMilktea\u003c/li\u003e\n\u003cli\u003eCharles Harris\u003c/li\u003e\n\u003cli\u003eSebastian Berg\u003c/li\u003e\n\u003cli\u003eWarren Weckesser\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePull requests merged\u003c/h2\u003e\n\u003cp\u003eA total of 4 pull requests were merged for this release.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://redirect.github.com/numpy/numpy/pull/31444\"\u003e#31444\u003c/a\u003e:\nMAINT: Prepare 2.4.x for further development\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://redirect.github.com/numpy/numpy/pull/31453\"\u003e#31453\u003c/a\u003e:\nBUG: Fix regression in \u003ccode\u003earr.conj()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://redirect.github.com/numpy/numpy/pull/31459\"\u003e#31459\u003c/a\u003e:\nBUG: \u003ccode\u003enp.linalg.svd(..., hermitian\u003dTrue)\u003c/code\u003e returns\nnon-unitary...\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://redirect.github.com/numpy/numpy/pull/31460\"\u003e#31460\u003c/a\u003e:\nBUG: Don\u0027t call INCREF/DECREF on descr in\nNpyStringAcquireAllocator...\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.4.5 (May 15, 2026)\u003c/h2\u003e\n\u003ch1\u003eNumPy 2.4.5 Release Notes\u003c/h1\u003e\n\u003cp\u003eNumPy 2.4.5 is a patch release that fixes bugs discovered after the\n2.4.4\nrelease, has some typing improvements, and maintains infrastructure.\u003c/p\u003e\n\u003cp\u003eThis release supports Python versions 3.11-3.14\u003c/p\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eA total of 17 people contributed to this release. People with a\n\u0026quot;+\u0026quot; by their\nnames contributed a patch for the first time.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAleksei Nikiforov\u003c/li\u003e\n\u003cli\u003eAnarion Zuo +\u003c/li\u003e\n\u003cli\u003eAnkit Ahlawat\u003c/li\u003e\n\u003cli\u003eBreno Favaretto +\u003c/li\u003e\n\u003cli\u003eCharles Harris\u003c/li\u003e\n\u003cli\u003eIgor Krivenko +\u003c/li\u003e\n\u003cli\u003eIjtihed Kilani +\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eMaarten Baert +\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/numpy/numpy/commit/b832a09cf2a169c833dd2371e7c07aa00b293242\"\u003e\u003ccode\u003eb832a09\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/numpy/numpy/issues/31462\"\u003e#31462\u003c/a\u003e\nfrom charris/prepare-2.4.6\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/numpy/numpy/commit/57cc147d2ceacffc6534642bfbdebb3a80428e1e\"\u003e\u003ccode\u003e57cc147\u003c/code\u003e\u003c/a\u003e\nREL: Prepare for the NumPy 2.4.6 release\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/numpy/numpy/commit/0c72b0b53b6b83c004e434b2c7855e73c000d21e\"\u003e\u003ccode\u003e0c72b0b\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/numpy/numpy/issues/31459\"\u003e#31459\u003c/a\u003e\nfrom charris/backport-31347\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/numpy/numpy/commit/9778d26e0475d381ccb7817c3b4dd8cacef2b9eb\"\u003e\u003ccode\u003e9778d26\u003c/code\u003e\u003c/a\u003e\nBUG: core: Don\u0027t call INCREF/DECREF on descr in\nNpyStringAcquireAllocator. (#...\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/numpy/numpy/commit/e0e38767d5d0f848ab44befeedcad71e8ef589c7\"\u003e\u003ccode\u003ee0e3876\u003c/code\u003e\u003c/a\u003e\nBUG: core: Don\u0027t call INCREF/DECREF on descr in\nNpyStringAcquireAllocator. (#...\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/numpy/numpy/commit/d1bffeb9ec4ec0bf029c94ea35abffa92d5c30f2\"\u003e\u003ccode\u003ed1bffeb\u003c/code\u003e\u003c/a\u003e\nBUG: \u003ccode\u003enp.linalg.svd(..., hermitian\u003dTrue)\u003c/code\u003e returns non-unitary\n\u003ccode\u003evh\u003c/code\u003e (\u003ca\nhref\u003d\"https://redirect.github.com/numpy/numpy/issues/31347\"\u003e#31347\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/numpy/numpy/commit/8d8d7e5a14a1da0bfb0faf609a7a7610c431e6e9\"\u003e\u003ccode\u003e8d8d7e5\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/numpy/numpy/issues/31453\"\u003e#31453\u003c/a\u003e\nfrom seberg/issue-31452\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/numpy/numpy/commit/bddaab7ace45f90148d8f2bb6e67daab2d45ec76\"\u003e\u003ccode\u003ebddaab7\u003c/code\u003e\u003c/a\u003e\nBUG: Fix regression in \u003ccode\u003earr.conj()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/numpy/numpy/commit/37a1ecca8dff09b2c579a991194ac55b9971f3a7\"\u003e\u003ccode\u003e37a1ecc\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/numpy/numpy/issues/31444\"\u003e#31444\u003c/a\u003e\nfrom charris/begin-2.4.6\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/numpy/numpy/commit/3c0e043217a759a8a948ade158fec14348c3b459\"\u003e\u003ccode\u003e3c0e043\u003c/code\u003e\u003c/a\u003e\nMAINT: Prepare 2.4.x for further development\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/numpy/numpy/compare/v2.4.4...v2.4.6\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-api` from 1.41.1 to 1.42.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-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-api\u0027s\nchangelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.42.0/0.63b0 (2026-05-19)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e, \u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add\nsupport for \u0027random-trace-id\u0027\nflags in W3C traceparent header trace flags. Implementations of\n\u003ccode\u003eIdGenerator\u003c/code\u003e\nthat do randomly generate the 56 least significant bits, should also\nimplement a \u003ccode\u003eis_trace_id_random\u003c/code\u003e methods that returns\n\u003ccode\u003eTrue\u003c/code\u003e.\n(\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003elogs: add exception support to Logger emit and LogRecord attributes\n(\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4908\"\u003e#4908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e: make retryable\ngRPC error codes\nconfigurable for gRPC exporters\n(\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4917\"\u003e#4917\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add\n\u003ccode\u003ecreate_logger_provider\u003c/code\u003e/\u003ccode\u003econfigure_logger_provider\u003c/code\u003e\nto declarative file configuration, enabling LoggerProvider instantiation\nfrom\nconfig files without reading env vars\n(\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4990\"\u003e#4990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-json-common\u003c/code\u003e: add\n\u0027opentelemetry-exporter-otlp-json-common\u0027 package for OTLP JSON\nexporters\n(\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003eservice\u003c/code\u003e resource\ndetector support to declarative\nfile configuration via\n\u003ccode\u003edetection_development.detectors[].service\u003c/code\u003e\n(\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5003\"\u003e#5003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-docker-tests\u003c/code\u003e: add docker-tests coverage\nof\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e and\n\u003ccode\u003eopentelemetry-exporter-otlp-proto-http\u003c/code\u003e metrics export\n(\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5030\"\u003e#5030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eregistry\u003c/code\u003e keyword argument to\n\u003ccode\u003ePrometheusMetricReader\u003c/code\u003e to allow passing\na custom Prometheus registry\n(\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5055\"\u003e#5055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd WeaverLiveCheck test util\n(\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5088\"\u003e#5088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add \u003ccode\u003eload_entry_point\u003c/code\u003e\nshared utility to declarative\nfile configuration for loading plugins via entry points; refactor\npropagator\nloading to use it\n(\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5093\"\u003e#5093\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add sampler plugin loading to\ndeclarative file\nconfiguration via the \u003ccode\u003eopentelemetry_sampler\u003c/code\u003e entry point\ngroup, matching the\nspec\u0027s PluginComponentProvider mechanism\n(\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5095\"\u003e#5095\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add propagator plugin loading to\ndeclarative file\nconfiguration via the \u003ccode\u003eopentelemetry_propagator\u003c/code\u003e entry point\ngroup, matching\nthe spec\u0027s PluginComponentProvider mechanism\n(\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5098\"\u003e#5098\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: add exporter plugin loading to\ndeclarative file\nconfiguration for all three signals (traces, metrics, logs) via the\n\u003ccode\u003eopentelemetry_*_exporter\u003c/code\u003e entry point groups, matching the\nspec\u0027s\nPluginComponentProvider mechanism\n(\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5128\"\u003e#5128\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-python/commit/013045e3787654123b08530059759842312325ab\"\u003e\u003ccode\u003e013045e\u003c/code\u003e\u003c/a\u003e\n[release/v1.42.x-0.63bx] Prepare release 1.42.0/0.63b0 (\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5225\"\u003e#5225\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/open-telemetry/opentelemetry-python/commit/1731583b4e7bc6ec6a33345aa19706fc83acc8d5\"\u003e\u003ccode\u003e1731583\u003c/code\u003e\u003c/a\u003e\nci: Enable GitHub Merge Queue support (\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5209\"\u003e#5209\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/open-telemetry/opentelemetry-python/commit/7fab34d4f49c1cd67df07fa53471c0ae6c269008\"\u003e\u003ccode\u003e7fab34d\u003c/code\u003e\u003c/a\u003e\nfix(config): allow deflate for OTLP HTTP exporters (\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5075\"\u003e#5075\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/open-telemetry/opentelemetry-python/commit/0b690d2139f68dd42d2425c920aec882698443fa\"\u003e\u003ccode\u003e0b690d2\u003c/code\u003e\u003c/a\u003e\nci: validate changelog fragment filenames (\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5212\"\u003e#5212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/open-telemetry/opentelemetry-python/commit/d4fabb4d6d79812a6d38dd900212f6a0fdb1866b\"\u003e\u003ccode\u003ed4fabb4\u003c/code\u003e\u003c/a\u003e\nfeat(config): exporter plugin loading via entry points for declarative\nconfig...\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/open-telemetry/opentelemetry-python/commit/e19d34600b177b97cf1d8320a77ff75133515012\"\u003e\u003ccode\u003ee19d346\u003c/code\u003e\u003c/a\u003e\nfeat(config): generic resource detector plugin loading for declarative\nconfig...\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/open-telemetry/opentelemetry-python/commit/1d69bd2eaa02715ecf3877a8f391678be58f2f57\"\u003e\u003ccode\u003e1d69bd2\u003c/code\u003e\u003c/a\u003e\nsdk/metrics: copy attributes dict to prevent post-recording mutation (\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5106\"\u003e#5106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/open-telemetry/opentelemetry-python/commit/990a6112a124e53cc0e3f66871ce8f8d00955d15\"\u003e\u003ccode\u003e990a611\u003c/code\u003e\u003c/a\u003e\nfeat(config): propagator plugin loading via entry points for declarative\nconf...\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/open-telemetry/opentelemetry-python/commit/85eb40ac3a43a165c22d86919b32c77e74f94e6b\"\u003e\u003ccode\u003e85eb40a\u003c/code\u003e\u003c/a\u003e\nci: migrate unreleased changelog entries to towncrier fragments (\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5213\"\u003e#5213\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/open-telemetry/opentelemetry-python/commit/369644cfec249c48ca3aad0a4f6500e52d316689\"\u003e\u003ccode\u003e369644c\u003c/code\u003e\u003c/a\u003e\ndocs: add new example for multi-destination exporting to Sphinx Doc (\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5087\"\u003e#5087\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/open-telemetry/opentelemetry-python/compare/v1.41.1...v1.42.0\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pathable` from 0.5.0 to 0.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/p1c2u/pathable/releases\"\u003epathable\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.6.0\u003c/h2\u003e\n\u003ch2\u003eFieatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePer-accessor identity contract \u003ca\nhref\u003d\"https://redirect.github.com/p1c2u/pathable/issues/121\"\u003e#121\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eUpgrades\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.14 support \u003ca\nhref\u003d\"https://redirect.github.com/p1c2u/pathable/issues/106\"\u003e#106\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/p1c2u/pathable/commit/8913cc5ca5e035dc952e9e21bc142ed8e2f58c6a\"\u003e\u003ccode\u003e8913cc5\u003c/code\u003e\u003c/a\u003e\nVersion 0.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/p1c2u/pathable/commit/774fbb5ddd860a6989a5f47c19dca639a40cd50f\"\u003e\u003ccode\u003e774fbb5\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/p1c2u/pathable/issues/121\"\u003e#121\u003c/a\u003e\nfrom p1c2u/feature/per-accessor-indentity\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/p1c2u/pathable/commit/7d2634b08a311ddee860269dbbec4010546f46d3\"\u003e\u003ccode\u003e7d2634b\u003c/code\u003e\u003c/a\u003e\nPer-accessor identity\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/p1c2u/pathable/commit/a018669332018003836a591eab1a6df1bca5951f\"\u003e\u003ccode\u003ea018669\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/p1c2u/pathable/issues/106\"\u003e#106\u003c/a\u003e\nfrom p1c2u/feature/python-3.14-support\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/p1c2u/pathable/commit/c59004444cfc91e837de4a94911b3c67b4731be2\"\u003e\u003ccode\u003ec590044\u003c/code\u003e\u003c/a\u003e\nPython 3.14 support\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca\nhref\u003d\"https://github.com/p1c2u/pathable/compare/0.5.0...0.6.0\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-multipart` from 0.0.28 to 0.0.29\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/Kludex/python-multipart/releases\"\u003epython-multipart\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.0.29\u003c/h2\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHandle malformed RFC 2231 continuations in\n\u003ccode\u003eparse_options_header\u003c/code\u003e by \u003ca\nhref\u003d\"https://github.com/manunio\"\u003e\u003ccode\u003e@​manunio\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/Kludex/python-multipart/pull/270\"\u003eKludex/python-multipart#270\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/Kludex/python-multipart/compare/0.0.28...0.0.29\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.28...0.0.29\u003c/a\u003e\u003c/p\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/Kludex/python-multipart/blob/main/CHANGELOG.md\"\u003epython-multipart\u0027s\nchangelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.29 (2026-05-17)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHandle malformed RFC 2231 continuations in\n\u003ccode\u003eparse_options_header\u003c/code\u003e \u003ca\nhref\u003d\"https://redirect.github.com/Kludex/python-multipart/pull/270\"\u003e#270\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/Kludex/python-multipart/commit/e3d6853978b91b77e9739d47389124d633894c39\"\u003e\u003ccode\u003ee3d6853\u003c/code\u003e\u003c/a\u003e\nVersion 0.0.29 (\u003ca\nhref\u003d\"https://redirect.github.com/Kludex/python-multipart/issues/288\"\u003e#288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/Kludex/python-multipart/commit/a60dcdcb34d55b396ced6f5bdb1d1e6df84832ae\"\u003e\u003ccode\u003ea60dcdc\u003c/code\u003e\u003c/a\u003e\nHandle malformed RFC 2231 continuations in\n\u003ccode\u003eparse_options_header\u003c/code\u003e (\u003ca\nhref\u003d\"https://redirect.github.com/Kludex/python-multipart/issues/270\"\u003e#270\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/Kludex/python-multipart/commit/75c33b24d91f1e3c65b597832984d6c46d1a38df\"\u003e\u003ccode\u003e75c33b2\u003c/code\u003e\u003c/a\u003e\nAdd 7-day cooldown for dependency resolution via uv exclude-newer (\u003ca\nhref\u003d\"https://redirect.github.com/Kludex/python-multipart/issues/286\"\u003e#286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/Kludex/python-multipart/commit/a078b8ef00474c3f3a6cf750cd092cf880354a11\"\u003e\u003ccode\u003ea078b8e\u003c/code\u003e\u003c/a\u003e\nBump urllib3 from 2.6.3 to 2.7.0 (\u003ca\nhref\u003d\"https://redirect.github.com/Kludex/python-multipart/issues/285\"\u003e#285\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca\nhref\u003d\"https://github.com/Kludex/python-multipart/compare/0.0.28...0.0.29\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.34.0 to 2.34.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/psf/requests/releases\"\u003erequests\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.34.2\u003c/h2\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e\nto avoid invariance issues with \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred\ndict types. Users calling \u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need\nto narrow typing in their code. (\u003ca\nhref\u003d\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\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/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.1\u003c/h2\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and\n\u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca\nhref\u003d\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and\nremoved \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca\nhref\u003d\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to\n\u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca\nhref\u003d\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e\nimplementations\nweren\u0027t being properly detected as Iterables. (\u003ca\nhref\u003d\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\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/k223kim\"\u003e\u003ccode\u003e@​k223kim\u003c/code\u003e\u003c/a\u003e made\ntheir first contribution in \u003ca\nhref\u003d\"https://redirect.github.com/psf/requests/pull/7433\"\u003epsf/requests#7433\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/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\u003c/a\u003e\u003c/p\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/psf/requests/blob/main/HISTORY.md\"\u003erequests\u0027s\nchangelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e\nto avoid invariance issues\nwith \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling\n\u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their\ncode. (\u003ca\nhref\u003d\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and\n\u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca\nhref\u003d\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and\nremoved \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca\nhref\u003d\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to\n\u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca\nhref\u003d\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e\nimplementations\nweren\u0027t being properly detected as Iterables. (\u003ca\nhref\u003d\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\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/psf/requests/commit/6e83187b8feb273ed4c6cdab5efd8d54901dfab3\"\u003e\u003ccode\u003e6e83187\u003c/code\u003e\u003c/a\u003e\nv2.34.2\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/psf/requests/commit/84d10f0be83e8f6aeca8a05230c52216431c4d0b\"\u003e\u003ccode\u003e84d10f0\u003c/code\u003e\u003c/a\u003e\nMove Request.headers back to Mapping (\u003ca\nhref\u003d\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/psf/requests/commit/b7b549b54571d03950b16afd2d01bc6ff0348224\"\u003e\u003ccode\u003eb7b549b\u003c/code\u003e\u003c/a\u003e\nv2.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/psf/requests/commit/e511bc72777a94c45d004e010c597925092e1efe\"\u003e\u003ccode\u003ee511bc7\u003c/code\u003e\u003c/a\u003e\nFix mutability issues with headers input types (\u003ca\nhref\u003d\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/psf/requests/commit/5691f596134c2feb121e595c77a0178921fcce61\"\u003e\u003ccode\u003e5691f59\u003c/code\u003e\u003c/a\u003e\nUpdate JsonType containers to read-based collections (\u003ca\nhref\u003d\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/psf/requests/commit/2144213c307691710c9d665700860fc4993c3035\"\u003e\u003ccode\u003e2144213\u003c/code\u003e\u003c/a\u003e\nConstrain Response.reason to str (\u003ca\nhref\u003d\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/psf/requests/commit/6404f345e562d962abe6700a1c357ec1e7e18232\"\u003e\u003ccode\u003e6404f34\u003c/code\u003e\u003c/a\u003e\nFix \u003ccode\u003eprepare_body\u003c/code\u003e stream detection for\n\u003ccode\u003e__getattr__\u003c/code\u003e-based file wrappers (\u003ca\nhref\u003d\"https://redirect.github.com/psf/requests/issues/7\"\u003e#7\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca\nhref\u003d\"https://github.com/psf/requests/compare/v2.34.0...v2.34.2\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rich-rst` from 1.3.2 to 2.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/wasi-master/rich-rst/releases\"\u003erich-rst\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 2.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRewrite list rendering with recursive unlimited nesting and\narbitrary child elements by \u003ca\nhref\u003d\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/wasi-master/rich-rst/pull/20\"\u003ewasi-master/rich-rst#20\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Table node support: render RST grid and simple tables as\nrich.Table by \u003ca\nhref\u003d\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/wasi-master/rich-rst/pull/21\"\u003ewasi-master/rich-rst#21\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd visit_footnote_reference handler to render inline [N] markers by\n\u003ca href\u003d\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/wasi-master/rich-rst/pull/22\"\u003ewasi-master/rich-rst#22\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix csv-table and list-table captions not rendering by \u003ca\nhref\u003d\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/wasi-master/rich-rst/pull/26\"\u003ewasi-master/rich-rst#26\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix admonition body losing inline markup via recursive visitor\nrendering by \u003ca\nhref\u003d\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/wasi-master/rich-rst/pull/29\"\u003ewasi-master/rich-rst#29\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003e.. contents::\u003c/code\u003e / \u003ccode\u003e.. topic::\u003c/code\u003e rendering:\npanel with title and populated TOC by \u003ca\nhref\u003d\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/wasi-master/rich-rst/pull/25\"\u003ewasi-master/rich-rst#25\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd visit_abbreviation and visit_acronym handlers to show expansion\ninline by \u003ca\nhref\u003d\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/wasi-master/rich-rst/pull/24\"\u003ewasi-master/rich-rst#24\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix line-block nested indentation being silently flattened by \u003ca\nhref\u003d\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/wasi-master/rich-rst/pull/27\"\u003ewasi-master/rich-rst#27\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd dedicated docinfo node handlers and apply bibliographic field\ntransforms by \u003ca\nhref\u003d\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/wasi-master/rich-rst/pull/28\"\u003ewasi-master/rich-rst#28\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003evisit_figure\u003c/code\u003e handler for \u003ccode\u003e.. figure::\u003c/code\u003e\ndirective by \u003ca\nhref\u003d\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/wasi-master/rich-rst/pull/23\"\u003ewasi-master/rich-rst#23\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eItemized test suite with strict formatting checks + 3 visitor bug\nfixes by \u003ca href\u003d\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e\nin \u003ca\nhref\u003d\"https://redirect.github.com/wasi-master/rich-rst/pull/30\"\u003ewasi-master/rich-rst#30\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd accurate 2.0.0 changelog grounded in actual code diff by \u003ca\nhref\u003d\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/wasi-master/rich-rst/pull/31\"\u003ewasi-master/rich-rst#31\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRewrite documentation for clarity by \u003ca\nhref\u003d\"https://github.com/wasi-master\"\u003e\u003ccode\u003e@​wasi-master\u003c/code\u003e\u003c/a\u003e in\n\u003ca\nhref\u003d\"https://redirect.github.com/wasi-master/rich-rst/pull/32\"\u003ewasi-master/rich-rst#32\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd full Sphinx directive and role support to rich-rst by \u003ca\nhref\u003d\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/wasi-master/rich-rst/pull/34\"\u003ewasi-master/rich-rst#34\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix RST table rendering: rowspan column placement, colspan headers,\nand inline markup in cells by \u003ca\nhref\u003d\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/wasi-master/rich-rst/pull/35\"\u003ewasi-master/rich-rst#35\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix enumerated list rendering: start index, enumtype, and\nprefix/suffix by \u003ca\nhref\u003d\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/wasi-master/rich-rst/pull/36\"\u003ewasi-master/rich-rst#36\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade test assertions from content-presence checks to\nformatting-contract checks by \u003ca\nhref\u003d\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/wasi-master/rich-rst/pull/37\"\u003ewasi-master/rich-rst#37\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix 7 bugs + add 5 QoL features: inline markup preservation,\nregister_visitor, render_to_string, literalinclude, toctree hierarchy by\n\u003ca href\u003d\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/wasi-master/rich-rst/pull/38\"\u003ewasi-master/rich-rst#38\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add compound/inline node handlers, hlist columns, unicode\nma...\n\n_Description has been truncated_\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: bazel.build machine account \u003cci.bazel@gmail.com\u003e"
    },
    {
      "commit": "80d6a659b26edf368da8d509eb775c5b842391bb",
      "tree": "3e2b02719c9f33d88cd47f6f471e7f5836a6038c",
      "parents": [
        "377335619494edb244f42174187ea55fd9ceea05"
      ],
      "author": {
        "name": "Maxwell Elliott",
        "email": "maxwell@elliott.now",
        "time": "Fri May 22 12:23:25 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 22 18:23:25 2026 +0200"
      },
      "message": "bazel-diff@25.0.0 (#8975)\n\nRelease: https://github.com/Tinder/bazel-diff/releases/tag/v25.0.0\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_"
    },
    {
      "commit": "377335619494edb244f42174187ea55fd9ceea05",
      "tree": "491f9e8363ca868f99076a0fd655c9316ae7f7c0",
      "parents": [
        "98365cb76248849c90654b081dfe90bbce627b9d"
      ],
      "author": {
        "name": "periareon-bot",
        "email": "periareon-bot@proton.me",
        "time": "Fri May 22 09:23:17 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 22 18:23:17 2026 +0200"
      },
      "message": "rules_docker_compose@0.3.0 (#8976)\n\nRelease:\nhttps://github.com/periareon/rules_docker_compose/releases/tag/0.3.0\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_\n\nCo-authored-by: periareon-bot \u003c260522848+periareon-bot@users.noreply.github.com\u003e"
    },
    {
      "commit": "98365cb76248849c90654b081dfe90bbce627b9d",
      "tree": "fd655d4aad3139b59fc3874beca7427b9998b89d",
      "parents": [
        "c882d7a2daeae49d542b7420bd887b3bfed443f4"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Fri May 22 09:23:07 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 22 18:23:07 2026 +0200"
      },
      "message": "ppp@2.5.2.bcr.1 (#8977)\n\nChanges:\n- Make `-lcrypt` linkopt conditional"
    },
    {
      "commit": "c882d7a2daeae49d542b7420bd887b3bfed443f4",
      "tree": "0080686f6672214e6f1ddb4eb90cdfa423d1372e",
      "parents": [
        "5b9c83897c849d926aa85cde9d740511726eb563"
      ],
      "author": {
        "name": "Christian Svensson",
        "email": "blue@cmd.nu",
        "time": "Fri May 22 17:31:07 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 22 11:31:07 2026 -0400"
      },
      "message": "cpp-httplib@0.41.0 (#8367)\n\nThis is my first PR for bumping a Bazel dependency, so there is a lot of\ncargo-culting here. It does build on my system using Bazel 9 and Fedora."
    },
    {
      "commit": "5b9c83897c849d926aa85cde9d740511726eb563",
      "tree": "17e9e9e2f5d70e1a3ea68ba8137b22d2a611bb7c",
      "parents": [
        "f11b5cbca7ea8e7c726da5a064c03862619e9935"
      ],
      "author": {
        "name": "Simon Rüegg",
        "email": "simon.ruegg@apple.com",
        "time": "Fri May 22 14:40:35 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 22 15:40:35 2026 +0200"
      },
      "message": "rules_pkl@0.16.0 (#8974)"
    },
    {
      "commit": "f11b5cbca7ea8e7c726da5a064c03862619e9935",
      "tree": "8ade1b972613c903b1099ed4772a772b7e3ab126",
      "parents": [
        "b327745e86a435c66a3f76f74dff0ef7c7c5f216"
      ],
      "author": {
        "name": "Byoungchan Lee",
        "email": "byoungchan.lee@gmx.com",
        "time": "Fri May 22 20:20:07 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 22 13:20:07 2026 +0200"
      },
      "message": "opencensus-cpp@0.0.0-20230502-50eb5de.bcr.3 (#8940)\n\nUpdate opencensus-cpp for Bazel 9 compatibility, but do not advertise\ngeneral Bazel 9.x compatibility in `presubmit.yml` yet because gRPC and\nopencensus-cpp currently have a cyclic dependency.\n\nOnce gRPC has a Bazel 9-compatible BCR release, we can revisit\nopencensus-cpp with a newer version and add Bazel 9 validation in\n`presubmit.yml`."
    },
    {
      "commit": "b327745e86a435c66a3f76f74dff0ef7c7c5f216",
      "tree": "ee132ff7a8dbc0cbe3fb04e02cb812b597c52920",
      "parents": [
        "50f860e620cacc7bc744fe620b80c5a058d0390c"
      ],
      "author": {
        "name": "Marvin, the Aspect bot",
        "email": "marvin@aspect.build",
        "time": "Fri May 22 04:15:52 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 22 07:15:52 2026 -0400"
      },
      "message": "tar.bzl@0.10.5 (#8904)\n\nRelease: https://github.com/bazel-contrib/tar.bzl/releases/tag/v0.10.5\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_\n\nCo-authored-by: alexeagle \u003c47395+alexeagle@users.noreply.github.com\u003e"
    },
    {
      "commit": "50f860e620cacc7bc744fe620b80c5a058d0390c",
      "tree": "d1a419a92624cde5664098be3450c19b97c2b4a9",
      "parents": [
        "81758107575fe7badc17cc41e068257bd4d3821b"
      ],
      "author": {
        "name": "Marvin, the Aspect bot",
        "email": "marvin@aspect.build",
        "time": "Fri May 22 01:01:32 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 22 10:01:32 2026 +0200"
      },
      "message": "aspect_rules_py@2.0.0-alpha.1 (#8972)\n\nRelease:\nhttps://github.com/aspect-build/rules_py/releases/tag/v2.0.0-alpha.1\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_\n\n---------\n\nCo-authored-by: jbedard \u003c89246+jbedard@users.noreply.github.com\u003e\nCo-authored-by: Jason Bedard \u003cjason@aspect.build\u003e"
    },
    {
      "commit": "81758107575fe7badc17cc41e068257bd4d3821b",
      "tree": "2ae0b18613b2e0aa32b636b21a6786a239781776",
      "parents": [
        "3685926e30c847c613c7ba7db61b45324a135d2d"
      ],
      "author": {
        "name": "Marvin, the Aspect bot",
        "email": "marvin@aspect.build",
        "time": "Thu May 21 21:39:37 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 22 06:39:37 2026 +0200"
      },
      "message": "aspect_rules_ts@3.8.10 (#8903)\n\nRelease: https://github.com/aspect-build/rules_ts/releases/tag/v3.8.10\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_\n\n---------\n\nCo-authored-by: alexeagle \u003c47395+alexeagle@users.noreply.github.com\u003e\nCo-authored-by: Jason Bedard \u003cjason@aspect.build\u003e"
    },
    {
      "commit": "3685926e30c847c613c7ba7db61b45324a135d2d",
      "tree": "8e2abfa844740137e569c16e6282f1991271ed83",
      "parents": [
        "7aae68a2b48baaff990c74f6094dc524045c28b3"
      ],
      "author": {
        "name": "Marvin, the Aspect bot",
        "email": "marvin@aspect.build",
        "time": "Thu May 21 21:39:20 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 22 06:39:20 2026 +0200"
      },
      "message": "aspect_rules_lint@2.6.0 (#8922)\n\nRelease: https://github.com/aspect-build/rules_lint/releases/tag/v2.6.0\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_\n\n---------\n\nCo-authored-by: alexeagle \u003c47395+alexeagle@users.noreply.github.com\u003e\nCo-authored-by: Jason Bedard \u003cjason@aspect.build\u003e"
    },
    {
      "commit": "7aae68a2b48baaff990c74f6094dc524045c28b3",
      "tree": "ca35bb770f9cd0df66087776c1e4c2e097389461",
      "parents": [
        "dc815cd0073dfd302620c200c03937f65b628c2a"
      ],
      "author": {
        "name": "Yuki Furuta",
        "email": "y.furuta@gitai.tech",
        "time": "Thu May 21 16:08:33 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 21 19:08:33 2026 -0400"
      },
      "message": "ogg: Add 1.3.5.bcr.2 (#8967)\n\nTo change visibility of `libogg` to public"
    },
    {
      "commit": "dc815cd0073dfd302620c200c03937f65b628c2a",
      "tree": "f2b6ba20988b64a3dc9a48d1077c4ecea99da10d",
      "parents": [
        "a4d6ca0dcc2e19fa4df6410f2afe60288b9f158f"
      ],
      "author": {
        "name": "Michael Beardsworth",
        "email": "beardsworth@intrinsic.ai",
        "time": "Thu May 21 15:44:13 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 22 00:44:13 2026 +0200"
      },
      "message": "Add nlopt 2.10.1.bcr1 making luksan dependency optional (#8965)\n\nluksan has different licensing than the rest of nlopt. Allow consumers\nto opt out."
    },
    {
      "commit": "a4d6ca0dcc2e19fa4df6410f2afe60288b9f158f",
      "tree": "4d44a57dfc5487f10c142b7293aa267ab8adda6c",
      "parents": [
        "33d883374c2f554c87a16053b56bd1ec5b903086"
      ],
      "author": {
        "name": "periareon-bot",
        "email": "periareon-bot@proton.me",
        "time": "Thu May 21 14:16:05 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 21 23:16:05 2026 +0200"
      },
      "message": "rules_helm@0.27.0 (#8966)\n\nRelease: https://github.com/periareon/rules_helm/releases/tag/0.27.0\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_\n\nCo-authored-by: periareon-bot \u003c260522848+periareon-bot@users.noreply.github.com\u003e"
    },
    {
      "commit": "33d883374c2f554c87a16053b56bd1ec5b903086",
      "tree": "1b8cacce3941031071bcb61861e1248283bf2c08",
      "parents": [
        "d92c176eadb38eb04023e099e19860a2aef0aa3b"
      ],
      "author": {
        "name": "Florian Weikert",
        "email": "fwe@google.com",
        "time": "Thu May 21 20:03:43 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 21 14:03:43 2026 -0400"
      },
      "message": "Fix VSA workflow. (#8932)\n\nThis change was tested with VSAs generated by an internal Google release\nprocess.\n\nDesign decisions:\n- Ignore attestations for files other than MODULE.bazel, source.json and\nthe source archive (without failing).\n- Temporarily lower BCID level to 0.\n\nRelated to\nhttps://github.com/bazelbuild/bazel-central-registry/issues/3829"
    },
    {
      "commit": "d92c176eadb38eb04023e099e19860a2aef0aa3b",
      "tree": "f505431e4f93a2ffe23c85bd800d10e805407026",
      "parents": [
        "e9b96b9cb23706e8162561529fc4689cf332f342"
      ],
      "author": {
        "name": "Michael Beardsworth",
        "email": "beardsworth@intrinsic.ai",
        "time": "Thu May 21 10:35:40 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 21 19:35:40 2026 +0200"
      },
      "message": "Add nlopt 2.10.1 (#8963)\n\nAdds nlopt 2.10.1"
    },
    {
      "commit": "e9b96b9cb23706e8162561529fc4689cf332f342",
      "tree": "951f73aa4d29c828baa3f940056313c88230beb7",
      "parents": [
        "e25cda655b21a55e162f7603091b265c0fcd2ece"
      ],
      "author": {
        "name": "periareon-bot",
        "email": "periareon-bot@proton.me",
        "time": "Thu May 21 08:18:34 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 21 17:18:34 2026 +0200"
      },
      "message": "rules_cc_autoconf@0.11.1 (#8964)\n\nRelease:\nhttps://github.com/periareon/rules_cc_autoconf/releases/tag/0.11.1\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_\n\nCo-authored-by: periareon-bot \u003c260522848+periareon-bot@users.noreply.github.com\u003e"
    },
    {
      "commit": "e25cda655b21a55e162f7603091b265c0fcd2ece",
      "tree": "35b50fe85beb192112da6e3e54921dd84fdea9f3",
      "parents": [
        "01f72852a4ca694e37d094c4e818e58fe6463e48"
      ],
      "author": {
        "name": "publish-to-bcr-bot[bot]",
        "email": "112732530+publish-to-bcr-bot[bot]@users.noreply.github.com",
        "time": "Thu May 21 13:51:22 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 21 13:51:22 2026 +0200"
      },
      "message": "ofiuco@0.9.1 (#8962)\n\n:warning: The Publish to BCR GitHub app will be discontinued after June\n30, 2026. Please migrate to the GitHub Actions [reusable\nworkflow](https://github.com/bazel-contrib/publish-to-bcr?tab\u003dreadme-ov-file#setup)\nbefore then.\n      \nRelease: https://github.com/oxidase/ofiuco/releases/tag/v0.9.1\n\n_Automated by [Publish to BCR](https://github.com/apps/publish-to-bcr)_\n\nCo-authored-by: Michael Krasnyk \u003cmichael.krasnyk@gmail.com\u003e"
    },
    {
      "commit": "01f72852a4ca694e37d094c4e818e58fe6463e48",
      "tree": "16878ca1ca18eca4b0ec5048f97c8a7bc42f5ca7",
      "parents": [
        "e5953bc1ec371e12be9f56e155681bca4ffa8745"
      ],
      "author": {
        "name": "Martin Altenburg",
        "email": "2737351+martin4861@users.noreply.github.com",
        "time": "Thu May 21 10:31:02 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 21 10:31:02 2026 +0200"
      },
      "message": "Add rules_gherkin@0.3.0 (#8937)\n\nhttps://github.com/swift-nav/rules_gherkin/releases/tag/v0.3.0"
    },
    {
      "commit": "e5953bc1ec371e12be9f56e155681bca4ffa8745",
      "tree": "6b3bb13ee4ac3182c91e47a620855e5da66ca5a0",
      "parents": [
        "86682acbcb517b973da030c3269d1ad3c6446dc5"
      ],
      "author": {
        "name": "Austin Schuh",
        "email": "AustinSchuh@users.noreply.github.com",
        "time": "Wed May 20 17:50:31 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 20 17:50:31 2026 -0700"
      },
      "message": "Fix armv7 support for gmp (#8910)\n\nThe new autoconf rules didn\u0027t handle armv7 correctly. Handle the\ncomments and linking correctly.\n\n---------\n\nSigned-off-by: Austin Schuh \u003caustin.linux@gmail.com\u003e\nCo-authored-by: UebelAndre \u003cgithub@uebelandre.com\u003e"
    },
    {
      "commit": "86682acbcb517b973da030c3269d1ad3c6446dc5",
      "tree": "fdd22af62bf0b4467ed06c59f634a5ed6abf841d",
      "parents": [
        "51d7ce0c849b798acfe936df051d4add50402577"
      ],
      "author": {
        "name": "periareon-bot",
        "email": "periareon-bot@proton.me",
        "time": "Wed May 20 17:05:32 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 20 17:05:32 2026 -0700"
      },
      "message": "rules_req_compile@1.1.3 (#8959)\n\nRelease: https://github.com/periareon/req-compile/releases/tag/1.1.3\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_\n\nCo-authored-by: periareon-bot \u003c260522848+periareon-bot@users.noreply.github.com\u003e"
    },
    {
      "commit": "51d7ce0c849b798acfe936df051d4add50402577",
      "tree": "8bc900ae4bcd0d13c2be1b078853f5466ae3223a",
      "parents": [
        "ef069eac54ff2ae831b09c5db75d7d506c22199e"
      ],
      "author": {
        "name": "Piotr Sikora",
        "email": "code@piotrsikora.dev",
        "time": "Wed May 20 18:45:37 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 21 00:45:37 2026 +0200"
      },
      "message": "proxy-wasm-rust-sdk@0.2.5 (#8957)\n\nRelease:\nhttps://github.com/proxy-wasm/proxy-wasm-rust-sdk/releases/tag/v0.2.5\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_\n\nCo-authored-by: PiotrSikora \u003c190297+PiotrSikora@users.noreply.github.com\u003e"
    },
    {
      "commit": "ef069eac54ff2ae831b09c5db75d7d506c22199e",
      "tree": "9ce48a46925f3cdf5c13c3cdf2ee9fd9457b7b71",
      "parents": [
        "d01f9501c4854b5029f1e0921a87b7c83d765f6c"
      ],
      "author": {
        "name": "periareon-bot",
        "email": "periareon-bot@proton.me",
        "time": "Wed May 20 15:33:41 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 20 15:33:41 2026 -0700"
      },
      "message": "rules_req_compile@1.1.2 (#8958)\n\nRelease: https://github.com/periareon/req-compile/releases/tag/1.1.2\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_\n\nCo-authored-by: periareon-bot \u003c260522848+periareon-bot@users.noreply.github.com\u003e"
    },
    {
      "commit": "d01f9501c4854b5029f1e0921a87b7c83d765f6c",
      "tree": "23b5d5d2bea11c1e9540382033281f68272284be",
      "parents": [
        "29ddb4d4182d4185215e1d8fef86e093564bfb09"
      ],
      "author": {
        "name": "Clint Morris",
        "email": "102205913+clintmorris229@users.noreply.github.com",
        "time": "Wed May 20 14:15:40 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 20 23:15:40 2026 +0200"
      },
      "message": "Fix coacd 1.0.11.bcr.2 (#8954)\n\n### Description \nThis PR releases version `1.0.11.bcr.2` of the `coacd` module. It\nupdates its transitive `openmp` dependency to `21.1.5.bcr.2` to\nincorporate a critical build fix for hermetic sandboxes and remote\nexecutors.\n\n ### Context \u0026 Motivation \nIn `openmp` versions prior to `21.1.5.bcr.2`, translation genrules\n(`id_i18n` and `default_i18n`) would fail during sandboxed executions\nwith `ModuleNotFoundError: No module named \u0027libomputils\u0027` because\n`libomputils.py` was missing\n  from the rule\u0027s `tools` attribute.  \n\nUpdating `coacd`\u0027s dependency to `openmp@21.1.5.bcr.2` resolves this and\nallows `coacd` targets to build successfully in fully hermetic\nenvironments.\n\n### Changes Applied\n - Bumps `coacd` module version to `1.0.11.bcr.2`. \n - Bumps `openmp` dependency to `21.1.5.bcr.2` in `MODULE.bazel`. \n- Retains identical sources, overlays, and configurations from\n`1.0.11.bcr.1`.\n ### Validation \u0026 Presubmits\n - Verified locally against standard BCR metadata and module rules. \n- Note: Since this repository points to a GitHub archive\n(`/archive/refs/tags/1.0.11.tar.gz`), the unstable URL warning is\nexpected."
    },
    {
      "commit": "29ddb4d4182d4185215e1d8fef86e093564bfb09",
      "tree": "7b2983cd662548bf1acb683f0ce94d3cea1ad5b0",
      "parents": [
        "5b2827f0216d35abc2e5b51bf2ab4ab248ddfa18"
      ],
      "author": {
        "name": "Juan Ortega",
        "email": "92177112+Wito-1@users.noreply.github.com",
        "time": "Wed May 20 15:30:22 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 20 15:30:22 2026 -0400"
      },
      "message": "add videoproto@2.3.3 (#8950)"
    },
    {
      "commit": "5b2827f0216d35abc2e5b51bf2ab4ab248ddfa18",
      "tree": "a08ce266509b47daedf1d4b062b2edddf7870faf",
      "parents": [
        "522f2f3cecb8e689f74da9221f427b4127775514"
      ],
      "author": {
        "name": "Pierre Gergondet",
        "email": "pierre.gergondet@woven.toyota",
        "time": "Thu May 21 04:07:00 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 20 21:07:00 2026 +0200"
      },
      "message": "Add envoy_api 0.0.0-20260130-84e8436 (#8946)\n\nAs discussed in #8918, this PR brings a newer version (most recent\ncommit as of today) of envoy_api.\n\nThe MODULE.bazel is minimal:\n- patch the version\n- add a dependency on aspect_bazel_lib that\u0027s required per\n[`bazel/BUILD`](https://github.com/envoyproxy/data-plane-api/blob/main/bazel/BUILD#L1)\nwhich is needed to build `@envoy_api//test/build:go_build_test`"
    },
    {
      "commit": "522f2f3cecb8e689f74da9221f427b4127775514",
      "tree": "787f64db2376adac34c87ed8ccfb8388e4aaec0a",
      "parents": [
        "4d9410b1ea1c1a3e03847d7bbec4d5a41ed88410"
      ],
      "author": {
        "name": "Clint Morris",
        "email": "102205913+clintmorris229@users.noreply.github.com",
        "time": "Wed May 20 12:06:34 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 20 21:06:34 2026 +0200"
      },
      "message": "[openmp] Release 21.1.5.bcr.2: fix hermeticity of i18n translation ge… (#8952)\n\n### Description \nThis PR adds version `21.1.5.bcr.2` of the `openmp` module to fix a\ngenrule hermeticity issue affecting isolated sandboxes and remote\nexecution environments.\n\nThe overlay `BUILD.bazel` for the `openmp` module defines i18n genrules\n(`id_i18n` and `default_i18n`) that execute\n`runtime/tools/message-converter.py`. This Python script imports\n`libomputils.py`.\n\nBecause `runtime/tools/libomputils.py` was not declared in the `tools`\nattribute of these genrules, strict local sandboxes and remote executors\nexcluded it from the execution root, causing builds to crash with:\n    `ModuleNotFoundError: No module named \u0027libomputils\u0027` \n\n### Fixes Applied\n- Declares `runtime/tools/libomputils.py` explicitly in the `tools`\nattribute of both genrules inside `fix_message_converter.patch`.\n - Added the patch to the new version `21.1.5.bcr.2`.\n- Recalculated integrity hashes and updated module metadata."
    },
    {
      "commit": "4d9410b1ea1c1a3e03847d7bbec4d5a41ed88410",
      "tree": "0d667b0195f9ec2913076687027bc75ce240f796",
      "parents": [
        "19279e655a634e217ce13387e10f38e0dc27be12"
      ],
      "author": {
        "name": "publish-to-bcr-bot[bot]",
        "email": "112732530+publish-to-bcr-bot[bot]@users.noreply.github.com",
        "time": "Wed May 20 15:49:53 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 20 15:49:53 2026 +0200"
      },
      "message": "rules_zig@0.15.1 (#8947)\n\n:warning: The Publish to BCR GitHub app will be discontinued after June\n30, 2026. Please migrate to the GitHub Actions [reusable\nworkflow](https://github.com/bazel-contrib/publish-to-bcr?tab\u003dreadme-ov-file#setup)\nbefore then.\n      \nRelease: https://github.com/aherrmann/rules_zig/releases/tag/v0.15.1\n\n_Automated by [Publish to BCR](https://github.com/apps/publish-to-bcr)_\n\nCo-authored-by: Andreas Herrmann \u003candreash87@gmx.ch\u003e"
    },
    {
      "commit": "19279e655a634e217ce13387e10f38e0dc27be12",
      "tree": "5a93e1ea34f4ed57c27d393babdcee71c3b3c793",
      "parents": [
        "64ed313910d07b33695221c99842276f91d76053"
      ],
      "author": {
        "name": "publish-to-bcr-bot[bot]",
        "email": "112732530+publish-to-bcr-bot[bot]@users.noreply.github.com",
        "time": "Wed May 20 14:52:01 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 20 14:52:01 2026 +0200"
      },
      "message": "rules_zig@0.15.0 (#8945)\n\n:warning: The Publish to BCR GitHub app will be discontinued after June\n30, 2026. Please migrate to the GitHub Actions [reusable\nworkflow](https://github.com/bazel-contrib/publish-to-bcr?tab\u003dreadme-ov-file#setup)\nbefore then.\n      \nRelease: https://github.com/aherrmann/rules_zig/releases/tag/v0.15.0\n\n_Automated by [Publish to BCR](https://github.com/apps/publish-to-bcr)_\n\nCo-authored-by: Andreas Herrmann \u003candreash87@gmx.ch\u003e"
    },
    {
      "commit": "64ed313910d07b33695221c99842276f91d76053",
      "tree": "90256bea5dbcde5c3b16b4896fba3fd3ffebd68e",
      "parents": [
        "3929b0261d40b0ba6b48719e3ef487c6dbb9a885"
      ],
      "author": {
        "name": "Jeremy Volkman",
        "email": "jeremy@jvolkman.com",
        "time": "Tue May 19 23:49:51 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 20 08:49:51 2026 +0200"
      },
      "message": "toml.bzl@0.4.1 (#8944)\n\nRelease: https://github.com/jvolkman/toml.bzl/releases/tag/v0.4.1\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_\n\nCo-authored-by: jvolkman \u003c124501+jvolkman@users.noreply.github.com\u003e"
    },
    {
      "commit": "3929b0261d40b0ba6b48719e3ef487c6dbb9a885",
      "tree": "7ca951616b4364e7d80909f045719db2db838920",
      "parents": [
        "6e366d17f2c64cedfd04cc8b2c5d257a36ae0b1d"
      ],
      "author": {
        "name": "Clint Morris",
        "email": "102205913+clintmorris229@users.noreply.github.com",
        "time": "Tue May 19 19:56:27 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 20 04:56:27 2026 +0200"
      },
      "message": "Fix coacd@1.0.11 compilation under hermetic toolchains by adding openmp dependency (#8943)\n\nThis PR fixes the compilation and linking of the coacd module under\nhermetic toolchains (such as Linux with Clang/LLD) by adding a hermetic\nOpenMP dependency and adjusting compiler/linker options.\nSince coacd version 1.0.11 is already published and the BCR is add-only,\nthese changes are introduced as a registry-only fix version:\n1.0.11.bcr.1 ."
    },
    {
      "commit": "6e366d17f2c64cedfd04cc8b2c5d257a36ae0b1d",
      "tree": "4372497720eb8f026160b9c9426f05f26868de53",
      "parents": [
        "18a2ffc3ebd6a223be189445d4e1e0b29548145d"
      ],
      "author": {
        "name": "protobuf-team-bot",
        "email": "105450428+protobuf-team-bot@users.noreply.github.com",
        "time": "Tue May 19 17:20:28 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 19 20:20:28 2026 -0400"
      },
      "message": "protobuf@35.0 (#8942)\n\nRelease: https://github.com/protocolbuffers/protobuf/releases/tag/v35.0\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_\n\nCo-authored-by: runzw \u003c78052475+runzw@users.noreply.github.com\u003e"
    },
    {
      "commit": "18a2ffc3ebd6a223be189445d4e1e0b29548145d",
      "tree": "07bd737609d65e7c78486aa7efa731c4cd81ce97",
      "parents": [
        "116da82d0b1f6461160c64ce14517036345fb015"
      ],
      "author": {
        "name": "Clément Guillot",
        "email": "guillot.clement@pm.me",
        "time": "Wed May 20 00:14:36 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 19 18:14:36 2026 -0400"
      },
      "message": "com_clementguillot_rules_quarkus@0.1.0 (#8912)\n\nRelease:\nhttps://github.com/clementguillot/rules_quarkus/releases/tag/v0.1.0\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_\n\nCo-authored-by: clementguillot \u003c1034030+clementguillot@users.noreply.github.com\u003e"
    },
    {
      "commit": "116da82d0b1f6461160c64ce14517036345fb015",
      "tree": "76827864db9a3cc39e9463175aa1ee8341ad10ea",
      "parents": [
        "5b4c6e72b10d0994b474c46c32651330b1674859"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Tue May 19 14:57:56 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 19 23:57:56 2026 +0200"
      },
      "message": "nanobind@2.9.2.bcr.1, nanobind@2.12.0.bcr.1 (#8882)\n\nChanges:\n- Fix \"undefined hidden symbols\" linker errors for shared library\nconsumers\n- Add missing headers"
    },
    {
      "commit": "5b4c6e72b10d0994b474c46c32651330b1674859",
      "tree": "d56a032da06cb74fbdab07b36e5cadaf1a9125dd",
      "parents": [
        "cd0af28ac024adbbf18ae327ad2728c7acf70847"
      ],
      "author": {
        "name": "frankslin",
        "email": "frankslin@users.noreply.github.com",
        "time": "Wed May 20 00:06:49 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 19 23:06:49 2026 +0200"
      },
      "message": "Add OpenCC version 1.3.1 to BCR (#8935)\n\nhttps://github.com/BYVoid/OpenCC/releases/tag/ver.1.3.1"
    },
    {
      "commit": "cd0af28ac024adbbf18ae327ad2728c7acf70847",
      "tree": "a5c5a2911a9d5e29f2e7374fad04f9a37988108e",
      "parents": [
        "ff14c4dc3ed6cfc64f33b14b44e86c63d76beae8"
      ],
      "author": {
        "name": "periareon-bot",
        "email": "periareon-bot@proton.me",
        "time": "Tue May 19 08:54:35 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 19 08:54:35 2026 -0700"
      },
      "message": "rules_cc_autoconf@0.11.0 (#8939)\n\nRelease:\nhttps://github.com/periareon/rules_cc_autoconf/releases/tag/0.11.0\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_\n\nCo-authored-by: periareon-bot \u003c260522848+periareon-bot@users.noreply.github.com\u003e"
    },
    {
      "commit": "ff14c4dc3ed6cfc64f33b14b44e86c63d76beae8",
      "tree": "0ce4b3d05f8049a497880868265c372ef12f4c48",
      "parents": [
        "3072a1098865b1a8cf62aa56a381e3d2afdd6251"
      ],
      "author": {
        "name": "Henner Zeller",
        "email": "h.zeller@acm.org",
        "time": "Tue May 19 16:48:41 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 19 10:48:41 2026 -0400"
      },
      "message": "bant: +\u003d 0.2.9 (#8915)\n\nSigned-off-by: Henner Zeller \u003ch.zeller@acm.org\u003e"
    },
    {
      "commit": "3072a1098865b1a8cf62aa56a381e3d2afdd6251",
      "tree": "b9e203d708ee137c13eee6bc73f2ef053f1ba665",
      "parents": [
        "b6f7a2e9ef927c5dec86f9adfb0e67b993855657"
      ],
      "author": {
        "name": "Maxwell Elliott",
        "email": "maxwell@elliott.now",
        "time": "Tue May 19 10:14:21 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 19 16:14:21 2026 +0200"
      },
      "message": "bazel-diff@24.0.0 (#8936)\n\nRelease: https://github.com/Tinder/bazel-diff/releases/tag/v24.0.0\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_"
    },
    {
      "commit": "b6f7a2e9ef927c5dec86f9adfb0e67b993855657",
      "tree": "1fa9e04022fbdac06bac80d96a9a468fdb50edea",
      "parents": [
        "fdd36c48f75ea33e89bc7e9fd791663a3f826235"
      ],
      "author": {
        "name": "Clint Morris",
        "email": "102205913+clintmorris229@users.noreply.github.com",
        "time": "Tue May 19 04:57:42 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 19 13:57:42 2026 +0200"
      },
      "message": "Add coacd 1.0.11 (#8715)\n\n### Description\nAdds CoACD (Approximate Convex Decomposition for 3D meshes) version\n1.0.11 to the Bazel Central Registry.\nThis PR introduces a native Bazel build graph via an overlay BUILD.bazel\nfile to allow CoACD to be seamlessly\nconsumed as a Bazel dependency.\n### Modifications\n• modules/coacd/1.0.11/overlay/BUILD.bazel : Added a build file to\nexpose the coacd_lib target. Included -Wa,--\n  gsframe\u003dno  to fix linker errors encountered with the    \nmodern gLinux GCC 15 toolchain.\n• modules/coacd/1.0.11/MODULE.bazel : Wired up all dependencies using\nofficial BCR modules ( openvdb , onetbb ,\nzlib , and cdt ).\n### Testing\n• Passed local bcr_validation structural and integrity checks. It only\ntriggers the policy warning for unstable\nGitHub archive URL, which is standard for repositories without uploaded\nrelease assets and can be skipped in the PR\nwith @bazel-io skip_check unstable_url .\n• Successfully builds the coacd_lib target via the local anonymous\nmodule presubmit test under Bazel 8.x."
    },
    {
      "commit": "fdd36c48f75ea33e89bc7e9fd791663a3f826235",
      "tree": "0d15f09318a2b3a932732ce1f33e56dab8472c3f",
      "parents": [
        "3ccd81fa273e98743fc74400ec0c75de5f6eca52"
      ],
      "author": {
        "name": "Jeremy Volkman",
        "email": "jeremy@jvolkman.com",
        "time": "Tue May 19 01:04:21 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 19 10:04:21 2026 +0200"
      },
      "message": "re.bzl@0.3.1 (#8934)\n\nRelease: https://github.com/jvolkman/re.bzl/releases/tag/v0.3.1\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_\n\nCo-authored-by: jvolkman \u003c124501+jvolkman@users.noreply.github.com\u003e"
    },
    {
      "commit": "3ccd81fa273e98743fc74400ec0c75de5f6eca52",
      "tree": "dc6f5bb9a1b1de16277a67f5d574969956a118b1",
      "parents": [
        "a9eff1739583b197d9c8a56eda71581941faaf8c"
      ],
      "author": {
        "name": "Martin Altenburg",
        "email": "2737351+martin4861@users.noreply.github.com",
        "time": "Tue May 19 07:19:24 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 19 01:19:24 2026 -0400"
      },
      "message": "cereal@1.3.2.bcr.4 (#8926)\n\nAdded a bool flag for threadsafe to `cereal`, which is disabled by\ndefault to keep same behavior as in 1.3.2.bcr.3."
    },
    {
      "commit": "a9eff1739583b197d9c8a56eda71581941faaf8c",
      "tree": "96f68992da94bdd1346aa8ca85cba1bd3a5a3943",
      "parents": [
        "0dbf411892fd93fd3a5760f06f45be2163652fa2"
      ],
      "author": {
        "name": "William Smith",
        "email": "calsignlabs@gmail.com",
        "time": "Mon May 18 21:24:44 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 19 00:24:44 2026 -0400"
      },
      "message": "Add gazelle_rust at 0.1.0 (#8724)\n\ngazelle_rust is a rust language plugin for gazelle.\n\nI think this is straightforward since gazelle_rust is a pretty tame\nbazel module. Please let me know if I\u0027m missing anything."
    },
    {
      "commit": "0dbf411892fd93fd3a5760f06f45be2163652fa2",
      "tree": "e347c7179601b6eb40852f7eb8d0a1df81a6ac77",
      "parents": [
        "cfd1e34388e179f9be19c41f67b1728758ac1f08"
      ],
      "author": {
        "name": "Carbo",
        "email": "BYVoid@users.noreply.github.com",
        "time": "Mon May 18 19:06:24 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 18 22:06:24 2026 -0400"
      },
      "message": "asio@1.34.2.bcr.1 (#8919)\n\n## Summary\n\n- Adds a new `asio_no_openssl` cc_library target that builds asio\nwithout the OpenSSL dependency, for consumers that don\u0027t need SSL\nsupport.\n- The existing `asio` target (with OpenSSL) is preserved unchanged for\nbackward compatibility.\n\nThe unstable URL check warning is the same as `1.34.2.bcr.0` (asio\nreleases tarballs via the tag archive URL only).\n\n@bazel-io skip_check unstable_url\n\n## Test plan\n\n- [x] `bazel run //tools:bcr_validation -- --check\u003dasio@1.34.2.bcr.1`\npasses (apart from the expected `unstable_url` and `presubmit.yml`\nreview notes).\n- [x] `bazel build @asio//:asio @asio//:asio_no_openssl` succeeds\nlocally via `//tools:setup_presubmit_repos` anonymous module.\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)"
    },
    {
      "commit": "cfd1e34388e179f9be19c41f67b1728758ac1f08",
      "tree": "e5294bde6c875ed25e97939a7051ceb7ef844706",
      "parents": [
        "cf2ad245785eb6450d4c2f781642269c9b7ef789"
      ],
      "author": {
        "name": "Jeremy Kun",
        "email": "kun.jeremy@gmail.com",
        "time": "Mon May 18 15:59:59 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 19 00:59:59 2026 +0200"
      },
      "message": "rules_heir: 0.0.5 (#8908)\n\nFor https://github.com/j2kun/rules_heir/releases/tag/v0.0.5\n\nCo-authored-by: Jeremy Kun \u003cj2kun@users.noreply.github.com\u003e"
    },
    {
      "commit": "cf2ad245785eb6450d4c2f781642269c9b7ef789",
      "tree": "807a65cd4f007585a60355ff2572ec2e5207bd70",
      "parents": [
        "39cc652f662369898a2baf4678613ad4cb4e793d"
      ],
      "author": {
        "name": "grpc-bot",
        "email": "33466630+grpc-bot@users.noreply.github.com",
        "time": "Mon May 18 14:40:42 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 18 23:40:42 2026 +0200"
      },
      "message": "grpc@1.81.0-pre1 (#8930)\n\nRelease: https://github.com/grpc/grpc/releases/tag/v1.81.0-pre1\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_\n\n---------\n\nCo-authored-by: yuanweiz \u003c5679340+yuanweiz@users.noreply.github.com\u003e\nCo-authored-by: Weizhe Yuan \u003cweizheyuan@google.com\u003e"
    },
    {
      "commit": "39cc652f662369898a2baf4678613ad4cb4e793d",
      "tree": "942f55f87822ea481b93245728662bfecbb0c77e",
      "parents": [
        "96b6722710d9b2b4ddbd073e35b1497ec94c2288"
      ],
      "author": {
        "name": "periareon-bot",
        "email": "periareon-bot@proton.me",
        "time": "Mon May 18 11:43:43 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 18 11:43:43 2026 -0700"
      },
      "message": "rules_cc_autoconf@0.10.3 (#8925)\n\nRelease:\nhttps://github.com/periareon/rules_cc_autoconf/releases/tag/0.10.3\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_\n\nCo-authored-by: periareon-bot \u003c260522848+periareon-bot@users.noreply.github.com\u003e"
    },
    {
      "commit": "96b6722710d9b2b4ddbd073e35b1497ec94c2288",
      "tree": "36acd7ed96d7ed49dab3546b4ebd174e87f3d720",
      "parents": [
        "f8a3615f7210c34395ef7e586c9167cadebf1a66"
      ],
      "author": {
        "name": "frankslin",
        "email": "frankslin@users.noreply.github.com",
        "time": "Mon May 18 21:14:28 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 18 20:14:28 2026 +0200"
      },
      "message": "Add opencc 1.2.0 to the Bazel Central Registry (#8385)\n\nAgent-Logs-Url:\nhttps://github.com/frankslin/bazel-central-registry/sessions/9802ba5c-9940-41fa-aeed-24b3e7c19fc0"
    },
    {
      "commit": "f8a3615f7210c34395ef7e586c9167cadebf1a66",
      "tree": "02f7c2fbc1e1ede7c3051a732f9615c351c37272",
      "parents": [
        "b2cc19e2a390349f5597510da0817c1799dc45b9"
      ],
      "author": {
        "name": "Maxwell Elliott",
        "email": "maxwell@elliott.now",
        "time": "Mon May 18 14:13:34 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 18 20:13:34 2026 +0200"
      },
      "message": "bazel-diff@23.0.0 (#8923)\n\nRelease: https://github.com/Tinder/bazel-diff/releases/tag/v23.0.0\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_"
    },
    {
      "commit": "b2cc19e2a390349f5597510da0817c1799dc45b9",
      "tree": "3d2f6d56f6fcc81ff9b9ba62d91f18d3deb1692c",
      "parents": [
        "42016c311a0d367402fcbc1eda133348d367f399"
      ],
      "author": {
        "name": "Byoungchan Lee",
        "email": "byoungchan.lee@gmx.com",
        "time": "Mon May 18 19:24:45 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 18 12:24:45 2026 +0200"
      },
      "message": "kleidiai@0.0.0-20260506-d41219d3db (#8854)"
    },
    {
      "commit": "42016c311a0d367402fcbc1eda133348d367f399",
      "tree": "c8c3b8cae7fb01952d4d70f8d7dfd025f830575c",
      "parents": [
        "bc91634904ab1782f27caab1fb2733e14d6dc175"
      ],
      "author": {
        "name": "Andy Scott",
        "email": "andyscott@users.noreply.github.com",
        "time": "Mon May 18 01:43:22 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 18 10:43:22 2026 +0200"
      },
      "message": "gazelle_fold@0.3.0 (#8920)\n\nRelease: https://github.com/andyscott/gazelle_fold/releases/tag/v0.3.0\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_\n\nCo-authored-by: andyscott \u003c310363+andyscott@users.noreply.github.com\u003e"
    },
    {
      "commit": "bc91634904ab1782f27caab1fb2733e14d6dc175",
      "tree": "ba0ea38d59f134c57db52c386edc465cb60ca604",
      "parents": [
        "c484ba81b31249aa5fc1157e43e192ca218dbcc6"
      ],
      "author": {
        "name": "Jeremy Volkman",
        "email": "jeremy@jvolkman.com",
        "time": "Sun May 17 07:09:40 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun May 17 16:09:40 2026 +0200"
      },
      "message": "toml.bzl@0.4.0 (#8916)\n\nRelease: https://github.com/jvolkman/toml.bzl/releases/tag/v0.4.0\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_\n\nCo-authored-by: jvolkman \u003c124501+jvolkman@users.noreply.github.com\u003e"
    },
    {
      "commit": "c484ba81b31249aa5fc1157e43e192ca218dbcc6",
      "tree": "e0860c0910ab1eff35bf78cfb3c108951387feaa",
      "parents": [
        "c2702cea87da18b631d530a11b35c0dfbd526447"
      ],
      "author": {
        "name": "Jeremy Volkman",
        "email": "jeremy@jvolkman.com",
        "time": "Sun May 17 06:57:34 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun May 17 15:57:34 2026 +0200"
      },
      "message": "re.bzl@0.3.0 (#8917)\n\nRelease: https://github.com/jvolkman/re.bzl/releases/tag/v0.3.0\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_\n\nCo-authored-by: jvolkman \u003c124501+jvolkman@users.noreply.github.com\u003e"
    },
    {
      "commit": "c2702cea87da18b631d530a11b35c0dfbd526447",
      "tree": "567f697ccd350f1537348b9b9bd1429c9d88d391",
      "parents": [
        "b6c088f90ce41214c1a224509771286b58bc5184"
      ],
      "author": {
        "name": "hermeticbuild-bot",
        "email": "hermeticbuildbot@gmail.com",
        "time": "Sat May 16 20:26:35 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat May 16 20:26:35 2026 -0400"
      },
      "message": "rules_rs@0.0.82 (#8914)\n\nRelease: https://github.com/hermeticbuild/rules_rs/releases/tag/v0.0.82\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_\n\nCo-authored-by: dzbarsky \u003c1565842+dzbarsky@users.noreply.github.com\u003e"
    },
    {
      "commit": "b6c088f90ce41214c1a224509771286b58bc5184",
      "tree": "2aa972daf696f1292549618b9fe4bf6cb92e8e95",
      "parents": [
        "60651703f784bd6b8153a5bdc1754c0ae864993c"
      ],
      "author": {
        "name": "hermeticbuild-bot",
        "email": "hermeticbuildbot@gmail.com",
        "time": "Sat May 16 16:31:58 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat May 16 16:31:58 2026 -0400"
      },
      "message": "Publish llvm@0.8.3 (#8913)\n\nRelease:\nhttps://github.com/hermeticbuild/hermetic-llvm/releases/tag/v0.8.3\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_\n\nCo-authored-by: dzbarsky \u003c1565842+dzbarsky@users.noreply.github.com\u003e"
    },
    {
      "commit": "60651703f784bd6b8153a5bdc1754c0ae864993c",
      "tree": "c8fe0959b064e64133f2164b6449976c0e0ee434",
      "parents": [
        "05e94b719351a35a6ed83d8ff3e7613681326016"
      ],
      "author": {
        "name": "Filip Filmar",
        "email": "filmil@gmail.com",
        "time": "Fri May 15 22:00:15 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat May 16 07:00:15 2026 +0200"
      },
      "message": "gotopt2@2.5.1 (#8898)\n\nRelease: https://github.com/filmil/gotopt2/releases/tag/v2.5.1\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_"
    },
    {
      "commit": "05e94b719351a35a6ed83d8ff3e7613681326016",
      "tree": "250ce8e94b3e0b9188211c80301ac0114aff8a7c",
      "parents": [
        "0f2ad76c810d292be42909948fde39bdb75d6370"
      ],
      "author": {
        "name": "Scott Hart",
        "email": "sdhart@google.com",
        "time": "Fri May 15 17:30:53 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 15 23:30:53 2026 +0200"
      },
      "message": "Add googleapis 0.0.0-20260514-1dbb1a14 (#8907)"
    },
    {
      "commit": "0f2ad76c810d292be42909948fde39bdb75d6370",
      "tree": "4060182c17d7f0a2b64efeb85c813300a6e77973",
      "parents": [
        "31e0c228c325535524112c5ab0600bf764831c63"
      ],
      "author": {
        "name": "Jeremy Nimmer",
        "email": "jeremy.nimmer@tri.global",
        "time": "Fri May 15 14:22:52 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 15 17:22:52 2026 -0400"
      },
      "message": "Disallow git_repository; all modules must use http_archive (#8771)\n\nTo support a reliable ecosystem of mirrors, BCR will only accept\nhttp_archive modules from now on.\n\nSee\nhttps://github.com/bazelbuild/bazel/issues/23461#issuecomment-4230015227\nfor prior discussion / explanation.\n\nCloses bazelbuild/bazel#23461."
    },
    {
      "commit": "31e0c228c325535524112c5ab0600bf764831c63",
      "tree": "2337dee5981d55b4b1e44dc960f4904feb71b641",
      "parents": [
        "01442c0a7c703d44632a5a8d816074b2a3b5644e"
      ],
      "author": {
        "name": "Jan Schlosser",
        "email": "castler@users.noreply.github.com",
        "time": "Fri May 15 19:23:45 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 15 19:23:45 2026 +0200"
      },
      "message": "Add Boost.Python in Version 1.83.0 (#8135)"
    },
    {
      "commit": "01442c0a7c703d44632a5a8d816074b2a3b5644e",
      "tree": "10502df4256e0a250a6da631a34601e0d3a4b7c8",
      "parents": [
        "3de82528011af625cad65fecb1765bba40bf6072"
      ],
      "author": {
        "name": "Scott Hart",
        "email": "sdhart@google.com",
        "time": "Fri May 15 13:03:09 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 15 19:03:09 2026 +0200"
      },
      "message": "feat: add google_cloud_cpp@3.5.0 (#8902)"
    },
    {
      "commit": "3de82528011af625cad65fecb1765bba40bf6072",
      "tree": "54e1c0b20489305b51728772f455bb5383541770",
      "parents": [
        "53968c6641089bf3ef5e0c23b4704750c29d3c07"
      ],
      "author": {
        "name": "Vertexwahn",
        "email": "julian.amann@tum.de",
        "time": "Fri May 15 19:02:41 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 15 19:02:41 2026 +0200"
      },
      "message": "openjph@0.27.3 (#8905)\n\nopenjph@0.27.3"
    },
    {
      "commit": "53968c6641089bf3ef5e0c23b4704750c29d3c07",
      "tree": "99d9ef833884fc6ab47604fd0c7ae34f0b50e4a4",
      "parents": [
        "5896ee13642e2fb690b2679d18892df465618205"
      ],
      "author": {
        "name": "Machine account for bazel-contrib",
        "email": "contrib@bazel.build",
        "time": "Fri May 15 09:26:52 2026 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 15 17:26:52 2026 +0200"
      },
      "message": "bazel_features@1.47.1 (#8901)\n\nRelease:\nhttps://github.com/bazel-contrib/bazel_features/releases/tag/v1.47.1\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_\n\nCo-authored-by: fmeum \u003c4312191+fmeum@users.noreply.github.com\u003e"
    },
    {
      "commit": "5896ee13642e2fb690b2679d18892df465618205",
      "tree": "fde97e3a35f605c1b4872714cece742d85af2082",
      "parents": [
        "5e5765369f3e04ebbb096b8c48ead2ce173c7764"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri May 15 15:04:06 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 15 15:04:06 2026 +0200"
      },
      "message": "Bump the all-pip group in /tools with 10 updates (#8871)\n\nBumps the all-pip group in /tools with 10 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [bazel-runfiles](https://github.com/bazel-contrib/rules_python) |\n`2.0.0` | `2.0.1` |\n| [cyclopts](https://github.com/BrianPugh/cyclopts) | `4.11.2` |\n`4.12.0` |\n| [idna](https://github.com/kjd/idna) | `3.13` | `3.15` |\n| [importlib-metadata](https://github.com/python/importlib_metadata) |\n`8.7.1` | `9.0.0` |\n| [markdown-it-py](https://github.com/executablebooks/markdown-it-py) |\n`4.0.0` | `4.2.0` |\n| [mcp](https://github.com/modelcontextprotocol/python-sdk) | `1.27.0` |\n`1.27.1` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) |\n`2.14.0` | `2.14.1` |\n| [python-multipart](https://github.com/Kludex/python-multipart) |\n`0.0.27` | `0.0.28` |\n| [requests](https://github.com/psf/requests) | `2.33.1` | `2.34.0` |\n| [sse-starlette](https://github.com/sysid/sse-starlette) | `3.4.1` |\n`3.4.4` |\n\nUpdates `bazel-runfiles` from 2.0.0 to 2.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/bazel-contrib/rules_python/releases\"\u003ebazel-runfiles\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.0.1\u003c/h2\u003e\n\u003cp\u003eFor more detailed setup instructions, see \u003ca\nhref\u003d\"https://rules-python.readthedocs.io/en/latest/getting-started.html\"\u003ehttps://rules-python.readthedocs.io/en/latest/getting-started.html\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFor the user-facing changelog see \u003ca\nhref\u003d\"https://rules-python.readthedocs.io/en/latest/changelog.html#v2-0-1\"\u003ehere\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eUsing Bzlmod\u003c/h2\u003e\n\u003cp\u003eAdd to your \u003ccode\u003eMODULE.bazel\u003c/code\u003e file:\u003c/p\u003e\n\u003cpre lang\u003d\"starlark\"\u003e\u003ccode\u003ebazel_dep(name \u003d \u0026quot;rules_python\u0026quot;,\nversion \u003d \u0026quot;2.0.1\u0026quot;)\n\u003cp\u003epython \u003d use_extension(\u0026quot;\u003ca\nhref\u003d\"https://github.com/rules\"\u003e\u003ccode\u003e@​rules\u003c/code\u003e\u003c/a\u003e_python//python/extensions:python.bzl\u0026quot;,\n\u0026quot;python\u0026quot;)\u003cbr /\u003e\npython.toolchain(\u003cbr /\u003e\npython_version \u003d \u0026quot;3.13\u0026quot;,\u003cbr /\u003e\n)\u003c/p\u003e\n\u003cp\u003epip \u003d use_extension(\u0026quot;\u003ca\nhref\u003d\"https://github.com/rules\"\u003e\u003ccode\u003e@​rules\u003c/code\u003e\u003c/a\u003e_python//python/extensions:pip.bzl\u0026quot;,\n\u0026quot;pip\u0026quot;)\u003cbr /\u003e\npip.parse(\u003cbr /\u003e\nhub_name \u003d \u0026quot;pypi\u0026quot;,\u003cbr /\u003e\npython_version \u003d \u0026quot;3.13\u0026quot;,\u003cbr /\u003e\nrequirements_lock \u003d \u0026quot;//:requirements_lock.txt\u0026quot;,\u003cbr /\u003e\n)\u003c/p\u003e\n\u003cp\u003euse_repo(pip, \u0026quot;pypi\u0026quot;)\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003ch2\u003eUsing WORKSPACE\u003c/h2\u003e\n\u003cp\u003ePaste this snippet into your \u003ccode\u003eWORKSPACE\u003c/code\u003e file:\u003c/p\u003e\n\u003cpre\nlang\u003d\"starlark\"\u003e\u003ccode\u003eload(\u0026quot;@bazel_tools//tools/build_defs/repo:http.bzl\u0026quot;,\n\u0026quot;http_archive\u0026quot;)\n\u003cp\u003ehttp_archive(\u003cbr /\u003e\nname \u003d \u0026quot;rules_python\u0026quot;,\u003cbr /\u003e\nsha256 \u003d\n\u0026quot;d4dd58e857a7c1bfc7da68adaef1178a20b197b1176c877afd2373369857e65c\u0026quot;,\u003cbr\n/\u003e\nstrip_prefix \u003d \u0026quot;rules_python-2.0.1\u0026quot;,\u003cbr /\u003e\nurl \u003d \u0026quot;\u003ca\nhref\u003d\"https://github.com/bazel-contrib/rules_python/releases/download/2.0.1/rules_python-2.0.1.tar.gz\"\u003ehttps://github.com/bazel-contrib/rules_python/releases/download/2.0.1/rules_python-2.0.1.tar.gz\u003c/a\u003e\u0026quot;,\u003cbr\n/\u003e\n)\u003c/p\u003e\n\u003cp\u003eload(\u0026quot;\u003ca\nhref\u003d\"https://github.com/rules\"\u003e\u003ccode\u003e@​rules\u003c/code\u003e\u003c/a\u003e_python//python:repositories.bzl\u0026quot;,\n\u0026quot;py_repositories\u0026quot;)\u003c/p\u003e\n\u003cp\u003epy_repositories()\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003ch3\u003eGazelle plugin\u003c/h3\u003e\n\u003cp\u003ePaste this snippet into your \u003ccode\u003eWORKSPACE\u003c/code\u003e file:\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/bazel-contrib/rules_python/blob/main/CHANGELOG.md\"\u003ebazel-runfiles\u0027s\nchangelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca\nhref\u003d\"https://github.com/bazel-contrib/rules_python/releases/tag/2.0.1\"\u003e2.0.1\u003c/a\u003e\n- 2026-05-08\u003c/h2\u003e\n\u003cp\u003e{#v2-0-1-fixed}\u003c/p\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e(pypi) Fix the versions of packages that we are recording to a\n\u003ccode\u003eMODULE.bazel.lock\u003c/code\u003e file\nfacts by passing all of the versions to the \u003ccode\u003eget_index\u003c/code\u003e\nfunction.\nFixes \u003ca\nhref\u003d\"https://redirect.github.com/bazel-contrib/rules_python/issues/3756\"\u003e#3756\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e(bzlmod) Reduce default verbosity of our loggers for non-root\nmodules\n(\u003ca\nhref\u003d\"https://redirect.github.com/bazel-contrib/rules_python/issues/3749\"\u003e#3749\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e{#v2-0-0}\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/bazel-contrib/rules_python/commit/e29c577dab874be389c20ec58eb4dd15495a32cb\"\u003e\u003ccode\u003ee29c577\u003c/code\u003e\u003c/a\u003e\ntest: finish fixing the mocks in the pypi_cache\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/bazel-contrib/rules_python/commit/ed05762a6fc444e041e7415e712102f583f169ad\"\u003e\u003ccode\u003eed05762\u003c/code\u003e\u003c/a\u003e\nfix(test): update the lock-file to corresspond to the current deps\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/bazel-contrib/rules_python/commit/2852efd8c2726041c5061e98d9c50e5daf40b734\"\u003e\u003ccode\u003e2852efd\u003c/code\u003e\u003c/a\u003e\nfix(logger): do not output WARN level logs for non-root modules (\u003ca\nhref\u003d\"https://redirect.github.com/bazel-contrib/rules_python/issues/3760\"\u003e#3760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/bazel-contrib/rules_python/commit/d876cfef417bcc7e3519726d7b740b938273ebdd\"\u003e\u003ccode\u003ed876cfe\u003c/code\u003e\u003c/a\u003e\nfix(pypi): pass the correct versions to get_index_urls and fix cache\ninvalida...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca\nhref\u003d\"https://github.com/bazel-contrib/rules_python/compare/2.0.0...2.0.1\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cyclopts` from 4.11.2 to 4.12.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/BrianPugh/cyclopts/releases\"\u003ecyclopts\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.12.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow for validators to be string(s) (class method forward\nreference) by \u003ca\nhref\u003d\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/BrianPugh/cyclopts/pull/803\"\u003eBrianPugh/cyclopts#803\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/BrianPugh/cyclopts/compare/v4.11.2...v4.12.0\"\u003ehttps://github.com/BrianPugh/cyclopts/compare/v4.11.2...v4.12.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/BrianPugh/cyclopts/commit/b0c66c452139de521f0bab4260eeda2af5ca15e9\"\u003e\u003ccode\u003eb0c66c4\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/BrianPugh/cyclopts/issues/803\"\u003e#803\u003c/a\u003e\nfrom BrianPugh/str-reference-validator\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/BrianPugh/cyclopts/commit/bad4370647e1daabbad0edabdbc2606e68574a8f\"\u003e\u003ccode\u003ebad4370\u003c/code\u003e\u003c/a\u003e\nMissing test coverage\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/BrianPugh/cyclopts/commit/efe193001cce30a0e9f0f8cf854bf47171d7942d\"\u003e\u003ccode\u003eefe1930\u003c/code\u003e\u003c/a\u003e\nresolve string forward-referenced validators\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca\nhref\u003d\"https://github.com/BrianPugh/cyclopts/compare/v4.11.2...v4.12.0\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `idna` from 3.13 to 3.15\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/kjd/idna/blob/master/HISTORY.md\"\u003eidna\u0027s\nchangelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.15 (2026-05-12)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEnforce DNS-length cap on individual labels early in\n\u003ccode\u003echeck_label\u003c/code\u003e,\nshort-circuiting contextual-rule processing for oversized input\nwhile staying compatible with UTS 46 usage.\u003c/li\u003e\n\u003cli\u003eTidy core helpers: hoist bidi category sets to module-level\nfrozensets (avoiding per-codepoint list construction), simplify\nlength checks, and reuse the shared \u003ccode\u003e_unicode_dots_re\u003c/code\u003e from\n\u003ccode\u003eidna.core\u003c/code\u003e in the codec module.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eraise ... from err\u003c/code\u003e for proper exception chaining\nand\nswitch internal string formatting to f-strings.\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003eflit_core\u003c/code\u003e 4.x in the build backend.\u003c/li\u003e\n\u003cli\u003eExpand the ruff lint set (flake8-bugbear, flake8-simplify,\npyupgrade, perflint) and apply the surfaced fixes; pin lint CI\nto Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdd Dependabot configuration for GitHub Actions.\u003c/li\u003e\n\u003cli\u003eConvert README and HISTORY from reStructuredText to Markdown.\u003c/li\u003e\n\u003cli\u003eReference CVE-2026-45409 for the 3.14 advisory in place of the\ninitial GHSA identifier.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to Felix Yan, Stan Ulbrych, and metsw24-max for\ncontributions to this release.\u003c/p\u003e\n\u003ch2\u003e3.14 (2026-05-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved opportunity to process long inputs into quadratic\ntime by rejecting oversize inputs up-front. Closes a bypass\nof the CVE-2024-3651 mitigation. [CVE-2026-45409]\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to Stan Ulbrych for reporting the issue.\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/kjd/idna/commit/af30a092e158181d0b35ac66dfa813788126bdd8\"\u003e\u003ccode\u003eaf30a09\u003c/code\u003e\u003c/a\u003e\nRelease 3.15\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/kjd/idna/commit/30314d4628744ca14cf2b5820564e5127a9f86f2\"\u003e\u003ccode\u003e30314d4\u003c/code\u003e\u003c/a\u003e\nPre-release 3.15rc0\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/kjd/idna/commit/05d4b219aa9eddc47371fcbd2000f0301016f3e9\"\u003e\u003ccode\u003e05d4b21\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/kjd/idna/issues/237\"\u003e#237\u003c/a\u003e from\nkjd/convert-docs-to-markdown\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/kjd/idna/commit/2987fdba1962bbb2358399e0084ba062b98a0bee\"\u003e\u003ccode\u003e2987fdb\u003c/code\u003e\u003c/a\u003e\nConvert README and HISTORY from reStructuredText to Markdown\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/kjd/idna/commit/59fa8002d514bf4a5ce7b58f67b9ec587d53fa9c\"\u003e\u003ccode\u003e59fa800\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/kjd/idna/issues/236\"\u003e#236\u003c/a\u003e from\nkjd/dependabot/github_actions/actions-f3e34333ea\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/kjd/idna/commit/def69834ced5d4b3c50439d8b99c4c856ec19ca2\"\u003e\u003ccode\u003edef6983\u003c/code\u003e\u003c/a\u003e\nMerge branch \u0027master\u0027 into\ndependabot/github_actions/actions-f3e34333ea\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/kjd/idna/commit/bbd8004a797185d8c56bb555cd5c88fde05e0631\"\u003e\u003ccode\u003ebbd8004\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/kjd/idna/issues/234\"\u003e#234\u003c/a\u003e from\nStanFromIreland/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/kjd/idna/commit/edd07c05024344a6ccb517414ccb36683aee99fc\"\u003e\u003ccode\u003eedd07c0\u003c/code\u003e\u003c/a\u003e\nBump github/codeql-action from 3.35.2 to 4.35.2 in the actions\ngroup\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/kjd/idna/commit/5557db030c11bdec50d62aa5f631d705d33ba123\"\u003e\u003ccode\u003e5557db0\u003c/code\u003e\u003c/a\u003e\nMerge branch \u0027master\u0027 into patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/kjd/idna/commit/f11746cf4981d25123ef7830d3ee60f07de8ae3d\"\u003e\u003ccode\u003ef11746c\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/kjd/idna/issues/235\"\u003e#235\u003c/a\u003e from\nStanFromIreland/patch-2\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/kjd/idna/compare/v3.13...v3.15\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `importlib-metadata` from 8.7.1 to 9.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/python/importlib_metadata/blob/main/NEWS.rst\"\u003eimportlib-metadata\u0027s\nchangelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev9.0.0\u003c/h1\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eMetadataNotFound\u003c/code\u003e (subclass of\n\u003ccode\u003eFileNotFoundError\u003c/code\u003e) and updated\n\u003ccode\u003eDistribution.metadata\u003c/code\u003e/\u003ccode\u003emetadata()\u003c/code\u003e to raise it\nwhen the metadata files are missing instead of returning\n\u003ccode\u003eNone\u003c/code\u003e\u003ccode\u003epython/cpython#143387\u003c/code\u003e\u003ca\nhref\u003d\"https://redirect.github.com/python/importlib_metadata/issues/532\"\u003e#532\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev8.9.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epython/cpython#110937\u003c/code\u003e\u003ca\nhref\u003d\"https://redirect.github.com/python/cpython/issues/140141\"\u003epython/cpython#140141\u003c/a\u003e,\n\u003ca\nhref\u003d\"https://redirect.github.com/python/cpython/issues/143658\"\u003epython/cpython#143658\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev8.8.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved Python 3.9 compatibility.\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/python/importlib_metadata/commit/a9f883fef337c667a81a987bc0cbc0dbb43b2bfe\"\u003e\u003ccode\u003ea9f883f\u003c/code\u003e\u003c/a\u003e\nFinalize\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/python/importlib_metadata/commit/9b0dfdfe2e187dca6644007570189aadc6c97a34\"\u003e\u003ccode\u003e9b0dfdf\u003c/code\u003e\u003c/a\u003e\nRaise an exception when no metadata file is found (\u003ca\nhref\u003d\"https://redirect.github.com/python/importlib_metadata/issues/532\"\u003e#532\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/python/importlib_metadata/commit/0f2229ca84f20be2ceaaa4c62a276fa9b003f5bc\"\u003e\u003ccode\u003e0f2229c\u003c/code\u003e\u003c/a\u003e\nMerge branch \u0027main\u0027 into feature/no-metadata-exception\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/python/importlib_metadata/commit/2f4088e490a73ac7f39b86214d2da16d2eb1ff39\"\u003e\u003ccode\u003e2f4088e\u003c/code\u003e\u003c/a\u003e\nRemove news fragments about internal details.\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/python/importlib_metadata/commit/0ac27203f8044daf634c22f385838122a0707449\"\u003e\u003ccode\u003e0ac2720\u003c/code\u003e\u003c/a\u003e\nAdd news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/python/importlib_metadata/commit/a5c2154835facb4a9d0a6f5b3aac1f3d1ff86170\"\u003e\u003ccode\u003ea5c2154\u003c/code\u003e\u003c/a\u003e\nFinalize\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/python/importlib_metadata/commit/e66e22634f7522e7778b66e8a8b19782a11d4943\"\u003e\u003ccode\u003ee66e226\u003c/code\u003e\u003c/a\u003e\nDrop support for EOL Python 3.9 (\u003ca\nhref\u003d\"https://redirect.github.com/python/importlib_metadata/issues/530\"\u003e#530\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/python/importlib_metadata/commit/6027933ae96c9e51dd0b7ce392cb30f6fcae1940\"\u003e\u003ccode\u003e6027933\u003c/code\u003e\u003c/a\u003e\nAdd news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/python/importlib_metadata/commit/b89388a53bf857127e0a6860dfcfe2cd69a79ab8\"\u003e\u003ccode\u003eb89388a\u003c/code\u003e\u003c/a\u003e\nImport os_helper directly.\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/python/importlib_metadata/commit/2dcb761d940b0115b786ab3b6f336af7d94630f4\"\u003e\u003ccode\u003e2dcb761\u003c/code\u003e\u003c/a\u003e\nAdd uniform exclusions for test.support.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/python/importlib_metadata/compare/v8.7.1...v9.0.0\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `markdown-it-py` from 4.0.0 to 4.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/executablebooks/markdown-it-py/releases\"\u003emarkdown-it-py\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.2.0\u003c/h2\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add \u003ccode\u003emake_fence_rule()\u003c/code\u003e factory for configurable fence\nmarkers by \u003ca\nhref\u003d\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e\nin \u003ca\nhref\u003d\"https://redirect.github.com/executablebooks/markdown-it-py/pull/394\"\u003eexecutablebooks/markdown-it-py#394\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🚀 RELEASE v4.2.0 by \u003ca\nhref\u003d\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e\nin \u003ca\nhref\u003d\"https://redirect.github.com/executablebooks/markdown-it-py/pull/395\"\u003eexecutablebooks/markdown-it-py#395\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/executablebooks/markdown-it-py/compare/v4.1.0...v4.2.0\"\u003ehttps://github.com/executablebooks/markdown-it-py/compare/v4.1.0...v4.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.1.0\u003c/h2\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add \u003ccode\u003e--stdin\u003c/code\u003e option to CLI by \u003ca\nhref\u003d\"https://github.com/mcepl\"\u003e\u003ccode\u003e@​mcepl\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/executablebooks/markdown-it-py/pull/379\"\u003eexecutablebooks/markdown-it-py#379\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd AGENTS.md and copilot-setup-steps workflow by \u003ca\nhref\u003d\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/executablebooks/markdown-it-py/pull/380\"\u003eexecutablebooks/markdown-it-py#380\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🔧 Add typing to Scanner by \u003ca\nhref\u003d\"https://github.com/Alunderin\"\u003e\u003ccode\u003e@​Alunderin\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/executablebooks/markdown-it-py/pull/382\"\u003eexecutablebooks/markdown-it-py#382\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e👌 Fix quadratic complexity in \u003ccode\u003efragments_join\u003c/code\u003e /\n\u003ccode\u003etext_join\u003c/code\u003e by \u003ca\nhref\u003d\"https://github.com/petricevich\"\u003e\u003ccode\u003e@​petricevich\u003c/code\u003e\u003c/a\u003e in\n\u003ca\nhref\u003d\"https://redirect.github.com/executablebooks/markdown-it-py/pull/389\"\u003eexecutablebooks/markdown-it-py#389\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e✨Allow plugins to register inline terminator characters by \u003ca\nhref\u003d\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/executablebooks/markdown-it-py/pull/391\"\u003eexecutablebooks/markdown-it-py#391\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e✨ Add \u003ccode\u003egfm-like2\u003c/code\u003e preset with task lists, alerts, and\nsingle-tilde strikethrough by \u003ca\nhref\u003d\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e\nin \u003ca\nhref\u003d\"https://redirect.github.com/executablebooks/markdown-it-py/pull/388\"\u003eexecutablebooks/markdown-it-py#388\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🔧 Update pre-commit hooks by \u003ca\nhref\u003d\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e\nin \u003ca\nhref\u003d\"https://redirect.github.com/executablebooks/markdown-it-py/pull/392\"\u003eexecutablebooks/markdown-it-py#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🚀 RELEASE v4.1.0 by \u003ca\nhref\u003d\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e\nin \u003ca\nhref\u003d\"https://redirect.github.com/executablebooks/markdown-it-py/pull/393\"\u003eexecutablebooks/markdown-it-py#393\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/mcepl\"\u003e\u003ccode\u003e@​mcepl\u003c/code\u003e\u003c/a\u003e made\ntheir first contribution in \u003ca\nhref\u003d\"https://redirect.github.com/executablebooks/markdown-it-py/pull/379\"\u003eexecutablebooks/markdown-it-py#379\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e made\ntheir first contribution in \u003ca\nhref\u003d\"https://redirect.github.com/executablebooks/markdown-it-py/pull/380\"\u003eexecutablebooks/markdown-it-py#380\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/Alunderin\"\u003e\u003ccode\u003e@​Alunderin\u003c/code\u003e\u003c/a\u003e\nmade their first contribution in \u003ca\nhref\u003d\"https://redirect.github.com/executablebooks/markdown-it-py/pull/382\"\u003eexecutablebooks/markdown-it-py#382\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/petricevich\"\u003e\u003ccode\u003e@​petricevich\u003c/code\u003e\u003c/a\u003e\nmade their first contribution in \u003ca\nhref\u003d\"https://redirect.github.com/executablebooks/markdown-it-py/pull/389\"\u003eexecutablebooks/markdown-it-py#389\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/executablebooks/markdown-it-py/compare/v4.0.0...v4.1.0\"\u003ehttps://github.com/executablebooks/markdown-it-py/compare/v4.0.0...v4.1.0\u003c/a\u003e\u003c/p\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/executablebooks/markdown-it-py/blob/master/CHANGELOG.md\"\u003emarkdown-it-py\u0027s\nchangelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.2.0 - 2026-05-07\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add \u003ccode\u003emake_fence_rule()\u003c/code\u003e factory for configurable fence\nmarkers in \u003ca\nhref\u003d\"https://redirect.github.com/executablebooks/markdown-it-py/pull/394\"\u003e#394\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.1.0 - 2025-05-06\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add \u003ccode\u003egfm-like2\u003c/code\u003e preset with task lists, alerts, and\nsingle-tilde strikethrough core plugins in \u003ca\nhref\u003d\"https://redirect.github.com/executablebooks/markdown-it-py/pull/388\"\u003e#388\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e✨ Allow plugins to register inline terminator characters in \u003ca\nhref\u003d\"https://redirect.github.com/executablebooks/markdown-it-py/pull/391\"\u003e#391\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e👌 Fix quadratic complexity in \u003ccode\u003efragments_join\u003c/code\u003e /\n\u003ccode\u003etext_join\u003c/code\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/executablebooks/markdown-it-py/pull/389\"\u003e#389\u003c/a\u003e,\nthanks to \u003ca\nhref\u003d\"https://github.com/petricevich\"\u003e\u003ccode\u003e@​petricevich\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e👌 Add \u003ccode\u003e--stdin\u003c/code\u003e option to CLI for reading Markdown from\nstandard input in \u003ca\nhref\u003d\"https://redirect.github.com/executablebooks/markdown-it-py/pull/379\"\u003e#379\u003c/a\u003e,\nthanks to \u003ca\nhref\u003d\"https://github.com/mcepl\"\u003e\u003ccode\u003e@​mcepl\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🔧 Add typing to Scanner in \u003ca\nhref\u003d\"https://redirect.github.com/executablebooks/markdown-it-py/pull/382\"\u003e#382\u003c/a\u003e,\nthanks to \u003ca\nhref\u003d\"https://github.com/Alunderin\"\u003e\u003ccode\u003e@​Alunderin\u003c/code\u003e\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/executablebooks/markdown-it-py/compare/v4.0.0...v4.1.0\"\u003ehttps://github.com/executablebooks/markdown-it-py/compare/v4.0.0...v4.1.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/executablebooks/markdown-it-py/commit/36c5f547144df2d01970a5792d68c71a3380b227\"\u003e\u003ccode\u003e36c5f54\u003c/code\u003e\u003c/a\u003e\n🚀 RELEASE v4.2.0 (\u003ca\nhref\u003d\"https://redirect.github.com/executablebooks/markdown-it-py/issues/395\"\u003e#395\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/executablebooks/markdown-it-py/commit/96cf077ba5a6b3b4b2f862db7e0fc532694a72e9\"\u003e\u003ccode\u003e96cf077\u003c/code\u003e\u003c/a\u003e\n✨ Add \u003ccode\u003emake_fence_rule()\u003c/code\u003e factory for configurable fence\nmarkers (\u003ca\nhref\u003d\"https://redirect.github.com/executablebooks/markdown-it-py/issues/394\"\u003e#394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/executablebooks/markdown-it-py/commit/3b4ff6ddd368b679643d12debf09e10ef602d4db\"\u003e\u003ccode\u003e3b4ff6d\u003c/code\u003e\u003c/a\u003e\n🚀 RELEASE v4.1.0 (\u003ca\nhref\u003d\"https://redirect.github.com/executablebooks/markdown-it-py/issues/393\"\u003e#393\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/executablebooks/markdown-it-py/commit/8951f267370b03a26ae88600a6dfc707ea290067\"\u003e\u003ccode\u003e8951f26\u003c/code\u003e\u003c/a\u003e\n🔧 Update pre-commit hooks (\u003ca\nhref\u003d\"https://redirect.github.com/executablebooks/markdown-it-py/issues/392\"\u003e#392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/executablebooks/markdown-it-py/commit/693bb24063b6c658d60c7c14203ac6470387e3c6\"\u003e\u003ccode\u003e693bb24\u003c/code\u003e\u003c/a\u003e\n✨ Add \u003ccode\u003egfm-like2\u003c/code\u003e preset with task lists, alerts, and\nsingle-tilde strikethro...\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/executablebooks/markdown-it-py/commit/df6fd361099cab7fe0259467c3aaa3f284ec8259\"\u003e\u003ccode\u003edf6fd36\u003c/code\u003e\u003c/a\u003e\n✨Allow plugins to register inline terminator characters (\u003ca\nhref\u003d\"https://redirect.github.com/executablebooks/markdown-it-py/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/executablebooks/markdown-it-py/commit/d4ea0ca7f44e3ca86c18a87356502c59e5e49ec3\"\u003e\u003ccode\u003ed4ea0ca\u003c/code\u003e\u003c/a\u003e\n👌 Fix quadratic complexity in \u003ccode\u003efragments_join\u003c/code\u003e /\n\u003ccode\u003etext_join\u003c/code\u003e (\u003ca\nhref\u003d\"https://redirect.github.com/executablebooks/markdown-it-py/issues/389\"\u003e#389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/executablebooks/markdown-it-py/commit/89331476e44c150bc32e2597a5fae4cd15391167\"\u003e\u003ccode\u003e8933147\u003c/code\u003e\u003c/a\u003e\n🔧 Add typing to Scanner (\u003ca\nhref\u003d\"https://redirect.github.com/executablebooks/markdown-it-py/issues/382\"\u003e#382\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/executablebooks/markdown-it-py/commit/2f6ae107ba32e9a7bd2d00134d09a78ec805a6a0\"\u003e\u003ccode\u003e2f6ae10\u003c/code\u003e\u003c/a\u003e\n🔧 Add AGENTS.md and copilot-setup-steps workflow (\u003ca\nhref\u003d\"https://redirect.github.com/executablebooks/markdown-it-py/issues/380\"\u003e#380\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/executablebooks/markdown-it-py/commit/49043e4445d233598fb893bed6949f7b25ae4e27\"\u003e\u003ccode\u003e49043e4\u003c/code\u003e\u003c/a\u003e\nAdd --stdin option to CLI for reading Markdown from standard input (\u003ca\nhref\u003d\"https://redirect.github.com/executablebooks/markdown-it-py/issues/379\"\u003e#379\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca\nhref\u003d\"https://github.com/executablebooks/markdown-it-py/compare/v4.0.0...v4.2.0\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mcp` from 1.27.0 to 1.27.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/modelcontextprotocol/python-sdk/releases\"\u003emcp\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.27.1\u003c/h2\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[v1.x] fix: catch PydanticUserError when generating output schema\n(pydantic 2.13 compat) by \u003ca\nhref\u003d\"https://github.com/maxisbey\"\u003e\u003ccode\u003e@​maxisbey\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/modelcontextprotocol/python-sdk/pull/2435\"\u003emodelcontextprotocol/python-sdk#2435\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[v1.x] fix(auth): coerce empty-string optional URL fields to None in\nOAuthClientMetadata by \u003ca\nhref\u003d\"https://github.com/felixweinberger\"\u003e\u003ccode\u003e@​felixweinberger\u003c/code\u003e\u003c/a\u003e\nin \u003ca\nhref\u003d\"https://redirect.github.com/modelcontextprotocol/python-sdk/pull/2405\"\u003emodelcontextprotocol/python-sdk#2405\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[v1.x] build: restrict httpx to \u0026lt;1.0.0 by \u003ca\nhref\u003d\"https://github.com/maxisbey\"\u003e\u003ccode\u003e@​maxisbey\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/modelcontextprotocol/python-sdk/pull/2559\"\u003emodelcontextprotocol/python-sdk#2559\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[v1.x] refactor: import SSEError from httpx_sse public API by \u003ca\nhref\u003d\"https://github.com/maxisbey\"\u003e\u003ccode\u003e@​maxisbey\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/modelcontextprotocol/python-sdk/pull/2561\"\u003emodelcontextprotocol/python-sdk#2561\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/modelcontextprotocol/python-sdk/compare/v1.27.0...v1.27.1\"\u003ehttps://github.com/modelcontextprotocol/python-sdk/compare/v1.27.0...v1.27.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/modelcontextprotocol/python-sdk/commit/77431ebe7dda9ed0c61451b22d3e7f8d981bc092\"\u003e\u003ccode\u003e77431eb\u003c/code\u003e\u003c/a\u003e\n[v1.x] refactor: import SSEError from httpx_sse public API (\u003ca\nhref\u003d\"https://redirect.github.com/modelcontextprotocol/python-sdk/issues/2561\"\u003e#2561\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/modelcontextprotocol/python-sdk/commit/2034cae340e5991a39018f3ab4496ca35fa29698\"\u003e\u003ccode\u003e2034cae\u003c/code\u003e\u003c/a\u003e\n[v1.x] build: restrict httpx to \u0026lt;1.0.0 (\u003ca\nhref\u003d\"https://redirect.github.com/modelcontextprotocol/python-sdk/issues/2559\"\u003e#2559\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/modelcontextprotocol/python-sdk/commit/73d458baac207cecf77d17e64c7ce3902f4bce04\"\u003e\u003ccode\u003e73d458b\u003c/code\u003e\u003c/a\u003e\n[v1.x] fix(auth): coerce empty-string optional URL fields to None in\nOAuthCli...\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/modelcontextprotocol/python-sdk/commit/8d4c2f5834f9925b969809d4db415bba130ee4e8\"\u003e\u003ccode\u003e8d4c2f5\u003c/code\u003e\u003c/a\u003e\n[v1.x] fix: catch PydanticUserError when generating output schema\n(pydantic 2...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca\nhref\u003d\"https://github.com/modelcontextprotocol/python-sdk/compare/v1.27.0...v1.27.1\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic-settings` from 2.14.0 to 2.14.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/pydantic/pydantic-settings/releases\"\u003epydantic-settings\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.14.1\u003c/h2\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump the python-packages group with 4 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/pydantic/pydantic-settings/pull/850\"\u003epydantic/pydantic-settings#850\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 5 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/pydantic/pydantic-settings/pull/854\"\u003epydantic/pydantic-settings#854\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the github-actions group with 3 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/pydantic/pydantic-settings/pull/853\"\u003epydantic/pydantic-settings#853\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages 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/pydantic/pydantic-settings/pull/856\"\u003epydantic/pydantic-settings#856\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix field named \u003ccode\u003ecls\u003c/code\u003e conflicting with classmethod\nparameter by \u003ca\nhref\u003d\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/pydantic/pydantic-settings/pull/858\"\u003epydantic/pydantic-settings#858\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare release 2.14.1 by \u003ca\nhref\u003d\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/pydantic/pydantic-settings/pull/859\"\u003epydantic/pydantic-settings#859\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/pydantic/pydantic-settings/compare/v2.14.0...v2.14.1\"\u003ehttps://github.com/pydantic/pydantic-settings/compare/v2.14.0...v2.14.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/pydantic/pydantic-settings/commit/e95c30bec8cfaee88ee275138c064aea97a25bdf\"\u003e\u003ccode\u003ee95c30b\u003c/code\u003e\u003c/a\u003e\nPrepare release 2.14.1 (\u003ca\nhref\u003d\"https://redirect.github.com/pydantic/pydantic-settings/issues/859\"\u003e#859\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/pydantic/pydantic-settings/commit/0c8734581b6cf70a995afad603ac456631d00621\"\u003e\u003ccode\u003e0c87345\u003c/code\u003e\u003c/a\u003e\nFix field named \u003ccode\u003ecls\u003c/code\u003e conflicting with classmethod parameter\n(\u003ca\nhref\u003d\"https://redirect.github.com/pydantic/pydantic-settings/issues/858\"\u003e#858\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/pydantic/pydantic-settings/commit/7bd0072795a800065b42210b6dca90fc9b83daf7\"\u003e\u003ccode\u003e7bd0072\u003c/code\u003e\u003c/a\u003e\nBump the python-packages group with 2 updates (\u003ca\nhref\u003d\"https://redirect.github.com/pydantic/pydantic-settings/issues/856\"\u003e#856\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/pydantic/pydantic-settings/commit/b03e573d017ed48e1c2774a5e0b715db9766c76b\"\u003e\u003ccode\u003eb03e573\u003c/code\u003e\u003c/a\u003e\nBump the github-actions group with 3 updates (\u003ca\nhref\u003d\"https://redirect.github.com/pydantic/pydantic-settings/issues/853\"\u003e#853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/pydantic/pydantic-settings/commit/eaa3b434938411ec8a3717ea646614561e713f51\"\u003e\u003ccode\u003eeaa3b43\u003c/code\u003e\u003c/a\u003e\nBump the python-packages group with 5 updates (\u003ca\nhref\u003d\"https://redirect.github.com/pydantic/pydantic-settings/issues/854\"\u003e#854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/pydantic/pydantic-settings/commit/9f95615c24c6813c1d7d203576581a79cb6d9e8e\"\u003e\u003ccode\u003e9f95615\u003c/code\u003e\u003c/a\u003e\nBump the python-packages group with 4 updates (\u003ca\nhref\u003d\"https://redirect.github.com/pydantic/pydantic-settings/issues/850\"\u003e#850\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca\nhref\u003d\"https://github.com/pydantic/pydantic-settings/compare/v2.14.0...v2.14.1\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-multipart` from 0.0.27 to 0.0.28\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/Kludex/python-multipart/releases\"\u003epython-multipart\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.0.28\u003c/h2\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSpeed up partial-boundary tail scan via \u003ccode\u003ebytes.find\u003c/code\u003e by\n\u003ca href\u003d\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/Kludex/python-multipart/pull/281\"\u003eKludex/python-multipart#281\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCap multipart boundary length at 256 bytes by \u003ca\nhref\u003d\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/Kludex/python-multipart/pull/282\"\u003eKludex/python-multipart#282\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/Kludex/python-multipart/compare/0.0.27...0.0.28\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.27...0.0.28\u003c/a\u003e\u003c/p\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/Kludex/python-multipart/blob/main/CHANGELOG.md\"\u003epython-multipart\u0027s\nchangelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.28 (2026-05-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSpeed up partial-boundary tail scan via \u003ccode\u003ebytes.find\u003c/code\u003e \u003ca\nhref\u003d\"https://redirect.github.com/Kludex/python-multipart/pull/281\"\u003e#281\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCap multipart boundary length at 256 bytes \u003ca\nhref\u003d\"https://redirect.github.com/Kludex/python-multipart/pull/282\"\u003e#282\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/Kludex/python-multipart/commit/7d8d28b210ac6cb055399562b0dc0e5cf9aef14a\"\u003e\u003ccode\u003e7d8d28b\u003c/code\u003e\u003c/a\u003e\nVersion 0.0.28 (\u003ca\nhref\u003d\"https://redirect.github.com/Kludex/python-multipart/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/Kludex/python-multipart/commit/b0dd125457d0f98de23bf2f894aedb1a54639d4e\"\u003e\u003ccode\u003eb0dd125\u003c/code\u003e\u003c/a\u003e\nCap multipart boundary length at 256 bytes (\u003ca\nhref\u003d\"https://redirect.github.com/Kludex/python-multipart/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/Kludex/python-multipart/commit/d1b57392cf7d0c19235ba454eb5686fd27dc2384\"\u003e\u003ccode\u003ed1b5739\u003c/code\u003e\u003c/a\u003e\nSpeed up partial-boundary tail scan via \u003ccode\u003ebytes.find\u003c/code\u003e (\u003ca\nhref\u003d\"https://redirect.github.com/Kludex/python-multipart/issues/281\"\u003e#281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/Kludex/python-multipart/commit/09cb8c3da7638d45ecdf7c154832303214bba829\"\u003e\u003ccode\u003e09cb8c3\u003c/code\u003e\u003c/a\u003e\nMake the long_boundary benchmark dominated by the patched code path (\u003ca\nhref\u003d\"https://redirect.github.com/Kludex/python-multipart/issues/280\"\u003e#280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/Kludex/python-multipart/commit/a6467c93c14aa4b09ef65450ead8011c45e5c7a0\"\u003e\u003ccode\u003ea6467c9\u003c/code\u003e\u003c/a\u003e\nRevert \u0026quot;Switch CodSpeed benchmarks to walltime mode\u0026quot; (\u003ca\nhref\u003d\"https://redirect.github.com/Kludex/python-multipart/issues/279\"\u003e#279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/Kludex/python-multipart/commit/9a9690035a956fbdcca06f98461244cf790375a7\"\u003e\u003ccode\u003e9a96900\u003c/code\u003e\u003c/a\u003e\nSwitch CodSpeed benchmarks to walltime mode (\u003ca\nhref\u003d\"https://redirect.github.com/Kludex/python-multipart/issues/278\"\u003e#278\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/Kludex/python-multipart/commit/1fc7a626f566ae11bc63165260262b9a30af9008\"\u003e\u003ccode\u003e1fc7a62\u003c/code\u003e\u003c/a\u003e\nMake benchmark coverage trigger the partial-boundary fallback (\u003ca\nhref\u003d\"https://redirect.github.com/Kludex/python-multipart/issues/277\"\u003e#277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/Kludex/python-multipart/commit/03df045810a216dceabbefc9dca7a33a264307bc\"\u003e\u003ccode\u003e03df045\u003c/code\u003e\u003c/a\u003e\nAdd CodSpeed benchmark suite for parser hot paths (\u003ca\nhref\u003d\"https://redirect.github.com/Kludex/python-multipart/issues/276\"\u003e#276\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/Kludex/python-multipart/commit/79a7c614953d0c91a1d6dc69759b4fbcd0fb44f3\"\u003e\u003ccode\u003e79a7c61\u003c/code\u003e\u003c/a\u003e\nBump the python-packages group with 3 updates (\u003ca\nhref\u003d\"https://redirect.github.com/Kludex/python-multipart/issues/273\"\u003e#273\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/Kludex/python-multipart/commit/bd29332f23429d06cf16226819f89b28a8288915\"\u003e\u003ccode\u003ebd29332\u003c/code\u003e\u003c/a\u003e\nBump the github-actions group with 5 updates (\u003ca\nhref\u003d\"https://redirect.github.com/Kludex/python-multipart/issues/274\"\u003e#274\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca\nhref\u003d\"https://github.com/Kludex/python-multipart/compare/0.0.27...0.0.28\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.33.1 to 2.34.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/psf/requests/releases\"\u003erequests\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.34.0\u003c/h2\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy,\npyright,\nand ty. \u003cstrong\u003eWe believe types are comprehensive but if you find\nissues, please\nreport them to the \u003ca\nhref\u003d\"https://redirect.github.com/psf/requests/issues/7271\"\u003epinned\ntracking issue\u003c/a\u003e.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca\nhref\u003d\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca\nhref\u003d\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca\nhref\u003d\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e,\nand \u003ca href\u003d\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca\nhref\u003d\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added\n\u003ccode\u003eusedforsecurity\u003dFalse\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca\nhref\u003d\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream\nprojects\nshould be able to start testing prior to its release in October. (\u003ca\nhref\u003d\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca\nhref\u003d\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to\nitself, preventing\naccidental looping when traversing the history list. (\u003ca\nhref\u003d\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\nproxy_bypass implementation has been updated with CPython\u0027s fix from\nbpo-39057. (\u003ca\nhref\u003d\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer incorrectly strips duplicate leading slashes in\nURI paths. This should address user issues with specific presigned\nURLs. Note the full fix requires urllib3 2.7.0+. (\u003ca\nhref\u003d\"https://redirect.github.com/psf/requests/issues/7315\"\u003e#7315\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/cjriches\"\u003e\u003ccode\u003e@​cjriches\u003c/code\u003e\u003c/a\u003e\nmade their first contribution in \u003ca\nhref\u003d\"https://redirect.github.com/psf/requests/pull/7365\"\u003epsf/requests#7365\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/dsanader\"\u003e\u003ccode\u003e@​dsanader\u003c/code\u003e\u003c/a\u003e\nmade their first contribution in \u003ca\nhref\u003d\"https://redirect.github.com/psf/requests/pull/7376\"\u003epsf/requests#7376\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/DimitriPapadopoulos\"\u003e\u003ccode\u003e@​DimitriPapadopoulos\u003c/code\u003e\u003c/a\u003e\nmade their first contribution in \u003ca\nhref\u003d\"https://redirect.github.com/psf/requests/pull/7393\"\u003epsf/requests#7393\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/joshua-51\"\u003e\u003ccode\u003e@​joshua-51\u003c/code\u003e\u003c/a\u003e\nmade their first contribution in \u003ca\nhref\u003d\"https://redirect.github.com/psf/requests/pull/7416\"\u003epsf/requests#7416\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/eggsort\"\u003e\u003ccode\u003e@​eggsort\u003c/code\u003e\u003c/a\u003e made\ntheir first contribution in \u003ca\nhref\u003d\"https://redirect.github.com/psf/requests/pull/7421\"\u003epsf/requests#7421\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/typhon8\"\u003e\u003ccode\u003e@​typhon8\u003c/code\u003e\u003c/a\u003e made\ntheir first contribution in \u003ca\nhref\u003d\"https://redirect.github.com/psf/requests/pull/7315\"\u003epsf/requests#7315\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e made\ntheir first contribution in \u003ca\nhref\u003d\"https://redirect.github.com/psf/requests/pull/7425\"\u003epsf/requests#7425\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/psf/requests/blob/main/HISTORY.md#2340-2026-05-11\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2340-2026-05-11\u003c/a\u003e\u003c/p\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/psf/requests/blob/main/HISTORY.md\"\u003erequests\u0027s\nchangelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy,\npyright,\nand ty. We believe types are comprehensive but if you find issues,\nplease\nreport them to the pinned tracking issue.\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca\nhref\u003d\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca\nhref\u003d\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca\nhref\u003d\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e,\nand \u003ca href\u003d\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca\nhref\u003d\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added\n\u003ccode\u003eusedforsecurity\u003dFalse\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca\nhref\u003d\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream\nprojects\nshould be able to start testing prior to its release in October. (\u003ca\nhref\u003d\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca\nhref\u003d\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to\nitself, preventing\naccidental looping when traversing the history list. (\u003ca\nhref\u003d\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\nproxy_bypass implementation has been updated with CPython\u0027s fix from\nbpo-39057. (\u003ca\nhref\u003d\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer incorrectly strips duplicate leading slashes in\nURI paths. This should address user issues with specific presigned\nURLs. Note the full fix requires urllib3 2.7.0+. (\u003ca\nhref\u003d\"https://redirect.github.com/psf/requests/issues/7315\"\u003e#7315\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/psf/requests/commit/0b401c76b6e80a4eecf3c690085b2553f6e261ca\"\u003e\u003ccode\u003e0b401c7\u003c/code\u003e\u003c/a\u003e\nv2.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/psf/requests/commit/86b378d3f60f828daa13ca50aa82e287ff7b66b4\"\u003e\u003ccode\u003e86b378d\u003c/code\u003e\u003c/a\u003e\nAlign Session.get parameters with requests.get (\u003ca\nhref\u003d\"https://redirect.github.com/psf/requests/issues/7429\"\u003e#7429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/psf/requests/commit/a4f9a5999bdb9bf2d6e7c8aa973b28cacb17134f\"\u003e\u003ccode\u003ea4f9a59\u003c/code\u003e\u003c/a\u003e\nPort bpo-39057 to Requests (\u003ca\nhref\u003d\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/psf/requests/commit/3816cfa1abd42dca21b9e837f26c59b246016aaf\"\u003e\u003ccode\u003e3816cfa\u003c/code\u003e\u003c/a\u003e\nParameterize SupportsItems to handle Mapping key invariance (\u003ca\nhref\u003d\"https://redirect.github.com/psf/requests/issues/7426\"\u003e#7426\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/psf/requests/commit/b684dcb9bbf3aa557d1238e72062c4a29737dd1c\"\u003e\u003ccode\u003eb684dcb\u003c/code\u003e\u003c/a\u003e\nsessions: fix hooks type (\u003ca\nhref\u003d\"https://redirect.github.com/psf/requests/issues/7425\"\u003e#7425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/psf/requests/commit/dc9dbdfb3434c6e58d48fd102f93e5342308817e\"\u003e\u003ccode\u003edc9dbdf\u003c/code\u003e\u003c/a\u003e\nFormalize 3.15 support (\u003ca\nhref\u003d\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/psf/requests/commit/25340ebad09a38e0748aeb26232102022a03ec94\"\u003e\u003ccode\u003e25340eb\u003c/code\u003e\u003c/a\u003e\nClear proxy env vars before every test run (\u003ca\nhref\u003d\"https://redirect.github.com/psf/requests/issues/7423\"\u003e#7423\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/psf/requests/commit/fd628095d7b9ddbf3e987d8a4bf0e6062768916f\"\u003e\u003ccode\u003efd62809\u003c/code\u003e\u003c/a\u003e\nPreserve leading slashes in request path_url (\u003ca\nhref\u003d\"https://redirect.github.com/psf/requests/issues/7315\"\u003e#7315\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/psf/requests/commit/e8d2c015eecda8273612dd4562425e00cd164ba5\"\u003e\u003ccode\u003ee8d2c01\u003c/code\u003e\u003c/a\u003e\ndocs: Fix missing hook output in docs example (\u003ca\nhref\u003d\"https://redirect.github.com/psf/requests/issues/7421\"\u003e#7421\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/psf/requests/commit/eb173bc819c72580deed2d54190d340cc769e529\"\u003e\u003ccode\u003eeb173bc\u003c/code\u003e\u003c/a\u003e\nAdd 3.14t support to CI (\u003ca\nhref\u003d\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/psf/requests/compare/v2.33.1...v2.34.0\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sse-starlette` from 3.4.1 to 3.4.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/sysid/sse-starlette/releases\"\u003esse-starlette\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.4.4\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca\nhref\u003d\"https://github.com/sysid/sse-starlette/compare/v3.4.3...v3.4.4\"\u003ehttps://github.com/sysid/sse-starlette/compare/v3.4.3...v3.4.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev3.4.3\u003c/h2\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps): bump granian from 2.6.0 to 2.7.4 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/sysid/sse-starlette/pull/185\"\u003esysid/sse-starlette#185\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump urllib3 from 2.6.3 to 2.7.0 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/sysid/sse-starlette/pull/186\"\u003esysid/sse-starlette#186\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/sysid/sse-starlette/compare/v3.4.2...v3.4.3\"\u003ehttps://github.com/sysid/sse-starlette/compare/v3.4.2...v3.4.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev3.4.2\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca\nhref\u003d\"https://github.com/sysid/sse-starlette/compare/v3.4.1...v3.4.2\"\u003ehttps://github.com/sysid/sse-starlette/compare/v3.4.1...v3.4.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/sysid/sse-starlette/commit/e0933950b83ab99575b34b3641cd7f88b62e11c2\"\u003e\u003ccode\u003ee093395\u003c/code\u003e\u003c/a\u003e\nBump version to 3.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/sysid/sse-starlette/commit/a6799e1063bd2c102336b8963a288736b0588972\"\u003e\u003ccode\u003ea6799e1\u003c/code\u003e\u003c/a\u003e\nnew release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/sysid/sse-starlette/commit/d033a9755865b1521baf5d7f4b9ce6c5b4b2c843\"\u003e\u003ccode\u003ed033a97\u003c/code\u003e\u003c/a\u003e\nBump version to 3.4.3\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/sysid/sse-starlette/commit/6a34c6aa05037b4b63864384bc61f7e855d18008\"\u003e\u003ccode\u003e6a34c6a\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/sysid/sse-starlette/issues/186\"\u003e#186\u003c/a\u003e\nfrom sysid/dependabot/uv/urllib3-2.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/sysid/sse-starlette/commit/e0be426235833f4d5084669bbba947193a2720e0\"\u003e\u003ccode\u003ee0be426\u003c/code\u003e\u003c/a\u003e\nchore(deps): bump urllib3 from 2.6.3 to 2.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/sysid/sse-starlette/commit/d8d43ab64b1090644ae42c4c2a4d361947296a26\"\u003e\u003ccode\u003ed8d43ab\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/sysid/sse-starlette/issues/185\"\u003e#185\u003c/a\u003e\nfrom sysid/dependabot/uv/granian-2.7.4\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/sysid/sse-starlette/commit/5854ac05f8f0170d7e4ccfd9b28a681f96038913\"\u003e\u003ccode\u003e5854ac0\u003c/code\u003e\u003c/a\u003e\nchore(deps): bump granian from 2.6.0 to 2.7.4\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/sysid/sse-starlette/commit/1d56ff3c33cd2544908890ecb3ff4ca2d55c2ee3\"\u003e\u003ccode\u003e1d56ff3\u003c/code\u003e\u003c/a\u003e\nBump version to 3.4.2\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/sysid/sse-starlette/commit/8387e1155ae38552dc8064d85cf1d75c8700827f\"\u003e\u003ccode\u003e8387e11\u003c/code\u003e\u003c/a\u003e\nupdate pyproject.toml\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca\nhref\u003d\"https://github.com/sysid/sse-starlette/compare/v3.4.1...v3.4.4\"\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\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: bazel.build machine account \u003cci.bazel@gmail.com\u003e"
    },
    {
      "commit": "5e5765369f3e04ebbb096b8c48ead2ce173c7764",
      "tree": "1e676ff3c3865c8e2fb34e92d09b6fb7bcae47c0",
      "parents": [
        "4af1d3ad85a866db7298e47fb4dfb47185258dcf"
      ],
      "author": {
        "name": "Filip Filmar",
        "email": "filmil@gmail.com",
        "time": "Fri May 15 00:44:13 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 15 09:44:13 2026 +0200"
      },
      "message": "Publish gotopt2@2.4.1 (#8896)\n\nRelease: https://github.com/filmil/gotopt2/releases/tag/v2.4.1\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_"
    },
    {
      "commit": "4af1d3ad85a866db7298e47fb4dfb47185258dcf",
      "tree": "c83d107fc1ee383d14ea09ddb03e51051ed4e5eb",
      "parents": [
        "ee2f23329a733c9872fa0d5a42c8abb4389e31fd"
      ],
      "author": {
        "name": "formatjs",
        "email": "64374319+formatjsproject@users.noreply.github.com",
        "time": "Fri May 15 00:30:49 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 15 06:30:49 2026 +0200"
      },
      "message": "rules_formatjs@0.6.0 (#8897)\n\nRelease: https://github.com/formatjs/rules_formatjs/releases/tag/v0.6.0\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_\n\nCo-authored-by: longlho \u003c198255+longlho@users.noreply.github.com\u003e"
    },
    {
      "commit": "ee2f23329a733c9872fa0d5a42c8abb4389e31fd",
      "tree": "d30f90529513ed777c46127f3cefdd434dbfa981",
      "parents": [
        "7012e8c537bfd747d80df6b52d724301106b25af"
      ],
      "author": {
        "name": "Michael Carroll",
        "email": "carroll.michael@gmail.com",
        "time": "Thu May 14 19:12:56 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 15 02:12:56 2026 +0200"
      },
      "message": "gz-sim@10.3.0 (#8894)\n\nRelease:\nhttps://github.com/gazebosim/gz-sim/releases/tag/gz-sim10_10.3.0\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_\n\nCo-authored-by: iche033 \u003c4000684+iche033@users.noreply.github.com\u003e"
    },
    {
      "commit": "7012e8c537bfd747d80df6b52d724301106b25af",
      "tree": "73049106e199f8227f38bb06fd6581be0412996c",
      "parents": [
        "7084b7de3d5d0680bdc71b03a1e7c8e0505cf3dd"
      ],
      "author": {
        "name": "hermeticbuild-bot",
        "email": "hermeticbuildbot@gmail.com",
        "time": "Thu May 14 19:14:42 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 15 01:14:42 2026 +0200"
      },
      "message": "gazelle_ts@0.4.18 (#8893)\n\nRelease:\nhttps://github.com/hermeticbuild/gazelle_ts/releases/tag/v0.4.18\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_\n\nCo-authored-by: longlho \u003c198255+longlho@users.noreply.github.com\u003e"
    },
    {
      "commit": "7084b7de3d5d0680bdc71b03a1e7c8e0505cf3dd",
      "tree": "64b3b0c5b35270965eb4c99c6bccbe6049484fed",
      "parents": [
        "f634e9860a5b3cfff0ed6b45212f8db42e64d866"
      ],
      "author": {
        "name": "Abhinav Gautam",
        "email": "abgautam1017@gmail.com",
        "time": "Fri May 15 03:57:03 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 14 15:27:03 2026 -0700"
      },
      "message": "Add libgps 3.27.5 module to BCR (#8803)\n\nFixes #8559\n\n## Description\n\nAdd complete module scaffolding for libgps 3.27.5 to the Bazel Central\nRegistry, providing GPS/GNSS library functionality through proper Bazel\nintegration.\n\n## Module Details\n\n### Files Added:\n- **metadata.json**: Module metadata with maintainer information\n- **MODULE.bazel**: Bazel module declaration with `rules_cc@0.2.18`\ndependency and Bazel compatibility settings\n- **source.json**: Source archive URL (gpsd 3.27.5) with auto-generated\nintegrity hashes\n- **overlay/BUILD.bazel**: Complete cc_library build target including:\n   - All 18 source files (ais_json.c, bits.c, hex.c, json.c, etc.)\n   - Genrule for generating gps_maskdump.c from maskaudit.py\n   - Proper C99 compilation flags\n   - Required linking libraries: -lm, -pthread\n   - cc_test target for basic functionality testing\n- **overlay/include/gpsd_config.h**: Platform-specific configuration\nheader with:\n   - Feature toggles: AIVDM_ENABLE\u003d1, SOCKET_EXPORT_ENABLE\u003d1\n- Version info: VERSION\u003d\"3.27.5\", GPSD_PROTO_VERSION_MAJOR\u003d16,\nGPSD_PROTO_VERSION_MINOR\u003d1\n   - Platform detection macros for Darwin/Linux compatibility\n- System function availability: HAVE_STRLCAT, HAVE_STRLCPY,\nHAVE_STRNLEN, HAVE_STPNCPY, etc.\n- **overlay/libgps/ais_json.i**: Generated AIS JSON parser template\n(1223 lines)\n- **overlay/tests/libgps_test.c**: Basic test program\n- **presubmit.yml**: CI configuration for Bazel 8.x and 9.x on\nubuntu2204 and macos platforms\n\n## Testing\n\n**Bazel 8.x**: Build and test targets passing  \n**Bazel 9.x**: Build and test targets passing"
    },
    {
      "commit": "f634e9860a5b3cfff0ed6b45212f8db42e64d866",
      "tree": "c09d05325e4b85008862f6e34f4cf890872bca3d",
      "parents": [
        "722102b90fc1690675e92ab4a45750fedd6045fa"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Thu May 14 14:50:24 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 14 21:50:24 2026 +0000"
      },
      "message": "basis_universal@2.0.3 (#8892)"
    },
    {
      "commit": "722102b90fc1690675e92ab4a45750fedd6045fa",
      "tree": "aeabce416112a8f79f7dce382e289bad503798e1",
      "parents": [
        "3c2a0925fd88efea88f7a9c01b29446bcb096d31"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Thu May 14 14:00:24 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 14 17:00:24 2026 -0400"
      },
      "message": "opencl-sdk@2025.07.23 (#8887)"
    },
    {
      "commit": "3c2a0925fd88efea88f7a9c01b29446bcb096d31",
      "tree": "4f64cbb0d14549626776d215b0e6c95ef220839e",
      "parents": [
        "1b6e90b724f1aa60dcbe3a45b437d7f47860c7a0"
      ],
      "author": {
        "name": "periareon-bot",
        "email": "periareon-bot@proton.me",
        "time": "Thu May 14 13:55:50 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 14 22:55:50 2026 +0200"
      },
      "message": "rules_helm@0.26.0 (#8890)\n\nRelease: https://github.com/periareon/rules_helm/releases/tag/0.26.0\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_\n\nCo-authored-by: periareon-bot \u003c260522848+periareon-bot@users.noreply.github.com\u003e"
    },
    {
      "commit": "1b6e90b724f1aa60dcbe3a45b437d7f47860c7a0",
      "tree": "7174ce79ed1a5d5106d133298e6f01eb40cbf58e",
      "parents": [
        "4bf80e7bba7d71dde5359d1889dac4efa36f65df"
      ],
      "author": {
        "name": "periareon-bot",
        "email": "periareon-bot@proton.me",
        "time": "Thu May 14 13:55:40 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 14 13:55:40 2026 -0700"
      },
      "message": "rules_venv@0.18.0 (#8891)\n\nRelease: https://github.com/periareon/rules_venv/releases/tag/0.18.0\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_\n\nCo-authored-by: periareon-bot \u003c260522848+periareon-bot@users.noreply.github.com\u003e"
    },
    {
      "commit": "4bf80e7bba7d71dde5359d1889dac4efa36f65df",
      "tree": "ea21cd3ac75377ad341f8a803f8d41344fec87e7",
      "parents": [
        "c2708de17e0cf2930e52e11f5fb41e9fa779dad8"
      ],
      "author": {
        "name": "Alex Eagle",
        "email": "eagle@post.harvard.edu",
        "time": "Thu May 14 12:21:27 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 14 15:21:27 2026 -0400"
      },
      "message": "rules_mypy@0.41.0 (#8244)"
    },
    {
      "commit": "c2708de17e0cf2930e52e11f5fb41e9fa779dad8",
      "tree": "c06b8c99b937e17b0cb0e6fcd092e80fd7fe09c9",
      "parents": [
        "139738de7011d5dce9ddcc903a59d6515336ab0b"
      ],
      "author": {
        "name": "hermeticbuild-bot",
        "email": "hermeticbuildbot@gmail.com",
        "time": "Thu May 14 14:12:06 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 14 14:12:06 2026 -0400"
      },
      "message": "gazelle_ts@0.4.17 (#8889)\n\nRelease:\nhttps://github.com/hermeticbuild/gazelle_ts/releases/tag/v0.4.17\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_\n\nCo-authored-by: longlho \u003c198255+longlho@users.noreply.github.com\u003e"
    },
    {
      "commit": "139738de7011d5dce9ddcc903a59d6515336ab0b",
      "tree": "24de75448201c6b10f0b5897c1815b15f2e14cfa",
      "parents": [
        "a386db612c5bc1c2c3722546aca8b97d40b35340"
      ],
      "author": {
        "name": "hermeticbuild-bot",
        "email": "hermeticbuildbot@gmail.com",
        "time": "Thu May 14 13:25:37 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 14 19:25:37 2026 +0200"
      },
      "message": "gazelle_ts@0.4.16 (#8885)\n\nRelease:\nhttps://github.com/hermeticbuild/gazelle_ts/releases/tag/v0.4.16\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_\n\nCo-authored-by: longlho \u003c198255+longlho@users.noreply.github.com\u003e"
    },
    {
      "commit": "a386db612c5bc1c2c3722546aca8b97d40b35340",
      "tree": "a8ee62b5465a00d673cbf319e627b18906677c3c",
      "parents": [
        "86a093a6725a327d1ef8d7afd2f34ab8018ef43f"
      ],
      "author": {
        "name": "Machine account for bazel-contrib",
        "email": "contrib@bazel.build",
        "time": "Thu May 14 11:25:21 2026 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 14 19:25:21 2026 +0200"
      },
      "message": "{rules_img,rules_img_tool,rules_img_pull_tool}@0.3.11 (#8888)\n\nRelease: https://github.com/bazel-contrib/rules_img/releases/tag/v0.3.11\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_\n\nCo-authored-by: malt3 \u003c1780588+malt3@users.noreply.github.com\u003e"
    },
    {
      "commit": "86a093a6725a327d1ef8d7afd2f34ab8018ef43f",
      "tree": "5c4c99adedf61d8e72cef0f3076fb40e35a7c580",
      "parents": [
        "fc75b000b79a04a95cb3bf2bc910e248fed1e14a"
      ],
      "author": {
        "name": "hermeticbuild-bot",
        "email": "hermeticbuildbot@gmail.com",
        "time": "Thu May 14 11:39:11 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 14 11:39:11 2026 -0400"
      },
      "message": "rules_rs@0.0.80 (#8884)\n\nRelease: https://github.com/hermeticbuild/rules_rs/releases/tag/v0.0.80\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_\n\nCo-authored-by: dzbarsky \u003c1565842+dzbarsky@users.noreply.github.com\u003e"
    },
    {
      "commit": "fc75b000b79a04a95cb3bf2bc910e248fed1e14a",
      "tree": "058fbca5690d9cfb3ae3ffef934f32874670435c",
      "parents": [
        "02b4f299520a1fc7eaf60da73ad353662304d8eb"
      ],
      "author": {
        "name": "Martin Medler",
        "email": "36563496+martis42@users.noreply.github.com",
        "time": "Thu May 14 17:38:05 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 14 17:38:05 2026 +0200"
      },
      "message": "depend_on_what_you_use@0.16.0 (#8883)\n\nRelease:\nhttps://github.com/martis42/depend_on_what_you_use/releases/tag/0.16.0\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_"
    },
    {
      "commit": "02b4f299520a1fc7eaf60da73ad353662304d8eb",
      "tree": "640949c0b7cc444350827347b34efc0c61c8dd46",
      "parents": [
        "f9780fefbe9643498a8dffc725c15ca5c7a7c88c"
      ],
      "author": {
        "name": "hermeticbuild-bot",
        "email": "hermeticbuildbot@gmail.com",
        "time": "Thu May 14 11:37:15 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 14 17:37:15 2026 +0200"
      },
      "message": "rules_qemu@0.1.1 (#8886)\n\nRelease: https://github.com/hermeticbuild/rules_qemu/releases/tag/v0.1.1\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_\n\nCo-authored-by: cerisier \u003c1126594+cerisier@users.noreply.github.com\u003e"
    },
    {
      "commit": "f9780fefbe9643498a8dffc725c15ca5c7a7c88c",
      "tree": "807a74aaa083d83bae01615136b45a6bbf789d6a",
      "parents": [
        "d6acbcd4faf17a4051faf977e27f35251ad347d9"
      ],
      "author": {
        "name": "Marc Alff",
        "email": "marc.alff@free.fr",
        "time": "Thu May 14 16:43:13 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 14 07:43:13 2026 -0700"
      },
      "message": "Add opentelemetry-cpp 1.27.0 (#8870)\n\nAdd opentelemetry-cpp 1.27.0"
    },
    {
      "commit": "d6acbcd4faf17a4051faf977e27f35251ad347d9",
      "tree": "1ff74cfca434d71e7197815cd24117a998eb19a9",
      "parents": [
        "08e3609aff073aaf670738f29ff45f25a24c4bba"
      ],
      "author": {
        "name": "Thulio Ferraz Assis",
        "email": "3149049+f0rmiga@users.noreply.github.com",
        "time": "Thu May 14 10:18:56 2026 -0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 14 15:18:56 2026 +0200"
      },
      "message": "Publish gcc_toolchain@0.9.3 (#8881)\n\nRelease: https://github.com/f0rmiga/gcc-toolchain/releases/tag/0.9.3\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_"
    },
    {
      "commit": "08e3609aff073aaf670738f29ff45f25a24c4bba",
      "tree": "e4bcf29bb0be31778d68062c160b3c9407388f8e",
      "parents": [
        "aa90da05077638fc47f3f23a9ab6710f7bca34ff"
      ],
      "author": {
        "name": "Cindy Lin",
        "email": "9029396+cindylindeed@users.noreply.github.com",
        "time": "Wed May 13 23:23:33 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 14 08:23:33 2026 +0200"
      },
      "message": "tink-cc@2.7.0 (#8878)"
    },
    {
      "commit": "aa90da05077638fc47f3f23a9ab6710f7bca34ff",
      "tree": "346738f7011460473d5e05a80cc3c6b7615cdd9c",
      "parents": [
        "ffa15e045b2f207bd298bb31c62307dccb9ac75c"
      ],
      "author": {
        "name": "Michael Carroll",
        "email": "carroll.michael@gmail.com",
        "time": "Thu May 14 01:23:26 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 14 08:23:26 2026 +0200"
      },
      "message": "gz-physics@9.3.0 (#8880)\n\nRelease:\nhttps://github.com/gazebosim/gz-physics/releases/tag/gz-physics9_9.3.0\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_\n\nCo-authored-by: iche033 \u003c4000684+iche033@users.noreply.github.com\u003e"
    },
    {
      "commit": "ffa15e045b2f207bd298bb31c62307dccb9ac75c",
      "tree": "897e9d97974e91582f956a2a42bd483b491698be",
      "parents": [
        "464003b3d16cdccd5390ec29c257f12a149c2540"
      ],
      "author": {
        "name": "hermeticbuild-bot",
        "email": "hermeticbuildbot@gmail.com",
        "time": "Wed May 13 20:11:34 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 13 20:11:34 2026 -0400"
      },
      "message": "gazelle_ts@0.4.15 (#8879)\n\nRelease:\nhttps://github.com/hermeticbuild/gazelle_ts/releases/tag/v0.4.15\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_\n\nCo-authored-by: longlho \u003c198255+longlho@users.noreply.github.com\u003e"
    },
    {
      "commit": "464003b3d16cdccd5390ec29c257f12a149c2540",
      "tree": "c70d32c03c8526809995cb354afa415888af24ad",
      "parents": [
        "5ee9e29747e7a8dc4c96d99b52a84d5ec741e442"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Wed May 13 14:10:43 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 13 23:10:43 2026 +0200"
      },
      "message": "mpc@1.4.1.bcr.2 (#8876)"
    },
    {
      "commit": "5ee9e29747e7a8dc4c96d99b52a84d5ec741e442",
      "tree": "6dd9bca4fe5be8a2f2ebe103bf03bca7a9f376ce",
      "parents": [
        "b3aede82a67b95c67a8945119b3204c94dada544"
      ],
      "author": {
        "name": "Maxwell Elliott",
        "email": "maxwell@elliott.now",
        "time": "Wed May 13 17:10:35 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 13 23:10:35 2026 +0200"
      },
      "message": "bazel-diff@22.0.0 (#8877)\n\nRelease: https://github.com/Tinder/bazel-diff/releases/tag/v22.0.0\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_"
    },
    {
      "commit": "b3aede82a67b95c67a8945119b3204c94dada544",
      "tree": "4a0e1a8547a128d66318994cd14ca370c9d9cd8e",
      "parents": [
        "10a51f4526513b847569181bd97a3fed20d817c2"
      ],
      "author": {
        "name": "periareon-bot",
        "email": "periareon-bot@proton.me",
        "time": "Wed May 13 12:55:17 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 13 12:55:17 2026 -0700"
      },
      "message": "rules_cc_autoconf@0.10.2 (#8875)\n\nRelease:\nhttps://github.com/periareon/rules_cc_autoconf/releases/tag/0.10.2\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_\n\nCo-authored-by: periareon-bot \u003c260522848+periareon-bot@users.noreply.github.com\u003e"
    },
    {
      "commit": "10a51f4526513b847569181bd97a3fed20d817c2",
      "tree": "2e57a5350e4c1498f24e1d9c9f3950354ccb90b3",
      "parents": [
        "533d8a639930b55edb53dad31b909c90304981b4"
      ],
      "author": {
        "name": "Marvin, the Aspect bot",
        "email": "marvin@aspect.build",
        "time": "Wed May 13 12:24:26 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 13 21:24:26 2026 +0200"
      },
      "message": "aspect_rules_js@3.1.2 (#8873)\n\nRelease: https://github.com/aspect-build/rules_js/releases/tag/v3.1.2\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_\n\nCo-authored-by: jbedard \u003c89246+jbedard@users.noreply.github.com\u003e"
    },
    {
      "commit": "533d8a639930b55edb53dad31b909c90304981b4",
      "tree": "50f3aa54f3ac8c901d0f894192204743691c2fba",
      "parents": [
        "164ad0b9c1a3bcb4a4c15bb4b2a603d94e053865"
      ],
      "author": {
        "name": "hermeticbuild-bot",
        "email": "hermeticbuildbot@gmail.com",
        "time": "Wed May 13 15:24:17 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 13 21:24:17 2026 +0200"
      },
      "message": "gazelle_ts@0.4.14 (#8874)\n\nRelease:\nhttps://github.com/hermeticbuild/gazelle_ts/releases/tag/v0.4.14\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_\n\nCo-authored-by: longlho \u003c198255+longlho@users.noreply.github.com\u003e"
    },
    {
      "commit": "164ad0b9c1a3bcb4a4c15bb4b2a603d94e053865",
      "tree": "d33ac49c4de9cb6c0bf001afcff909b79af68456",
      "parents": [
        "bc79e063f3dc8c73d30698d054e30f6bb7733fee"
      ],
      "author": {
        "name": "publish-to-bcr-bot[bot]",
        "email": "112732530+publish-to-bcr-bot[bot]@users.noreply.github.com",
        "time": "Wed May 13 19:37:51 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 13 19:37:51 2026 +0200"
      },
      "message": "rules_ruby@0.26.0 (#8872)\n\n:warning: The Publish to BCR GitHub app will be discontinued after June\n30, 2026. Please migrate to the GitHub Actions [reusable\nworkflow](https://github.com/bazel-contrib/publish-to-bcr?tab\u003dreadme-ov-file#setup)\nbefore then.\n      \nRelease:\nhttps://github.com/bazel-contrib/rules_ruby/releases/tag/v0.26.0\n\n_Automated by [Publish to BCR](https://github.com/apps/publish-to-bcr)_\n\nCo-authored-by: Alex Eagle \u003calex@aspect.dev\u003e"
    },
    {
      "commit": "bc79e063f3dc8c73d30698d054e30f6bb7733fee",
      "tree": "40359246323108e1864db7cdff7d52fe54debe06",
      "parents": [
        "98c83724d4f8f99a9a076f8779d40f11d1ae47f2"
      ],
      "author": {
        "name": "April Schleck",
        "email": "april@exclusivelyducks.com",
        "time": "Wed May 13 09:03:18 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 13 12:03:18 2026 -0400"
      },
      "message": "Add systemd at 260.1 for libudev (#8666)\n\nAdding libudev as requested in\nhttps://github.com/bazelbuild/bazel-central-registry/pull/8609. systemd\nbuilds with meson/ninja but since we only need libudev we do it with\nrules_cc. Tested by building linux/arm64 + linux/amd64 librealsense\ntargets.\n\nUsing an unstable source URL as there is no stable source release:\nhttps://github.com/systemd/systemd/releases/tag/v260.1"
    },
    {
      "commit": "98c83724d4f8f99a9a076f8779d40f11d1ae47f2",
      "tree": "63423ebc80f5fc2f6a394c8cf9efd6f28212e202",
      "parents": [
        "ac1b597a90a42094955c53a499595c0064301c09"
      ],
      "author": {
        "name": "Maxwell Elliott",
        "email": "maxwell@elliott.now",
        "time": "Wed May 13 11:34:23 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 13 17:34:23 2026 +0200"
      },
      "message": "bazel-diff@20.0.0 (#8855)\n\nRelease: https://github.com/Tinder/bazel-diff/releases/tag/v20.0.0\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_"
    },
    {
      "commit": "ac1b597a90a42094955c53a499595c0064301c09",
      "tree": "b6ae0cbf796f54c7db6b5e1c572513321b156d89",
      "parents": [
        "c49590a1456ce0bf72893327ac50e6af77f6bea5"
      ],
      "author": {
        "name": "hermeticbuild-bot",
        "email": "hermeticbuildbot@gmail.com",
        "time": "Wed May 13 11:34:10 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 13 17:34:10 2026 +0200"
      },
      "message": "gazelle_ts@0.4.13 (#8860)\n\nRelease:\nhttps://github.com/hermeticbuild/gazelle_ts/releases/tag/v0.4.13\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_\n\nCo-authored-by: longlho \u003c198255+longlho@users.noreply.github.com\u003e"
    },
    {
      "commit": "c49590a1456ce0bf72893327ac50e6af77f6bea5",
      "tree": "23bf94d330497517a9cc70bfe1a1e87c32b1054e",
      "parents": [
        "970b1c21fef929f119a18109ef9becc3238eabdc"
      ],
      "author": {
        "name": "Pedro Grojsgold",
        "email": "pgold@users.noreply.github.com",
        "time": "Wed May 13 15:30:08 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 13 17:30:08 2026 +0200"
      },
      "message": "msgpack-c@7.0.0 (#8856)"
    },
    {
      "commit": "970b1c21fef929f119a18109ef9becc3238eabdc",
      "tree": "916f39376b5443353fc9d904c036256783ce37e5",
      "parents": [
        "443ece8a2aca42e9c6c1fcca5510985020fc33ca"
      ],
      "author": {
        "name": "hermeticbuild-bot",
        "email": "hermeticbuildbot@gmail.com",
        "time": "Wed May 13 10:56:54 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 13 10:56:54 2026 -0400"
      },
      "message": "rules_rs@0.0.79 (#8866)\n\nRelease: https://github.com/hermeticbuild/rules_rs/releases/tag/v0.0.79\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_\n\nCo-authored-by: dzbarsky \u003c1565842+dzbarsky@users.noreply.github.com\u003e"
    },
    {
      "commit": "443ece8a2aca42e9c6c1fcca5510985020fc33ca",
      "tree": "ec0d5887433b2de89889096f93392a46a1506fc0",
      "parents": [
        "7024a8799017fe37cddd068fcb8411176f4ba5f9"
      ],
      "author": {
        "name": "Yun Peng",
        "email": "pcloudy@google.com",
        "time": "Wed May 13 16:40:10 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 13 14:40:10 2026 +0000"
      },
      "message": "Update BCR PR reviewer hash (#8868)\n\nDeploy https://github.com/bazelbuild/continuous-integration/pull/2618"
    },
    {
      "commit": "7024a8799017fe37cddd068fcb8411176f4ba5f9",
      "tree": "1a678acbf746bce4dbbeb4d5c7f9500a139364c5",
      "parents": [
        "314b04aaa62d95a707732f46403784934e2c5519"
      ],
      "author": {
        "name": "hermeticbuild-bot",
        "email": "hermeticbuildbot@gmail.com",
        "time": "Wed May 13 10:36:13 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 13 10:36:13 2026 -0400"
      },
      "message": "Publish llvm@0.8.1 (#8867)\n\nRelease:\nhttps://github.com/hermeticbuild/hermetic-llvm/releases/tag/v0.8.1\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_\n\nCo-authored-by: dzbarsky \u003c1565842+dzbarsky@users.noreply.github.com\u003e"
    }
  ],
  "next": "314b04aaa62d95a707732f46403784934e2c5519"
}
