)]}'
{
  "log": [
    {
      "commit": "c7022134ec98086473775254e5fb563f51e2dfca",
      "tree": "11e8a83b32bc7538c2194ed7ea96e735a9750955",
      "parents": [
        "f79cd2caa3f8cd60ad7b13a941f5ae8431991fc1"
      ],
      "author": {
        "name": "David Zbarsky",
        "email": "dzbarsky@gmail.com",
        "time": "Tue Jun 02 19:54:06 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 02 19:54:06 2026"
      },
      "message": "rules_itest@0.0.56 (#9098)\n\nRelease:\nhttps://github.com/hermeticbuild/rules_itest/releases/tag/v0.0.56\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": "f79cd2caa3f8cd60ad7b13a941f5ae8431991fc1",
      "tree": "baf0749b1a0d86712105a0bfebc99b72b9989787",
      "parents": [
        "eedc5bd9546afbd30687a32eaf2e1fafb4e62bd1"
      ],
      "author": {
        "name": "periareon-bot",
        "email": "periareon-bot@proton.me",
        "time": "Tue Jun 02 19:39:59 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 02 19:39:59 2026"
      },
      "message": "rules_helm@0.28.0 (#9095)\n\nRelease: https://github.com/periareon/rules_helm/releases/tag/0.28.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": "eedc5bd9546afbd30687a32eaf2e1fafb4e62bd1",
      "tree": "c68f2dde0feaa04d42a3ebb7da5ac84bbb8a80d6",
      "parents": [
        "50f7635a9fcfe0ddf5f22d5fbcdb0b63835e0dc3"
      ],
      "author": {
        "name": "publish-to-bcr-bot[bot]",
        "email": "112732530+publish-to-bcr-bot[bot]@users.noreply.github.com",
        "time": "Tue Jun 02 19:39:43 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 02 19:39:43 2026"
      },
      "message": "maliput@1.17.0 (#9099)\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/maliput/maliput/releases/tag/1.17.0\n\n_Automated by [Publish to BCR](https://github.com/apps/publish-to-bcr)_\n\nCo-authored-by: Daniel Stonier \u003cd.stonier@gmail.com\u003e"
    },
    {
      "commit": "50f7635a9fcfe0ddf5f22d5fbcdb0b63835e0dc3",
      "tree": "44d9750e59ccefac60836005318f23db1dbe9d74",
      "parents": [
        "9aeb430887c4ffda79695e884f3fbb636164ae83"
      ],
      "author": {
        "name": "dallison",
        "email": "david.s.allison@gmail.com",
        "time": "Tue Jun 02 19:39:27 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 02 19:39:27 2026"
      },
      "message": "Add Subspace version 2.8.1 (#9101)\n\nAdds version 2.8.1 of Subspace with improved Android support"
    },
    {
      "commit": "9aeb430887c4ffda79695e884f3fbb636164ae83",
      "tree": "6d55a5130a4427d2beb14456219a19ea99e83e20",
      "parents": [
        "9c1763ddb88779ea0be0821afd32953fa6884643"
      ],
      "author": {
        "name": "publish-to-bcr-bot[bot]",
        "email": "112732530+publish-to-bcr-bot[bot]@users.noreply.github.com",
        "time": "Tue Jun 02 19:37:33 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 02 19:37:33 2026"
      },
      "message": "bazel_worker_api@0.0.11, bazel_worker_java@0.0.11 (#9103)\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/bazelbuild/bazel-worker-api/releases/tag/v0.0.11\n\n_Automated by [Publish to BCR](https://github.com/apps/publish-to-bcr)_\n\nCo-authored-by: Xùdōng Yáng \u003cwyverald@gmail.com\u003e"
    },
    {
      "commit": "9c1763ddb88779ea0be0821afd32953fa6884643",
      "tree": "cca4d67278582e304b6c9cfcafe2969490568d95",
      "parents": [
        "2e19d7b0afa10da1e34dae92840912fb40aef054"
      ],
      "author": {
        "name": "bg0d-droid",
        "email": "81825610+bg0d-droid@users.noreply.github.com",
        "time": "Tue Jun 02 17:17:36 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 02 17:17:36 2026"
      },
      "message": "Document BCR skip-check design (#9091)\n\n## Summary\n- clarify that skip_check commands are intentional escape hatches for\noptional validations\n- document that skip labels are audit markers for named checks only\n- clarify that skip labels do not approve, merge, or bypass other BCR\nvalidation and CI requirements\n\n## Why\nMaintainers clarified in bazelbuild/continuous-integration#2660 that the\ncurrent skip_check behavior is working as intended: these checks are\noptional, non-security-sensitive validations that should be easy for\nmodule maintainers to skip and audit via labels. This documentation\nupdate makes that design intent explicit to reduce recurring confusion.\n\n## Validation\n- documentation-only change"
    },
    {
      "commit": "2e19d7b0afa10da1e34dae92840912fb40aef054",
      "tree": "d2bf22dd29882f6cde95d68dbd5521bba31e2cf7",
      "parents": [
        "67528b23d521cdae7a949bdadee52ffb7c6a575f"
      ],
      "author": {
        "name": "Clément Guillot",
        "email": "guillot.clement@pm.me",
        "time": "Tue Jun 02 11:24:00 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 02 11:24:00 2026"
      },
      "message": "com_clementguillot_rules_quarkus@0.2.1 (#9092)\n\nRelease:\nhttps://github.com/clementguillot/rules_quarkus/releases/tag/v0.2.1\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": "67528b23d521cdae7a949bdadee52ffb7c6a575f",
      "tree": "e86a436b0ff6e9c00f36c4bf8c90b7ac20f00770",
      "parents": [
        "3b374a18ff4d33732acad9fee9b2c95633b68edb"
      ],
      "author": {
        "name": "Dragos Carp",
        "email": "dragoscarp@gmail.com",
        "time": "Tue Jun 02 08:57:13 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 02 08:57:13 2026"
      },
      "message": "gazelle_d@0.1.1 (#9076)\n\nRelease: https://github.com/dcarp/gazelle_d/releases/tag/v0.1.1\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_\n\nCo-authored-by: dcarp \u003c1738497+dcarp@users.noreply.github.com\u003e"
    },
    {
      "commit": "3b374a18ff4d33732acad9fee9b2c95633b68edb",
      "tree": "172b9eb832535883535720c3080c85a3c832b432",
      "parents": [
        "14d7e4841beb4ce86ad4e71d641b4879721bf136"
      ],
      "author": {
        "name": "hw-bzl-bot",
        "email": "hardware.bazel@protonmail.com",
        "time": "Tue Jun 02 06:59:47 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 02 06:59:47 2026"
      },
      "message": "rules_verilator@1.1.0 (#9088)\n\nRelease: https://github.com/hw-bzl/rules_verilator/releases/tag/1.1.0\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_\n\nCo-authored-by: hw-bzl-bot \u003c279263554+hw-bzl-bot@users.noreply.github.com\u003e"
    },
    {
      "commit": "14d7e4841beb4ce86ad4e71d641b4879721bf136",
      "tree": "2c97408f13645c744730d5ff3feb716226720ab2",
      "parents": [
        "1ba3bf5211ff4df8ef64f102b5b744e43706737b"
      ],
      "author": {
        "name": "Marvin, the Aspect bot",
        "email": "marvin@aspect.build",
        "time": "Tue Jun 02 03:37:48 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 02 03:37:48 2026"
      },
      "message": "aspect_gazelle_js@1.0.1 (#9086)\n\nRelease:\nhttps://github.com/aspect-build/aspect-gazelle/releases/tag/js-v1.0.1\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": "1ba3bf5211ff4df8ef64f102b5b744e43706737b",
      "tree": "afc2f70c0d135bbadeacb9e255f970c9b6191827",
      "parents": [
        "c29976162c0aaf76aad0b43a6ca95bb798d1c4d4"
      ],
      "author": {
        "name": "hermeticbuild-bot",
        "email": "hermeticbuildbot@gmail.com",
        "time": "Tue Jun 02 02:18:37 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 02 02:18:37 2026"
      },
      "message": "windows_support@0.2.0 (#9085)\n\nRelease:\nhttps://github.com/hermeticbuild/windows_support/releases/tag/v0.2.0\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": "c29976162c0aaf76aad0b43a6ca95bb798d1c4d4",
      "tree": "088436d7973ae61447256c7accea2b98e7b90cce",
      "parents": [
        "bdc287a298aa8477d206bbd05c6b0ffa344078ad"
      ],
      "author": {
        "name": "hermeticbuild-bot",
        "email": "hermeticbuildbot@gmail.com",
        "time": "Tue Jun 02 01:54:06 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 02 01:54:06 2026"
      },
      "message": "codesign.bzl@0.0.13 (#9084)\n\nRelease:\nhttps://github.com/hermeticbuild/codesign.bzl/releases/tag/v0.0.13\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": "bdc287a298aa8477d206bbd05c6b0ffa344078ad",
      "tree": "e5a2a5a569af5e2bef35df454b7301692a8a4ed5",
      "parents": [
        "175aa97011d55c8d97c13cec3985e0cf0cdb0151"
      ],
      "author": {
        "name": "hermeticbuild-bot",
        "email": "hermeticbuildbot@gmail.com",
        "time": "Mon Jun 01 22:29:27 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 01 22:29:27 2026"
      },
      "message": "hermetic_launcher@0.0.9 (#9077)\n\nRelease:\nhttps://github.com/hermeticbuild/hermetic-launcher/releases/tag/v0.0.9\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": "175aa97011d55c8d97c13cec3985e0cf0cdb0151",
      "tree": "4e00a3a9b4c470e9ed80bd05bd2defe77e51f597",
      "parents": [
        "bdaf303eb8742bbaa8f13f46e7c9b349a8154e6a"
      ],
      "author": {
        "name": "Jeremy Kun",
        "email": "kun.jeremy@gmail.com",
        "time": "Mon Jun 01 21:53:23 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 01 21:53:23 2026"
      },
      "message": "rules_heir: add 0.0.6 (#9062)\n\nCo-authored-by: Jeremy Kun \u003cj2kun@users.noreply.github.com\u003e"
    },
    {
      "commit": "bdaf303eb8742bbaa8f13f46e7c9b349a8154e6a",
      "tree": "2171f17dd4f8417967db888524199c326b4b43b4",
      "parents": [
        "e6cf5eedc158f2081effb5996fb3a2dfbf9ec04d"
      ],
      "author": {
        "name": "Carbo",
        "email": "BYVoid@users.noreply.github.com",
        "time": "Mon Jun 01 21:04:49 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 01 21:04:49 2026"
      },
      "message": "Add ccronexpr 2.1.0 (#9054)\n\nAdds the `ccronexpr` module based on\n[supertinycron](https://github.com/exander77/supertinycron) v2.1.0.\n\nThe library mirrors the upstream CMake build: a single `cc_library`\nbuilt from `ccronexpr.c`, plus the `ccronexpr_test` target. Since\nupstream ships no Bazel support, `BUILD.bazel` and `MODULE.bazel` are\ninjected via an `overlay`.\n\nTwo of upstream\u0027s compile-time options are exposed as `bool_flag`s so\ndownstream modules can opt in (defaults match the upstream CMake\ndefaults — UTC time, Year field enabled):\n\n- `--@ccronexpr//:use_local_time\u003dTrue` → `-DCRON_USE_LOCAL_TIME` (use\nsystem-local time instead of UTC)\n- `--@ccronexpr//:disable_years\u003dTrue` → `-DCRON_DISABLE_YEARS` (drop the\nYear field, shrinking `cron_expr` by 29 bytes)\n\nVerified locally: the library builds and `ccronexpr_test` passes; both\nflags correctly propagate their defines.\n\nThe source URL is GitHub\u0027s auto-generated tag archive (the project\npublishes no release assets):\n\n@bazel-io skip_check unstable_url"
    },
    {
      "commit": "e6cf5eedc158f2081effb5996fb3a2dfbf9ec04d",
      "tree": "bf98f0718129540bee3797d77b49d46166661208",
      "parents": [
        "e6a7a472ec6339765a7bfbdedb6c6c79509cdece"
      ],
      "author": {
        "name": "Jonathan Tatum",
        "email": "jdtatum@google.com",
        "time": "Mon Jun 01 19:51:17 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 01 19:51:17 2026"
      },
      "message": "Add antlr4-cpp-runtime@4.13.2.bcr.2 (#9049)\n\nAdd a patch to resolve file name conflict on windows.\n\nAdjust defines in build overlay."
    },
    {
      "commit": "e6a7a472ec6339765a7bfbdedb6c6c79509cdece",
      "tree": "ca43ad1d3209966e0bcbd2c8a086d4236c37ab4d",
      "parents": [
        "3809baab4cb45f07660b3a72f613526b5a466d9f"
      ],
      "author": {
        "name": "publish-to-bcr-bot[bot]",
        "email": "112732530+publish-to-bcr-bot[bot]@users.noreply.github.com",
        "time": "Mon Jun 01 18:36:39 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 01 18:36:39 2026"
      },
      "message": "helly25_bzl@0.4.2 (#9073)\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/helly25/bzl/releases/tag/0.4.2\n\n_Automated by [Publish to BCR](https://github.com/apps/publish-to-bcr)_\n\nCo-authored-by: publish-to-bcr-bot \u003c112732530+publish-to-bcr-bot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "3809baab4cb45f07660b3a72f613526b5a466d9f",
      "tree": "c4d19923f9ce46c413f88b2e8caf888211ba60b1",
      "parents": [
        "8febd17d9faa976f148148457640ecd56a4a0f71"
      ],
      "author": {
        "name": "Marvin, the Aspect bot",
        "email": "marvin@aspect.build",
        "time": "Mon Jun 01 18:36:29 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 01 18:36:29 2026"
      },
      "message": "aspect_gazelle_prebuilt@0.0.18 (#9074)\n\nRelease:\nhttps://github.com/aspect-build/aspect-gazelle/releases/tag/prebuilt-v0.0.18\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": "8febd17d9faa976f148148457640ecd56a4a0f71",
      "tree": "51a313154b51c2c17eda77e4fd9f3d73641f6efc",
      "parents": [
        "61757e0fc4d0c655b6f46fdb7e963f8c84d372a5"
      ],
      "author": {
        "name": "publish-to-bcr-bot[bot]",
        "email": "112732530+publish-to-bcr-bot[bot]@users.noreply.github.com",
        "time": "Mon Jun 01 14:39:52 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 01 14:39:52 2026"
      },
      "message": "rules_go@0.61.0 (#9069)\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/bazel-contrib/rules_go/releases/tag/v0.61.0\n\n_Automated by [Publish to BCR](https://github.com/apps/publish-to-bcr)_\n\nCo-authored-by: Fabian Meumertzheim \u003cfabian@meumertzhe.im\u003e"
    },
    {
      "commit": "61757e0fc4d0c655b6f46fdb7e963f8c84d372a5",
      "tree": "aa35fcbb9fe364d207b611970bb481c2ba5e7dd2",
      "parents": [
        "9b9f4c2349a6d5b282b1e9fb31d5d7f0e9b42a2c"
      ],
      "author": {
        "name": "hermeticbuild-bot",
        "email": "hermeticbuildbot@gmail.com",
        "time": "Mon Jun 01 14:05:07 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 01 14:05:07 2026"
      },
      "message": "windows_support@0.1.8 (#9068)\n\nRelease:\nhttps://github.com/hermeticbuild/windows_support/releases/tag/v0.1.8\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": "9b9f4c2349a6d5b282b1e9fb31d5d7f0e9b42a2c",
      "tree": "a7bd1d80569300c99f22cf8703752722abeed841",
      "parents": [
        "86200ca2a79db9c5f4723c1daaba77c77371eedc"
      ],
      "author": {
        "name": "hermeticbuild-bot",
        "email": "hermeticbuildbot@gmail.com",
        "time": "Mon Jun 01 13:34:13 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 01 13:34:13 2026"
      },
      "message": "rules_rs@0.0.83 (#9067)\n\nRelease: https://github.com/hermeticbuild/rules_rs/releases/tag/v0.0.83\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": "86200ca2a79db9c5f4723c1daaba77c77371eedc",
      "tree": "600d406d1ea18658746156205e479b809e25b2b8",
      "parents": [
        "ef124c46554292146e4e6d2c1858311718e78d63"
      ],
      "author": {
        "name": "Machine account for bazel-contrib",
        "email": "contrib@bazel.build",
        "time": "Mon Jun 01 12:45:35 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 01 12:45:35 2026"
      },
      "message": "rules_scala@7.2.5 (#9065)\n\nRelease:\nhttps://github.com/bazel-contrib/rules_scala/releases/tag/v7.2.5\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_\n\nCo-authored-by: WojciechMazur \u003c19353690+WojciechMazur@users.noreply.github.com\u003e"
    },
    {
      "commit": "ef124c46554292146e4e6d2c1858311718e78d63",
      "tree": "1f61de3ecfe1631141e859175f0f7d381bf5ccb1",
      "parents": [
        "a8165b8203b168dbae891a5642f8ae85ad3854c3"
      ],
      "author": {
        "name": "hermeticbuild-bot",
        "email": "hermeticbuildbot@gmail.com",
        "time": "Mon Jun 01 11:56:05 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 01 11:56:05 2026"
      },
      "message": "Publish llvm@0.8.4 (#9061)\n\nRelease:\nhttps://github.com/hermeticbuild/hermetic-llvm/releases/tag/v0.8.4\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": "a8165b8203b168dbae891a5642f8ae85ad3854c3",
      "tree": "e3ba92f3bf0c1029a215e97a69ba52d8a456aad2",
      "parents": [
        "47f2e61d298929f79a1dd47610da86085cccdbbd"
      ],
      "author": {
        "name": "Daisuke Nishimatsu",
        "email": "42202095+wep21@users.noreply.github.com",
        "time": "Mon Jun 01 11:19:07 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 01 11:19:07 2026"
      },
      "message": "feat: add iceoryx2@0.9.0 (#9063)\n\n- update iceoryx2 to 0.9.0 and remove unnecessary overlay.\n\n---------\n\nSigned-off-by: wep21 \u003cdaisuke.nishimatsu1021@gmail.com\u003e"
    },
    {
      "commit": "47f2e61d298929f79a1dd47610da86085cccdbbd",
      "tree": "8b703cf3d1a5299038dfaad1563dc6671f325ec9",
      "parents": [
        "aaefd2004c85ad472f09d273c01d863e541bfd8b"
      ],
      "author": {
        "name": "bazel.build machine account",
        "email": "ci.bazel@gmail.com",
        "time": "Mon Jun 01 09:09:02 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 01 09:09:02 2026"
      },
      "message": "rules_cc@0.2.19 (#9064)\n\nRelease: https://github.com/bazelbuild/rules_cc/releases/tag/0.2.19\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_\n\nCo-authored-by: pzembrod \u003c7567300+pzembrod@users.noreply.github.com\u003e"
    },
    {
      "commit": "aaefd2004c85ad472f09d273c01d863e541bfd8b",
      "tree": "56ffa23baf1336b2c5d5deb3994fe065c47efb2b",
      "parents": [
        "67880c09cdb663cb69796b2a43fa198390e49b20"
      ],
      "author": {
        "name": "hw-bzl-bot",
        "email": "hardware.bazel@protonmail.com",
        "time": "Mon Jun 01 02:40:52 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 01 02:40:52 2026"
      },
      "message": "rules_vhdl@0.1.2 (#9060)\n\nRelease: https://github.com/hw-bzl/rules_vhdl/releases/tag/0.1.2\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_\n\nCo-authored-by: hw-bzl-bot \u003c279263554+hw-bzl-bot@users.noreply.github.com\u003e"
    },
    {
      "commit": "67880c09cdb663cb69796b2a43fa198390e49b20",
      "tree": "d8e209d660ea641335962dd0bb7310a8439efcbc",
      "parents": [
        "d24bce56c211cc4a96d43b592c8911604f767ffd"
      ],
      "author": {
        "name": "Filip Filmar",
        "email": "filmil@gmail.com",
        "time": "Mon Jun 01 01:57:05 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 01 01:57:05 2026"
      },
      "message": "gotopt2@2.7.1 (#9059)\n\nRelease: https://github.com/filmil/gotopt2/releases/tag/v2.7.1\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_"
    },
    {
      "commit": "d24bce56c211cc4a96d43b592c8911604f767ffd",
      "tree": "0f7eb1c83d850f7cb2f2e024f1b74b7a5b61863c",
      "parents": [
        "4a7161b7f3f1308825dc189ff9eeb8b21efb7b73"
      ],
      "author": {
        "name": "Marcus Boerger",
        "email": "marcus.boerger@gmail.com",
        "time": "Sun May 31 20:56:41 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun May 31 20:56:41 2026"
      },
      "message": "helly25_bzl@0.4.1 (#9058)\n\nManual release of helly25_bzl@0.4.1\n\nYanking 0.4.0"
    },
    {
      "commit": "4a7161b7f3f1308825dc189ff9eeb8b21efb7b73",
      "tree": "a075ab7c3c278fb0e3f8437fd9bd0c9273fab7bb",
      "parents": [
        "2c09a1466970192c4a59ab89a50efbc71abe18a8"
      ],
      "author": {
        "name": "publish-to-bcr-bot[bot]",
        "email": "112732530+publish-to-bcr-bot[bot]@users.noreply.github.com",
        "time": "Sun May 31 17:03:19 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun May 31 17:03:19 2026"
      },
      "message": "helly25_bzl@0.4.0 (#9056)\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/helly25/bzl/releases/tag/0.4.0\n\n_Automated by [Publish to BCR](https://github.com/apps/publish-to-bcr)_\n\nCo-authored-by: publish-to-bcr-bot \u003c112732530+publish-to-bcr-bot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "2c09a1466970192c4a59ab89a50efbc71abe18a8",
      "tree": "f3997cbac16b61cd11b264cb4fe141f2138af4d6",
      "parents": [
        "6e3a076ea1aed6a240922579a11ef57a8815e302"
      ],
      "author": {
        "name": "Chuck Grindel",
        "email": "chuck.grindel@gmail.com",
        "time": "Sun May 31 14:13:14 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun May 31 14:13:14 2026"
      },
      "message": "rules_swift_package_manager@1.18.1 (#9055)\n\nRelease:\nhttps://github.com/cgrindel/rules_swift_package_manager/releases/tag/v1.18.1\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_"
    },
    {
      "commit": "6e3a076ea1aed6a240922579a11ef57a8815e302",
      "tree": "a0ff51c35a9a9563ba77cfb6b0ab88cc0837adfd",
      "parents": [
        "29ba477895be2c6c635a6d1555e78964ba387a2a"
      ],
      "author": {
        "name": "hw-bzl-bot",
        "email": "hardware.bazel@protonmail.com",
        "time": "Sat May 30 16:12:10 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat May 30 16:12:10 2026"
      },
      "message": "rules_systemrdl@0.3.0 (#9053)\n\nRelease: https://github.com/hw-bzl/rules_systemrdl/releases/tag/0.3.0\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_\n\nCo-authored-by: hw-bzl-bot \u003c279263554+hw-bzl-bot@users.noreply.github.com\u003e"
    },
    {
      "commit": "29ba477895be2c6c635a6d1555e78964ba387a2a",
      "tree": "9ed7040af1bc638d842d07043cf2e8c5f9c6e83d",
      "parents": [
        "7f0b2b2520c9c14a0aba65fb991420b96d990d5e"
      ],
      "author": {
        "name": "Clément Guillot",
        "email": "guillot.clement@pm.me",
        "time": "Fri May 29 19:56:27 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 29 19:56:27 2026"
      },
      "message": "com_clementguillot_rules_quarkus@0.2.0 (#9047)\n\nRelease:\nhttps://github.com/clementguillot/rules_quarkus/releases/tag/v0.2.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": "7f0b2b2520c9c14a0aba65fb991420b96d990d5e",
      "tree": "b4b53c5ee01570b731ebc8e60bdfbddf1f57dfef",
      "parents": [
        "8d44216140d5cc8c27494e5c0d7d4dc739346d21"
      ],
      "author": {
        "name": "grpc-bot",
        "email": "33466630+grpc-bot@users.noreply.github.com",
        "time": "Fri May 29 17:37:08 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 29 17:37:08 2026"
      },
      "message": "grpc@1.81.0 (#9048)\n\nRelease: https://github.com/grpc/grpc/releases/tag/v1.81.0\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": "8d44216140d5cc8c27494e5c0d7d4dc739346d21",
      "tree": "53a8fe438617030e00c781d8cb67b7c7c7aa1677",
      "parents": [
        "dacccd4ffb1c6226c53d56c10ad7758957791ca6"
      ],
      "author": {
        "name": "hermeticbuild-bot",
        "email": "hermeticbuildbot@gmail.com",
        "time": "Fri May 29 14:58:49 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 29 14:58:49 2026"
      },
      "message": "aws-in-a-box@0.0.73 (#9046)\n\nRelease:\nhttps://github.com/hermeticbuild/aws-in-a-box/releases/tag/v0.0.73\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": "dacccd4ffb1c6226c53d56c10ad7758957791ca6",
      "tree": "939e980b4572aaf5f54af93d6d2b8da25fe13576",
      "parents": [
        "2fd9e03483b856ec61defe7b1075732156e1dcb5"
      ],
      "author": {
        "name": "Harald",
        "email": "harald.achitz@gmail.com",
        "time": "Fri May 29 08:04:16 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 29 08:04:16 2026"
      },
      "message": "Add new version, cpp-httplib 0.46.0 (#8988)\n\n- add new (latest) version\n- adds example test demonstrating usage\n- addresses comments from #8367"
    },
    {
      "commit": "2fd9e03483b856ec61defe7b1075732156e1dcb5",
      "tree": "1f25bb086acb264315adef46b2257fef73a77ca7",
      "parents": [
        "5d42b3c7e5e01a24a1aafa8ef29804679de122c7"
      ],
      "author": {
        "name": "publish-to-bcr-bot[bot]",
        "email": "112732530+publish-to-bcr-bot[bot]@users.noreply.github.com",
        "time": "Fri May 29 07:53:10 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 29 07:53:10 2026"
      },
      "message": "rules_sbom@0.6.1 (#8929)\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/rtbot-dev/rules_sbom/releases/tag/v0.6.1\n\n_Automated by [Publish to BCR](https://github.com/apps/publish-to-bcr)_\n\nCo-authored-by: Robert Carcassés Quevedo \u003cnull\u003e"
    },
    {
      "commit": "5d42b3c7e5e01a24a1aafa8ef29804679de122c7",
      "tree": "694a1f7c407d97ba6f52e09fd1edafde4408cf13",
      "parents": [
        "28948d7d6aab48f5f4321f50a5dff3cf74d896b8"
      ],
      "author": {
        "name": "Aran Donohue",
        "email": "aran.donohue@gmail.com",
        "time": "Thu May 28 20:17:39 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 28 20:17:39 2026"
      },
      "message": "rules_dart_proto@0.4.3 (#9039)\n\nRelease: https://github.com/aran/rules_dart_proto/releases/tag/v0.4.3\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_\n\nCo-authored-by: aran \u003c5295+aran@users.noreply.github.com\u003e"
    },
    {
      "commit": "28948d7d6aab48f5f4321f50a5dff3cf74d896b8",
      "tree": "4c72f78a4924a2f33cec6bc00d458018b6f6e51a",
      "parents": [
        "f54d822922607cbf76447d5decdc560779a41cd6"
      ],
      "author": {
        "name": "Ted",
        "email": "tedx@google.com",
        "time": "Thu May 28 18:42:28 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 28 18:42:28 2026"
      },
      "message": "Validate the strip prefix (#9035)\n\nDisallow upward-relative (outside of the sandbox directory) and absolute\nstrip prefixes.\n\nAlso adds some unit tests for BcrValidator.verify_module_dot_bazel().\n\nSupercedes #8375."
    },
    {
      "commit": "f54d822922607cbf76447d5decdc560779a41cd6",
      "tree": "0f3692fbfe59b2d56404a3092d52989d30103d98",
      "parents": [
        "5b73841ba01f4eccb9411ea6a3f33601827dd0db"
      ],
      "author": {
        "name": "hermeticbuild-bot",
        "email": "hermeticbuildbot@gmail.com",
        "time": "Thu May 28 18:25:48 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 28 18:25:48 2026"
      },
      "message": "rules_qemu@0.2.0 (#9037)\n\nRelease: https://github.com/hermeticbuild/rules_qemu/releases/tag/v0.2.0\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": "5b73841ba01f4eccb9411ea6a3f33601827dd0db",
      "tree": "0ed9c7e722cb14d8ace5583297d146761230342e",
      "parents": [
        "92d6e2898987a6bf12af903c6b45002fbfc33d44"
      ],
      "author": {
        "name": "Harald",
        "email": "harald.achitz@gmail.com",
        "time": "Thu May 28 18:14:40 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 28 18:14:40 2026"
      },
      "message": "Add new module, libsl3@v1.2.53001 (#8992)\n\nAdds new library, libsl3\n\n@bazel-io skip_check unstable_url"
    },
    {
      "commit": "92d6e2898987a6bf12af903c6b45002fbfc33d44",
      "tree": "895b25a4ae7227666fa7546e8d3df199364fdc10",
      "parents": [
        "dde43bbb3c7dfabbf8ff36dd340c455fed57265d"
      ],
      "author": {
        "name": "Jack Caperon",
        "email": "jack@canva.com",
        "time": "Thu May 28 18:13:35 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 28 18:13:35 2026"
      },
      "message": "quickjs-ng 0.15.0 (#9006)\n\nLet me know if I should also add 0.14.0."
    },
    {
      "commit": "dde43bbb3c7dfabbf8ff36dd340c455fed57265d",
      "tree": "985a3600386c042f6798a6fe9985e520257eb9c5",
      "parents": [
        "8e8a48b69468f4aa400492e612d316f55000d814"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu May 28 18:10:08 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 28 18:10:08 2026"
      },
      "message": "Bump step-security/harden-runner from 2.19.3 to 2.19.4 (#9018)\n\nBumps\n[step-security/harden-runner](https://github.com/step-security/harden-runner)\nfrom 2.19.3 to 2.19.4.\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.4\u003c/h2\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprovements for HTTPS Monitoring for the Enterprise tier of Harden\nRunner\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.3...v2.19.4\"\u003ehttps://github.com/step-security/harden-runner/compare/v2.19.3...v2.19.4\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/9af89fc71515a100421586dfdb3dc9c984fbf411\"\u003e\u003ccode\u003e9af89fc\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/step-security/harden-runner/issues/667\"\u003e#667\u003c/a\u003e\nfrom step-security/update-agent-v1.8.6\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/step-security/harden-runner/commit/485dce8cb5d75cda51e8bfa947de06030d080208\"\u003e\u003ccode\u003e485dce8\u003c/code\u003e\u003c/a\u003e\nUpdate agent to v1.8.6\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca\nhref\u003d\"https://github.com/step-security/harden-runner/compare/ab7a9404c0f3da075243ca237b5fac12c98deaa5...9af89fc71515a100421586dfdb3dc9c984fbf411\"\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.3\u0026new-version\u003d2.19.4)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don\u0027t\nalter it yourself. You can also trigger a rebase manually by commenting\n`@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits\nthat have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all\nof the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop\nDependabot creating any more for this major version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop\nDependabot creating any more for this minor version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop\nDependabot creating any more for this dependency (unless you reopen the\nPR or upgrade to it yourself)\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": "8e8a48b69468f4aa400492e612d316f55000d814",
      "tree": "f3314486b28206797ff14e7abe0563c2b9aa3952",
      "parents": [
        "f05f8ab9e078d70ef054f807546c63317d61ec73"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu May 28 18:07:46 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 28 18:07:46 2026"
      },
      "message": "Bump the all-pip group in /tools with 13 updates (#9019)\n\nBumps the all-pip group in /tools with 13 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [bazel-runfiles](https://github.com/bazel-contrib/rules_python) |\n`2.0.1` | `2.0.2` |\n| [cachetools](https://github.com/tkem/cachetools) | `7.1.3` | `7.1.4` |\n| [click](https://github.com/pallets/click) | `8.4.0` | `8.4.1` |\n| [cyclopts](https://github.com/BrianPugh/cyclopts) | `4.14.1` |\n`4.16.1` |\n| [idna](https://github.com/kjd/idna) | `3.15` | `3.16` |\n| [joserfc](https://github.com/authlib/joserfc) | `1.6.5` | `1.6.8` |\n| [more-itertools](https://github.com/more-itertools/more-itertools) |\n`11.0.2` | `11.1.0` |\n|\n[opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python)\n| `1.42.0` | `1.42.1` |\n| py-key-value-aio | `0.4.4` | `0.4.5` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.46.4` |\n`2.47.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.12.1` | `2.13.0` |\n| [starlette](https://github.com/Kludex/starlette) | `1.0.0` | `1.1.0` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.47.0` | `0.48.0` |\n\nUpdates `bazel-runfiles` from 2.0.1 to 2.0.2\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.2\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-2\"\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.2\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;2119ca04726066c53b8f1ff42dffa090ea7f3e42a75679f1cfda937406cf7753\u0026quot;,\u003cbr\n/\u003e\nstrip_prefix \u003d \u0026quot;rules_python-2.0.2\u0026quot;,\u003cbr /\u003e\nurl \u003d \u0026quot;\u003ca\nhref\u003d\"https://github.com/bazel-contrib/rules_python/releases/download/2.0.2/rules_python-2.0.2.tar.gz\"\u003ehttps://github.com/bazel-contrib/rules_python/releases/download/2.0.2/rules_python-2.0.2.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.2\"\u003e2.0.2\u003c/a\u003e\n- 2026-05-14\u003c/h2\u003e\n\u003cp\u003e{#v2-0-2-added}\u003c/p\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e(toolchains) \u003ccode\u003e3.13.12\u003c/code\u003e, \u003ccode\u003e3.14.3\u003c/code\u003e Python\ntoolchain from \u003ca\nhref\u003d\"https://github.com/astral-sh/python-build-standalone/releases/tag/20260325\"\u003e20260325\u003c/a\u003e\nrelease.\u003c/li\u003e\n\u003cli\u003e(toolchains) \u003ccode\u003e3.10.20\u003c/code\u003e, \u003ccode\u003e3.11.15\u003c/code\u003e,\n\u003ccode\u003e3.12.13\u003c/code\u003e, \u003ccode\u003e3.13.13\u003c/code\u003e \u003ccode\u003e3.14.4\u003c/code\u003e,\n\u003ccode\u003e3.15.0a8\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003ePython toolchain from \u003ca\nhref\u003d\"https://github.com/astral-sh/python-build-standalone/releases/tag/20260414\"\u003e20260414\u003c/a\u003e\nrelease.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e{#v2-0-1}\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/6aad8828e82667cda09ff449862a5a8559bee27b\"\u003e\u003ccode\u003e6aad882\u003c/code\u003e\u003c/a\u003e\nci: update RBE toolchain version from ubuntu2204 to ubuntu2404 (\u003ca\nhref\u003d\"https://redirect.github.com/bazel-contrib/rules_python/issues/3778\"\u003e#3778\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/bazel-contrib/rules_python/commit/06bc9f700a6622578328275d9370cbdf83ecb272\"\u003e\u003ccode\u003e06bc9f7\u003c/code\u003e\u003c/a\u003e\nfeat(toolchains): Add 3.10.20, 3.11.15, 3.12.13, 3.13.{12,13}\n3.14.{3,4}, 3.1...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca\nhref\u003d\"https://github.com/bazel-contrib/rules_python/compare/2.0.1...2.0.2\"\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.3 to 7.1.4\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.4 (2026-05-22)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMinor unit test 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\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/48284d73d0a8834c9c50f8d41bb99e6f93b2dfed\"\u003e\u003ccode\u003e48284d7\u003c/code\u003e\u003c/a\u003e\nRelease v7.1.4.\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/tkem/cachetools/commit/55ea96b88a485fca9effae0f838186274f00897c\"\u003e\u003ccode\u003e55ea96b\u003c/code\u003e\u003c/a\u003e\nUpdate build environment.\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/tkem/cachetools/commit/c5439fe5dc883220b59469e450dbcbf9f4c2e52d\"\u003e\u003ccode\u003ec5439fe\u003c/code\u003e\u003c/a\u003e\nAdd threading tests for lock-only decorators.\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/tkem/cachetools/commit/91828fccd629d426157a165d38563614ba06a875\"\u003e\u003ccode\u003e91828fc\u003c/code\u003e\u003c/a\u003e\nRun threading tests unconditionally with timeout.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca\nhref\u003d\"https://github.com/tkem/cachetools/compare/v7.1.3...v7.1.4\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.4.0 to 8.4.1\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.1\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.4.1 fix release, which fixes bugs but does not\notherwise change behavior and should not result in breaking changes\ncompared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca\nhref\u003d\"https://pypi.org/project/click/8.4.1/\"\u003ehttps://pypi.org/project/click/8.4.1/\u003c/a\u003e\nChanges: \u003ca\nhref\u003d\"https://click.palletsprojects.com/page/changes/#version-8-4-1\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-4-1\u003c/a\u003e\nMilestone: \u003ca\nhref\u003d\"https://github.com/pallets/click/milestone/32?closed\u003d1\"\u003ehttps://github.com/pallets/click/milestone/32?closed\u003d1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eget_parameter_source()\u003c/code\u003e is available during eager\ncallbacks and type conversion again. \u003ca\nhref\u003d\"https://redirect.github.com/pallets/click/issues/3458\"\u003e#3458\u003c/a\u003e\n\u003ca\nhref\u003d\"https://redirect.github.com/pallets/click/issues/3484\"\u003e#3484\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eZsh completion scripts parse correctly on Windows. \u003ca\nhref\u003d\"https://redirect.github.com/pallets/click/issues/3277\"\u003e#3277\u003c/a\u003e #\n3466\u003c/li\u003e\n\u003cli\u003eShell completion of \u003ccode\u003eChoice\u003c/code\u003e \u003ccode\u003eEnum\u003c/code\u003e values\nproduces a valid completion result. \u003ca\nhref\u003d\"https://redirect.github.com/pallets/click/issues/3015\"\u003e#3015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix empty byte-string handling in echo. \u003ca\nhref\u003d\"https://redirect.github.com/pallets/click/issues/3487\"\u003e#3487\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix closed file error with \u003ccode\u003eecho_via_pager\u003c/code\u003e. \u003ca\nhref\u003d\"https://redirect.github.com/pallets/click/issues/3449\"\u003e#3449\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/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.1\u003c/h2\u003e\n\u003cp\u003eReleased 2026-05-21\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eget_parameter_source()\u003c/code\u003e is available during eager\ncallbacks and type\nconversion again. :issue:\u003ccode\u003e3458\u003c/code\u003e :issue:\u003ccode\u003e3484\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eZsh completion scripts parse correctly on Windows.\n:issue:\u003ccode\u003e3277\u003c/code\u003e :pr:\u003ccode\u003e3466\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eShell completion of \u003ccode\u003eChoice\u003c/code\u003e \u003ccode\u003eEnum\u003c/code\u003e values\nproduces a valid completion\nresult. :issue:\u003ccode\u003e3015\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix empty byte-string handling in echo.\n:issue:\u003ccode\u003e3487\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix closed file error with \u003ccode\u003eecho_via_pager\u003c/code\u003e.\n:issue:\u003ccode\u003e3449\u003c/code\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/pallets/click/commit/6eeb50e948ea136db145280f6f5dd52eca3fa7e5\"\u003e\u003ccode\u003e6eeb50e\u003c/code\u003e\u003c/a\u003e\nrelease version 8.4.1\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/pallets/click/commit/67921d5b71584112eebcbf89596b5f0e6d14c49f\"\u003e\u003ccode\u003e67921d5\u003c/code\u003e\u003c/a\u003e\nchange log and doc fixes (\u003ca\nhref\u003d\"https://redirect.github.com/pallets/click/issues/3495\"\u003e#3495\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/pallets/click/commit/9c41f46a4015700489ad009266edf1f3893d01d1\"\u003e\u003ccode\u003e9c41f46\u003c/code\u003e\u003c/a\u003e\nFix changelog and version admonitions\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/pallets/click/commit/6cb34774f20598aa288332f8da02c5aee85448a6\"\u003e\u003ccode\u003e6cb3477\u003c/code\u003e\u003c/a\u003e\nfix skip condition\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/pallets/click/commit/5ee8e3123d8ddece6c47eff9a7a7d4ca478c4f37\"\u003e\u003ccode\u003e5ee8e31\u003c/code\u003e\u003c/a\u003e\nfix I/O operation on closed file error with CliRunner and echo_via_pager\n(\u003ca\nhref\u003d\"https://redirect.github.com/pallets/click/issues/3482\"\u003e#3482\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/pallets/click/commit/becbde5cf416441627f779e8dd34e57738ee1c1f\"\u003e\u003ccode\u003ebecbde5\u003c/code\u003e\u003c/a\u003e\npager doesn\u0027t close std streams\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/pallets/click/commit/a5f5aa6d4012d256ccca24638f2642fc371e9f77\"\u003e\u003ccode\u003ea5f5aa6\u003c/code\u003e\u003c/a\u003e\nHandle empty bytes in echo (\u003ca\nhref\u003d\"https://redirect.github.com/pallets/click/issues/3493\"\u003e#3493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/pallets/click/commit/4d3db84b251518e97299a38a5ca4bab3d01873a2\"\u003e\u003ccode\u003e4d3db84\u003c/code\u003e\u003c/a\u003e\nhandle empty bytes in echo\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/pallets/click/commit/d42f15b71757de791a5781fb179fd972da9169f5\"\u003e\u003ccode\u003ed42f15b\u003c/code\u003e\u003c/a\u003e\nFix \u003ccode\u003eget_parameter_source()\u003c/code\u003e during type conversion and eager\ncallbacks (\u003ca\nhref\u003d\"https://redirect.github.com/pallets/click/issues/3484\"\u003e#3484\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/pallets/click/commit/0baa8db07736fc7ad3d3eed97d4c73b0059c63e1\"\u003e\u003ccode\u003e0baa8db\u003c/code\u003e\u003c/a\u003e\nDocument ctx.params bypass with test and doc\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/pallets/click/compare/8.4.0...8.4.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.14.1 to 4.16.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.16.1\u003c/h2\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix fish completion for positional args and run fish tests in ci 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/823\"\u003eBrianPugh/cyclopts#823\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix zsh completion recursion when \u003ccode\u003eprog_name\u003c/code\u003e matches a\nbuiltin helper 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/825\"\u003eBrianPugh/cyclopts#825\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd ubuntu-24.04-arm to the CI testing matrix 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/822\"\u003eBrianPugh/cyclopts#822\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: add missing typer Option imports in flag negation examples by\n\u003ca href\u003d\"https://github.com/SAY-5\"\u003e\u003ccode\u003e@​SAY-5\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/BrianPugh/cyclopts/pull/824\"\u003eBrianPugh/cyclopts#824\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/SAY-5\"\u003e\u003ccode\u003e@​SAY-5\u003c/code\u003e\u003c/a\u003e made\ntheir first contribution in \u003ca\nhref\u003d\"https://redirect.github.com/BrianPugh/cyclopts/pull/824\"\u003eBrianPugh/cyclopts#824\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.16.0...v4.16.1\"\u003ehttps://github.com/BrianPugh/cyclopts/compare/v4.16.0...v4.16.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.16.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReturn-value objects can now declare their own exit code by defining\na \u003ccode\u003e__cyclopts_returncode__\u003c/code\u003e method, which is honored by all\nbuilt-in \u003ccode\u003eresult_action\u003c/code\u003e handlers. Custom\n\u003ccode\u003eresult_action\u003c/code\u003e callables can opt in via the new\n\u003ccode\u003ecyclopts.resolve_returncode\u003c/code\u003e helper. 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/818\"\u003eBrianPugh/cyclopts#818\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://peps.python.org/pep-0692/\"\u003ePEP 692\u003c/a\u003e support:\nwhen \u003ccode\u003e**kwargs\u003c/code\u003e is annotated as\n\u003ccode\u003eUnpack[SomeTypedDict]\u003c/code\u003e, the TypedDict\u0027s fields are promoted\nto top-level CLI options instead of the generic \u003ccode\u003e--[KEYWORD]\u003c/code\u003e\ncatch-all. Per-field \u003ccode\u003eRequired\u003c/code\u003e / \u003ccode\u003eNotRequired\u003c/code\u003e\nmarkers are respected independently of the parent kwargs argument. 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/819\"\u003eBrianPugh/cyclopts#819\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCycloptsError.msg\u003c/code\u003e now accepts a \u003ccode\u003erich.Text\u003c/code\u003e\ninstance. Cyclopts\u0027 error-message style palette is exposed as\n\u003ccode\u003ecyclopts.exceptions.STYLE_OFFENDING_VALUE\u003c/code\u003e,\n\u003ccode\u003eSTYLE_NAME\u003c/code\u003e, \u003ccode\u003eSTYLE_VALID_CHOICE\u003c/code\u003e,\n\u003ccode\u003eSTYLE_SUGGESTION\u003c/code\u003e, and \u003ccode\u003eSTYLE_SOURCE\u003c/code\u003e . 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/814\"\u003eBrianPugh/cyclopts#814\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.15.0...v4.16.0\"\u003ehttps://github.com/BrianPugh/cyclopts/compare/v4.15.0...v4.16.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.15.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded\u003ccode\u003eApp.synonym\u003c/code\u003e, which declares alternate command\nname(s) that trigger a \u0026quot;Did you mean...\u0026quot; suggestion\n\u003cstrong\u003ewithout\u003c/strong\u003e registering the command under those names.\nUseful when a user types a semantically-equivalent word (e.g.\n\u003ccode\u003eremove\u003c/code\u003e vs \u003ccode\u003euninstall\u003c/code\u003e) that the built-in fuzzy\nmatcher would miss because the words aren\u0027t spelled similarly. Accepts a\nsingle \u003ccode\u003estr\u003c/code\u003e or an iterable of strings. Synonyms are\n\u003cstrong\u003enot\u003c/strong\u003e runnable and are hidden from \u003ccode\u003e--help\u003c/code\u003e.\n\u003cpre lang\u003d\"python\"\u003e\u003ccode\u003e@app.command(synonym\u003d[\u0026quot;remove\u0026quot;,\n\u0026quot;rm\u0026quot;])\ndef uninstall(name: str): ...\n\u003c/code\u003e\u003c/pre\u003e\n\u003cpre lang\u003d\"console\"\u003e\u003ccode\u003e$ my-script remove mypackage\nUnknown command \u0026quot;remove\u0026quot;. Did you mean \u0026quot;uninstall\u0026quot;?\nAvailable commands: uninstall.\n\u003c/code\u003e\u003c/pre\u003e\nIf multiple commands declare the same synonym, all matching commands are\nsuggested (\u003ccode\u003eDid you mean \u0026quot;uninstall\u0026quot; or\n\u0026quot;purge\u0026quot;?\u003c/code\u003e).\nBy \u003ca href\u003d\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e\nin \u003ca\nhref\u003d\"https://redirect.github.com/BrianPugh/cyclopts/pull/815\"\u003eBrianPugh/cyclopts#815\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.1...v4.15.0\"\u003ehttps://github.com/BrianPugh/cyclopts/compare/v4.14.1...v4.15.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/ea77abc99ef67dc4da21548d3b2ff2150c265afe\"\u003e\u003ccode\u003eea77abc\u003c/code\u003e\u003c/a\u003e\nfix zsh completion recursion when prog_name matches a builtin\nhelper\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/BrianPugh/cyclopts/commit/e297647b12b71155d01f87e8e1d5e008c90962b6\"\u003e\u003ccode\u003ee297647\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/BrianPugh/cyclopts/issues/824\"\u003e#824\u003c/a\u003e\nfrom SAY-5/docs-fix-typer-option-import\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/BrianPugh/cyclopts/commit/923a5648ed221c1f7683810851c4ade348149fa4\"\u003e\u003ccode\u003e923a564\u003c/code\u003e\u003c/a\u003e\ndocs: add missing typer Option imports in flag negation examples\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/BrianPugh/cyclopts/commit/ddb9cc2ec53ad103a4525e399afa92188ac81ae3\"\u003e\u003ccode\u003eddb9cc2\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/BrianPugh/cyclopts/issues/823\"\u003e#823\u003c/a\u003e\nfrom BrianPugh/fish-fixes\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/BrianPugh/cyclopts/commit/bd56e32b839d9b90e060b1fd88105985194887db\"\u003e\u003ccode\u003ebd56e32\u003c/code\u003e\u003c/a\u003e\nfix fish completion for positional args and run fish tests in ci\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/BrianPugh/cyclopts/commit/fba7293a546d7569f8cb74a85badc0a8f9401691\"\u003e\u003ccode\u003efba7293\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/BrianPugh/cyclopts/issues/822\"\u003e#822\u003c/a\u003e\nfrom BrianPugh/arm-ci\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/BrianPugh/cyclopts/commit/17e22f16883a7132b9d9bc12dc18c16b726d8a73\"\u003e\u003ccode\u003e17e22f1\u003c/code\u003e\u003c/a\u003e\nskip global zsh rcs in completion tests\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/BrianPugh/cyclopts/commit/4cc78acd473f09d1e6267ed92f3ca24358c4b8cd\"\u003e\u003ccode\u003e4cc78ac\u003c/code\u003e\u003c/a\u003e\ninstall zsh in linux ci runs\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/BrianPugh/cyclopts/commit/5c87c2752b494e9486f422d48473d206cd6ab66e\"\u003e\u003ccode\u003e5c87c27\u003c/code\u003e\u003c/a\u003e\nadd ubuntu-24.04-arm to the CI testing matrix\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/BrianPugh/cyclopts/commit/be2b4295f4632315ae1e49c8f3799bc71086a751\"\u003e\u003ccode\u003ebe2b429\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/BrianPugh/cyclopts/issues/819\"\u003e#819\u003c/a\u003e\nfrom BrianPugh/pep-692\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/BrianPugh/cyclopts/compare/v4.14.1...v4.16.1\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `idna` from 3.15 to 3.16\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.16 (2026-05-22)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a command-line interface (\u003ccode\u003epython -m idna\u003c/code\u003e, also\navailable as\nthe \u003ccode\u003eidna\u003c/code\u003e script). Encodes or decodes one or more domains\nsupplied\nas arguments or on standard input, with options to select A-label\nor U-label output and control error handling.\u003c/li\u003e\n\u003cli\u003eRaise the minimum supported Python version to 3.9\u003c/li\u003e\n\u003cli\u003eVarious code quality improvements\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/kjd/idna/commit/6d1a0de52a8b4690f1b2a89829aa85ff1de3635a\"\u003e\u003ccode\u003e6d1a0de\u003c/code\u003e\u003c/a\u003e\nRelease 3.16\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/kjd/idna/commit/4e6cbe225a3e0b6e7eed2082086a12cba526e787\"\u003e\u003ccode\u003e4e6cbe2\u003c/code\u003e\u003c/a\u003e\nDemote installation instruction to usage section\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/kjd/idna/commit/223533c34c9e23470e714ed9b1f1c41867177732\"\u003e\u003ccode\u003e223533c\u003c/code\u003e\u003c/a\u003e\nMerge branch \u0027readme-simplification\u0027 into release-3.16\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/kjd/idna/commit/b1640b228a50b3c94ffcf8a664eb6cb186550f3e\"\u003e\u003ccode\u003eb1640b2\u003c/code\u003e\u003c/a\u003e\nBump version to 3.16rc0\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/kjd/idna/commit/3a861132be61091454aae10c292d98bcfd3cd797\"\u003e\u003ccode\u003e3a86113\u003c/code\u003e\u003c/a\u003e\nUpdate history for 3.16 release\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/kjd/idna/commit/d4bc9e742b753cff2ec6c53bd4be730863ca9c53\"\u003e\u003ccode\u003ed4bc9e7\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/kjd/idna/issues/246\"\u003e#246\u003c/a\u003e from\nkjd/python-3.9\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/kjd/idna/commit/a21d9fca6b04c47ddbd0303d62bbc0712b55f43d\"\u003e\u003ccode\u003ea21d9fc\u003c/code\u003e\u003c/a\u003e\nUpdate deprecation policy\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/kjd/idna/commit/b46492694aa21dc1c3608f59dd5b9620c08b2d0f\"\u003e\u003ccode\u003eb464926\u003c/code\u003e\u003c/a\u003e\nRaise minimum Python to 3.9 and modernize typing\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/kjd/idna/commit/7f3b15e8839f0e404a00054c4072e69347e727f2\"\u003e\u003ccode\u003e7f3b15e\u003c/code\u003e\u003c/a\u003e\nExplicit example not needed\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/kjd/idna/commit/7530c7020ae2bcf0acff1fafd71fb047a3b117ed\"\u003e\u003ccode\u003e7530c70\u003c/code\u003e\u003c/a\u003e\nRemove unnecessary print()\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/kjd/idna/compare/v3.15...v3.16\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `joserfc` from 1.6.5 to 1.6.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/authlib/joserfc/releases\"\u003ejoserfc\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.6.8\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eNo significant changes\u003c/em\u003e\u003c/p\u003e\n\u003ch5\u003e    \u003ca\nhref\u003d\"https://github.com/authlib/joserfc/compare/1.6.7...1.6.8\"\u003eView\nchanges on GitHub\u003c/a\u003e\u003c/h5\u003e\n\u003ch2\u003e1.6.7\u003c/h2\u003e\n\u003ch3\u003e   🐞 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ejws\u003c/strong\u003e: Validate payload size for b64\u003dfalse  -  by \u003ca\nhref\u003d\"https://github.com/lepture\"\u003e\u003ccode\u003e@​lepture\u003c/code\u003e\u003c/a\u003e \u003ca\nhref\u003d\"https://github.com/authlib/joserfc/commit/4d4ea2e\"\u003e\u003c!-- raw HTML\nomitted --\u003e(4d4ea)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etyping\u003c/strong\u003e: Accept any Collection for algorithms, not\njust list  -  by \u003ca\nhref\u003d\"https://github.com/jonathangreen\"\u003e\u003ccode\u003e@​jonathangreen\u003c/code\u003e\u003c/a\u003e\n\u003ca href\u003d\"https://github.com/authlib/joserfc/commit/102a7a7\"\u003e\u003c!-- raw\nHTML omitted --\u003e(102a7)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etyping\u003c/strong\u003e: Use cast for type hints  -  by \u003ca\nhref\u003d\"https://github.com/lepture\"\u003e\u003ccode\u003e@​lepture\u003c/code\u003e\u003c/a\u003e \u003ca\nhref\u003d\"https://github.com/authlib/joserfc/commit/75d9f95\"\u003e\u003c!-- raw HTML\nomitted --\u003e(75d9f)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch5\u003e    \u003ca\nhref\u003d\"https://github.com/authlib/joserfc/compare/1.6.5...1.6.7\"\u003eView\nchanges on GitHub\u003c/a\u003e\u003c/h5\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/authlib/joserfc/blob/1.6.8/docs/changelog.rst\"\u003ejoserfc\u0027s\nchangelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.6.8\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eReleased on May 27, 2026\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eReject empty OctKey.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.6.7\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eReleased on May 23, 2026\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate for type hints.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.6.6\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eReleased on May 18, 2026\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eJWS\u003c/strong\u003e: validate payload size when\n\u003ccode\u003eb64\u003dfalse\u003c/code\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/authlib/joserfc/commit/ea1d9e301cc3f6d20d141058e4a0c4befc599b62\"\u003e\u003ccode\u003eea1d9e3\u003c/code\u003e\u003c/a\u003e\nchore: release 1.6.8\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/authlib/joserfc/commit/86d00910b2b2d2d07503fee9b572906daefab7f1\"\u003e\u003ccode\u003e86d0091\u003c/code\u003e\u003c/a\u003e\nReject empty oct key material and empty HMAC keys at sign/verify\nentry\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/authlib/joserfc/commit/1e5b94da589c695f54abd9f1a0ad822dcffe0305\"\u003e\u003ccode\u003e1e5b94d\u003c/code\u003e\u003c/a\u003e\nchore: release 1.6.7\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/authlib/joserfc/commit/75d9f95815f522ccb50515fb36efbcc6601b2e34\"\u003e\u003ccode\u003e75d9f95\u003c/code\u003e\u003c/a\u003e\nfix(typing): use cast for type hints\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/authlib/joserfc/commit/6d240377ce8ddfb15793822d9d82cf66e66a9980\"\u003e\u003ccode\u003e6d24037\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/authlib/joserfc/issues/98\"\u003e#98\u003c/a\u003e\nfrom jonathangreen/algorithms-accept-collection\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/authlib/joserfc/commit/102a7a7610eb50cd53cd46d917146b7af295613f\"\u003e\u003ccode\u003e102a7a7\u003c/code\u003e\u003c/a\u003e\nfix(typing): accept any Collection for algorithms, not just list\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/authlib/joserfc/commit/8b869e8754b5022c3a2a9e1071fe15f65d3749c6\"\u003e\u003ccode\u003e8b869e8\u003c/code\u003e\u003c/a\u003e\nchore: release 1.6.6\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/authlib/joserfc/commit/00d599bfc1282cf887bb6a8bc82598dc10532fa5\"\u003e\u003ccode\u003e00d599b\u003c/code\u003e\u003c/a\u003e\nchore: update actions\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/authlib/joserfc/commit/9186561fc40de112e3b3f01934b11d7ca54da142\"\u003e\u003ccode\u003e9186561\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/authlib/joserfc/issues/97\"\u003e#97\u003c/a\u003e\nfrom authlib/fix-b64\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/authlib/joserfc/commit/4d4ea2e787ed36a2190158d86d8470e3acbb349b\"\u003e\u003ccode\u003e4d4ea2e\u003c/code\u003e\u003c/a\u003e\nfix(jws): validate payload size for b64\u003dfalse\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/authlib/joserfc/compare/1.6.5...1.6.8\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `more-itertools` from 11.0.2 to 11.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/more-itertools/more-itertools/releases\"\u003emore-itertools\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 11.1.0\u003c/h2\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003enumeric_range\u003c/code\u003e was updated to fix its handling of empty\nranges (thanks to rhettinger)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003epeekable\u003c/code\u003e was updated to fix typing issues (thanks to\nDORI2001, powellnorma, Pandede, m9810223, and rhettinger)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eislice_extended\u003c/code\u003e was optimized for memory usage and\nspeed (thanks to ben42code, rhettinger, and pochmann)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eserialize\u003c/code\u003e now supports the generator methods\n\u003ccode\u003ethrow\u003c/code\u003e, \u003ccode\u003esend\u003c/code\u003e, and \u003ccode\u003eclose\u003c/code\u003e (thanks to\nrhettinger)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eseekable\u003c/code\u003e now supports implements\n\u003ccode\u003e__getitem__\u003c/code\u003e for cached elements (thanks to SAY-5,\njenstroeger, and JamesParrott)\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/more-itertools/more-itertools/commit/64be96ceb2a6e836f76f069f4a96d2394d59fd0c\"\u003e\u003ccode\u003e64be96c\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/more-itertools/more-itertools/issues/1159\"\u003e#1159\u003c/a\u003e\nfrom more-itertools/version-11.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/more-itertools/more-itertools/commit/03a08ec2459bd616362c8d7414bf9388d71a0a0f\"\u003e\u003ccode\u003e03a08ec\u003c/code\u003e\u003c/a\u003e\nChanges for version 11.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/more-itertools/more-itertools/commit/9af73b9ca01bd7ff2e776578610095fc0b7ae248\"\u003e\u003ccode\u003e9af73b9\u003c/code\u003e\u003c/a\u003e\nBump version: 11.0.2 → 11.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/more-itertools/more-itertools/commit/264b18d8dfbab42fdbd969fc09abf602c6ea58b3\"\u003e\u003ccode\u003e264b18d\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/more-itertools/more-itertools/issues/1158\"\u003e#1158\u003c/a\u003e\nfrom SAY-5/seekable-getitem\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/more-itertools/more-itertools/commit/ba7ef9425f6983deaf0aedb616e8cdf0ece2f517\"\u003e\u003ccode\u003eba7ef94\u003c/code\u003e\u003c/a\u003e\nAdd seekable.\u003cstrong\u003egetitem\u003c/strong\u003e to access the internal cache\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/more-itertools/more-itertools/commit/18d98893df45e0014bf316ca7832d441dd94aa4f\"\u003e\u003ccode\u003e18d9889\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/more-itertools/more-itertools/issues/1157\"\u003e#1157\u003c/a\u003e\nfrom rhettinger/expand_serialize\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/more-itertools/more-itertools/commit/c7b870ad903821eb43cbbe2964ad7a55159a77a4\"\u003e\u003ccode\u003ec7b870a\u003c/code\u003e\u003c/a\u003e\nAdd tests\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/more-itertools/more-itertools/commit/fb6923e01f31ffe5fe4a23e57bffae6e3c8396b1\"\u003e\u003ccode\u003efb6923e\u003c/code\u003e\u003c/a\u003e\nUpdate stub\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/more-itertools/more-itertools/commit/1c85ece40f9549bcc542eb9af9893597ab58f888\"\u003e\u003ccode\u003e1c85ece\u003c/code\u003e\u003c/a\u003e\nMake attributes private. Support all generator methods.\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/more-itertools/more-itertools/commit/bd8475cc1e9b2efdbc055ab4af4d4693a9c5cb7a\"\u003e\u003ccode\u003ebd8475c\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/more-itertools/more-itertools/issues/1155\"\u003e#1155\u003c/a\u003e\nfrom rhettinger/optimize_islice_extended\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/more-itertools/more-itertools/compare/v11.0.2...v11.1.0\"\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.42.0 to 1.42.1\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.1/0.63b1 (2026-05-21)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve the random trace ID flag when creating child spans instead\nof always\nsetting the random trace id bit depending on the available trace id\ngenerator.\n(\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5241\"\u003e#5241\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/open-telemetry/opentelemetry-python/commit/367e14d01104785ac28b1c66ac32b2082f864a12\"\u003e\u003ccode\u003e367e14d\u003c/code\u003e\u003c/a\u003e\nPrepare release 1.42.1/0.63b1 (\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5243\"\u003e#5243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/open-telemetry/opentelemetry-python/commit/fd8e50410b1788d34b36173dea58d8e38dcc80bc\"\u003e\u003ccode\u003efd8e504\u003c/code\u003e\u003c/a\u003e\nPreserve random trace ID flag for child spans (\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5241\"\u003e#5241\u003c/a\u003e)\n(\u003ca\nhref\u003d\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5242\"\u003e#5242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca\nhref\u003d\"https://github.com/open-telemetry/opentelemetry-python/compare/v1.42.0...v1.42.1\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `py-key-value-aio` from 0.4.4 to 0.4.5\n\nUpdates `pydantic-core` from 2.46.4 to 2.47.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca\nhref\u003d\"https://github.com/pydantic/pydantic/commits\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyjwt` from 2.12.1 to 2.13.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/jpadilla/pyjwt/releases\"\u003epyjwt\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.13.0\u003c/h2\u003e\n\u003ch1\u003ePyJWT 2.13.0 — Security Release\u003c/h1\u003e\n\u003cp\u003eThis release bundles five security fixes plus three additional\nhardening / spec-compliance changes. We recommend all users upgrade.\u003c/p\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ca\nhref\u003d\"https://github.com/jpadilla/pyjwt/security/advisories/GHSA-xgmm-8j9v-c9wx\"\u003e\u003ccode\u003eGHSA-xgmm-8j9v-c9wx\u003c/code\u003e\u003c/a\u003e\n— JWK JSON accepted as HMAC secret (algorithm confusion).\u003c/strong\u003e\n\u003ccode\u003eHMACAlgorithm.prepare_key\u003c/code\u003e previously rejected PEM- and\nSSH-formatted asymmetric keys but did not catch a JWK passed as a raw\nJSON string. In a verifier configured with both symmetric and asymmetric\nalgorithms in \u003ccode\u003ealgorithms\u003d[…]\u003c/code\u003e and a raw-JSON JWK as the key,\nan attacker could forge HS256 tokens using the JWK text as the HMAC\nsecret. The guard has been extended to reject any JWK-shaped JSON.\n\u003cem\u003eReported by \u003ca\nhref\u003d\"https://github.com/aradona91\"\u003e\u003ccode\u003e@​aradona91\u003c/code\u003e\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ca\nhref\u003d\"https://github.com/jpadilla/pyjwt/security/advisories/GHSA-jq35-7prp-9v3f\"\u003e\u003ccode\u003eGHSA-jq35-7prp-9v3f\u003c/code\u003e\u003c/a\u003e\n— Algorithm allow-list bypass with \u003ccode\u003ePyJWK\u003c/code\u003e /\n\u003ccode\u003ePyJWKClient\u003c/code\u003e.\u003c/strong\u003e When verifying with a\n\u003ccode\u003ePyJWK\u003c/code\u003e, the caller\u0027s \u003ccode\u003ealgorithms\u003d[…]\u003c/code\u003e allow-list\nwas checked against the token header \u003ccode\u003ealg\u003c/code\u003e as a string only;\nactual verification used the algorithm bound to the \u003ccode\u003ePyJWK\u003c/code\u003e.\nAn attacker who controlled a registered JWKS key could sign with one\nalgorithm and advertise another on the header. PyJWT now requires the\ntoken header \u003ccode\u003ealg\u003c/code\u003e to match the \u003ccode\u003ePyJWK\u003c/code\u003e\u0027s\nalgorithm before verification. \u003cem\u003eReported by \u003ca\nhref\u003d\"https://github.com/sushi-gif\"\u003e\u003ccode\u003e@​sushi-gif\u003c/code\u003e\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ca\nhref\u003d\"https://github.com/jpadilla/pyjwt/security/advisories/GHSA-w7vc-732c-9m39\"\u003e\u003ccode\u003eGHSA-w7vc-732c-9m39\u003c/code\u003e\u003c/a\u003e\n— DoS via base64 decode of unused payload segment when\n\u003ccode\u003eb64\u003dfalse\u003c/code\u003e.\u003c/strong\u003e For detached-payload JWS\n(\u003ccode\u003eb64\u003dfalse\u003c/code\u003e), the compact-form payload segment was\nbase64-decoded before being discarded in favor of the caller-supplied\n\u003ccode\u003edetached_payload\u003c/code\u003e. An attacker could inflate the unused\nsegment to force CPU + memory cost without holding a valid signature.\nThe segment is now required to be empty per RFC 7515 Appendix F, and is\nno longer decoded. \u003cem\u003eReported by \u003ca\nhref\u003d\"https://github.com/thesmartshadow\"\u003e\u003ccode\u003e@​thesmartshadow\u003c/code\u003e\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ca\nhref\u003d\"https://github.com/jpadilla/pyjwt/security/advisories/GHSA-993g-76c3-p5m4\"\u003e\u003ccode\u003eGHSA-993g-76c3-p5m4\u003c/code\u003e\u003c/a\u003e\n— \u003ccode\u003ePyJWKClient\u003c/code\u003e accepts non-HTTP(S) URIs.\u003c/strong\u003e\n\u003ccode\u003ePyJWKClient.fetch_data\u003c/code\u003e passed its URI to\n\u003ccode\u003eurllib.request.urlopen\u003c/code\u003e, which by default also handles\n\u003ccode\u003efile://\u003c/code\u003e, \u003ccode\u003eftp://\u003c/code\u003e, and \u003ccode\u003edata:\u003c/code\u003e\nschemes. An application that fed an attacker-influenced URI into\n\u003ccode\u003ePyJWKClient\u003c/code\u003e could be coerced into reading local files or\nreaching other unintended schemes. \u003ccode\u003ePyJWKClient\u003c/code\u003e now rejects\nany URI whose scheme isn\u0027t \u003ccode\u003ehttp\u003c/code\u003e or \u003ccode\u003ehttps\u003c/code\u003e.\n\u003cem\u003eReported by \u003ca\nhref\u003d\"https://github.com/KEIJOT\"\u003e\u003ccode\u003e@​KEIJOT\u003c/code\u003e\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ca\nhref\u003d\"https://github.com/jpadilla/pyjwt/security/advisories/GHSA-fhv5-28vv-h8m8\"\u003e\u003ccode\u003eGHSA-fhv5-28vv-h8m8\u003c/code\u003e\u003c/a\u003e\n— \u003ccode\u003ePyJWKClient\u003c/code\u003e cache wiped on fetch error.\u003c/strong\u003e A\n\u003ccode\u003efinally\u003c/code\u003e-block \u003ccode\u003eput(jwk_set\u003dNone)\u003c/code\u003e cleared the\nJWK Set cache whenever a fetch raised, turning a transient JWKS-endpoint\noutage into application-wide auth failure. The cache write was moved\ninto the success path; transient errors no longer evict valid cached\nkeys. \u003cem\u003eReported by \u003ca\nhref\u003d\"https://github.com/eddieran\"\u003e\u003ccode\u003e@​eddieran\u003c/code\u003e\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReject empty HMAC keys outright in\n\u003ccode\u003eHMACAlgorithm.prepare_key\u003c/code\u003e with \u003ccode\u003eInvalidKeyError\u003c/code\u003e\ninstead of accepting them with only a warning. Defends against the\n\u003ccode\u003eos.getenv(\u0026quot;JWT_SECRET\u0026quot;, \u0026quot;\u0026quot;)\u003c/code\u003e footgun.\n\u003cem\u003eThanks to \u003ca\nhref\u003d\"https://github.com/SnailSploit\"\u003e\u003ccode\u003e@​SnailSploit\u003c/code\u003e\u003c/a\u003e and\n\u003ca href\u003d\"https://github.com/spartan8806\"\u003e\u003ccode\u003e@​spartan8806\u003c/code\u003e\u003c/a\u003e\nfor the reports.\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003eForward per-call \u003ccode\u003eoptions\u003c/code\u003e (including\n\u003ccode\u003eenforce_minimum_key_length\u003c/code\u003e) from \u003ccode\u003ePyJWT.decode\u003c/code\u003e\nthrough to \u003ccode\u003ePyJWS._verify_signature\u003c/code\u003e. The option was\npreviously silently dropped between the two layers, so it only took\neffect when set on the \u003ccode\u003ePyJWT\u003c/code\u003e instance. \u003cem\u003eThanks to \u003ca\nhref\u003d\"https://github.com/WLUB\"\u003e\u003ccode\u003e@​WLUB\u003c/code\u003e\u003c/a\u003e for the\nreport.\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRFC 7797 §3 compliance for \u003ccode\u003eb64\u003dfalse\u003c/code\u003e:\u003c/strong\u003e\nthe encoder now auto-adds \u003ccode\u003e\u0026quot;b64\u0026quot;\u003c/code\u003e to\n\u003ccode\u003ecrit\u003c/code\u003e, and the decoder rejects tokens that set\n\u003ccode\u003eb64\u003dfalse\u003c/code\u003e without listing it in \u003ccode\u003ecrit\u003c/code\u003e.\n\u003cem\u003eThanks to \u003ca\nhref\u003d\"https://github.com/MachineLearning-Nerd\"\u003e\u003ccode\u003e@​MachineLearning-Nerd\u003c/code\u003e\u003c/a\u003e\nfor the report.\u003c/em\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMigrate the \u003ccode\u003edev\u003c/code\u003e, \u003ccode\u003edocs\u003c/code\u003e, and\n\u003ccode\u003etests\u003c/code\u003e package extras to dependency groups, by \u003ca\nhref\u003d\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/jpadilla/pyjwt/pull/1152\"\u003e#1152\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eUpgrade notes\u003c/h2\u003e\n\u003cp\u003eMost fixes are invisible to correctly-configured callers. A few\nbehavioral changes you may encounter:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eEmpty HMAC keys now raise.\u003c/strong\u003e If your app passed\n\u003ccode\u003e\u0026quot;\u0026quot;\u003c/code\u003e or \u003ccode\u003eb\u0026quot;\u0026quot;\u003c/code\u003e as a secret\n(often via a missing env var, e.g.\n\u003ccode\u003eos.getenv(\u0026quot;JWT_SECRET\u0026quot;, \u0026quot;\u0026quot;)\u003c/code\u003e),\n\u003ccode\u003eencode\u003c/code\u003e/\u003ccode\u003edecode\u003c/code\u003e will now raise\n\u003ccode\u003eInvalidKeyError\u003c/code\u003e. This is the intended behavior — fix the\nconfiguration.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003ePyJWK\u003c/code\u003e decoding now requires the token\u0027s\n\u003ccode\u003ealg\u003c/code\u003e to match the JWK\u0027s algorithm.\u003c/strong\u003e Previously a\nmismatch was silently honored if the header \u003ccode\u003ealg\u003c/code\u003e appeared in\nthe allow-list. Tokens that relied on this mismatch will now fail with\n\u003ccode\u003eInvalidAlgorithmError\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003ePyJWKClient\u003c/code\u003e now rejects non-HTTP(S) URIs at\nconstruction time.\u003c/strong\u003e Tests or dev environments that fetched JWKS\nfrom \u003ccode\u003efile://\u003c/code\u003e URIs need to switch to a local HTTP server or\nload the JWKS by other means (e.g. construct\n\u003ccode\u003ePyJWKSet.from_dict(...)\u003c/code\u003e directly).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003eb64\u003dfalse\u003c/code\u003e tokens are now strictly RFC 7515 /\n7797 compliant.\u003c/strong\u003e Tokens with a non-empty compact-form payload\nsegment, or that omit \u003ccode\u003e\u0026quot;b64\u0026quot;\u003c/code\u003e from\n\u003ccode\u003ecrit\u003c/code\u003e, will be rejected. PyJWT-produced tokens always\nsatisfy both invariants, so round-trips through PyJWT are\nunaffected.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003eenforce_minimum_key_length\u003c/code\u003e set per-call now\ntakes effect.\u003c/strong\u003e Callers who passed\n\u003ccode\u003eoptions\u003d{\u0026quot;enforce_minimum_key_length\u0026quot;: True}\u003c/code\u003e to\n\u003ccode\u003ejwt.decode()\u003c/code\u003e previously got no enforcement; they will now\nget \u003ccode\u003eInvalidKeyError\u003c/code\u003e on undersized keys, as documented.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull changelog:\u003c/strong\u003e \u003ca\nhref\u003d\"https://github.com/jpadilla/pyjwt/compare/2.12.1...2.13.0\"\u003ehttps://github.com/jpadilla/pyjwt/compare/2.12.1...2.13.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/jpadilla/pyjwt/blob/master/CHANGELOG.rst\"\u003epyjwt\u0027s\nchangelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003ev2.13.0\n\u0026lt;https://github.com/jpadilla/pyjwt/compare/2.12.1...2.13.0\u0026gt;\u003c/code\u003e__\u003c/h2\u003e\n\u003cp\u003eSecurity\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Reject JWK JSON documents passed as raw HMAC secrets in\n  ``HMACAlgorithm.prepare_key`` to close an algorithm-confusion gap that\n  the existing PEM/SSH guard did not cover. Reported by @aradona91 in\n`GHSA-xgmm-8j9v-c9wx\n\u0026lt;https://github.com/jpadilla/pyjwt/security/advisories/GHSA-xgmm-8j9v-c9wx\u0026gt;`__.\n- Bind the JWT header ``alg`` to ``PyJWK.algorithm_name`` during\n  verification so the caller\u0027s ``algorithms\u003d[...]`` allow-list cannot be\nbypassed when decoding with a ``PyJWK`` / ``PyJWKClient`` key. Reported\nby @sushi-gif in `GHSA-jq35-7prp-9v3f\n\u0026lt;https://github.com/jpadilla/pyjwt/security/advisories/GHSA-jq35-7prp-9v3f\u0026gt;`__.\n- Reject non-``http(s)`` URI schemes in ``PyJWKClient`` so attacker-\ninfluenced URIs cannot read local files or reach unintended schemes via\nurllib\u0027s default ``file://`` / ``ftp://`` / ``data:`` handlers. Reported\nby @KEIJOT in `GHSA-993g-76c3-p5m4\n\u0026lt;https://github.com/jpadilla/pyjwt/security/advisories/GHSA-993g-76c3-p5m4\u0026gt;`__.\n- Preserve the cached JWK Set on fetch errors in\n``PyJWKClient.fetch_data``.\n  The previous ``finally``-block ``put(None)`` pattern cleared the cache\non any transient outage, turning one bad JWKS request into application-\nwide auth failure. Reported by @eddieran in `GHSA-fhv5-28vv-h8m8\n\u0026lt;https://github.com/jpadilla/pyjwt/security/advisories/GHSA-fhv5-28vv-h8m8\u0026gt;`__.\n- Skip the unconditional base64 decode of the compact-form payload\nsegment\n  when ``b64\u003dfalse`` is set in the protected header, and require that\n  segment to be empty (RFC 7515 Appendix F detached form). Closes an\n  unauthenticated DoS amplifier. Reported by @thesmartshadow in\n`GHSA-w7vc-732c-9m39\n\u0026lt;https://github.com/jpadilla/pyjwt/security/advisories/GHSA-w7vc-732c-9m39\u0026gt;`__.\n\u003cp\u003eFixed\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Reject empty HMAC keys outright in ``HMACAlgorithm.prepare_key`` with\n  ``InvalidKeyError`` instead of accepting them with only a warning.\n  Thanks to @SnailSploit and @spartan8806 for independently flagging the\n  footgun.\n- Forward per-call ``options`` (including\n``enforce_minimum_key_length``)\n  from ``PyJWT.decode`` through to ``PyJWS._verify_signature`` so the\noption actually takes effect when set at the call site rather than only\n  on the ``PyJWT`` instance. Thanks to @WLUB for the report.\n- RFC 7797 §3 compliance for ``b64\u003dfalse``: the encoder now auto-adds\n``\u0026amp;quot;b64\u0026amp;quot;`` to the ``crit`` header parameter, and the\ndecoder rejects\ntokens that set ``b64\u003dfalse`` without listing it in ``crit``. Thanks to\n  @MachineLearning-Nerd for the report.\n\nChanged\n\u003c/code\u003e\u003c/pre\u003e\n\u003cul\u003e\n\u003cli\u003eMigrate the \u003ccode\u003edev\u003c/code\u003e, \u003ccode\u003edocs\u003c/code\u003e, and\n\u003ccode\u003etests\u003c/code\u003e package extras to dependency groups by \u003ca\nhref\u003d\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in\n\u003ccode\u003e[#1152](https://github.com/jpadilla/pyjwt/issues/1152)\n\u0026amp;lt;https://github.com/jpadilla/pyjwt/pull/1152\u0026amp;gt;\u003c/code\u003e__\n\u003c/code\u003e\u003c/pre\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/jpadilla/pyjwt/commit/7144e4534c34810f4525dc4578a32addd8212cff\"\u003e\u003ccode\u003e7144e45\u003c/code\u003e\u003c/a\u003e\nApply ruff format\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/jpadilla/pyjwt/commit/d2f4bec4963897c0ef96ef64a875894f2c8542ab\"\u003e\u003ccode\u003ed2f4bec\u003c/code\u003e\u003c/a\u003e\nRestore \u003ccode\u003ecast()\u003c/code\u003e calls with cross-version \u003ccode\u003etype:\nignore\u003c/code\u003e for \u003ccode\u003eprepare_key\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/jpadilla/pyjwt/commit/22f478cebddd8294259c30f037ecb92b0b348774\"\u003e\u003ccode\u003e22f478c\u003c/code\u003e\u003c/a\u003e\nRemove redundant casts in \u003ccode\u003eRSAAlgorithm.prepare_key\u003c/code\u003e and\n`ECAlgorithm.prepare...\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/jpadilla/pyjwt/commit/95791b1759b8aa4f2203575d344d5c78564cdc81\"\u003e\u003ccode\u003e95791b1\u003c/code\u003e\u003c/a\u003e\nBundle security fixes and hardening into 2.13.0\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/jpadilla/pyjwt/commit/dcc27a9d3182a2349c30b160758785c6ce7a6508\"\u003e\u003ccode\u003edcc27a9\u003c/code\u003e\u003c/a\u003e\n[pre-commit.ci] pre-commit autoupdate (\u003ca\nhref\u003d\"https://redirect.github.com/jpadilla/pyjwt/issues/1155\"\u003e#1155\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/jpadilla/pyjwt/commit/9d08a9a1896845ed8eaf88e6f6ac61e5800c3e7a\"\u003e\u003ccode\u003e9d08a9a\u003c/code\u003e\u003c/a\u003e\n[pre-commit.ci] pre-commit autoupdate (\u003ca\nhref\u003d\"https://redirect.github.com/jpadilla/pyjwt/issues/1146\"\u003e#1146\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/jpadilla/pyjwt/commit/b87c10014d4109f0214fea188d00faaaf8a80e64\"\u003e\u003ccode\u003eb87c100\u003c/code\u003e\u003c/a\u003e\nBump codecov/codecov-action from 5 to 6 (\u003ca\nhref\u003d\"https://redirect.github.com/jpadilla/pyjwt/issues/1154\"\u003e#1154\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/jpadilla/pyjwt/commit/40e3147eb5f790d8d041772e5fc00728a176c812\"\u003e\u003ccode\u003e40e3147\u003c/code\u003e\u003c/a\u003e\nMigrate development extras to dependency groups (\u003ca\nhref\u003d\"https://redirect.github.com/jpadilla/pyjwt/issues/1152\"\u003e#1152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca\nhref\u003d\"https://github.com/jpadilla/pyjwt/compare/2.12.1...2.13.0\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `starlette` from 1.0.0 to 1.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/Kludex/starlette/releases\"\u003estarlette\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.1.0\u003c/h2\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUse \u003ccode\u003e\u0026quot;application/octet-stream\u0026quot;\u003c/code\u003e as the\n\u003ccode\u003eFileResponse\u003c/code\u003e media type fallback by \u003ca\nhref\u003d\"https://github.com/ATOM00blue\"\u003e\u003ccode\u003e@​ATOM00blue\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/Kludex/starlette/pull/3283\"\u003eKludex/starlette#3283\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly dispatch standard HTTP verbs in \u003ccode\u003eHTTPEndpoint\u003c/code\u003e 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/starlette/pull/3286\"\u003eKludex/starlette#3286\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReject absolute paths in \u003ccode\u003eStaticFiles.lookup_path\u003c/code\u003e 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/starlette/pull/3287\"\u003eKludex/starlette#3287\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/ATOM00blue\"\u003e\u003ccode\u003e@​ATOM00blue\u003c/code\u003e\u003c/a\u003e made\ntheir first contribution in \u003ca\nhref\u003d\"https://redirect.github.com/Kludex/starlette/pull/3283\"\u003eKludex/starlette#3283\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/starlette/compare/1.0.1...1.1.0\"\u003ehttps://github.com/Kludex/starlette/compare/1.0.1...1.1.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore malformed \u003ccode\u003eHost\u003c/code\u003e header when constructing\n\u003ccode\u003erequest.url\u003c/code\u003e 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/starlette/pull/3279\"\u003eKludex/starlette#3279\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/starlette/compare/1.0.0...1.0.1\"\u003ehttps://github.com/Kludex/starlette/compare/1.0.0...1.0.1\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/starlette/blob/main/docs/release-notes.md\"\u003estarlette\u0027s\nchangelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.1.0 (May 23, 2026)\u003c/h2\u003e\n\u003ch4\u003eAdded\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eUse \u003ccode\u003e\u0026quot;application/octet-stream\u0026quot;\u003c/code\u003e as the\n\u003ccode\u003eFileResponse\u003c/code\u003e media type fallback \u003ca\nhref\u003d\"https://redirect.github.com/encode/starlette/pull/3283\"\u003e#3283\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eOnly dispatch standard HTTP verbs in \u003ccode\u003eHTTPEndpoint\u003c/code\u003e \u003ca\nhref\u003d\"https://redirect.github.com/encode/starlette/pull/3286\"\u003e#3286\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eReject absolute paths in \u003ccode\u003eStaticFiles.lookup_path\u003c/code\u003e \u003ca\nhref\u003d\"https://redirect.github.com/encode/starlette/pull/3287\"\u003e#3287\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.0.1 (May 21, 2026)\u003c/h2\u003e\n\u003ch4\u003eFixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore malformed \u003ccode\u003eHost\u003c/code\u003e header when constructing\n\u003ccode\u003erequest.url\u003c/code\u003e \u003ca\nhref\u003d\"https://redirect.github.com/encode/starlette/pull/3279\"\u003e#3279\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/starlette/commit/a4ff83b1aacaf8955e241dd00444c27823be163a\"\u003e\u003ccode\u003ea4ff83b\u003c/code\u003e\u003c/a\u003e\nVersion 1.1.0 (\u003ca\nhref\u003d\"https://redirect.github.com/Kludex/starlette/issues/3289\"\u003e#3289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/Kludex/starlette/commit/fd53168a7767b6b55ba5af787fd88f49e33cabc5\"\u003e\u003ccode\u003efd53168\u003c/code\u003e\u003c/a\u003e\nReject absolute paths in \u003ccode\u003eStaticFiles.lookup_path\u003c/code\u003e (\u003ca\nhref\u003d\"https://redirect.github.com/Kludex/starlette/issues/3287\"\u003e#3287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/Kludex/starlette/commit/e3f972225adb1d84b80dba132f520cc24cb84229\"\u003e\u003ccode\u003ee3f9722\u003c/code\u003e\u003c/a\u003e\nOnly dispatch standard HTTP verbs in \u003ccode\u003eHTTPEndpoint\u003c/code\u003e (\u003ca\nhref\u003d\"https://redirect.github.com/Kludex/starlette/issues/3286\"\u003e#3286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/Kludex/starlette/commit/348f86dc92fed6e3c0314154e38deec90a6bcabd\"\u003e\u003ccode\u003e348f86d\u003c/code\u003e\u003c/a\u003e\nUse \u003ccode\u003e\u0026quot;application/octet-stream\u0026quot;\u003c/code\u003e as the\n\u003ccode\u003eFileResponse\u003c/code\u003e media type fallback (#...\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/Kludex/starlette/commit/48f8e331b23ca692f4713ac1f370bff1b5cd034c\"\u003e\u003ccode\u003e48f8e33\u003c/code\u003e\u003c/a\u003e\nVersion 1.0.1 (\u003ca\nhref\u003d\"https://redirect.github.com/Kludex/starlette/issues/3281\"\u003e#3281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/Kludex/starlette/commit/f078832be1aa27ab0e7ec3153479a347749e967a\"\u003e\u003ccode\u003ef078832\u003c/code\u003e\u003c/a\u003e\nRemove Hugging Face sponsor block from docs (\u003ca\nhref\u003d\"https://redirect.github.com/Kludex/starlette/issues/3280\"\u003e#3280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/Kludex/starlette/commit/472951eba8f6e35be845fd1b91625a1b5488294b\"\u003e\u003ccode\u003e472951e\u003c/code\u003e\u003c/a\u003e\nchore(deps): bump the github-actions group with 2 updates (\u003ca\nhref\u003d\"https://redirect.github.com/Kludex/starlette/issues/3277\"\u003e#3277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/Kludex/starlette/commit/764dab0dcfb9033d75442d7a359645c9f94648c6\"\u003e\u003ccode\u003e764dab0\u003c/code\u003e\u003c/a\u003e\nIgnore malformed \u003ccode\u003eHost\u003c/code\u003e header when constructing\n\u003ccode\u003erequest.url\u003c/code\u003e (\u003ca\nhref\u003d\"https://redirect.github.com/Kludex/starlette/issues/3279\"\u003e#3279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/Kludex/starlette/commit/19d08115ce56da8d4da2838ecdd9c5882cb2b365\"\u003e\u003ccode\u003e19d0811\u003c/code\u003e\u003c/a\u003e\nHarden GitHub Actions workflows and Dependabot config (\u003ca\nhref\u003d\"https://redirect.github.com/Kludex/starlette/issues/3276\"\u003e#3276\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/Kludex/starlette/commit/01f46378120fe2c6312074ed7e997e3b5f7d8c20\"\u003e\u003ccode\u003e01f4637\u003c/code\u003e\u003c/a\u003e\nchore(deps): bump idna from 3.10 to 3.15 (\u003ca\nhref\u003d\"https://redirect.github.com/Kludex/starlette/issues/3274\"\u003e#3274\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/Kludex/starlette/compare/1.0.0...1.1.0\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn` from 0.47.0 to 0.48.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/Kludex/uvicorn/releases\"\u003euvicorn\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.48.0\u003c/h2\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDefault \u003ccode\u003essl_ciphers\u003c/code\u003e to \u003ccode\u003eNone\u003c/code\u003e and use\nOpenSSL defaults 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/uvicorn/pull/2940\"\u003eKludex/uvicorn#2940\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore duplicate forwarding headers in\n\u003ccode\u003eProxyHeadersMiddleware\u003c/code\u003e 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/uvicorn/pull/2944\"\u003eKludex/uvicorn#2944\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/uvicorn/compare/0.47.0...0.48.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.47.0...0.48.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/Kludex/uvicorn/blob/main/docs/release-notes.md\"\u003euvicorn\u0027s\nchangelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.48.0 (May 24, 2026)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDefault \u003ccode\u003essl_ciphers\u003c/code\u003e to \u003ccode\u003eNone\u003c/code\u003e and use\nOpenSSL defaults (\u003ca\nhref\u003d\"https://redirect.github.com/Kludex/uvicorn/issues/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore duplicate forwarding headers in\n\u003ccode\u003eProxyHeadersMiddleware\u003c/code\u003e (\u003ca\nhref\u003d\"https://redirect.github.com/Kludex/uvicorn/issues/2944\"\u003e#2944\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/uvicorn/commit/73e84e58d7f6b8b3dfd8a9e3e42d716862250f33\"\u003e\u003ccode\u003e73e84e5\u003c/code\u003e\u003c/a\u003e\nVersion 0.48.0 (\u003ca\nhref\u003d\"https://redirect.github.com/Kludex/uvicorn/issues/2951\"\u003e#2951\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/Kludex/uvicorn/commit/45ea11690b4a62fa6df339d2b6ee3b8545a418e0\"\u003e\u003ccode\u003e45ea116\u003c/code\u003e\u003c/a\u003e\nIgnore duplicate forwarding headers in\n\u003ccode\u003eProxyHeadersMiddleware\u003c/code\u003e (\u003ca\nhref\u003d\"https://redirect.github.com/Kludex/uvicorn/issues/2944\"\u003e#2944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/Kludex/uvicorn/commit/dd4394c3cbfd9f27a696a7b08047149690058158\"\u003e\u003ccode\u003edd4394c\u003c/code\u003e\u003c/a\u003e\nchore(deps): bump idna from 3.11 to 3.15 (\u003ca\nhref\u003d\"https://redirect.github.com/Kludex/uvicorn/issues/2941\"\u003e#2941\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/Kludex/uvicorn/commit/abe07818a191cd036dc3824d802d052207e01c7e\"\u003e\u003ccode\u003eabe0781\u003c/code\u003e\u003c/a\u003e\nDefault \u003ccode\u003essl_ciphers\u003c/code\u003e to \u003ccode\u003eNone\u003c/code\u003e and use OpenSSL\ndefaults (\u003ca\nhref\u003d\"https://redirect.github.com/Kludex/uvicorn/issues/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca\nhref\u003d\"https://github.com/Kludex/uvicorn/compare/0.47.0...0.48.0\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don\u0027t\nalter it yourself. You can also trigger a rebase manually by commenting\n`@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits\nthat have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all\nof the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this\ngroup update PR and stop Dependabot creating any more for the specific\ndependency\u0027s major version (unless you unignore this specific\ndependency\u0027s major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this\ngroup update PR and stop Dependabot creating any more for the specific\ndependency\u0027s minor version (unless you unignore this specific\ndependency\u0027s minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR\nand stop Dependabot creating any more for the specific dependency\n(unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore\nconditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will\nremove the ignore condition of the specified dependency and ignore\nconditions\n\n\n\u003c/details\u003e\n\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": "f05f8ab9e078d70ef054f807546c63317d61ec73",
      "tree": "4f1d738d074e883e8f4875dfc521050a2cc31445",
      "parents": [
        "764a490ab13de6fd3dc004b1d9f85107e6dfb1b0"
      ],
      "author": {
        "name": "Aran Donohue",
        "email": "aran.donohue@gmail.com",
        "time": "Thu May 28 17:41:38 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 28 17:41:38 2026"
      },
      "message": "rules_dart@0.4.3 (#9036)\n\nRelease: https://github.com/aran/rules_dart/releases/tag/v0.4.3\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_\n\nCo-authored-by: aran \u003c5295+aran@users.noreply.github.com\u003e"
    },
    {
      "commit": "764a490ab13de6fd3dc004b1d9f85107e6dfb1b0",
      "tree": "2dfb43f244a6cfda187c95adc1eebdf49bd4b26d",
      "parents": [
        "c2299cf4fa4ee2a6454039266555d50a6c3b84a7"
      ],
      "author": {
        "name": "divVerent",
        "email": "rpolzer@google.com",
        "time": "Thu May 28 14:37:06 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 28 14:37:06 2026"
      },
      "message": "boringssl@0.20260526.0 (#9033)"
    },
    {
      "commit": "c2299cf4fa4ee2a6454039266555d50a6c3b84a7",
      "tree": "a651fb3f80905abfa7cadeca64c52b2f6b40eedb",
      "parents": [
        "597b75d93590c03cbe708974d5c1e2131dbcd65d"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Thu May 28 14:36:52 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 28 14:36:52 2026"
      },
      "message": "m4@1.4.21.bcr.2 (#9034)"
    },
    {
      "commit": "597b75d93590c03cbe708974d5c1e2131dbcd65d",
      "tree": "cc4fce86c07fad5a5e2690dd43913e183d9fdc09",
      "parents": [
        "92e4149e1c2c1cbab63a1dde73867a9cd9ed9203"
      ],
      "author": {
        "name": "Filip Filmar",
        "email": "filmil@gmail.com",
        "time": "Thu May 28 10:54:00 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 28 10:54:00 2026"
      },
      "message": "gotopt2@2.7.0 (#9031)\n\nRelease: https://github.com/filmil/gotopt2/releases/tag/v2.7.0\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_"
    },
    {
      "commit": "92e4149e1c2c1cbab63a1dde73867a9cd9ed9203",
      "tree": "d9572fd86705df452df4c363283b62682f4479e2",
      "parents": [
        "29ae576123d133d4d55e1c3d757ff3240859d4ce"
      ],
      "author": {
        "name": "Vertexwahn",
        "email": "julian.amann@tum.de",
        "time": "Thu May 28 10:53:52 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 28 10:53:52 2026"
      },
      "message": "openjph@0.27.3.bcr.1 (#9032)\n\nopenjph@0.27.3.bcr.1\n\nThis is patch that adds the missing include path `\"src/core\"`"
    },
    {
      "commit": "29ae576123d133d4d55e1c3d757ff3240859d4ce",
      "tree": "c55160965f35cd7b9dc79cc91e4d2a7890acc013",
      "parents": [
        "02be4b5236961562b97e0647f41d42b4c0cf641d"
      ],
      "author": {
        "name": "hw-bzl-bot",
        "email": "hardware.bazel@protonmail.com",
        "time": "Thu May 28 06:53:31 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 28 06:53:31 2026"
      },
      "message": "rules_verilator@1.0.0 (#9026)\n\nRelease: https://github.com/hw-bzl/rules_verilator/releases/tag/1.0.0\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_\n\nCo-authored-by: hw-bzl-bot \u003c279263554+hw-bzl-bot@users.noreply.github.com\u003e"
    },
    {
      "commit": "02be4b5236961562b97e0647f41d42b4c0cf641d",
      "tree": "8ef169c3cbb1ae083d645798b4ca16f2ac4a1efb",
      "parents": [
        "6615e1a29adb868909989c93fb893cc55cc8087a"
      ],
      "author": {
        "name": "periareon-bot",
        "email": "periareon-bot@proton.me",
        "time": "Thu May 28 06:53:23 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 28 06:53:23 2026"
      },
      "message": "rules_cc_autoconf@0.12.1 (#9027)\n\nRelease:\nhttps://github.com/periareon/rules_cc_autoconf/releases/tag/0.12.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": "6615e1a29adb868909989c93fb893cc55cc8087a",
      "tree": "34e7650e028f803af684816e77cefe93df616875",
      "parents": [
        "247501ff3a1dd70647259b8fac428563b3f8ffc0"
      ],
      "author": {
        "name": "Aran Donohue",
        "email": "aran.donohue@gmail.com",
        "time": "Thu May 28 06:53:15 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 28 06:53:15 2026"
      },
      "message": "rules_dart@0.4.2 (#9028)\n\nRelease: https://github.com/aran/rules_dart/releases/tag/v0.4.2\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_\n\nCo-authored-by: aran \u003c5295+aran@users.noreply.github.com\u003e"
    },
    {
      "commit": "247501ff3a1dd70647259b8fac428563b3f8ffc0",
      "tree": "c3a44c86b9f74c71653e8f968d8405856a9c649b",
      "parents": [
        "54856a0dd47ebb199868fe9b0b746c9496d83eb5"
      ],
      "author": {
        "name": "Aran Donohue",
        "email": "aran.donohue@gmail.com",
        "time": "Wed May 27 22:21:21 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 27 22:21:21 2026"
      },
      "message": "rules_dart@0.4.0 (#9023)\n\nRelease: https://github.com/aran/rules_dart/releases/tag/v0.4.0\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_\n\nCo-authored-by: aran \u003c5295+aran@users.noreply.github.com\u003e"
    },
    {
      "commit": "54856a0dd47ebb199868fe9b0b746c9496d83eb5",
      "tree": "12514cef24a421a01b8fca6c89195d131bf7e09f",
      "parents": [
        "f2196b55b8838586117300deb80ecd8972db2972"
      ],
      "author": {
        "name": "periareon-bot",
        "email": "periareon-bot@proton.me",
        "time": "Wed May 27 20:37:28 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 27 20:37:28 2026"
      },
      "message": "rules_venv@0.19.0 (#9022)\n\nRelease: https://github.com/periareon/rules_venv/releases/tag/0.19.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": "f2196b55b8838586117300deb80ecd8972db2972",
      "tree": "aa598bbde73eb7332f7bdb351e002297a84b8b28",
      "parents": [
        "3cdb1d65192c4c7aa34872ae028bfbbdb8b5a489"
      ],
      "author": {
        "name": "Matt Liberty",
        "email": "matt.liberty@gmail.com",
        "time": "Wed May 27 19:25:07 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 27 19:25:07 2026"
      },
      "message": "abc@0.64-yosyshq.bcr.2 (#9021)\n\nAdd an opt-in flag to skip the readline dependency. Default behavior is\nunchanged: `@readline` is still linked and `ABC_USE_READLINE` is still\nset. Consumers that drive abc programmatically (and do not need the\ninteractive line editor) can opt out by adding to .bazelrc:\n```\ncommon --@abc//:use_readline\u003dfalse\n```\n\nThis drops both the `@readline` build edge and the `ABC_USE_READLINE`\ndefine from the abc cc_library.\n\n---------\n\nSigned-off-by: Matt Liberty \u003cmliberty@precisioninno.com\u003e\nCo-authored-by: UebelAndre \u003cgithub@uebelandre.com\u003e"
    },
    {
      "commit": "3cdb1d65192c4c7aa34872ae028bfbbdb8b5a489",
      "tree": "aa9bff5bebe993d01dced1dc38c1b7feaef973fa",
      "parents": [
        "742eadd9b32ffefb912738dc919e661b4f49030d"
      ],
      "author": {
        "name": "Qijia Yang",
        "email": "2421653893@qq.com",
        "time": "Wed May 27 16:52:18 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 27 16:52:18 2026"
      },
      "message": "verilator: extends presubmit coverage and update presubmit platform (#8996)\n\nExtends presubmit coverage with a timing-enabled task and update\npresubmit platform\n\nRelated to\nhttps://github.com/bazelbuild/bazel-central-registry/pull/8989#issuecomment-4534010368"
    },
    {
      "commit": "742eadd9b32ffefb912738dc919e661b4f49030d",
      "tree": "9a6cd861ffb342c46c5a56dc7ef2bb934249582b",
      "parents": [
        "a5f1826e768845e177bc95a05569df1853d3a474"
      ],
      "author": {
        "name": "Arjuna Ariyaratne",
        "email": "arjuna@fourgrowers.com",
        "time": "Wed May 27 16:27:15 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 27 16:27:15 2026"
      },
      "message": "Add open62541pp@0.21.1 (#8938)\n\nUpdate open62541pp to 0.21.1"
    },
    {
      "commit": "a5f1826e768845e177bc95a05569df1853d3a474",
      "tree": "7dca3b377b0c4ab0e636b6dbb8297fef4256a986",
      "parents": [
        "31cc45db8c19ab550d0fd8c501fe2de1195d7bf2"
      ],
      "author": {
        "name": "Xùdōng Yáng",
        "email": "wyverald@gmail.com",
        "time": "Wed May 27 16:17:54 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 27 16:17:54 2026"
      },
      "message": "Update bcr-pr-reviewer action to commit 3d8663cb5406076255c6865af23cb85d6eff5c35 (#9016)\n\nBrings in https://github.com/bazelbuild/continuous-integration/pull/2629"
    },
    {
      "commit": "31cc45db8c19ab550d0fd8c501fe2de1195d7bf2",
      "tree": "e4bf476201c06eb4509af4a2500390782f18c188",
      "parents": [
        "062dfdf79e33355b670a7a57be432cf150dbdfc4"
      ],
      "author": {
        "name": "hw-bzl-bot",
        "email": "hardware.bazel@protonmail.com",
        "time": "Wed May 27 15:50:34 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 27 15:50:34 2026"
      },
      "message": "rules_verilator@0.3.3.bcr.1 (#9007)\n\nRelease:\nhttps://github.com/hw-bzl/rules_verilator/releases/tag/0.3.3.bcr.1\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_\n\nCo-authored-by: hw-bzl-bot \u003c279263554+hw-bzl-bot@users.noreply.github.com\u003e"
    },
    {
      "commit": "062dfdf79e33355b670a7a57be432cf150dbdfc4",
      "tree": "eec66ac762ea7520546b58abfeb4804675138a7e",
      "parents": [
        "888e5dc1b5311ad07dda6abcbb9aeeee114d7ef3"
      ],
      "author": {
        "name": "Danny Mösch",
        "email": "danny.moesch@icloud.com",
        "time": "Wed May 27 15:50:15 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 27 15:50:15 2026"
      },
      "message": "swiftlint@0.63.3 (#9015)\n\nRelease: https://github.com/realm/SwiftLint/releases/tag/0.63.3\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_\n\nCo-authored-by: Danny Mösch \u003c16365760+SimplyDanny@users.noreply.github.com\u003e"
    },
    {
      "commit": "888e5dc1b5311ad07dda6abcbb9aeeee114d7ef3",
      "tree": "36f09f145ce370313f2752e39a6b42ef4c8e6361",
      "parents": [
        "fca6adfc96274f78c8b364aeba9af13b60284ed7"
      ],
      "author": {
        "name": "hermeticbuild-bot",
        "email": "hermeticbuildbot@gmail.com",
        "time": "Wed May 27 15:02:20 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 27 15:02:20 2026"
      },
      "message": "Publish cuda_toolkit@0.0.3 (#9014)\n\nRelease:\nhttps://github.com/hermeticbuild/cuda-toolkit/releases/tag/v0.0.3\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_\n\n---------\n\nCo-authored-by: cerisier \u003c1126594+cerisier@users.noreply.github.com\u003e\nCo-authored-by: Corentin Kerisit \u003ccorentin.kerisit@gmail.com\u003e"
    },
    {
      "commit": "fca6adfc96274f78c8b364aeba9af13b60284ed7",
      "tree": "48cfc1e646a254bd9d53ab0627f81e9f41b1ef5f",
      "parents": [
        "2306b89079718c4b2698a091d88ce3df961cf38c"
      ],
      "author": {
        "name": "hermeticbuild-bot",
        "email": "hermeticbuildbot@gmail.com",
        "time": "Wed May 27 13:45:35 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 27 13:45:35 2026"
      },
      "message": "rules_zig@0.16.0 (#9013)\n\nRelease: https://github.com/hermeticbuild/rules_zig/releases/tag/v0.16.0\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_\n\nCo-authored-by: aherrmann \u003c732652+aherrmann@users.noreply.github.com\u003e"
    },
    {
      "commit": "2306b89079718c4b2698a091d88ce3df961cf38c",
      "tree": "cf246786980580dfef9befbac3d3a20f83814c01",
      "parents": [
        "fc4de37d3ecd12bc5b3e3f5fef68cd43c434b603"
      ],
      "author": {
        "name": "Chi Wang",
        "email": "coeuvre@gmail.com",
        "time": "Wed May 27 12:31:00 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 27 12:31:00 2026"
      },
      "message": "Add bazel_ci_rules 2.0.0. (#9011)"
    },
    {
      "commit": "fc4de37d3ecd12bc5b3e3f5fef68cd43c434b603",
      "tree": "654b78fc22f835942e9aad475c3980e15c69ad9c",
      "parents": [
        "e5ea174bb6caca07785768016170292a1959764a"
      ],
      "author": {
        "name": "dallison",
        "email": "david.s.allison@gmail.com",
        "time": "Wed May 27 00:01:42 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 27 00:01:42 2026"
      },
      "message": "Add subspace 2.8.0 (#9004)\n\nAdds subspace 2.8.0.  This includes a port to Android"
    },
    {
      "commit": "e5ea174bb6caca07785768016170292a1959764a",
      "tree": "4ca354f80fe34718c730210905f3eea8c78054bf",
      "parents": [
        "5d56b853f9605da96559fc51da17e8d21bb1950f"
      ],
      "author": {
        "name": "Machine account for bazel-contrib",
        "email": "contrib@bazel.build",
        "time": "Tue May 26 21:01:57 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 26 21:01:57 2026"
      },
      "message": "rules_d@0.10.1 (#9000)\n\nRelease: https://github.com/bazel-contrib/rules_d/releases/tag/v0.10.1\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_\n\nCo-authored-by: dcarp \u003c1738497+dcarp@users.noreply.github.com\u003e"
    },
    {
      "commit": "5d56b853f9605da96559fc51da17e8d21bb1950f",
      "tree": "25472aa5b4928639c7ee08688077ec87917119a3",
      "parents": [
        "760929d13d4649cad8cd94b1e2180f5ff5634e13"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Tue May 26 19:43:45 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 26 19:43:45 2026"
      },
      "message": "directxmath@3.20 (#8859)"
    },
    {
      "commit": "760929d13d4649cad8cd94b1e2180f5ff5634e13",
      "tree": "2b649a68ab59e677dccf1c52a96c4637a07ee2e9",
      "parents": [
        "b3ae67f88f87057b7ec01b3ae4394a620e886491"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Tue May 26 19:42:57 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 26 19:42:57 2026"
      },
      "message": "linuxptp@4.4 (#8948)"
    },
    {
      "commit": "b3ae67f88f87057b7ec01b3ae4394a620e886491",
      "tree": "2aa7a07b807d02af269c5726b7f151dd369ec64d",
      "parents": [
        "36d2a80645af853f13b9dfaf4ebf97fcddd57721"
      ],
      "author": {
        "name": "publish-to-bcr-bot[bot]",
        "email": "112732530+publish-to-bcr-bot[bot]@users.noreply.github.com",
        "time": "Tue May 26 19:15:33 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 26 19:15:33 2026"
      },
      "message": "yams@6.2.2 (#8998)\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/jpsim/Yams/releases/tag/6.2.2\n\n_Automated by [Publish to BCR](https://github.com/apps/publish-to-bcr)_\n\n---------\n\nCo-authored-by: JP Simard \u003cnull\u003e\nCo-authored-by: JP Simard \u003cjp@jpsim.com\u003e"
    },
    {
      "commit": "36d2a80645af853f13b9dfaf4ebf97fcddd57721",
      "tree": "17a5573d7714eb54b2b0966b46b040f0e5879740",
      "parents": [
        "f91df2ee8fe81c6457cd1b4fd42096cbbda9ce67"
      ],
      "author": {
        "name": "Øyvind Harboe",
        "email": "oyvind.harboe@zylin.com",
        "time": "Tue May 26 19:06:17 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 26 19:06:17 2026"
      },
      "message": "sv-lang\n  10.0.1-20260316-f04e8156: pin slang at f04e8156 with foreign_cc cmake fix. (#8987)\n\nThree differences from 10.0.0:\n\n- Source pinned at MikePopoloski/slang `f04e8156` (2026-03-16,\npost-v10.0). Downstream consumers like yosys-slang and slang-elab call\n`visit()` overloads added after v10.0 and don\u0027t build against the v10.0\ntarball.\n- libsvlang srcs: add `source/driver/CompatSettings.cpp` and\n`source/analysis/DataFlowAnalysis.cpp` (new files post-v10.0).\n- `private/slang/export_headers/BUILD.bazel`: replace the\n`rules_foreign_cc` `cmake()` probe for `slang_export.h` with a\n`genrule`. The probe links a test `.o` with consumer cxxopts in front of\nit, so consumers passing `-xc++` (clang \"treat next file as C++\") read\nthe test `.o` as source and the build aborts.\n\nPlus a small follow-on: `overlay/BUILD.bazel` and\n`overlay/private/slang/version_info/BUILD.bazel` hard-code\nSLANG_VERSION_MICRO / SOURCES_PREFIX because\n`module_version().split(\".\")[:3]` yields `\"bcr\"` for the patch\ncomponent, which compiles into `VersionInfo.cpp` as an undeclared\nidentifier.\n\n---------\n\nSigned-off-by: Øyvind Harboe \u003coyvind.harboe@zylin.com\u003e"
    },
    {
      "commit": "f91df2ee8fe81c6457cd1b4fd42096cbbda9ce67",
      "tree": "ac761ca27054d66ed6dc37c1d89268e8520bccb5",
      "parents": [
        "7ce874c0464e9180778a546d691d8f815b7201a8"
      ],
      "author": {
        "name": "periareon-bot",
        "email": "periareon-bot@proton.me",
        "time": "Tue May 26 19:05:43 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 26 19:05:43 2026"
      },
      "message": "rules_cc_autoconf@0.11.2 (#8999)\n\nRelease:\nhttps://github.com/periareon/rules_cc_autoconf/releases/tag/0.11.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": "7ce874c0464e9180778a546d691d8f815b7201a8",
      "tree": "27e0c7a3a20d9ae85e0e7543b6a49b2afebcf3fe",
      "parents": [
        "e3bea57ca7fe075166a417fe4e8e60abe490d650"
      ],
      "author": {
        "name": "Scott Hart",
        "email": "sdhart@google.com",
        "time": "Tue May 26 19:05:26 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 26 19:05:26 2026"
      },
      "message": "Add googleapis 0.0.0-20260525-ef19b7b7 (#9001)"
    },
    {
      "commit": "e3bea57ca7fe075166a417fe4e8e60abe490d650",
      "tree": "206eead7987b02263f1cb21ba08acb2e8d78202d",
      "parents": [
        "ec5172eb4b3948d576a4e2504ec428845af4e664"
      ],
      "author": {
        "name": "Henner Zeller",
        "email": "h.zeller@acm.org",
        "time": "Tue May 26 19:05:16 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 26 19:05:16 2026"
      },
      "message": "bant: +\u003d 0.2.10 (#9002)\n\nSigned-off-by: Henner Zeller \u003ch.zeller@acm.org\u003e"
    },
    {
      "commit": "ec5172eb4b3948d576a4e2504ec428845af4e664",
      "tree": "34d399613e632c114e28f7673d00988e606167cd",
      "parents": [
        "1451bc41ab31a6908b7bd0056797b5ea273c9fd8"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Tue May 26 19:03:29 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 26 19:03:29 2026"
      },
      "message": "Updated llvm-project maintainers and source (#9003)"
    },
    {
      "commit": "1451bc41ab31a6908b7bd0056797b5ea273c9fd8",
      "tree": "33587501340fe3455d2dce175f2d132847aa3d85",
      "parents": [
        "97346c907b5883cdca7f27d8be97128ce624461a"
      ],
      "author": {
        "name": "Alexander Hans",
        "email": "ahans@users.noreply.github.com",
        "time": "Tue May 26 16:31:16 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 26 16:31:16 2026"
      },
      "message": "libdwarf: 2.2.0.bcr.1 to fix Bazel 9 compatibility (#8997)\n\nAdd explicit load statement for `cc_test` instead of using the\nnow-removed `native.cc_test`."
    },
    {
      "commit": "97346c907b5883cdca7f27d8be97128ce624461a",
      "tree": "2a0638844cb0ec7d313fe82601feb656a119217a",
      "parents": [
        "8195d54896fe15a7ccac46810a5818cd155376bc"
      ],
      "author": {
        "name": "Øyvind Harboe",
        "email": "oyvind.harboe@zylin.com",
        "time": "Tue May 26 16:18:34 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 26 16:18:34 2026"
      },
      "message": "abc@0.65-yosyshq (#8899)\n\nAdds `abc@0.65-yosyshq`, pairing with `yosys@0.65` (whose BCR module is\nin PR #8863).\n\nYosysHQ/yosys at tag `v0.65` pins its `abc` submodule at YosysHQ/abc tag\n`v0.65`, peeled SHA `5d51a5e420f5de493d07bf61109a977248c86ffb`. This\nmodule exposes that tag as a BCR-resolvable dependency.\n\nBased on `abc/0.64-yosyshq.bcr.1`. The BUILD.bazel overlay additionally\nlists:\n\n- `src/map/emap/{emap.c, emapCore.c}` — new mapper module in v0.65\n-\n`src/opt/eslim/{areaEngine,delayEngine,eslimCirMan,relationSynthesiser,subcircuit}.cpp`\n— new sources in the existing `eslim` directory\n- `src/proof/cec/cecCorrIncr.c` — new source in the existing `cec`\ndirectory\n\nand adds `src/map/emap` to the `includes` list so files in that\ndirectory can resolve `#include \"emap.h\"`.\n\n@bazel-io skip_check unstable_url"
    },
    {
      "commit": "8195d54896fe15a7ccac46810a5818cd155376bc",
      "tree": "0654119fb1b31825cd421cdffe575904690ca73b",
      "parents": [
        "1d03b6b9552740d085eea5a8c1e354d9ded61aa5"
      ],
      "author": {
        "name": "Øyvind Harboe",
        "email": "oyvind.harboe@zylin.com",
        "time": "Tue May 26 14:53:12 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 26 14:53:12 2026"
      },
      "message": "abc@0.63-yosyshq (#8900)\n\nAdds `abc@0.63-yosyshq`, pairing with `yosys@0.63`.\n\nYosysHQ/yosys at tag `v0.63` pins its `abc` submodule at YosysHQ/abc tag\n`v0.63`, peeled SHA `8e401543d3ecf65e3a3631c7a271793a4d356cb0`. This\nmodule exposes that tag as a BCR-resolvable dependency.\n\nBased on `abc/0.64-yosyshq.bcr.1`; `src/map/if/ifTrace.c` is removed\nfrom the SRCS list (added in abc v0.64, not present in v0.63).\n\n@bazel-io skip_check unstable_url"
    },
    {
      "commit": "1d03b6b9552740d085eea5a8c1e354d9ded61aa5",
      "tree": "6e14c7879ac5cb26f57a428f7fcedfd966ecb4f9",
      "parents": [
        "d100bb0b0a76b27dd69bb44cfd12165e3c38be91"
      ],
      "author": {
        "name": "Øyvind Harboe",
        "email": "oyvind.harboe@zylin.com",
        "time": "Tue May 26 14:43:47 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 26 14:43:47 2026"
      },
      "message": "yosys@0.64 (#8862)\n\nAdds yosys 0.64 to BCR.\n\nOverlay changes vs 0.62.bcr.2 required for v0.64 source layout:\n\n- `VERSION \u003d \"0.64\"` in `overlay/BUILD.bazel`.\n- `passes/opt/opt_clean.cc` is split upstream into the directory\n  `passes/opt/opt_clean/`. The `pass_opt` cc_library now lists the\n  per-file split (`cells_all.cc`, `cells_temp.cc`, `inits.cc`,\n  `opt_clean.cc`, `wires.cc`) and exposes `opt_clean.h` +\n  `keep_cache.h` via textual_hdrs.\n- New kernel header `kernel/newcelltypes.h` added to kernel\u0027s `hdrs`.\n- New `passes/equiv/equiv.h` (introduced in v0.63) added to `pass_equiv`\n  textual_hdrs (carried forward from the yosys@0.63 PR).\n- Inner and outer `MODULE.bazel` version bumped to 0.64.\n\nPatches:\n\n- `tcl9_mp_to_ubin.patch` — verbatim from 0.62.bcr.2, applies clean.\n- `use_cxxopt_module.patch` — context line refresh. v0.64 adds\n  `#include \u003cchrono\u003e` after `#include \u003ciostream\u003e`, so the trailing\n  context of the existing hunk was updated (otherwise applies with\n  `--fuzz 2`, which BCR\u0027s `--fuzz 0` validation rejects).\n\nsource.json refreshed: v0.64 tarball integrity + new sha256 for\nBUILD.bazel, overlay/MODULE.bazel, and use_cxxopt_module.patch.\n\nLocal verification: `bazelisk run @yosys//:yosys -- -V` against this\nfork branch as a custom registry prints `Yosys 0.64`.\n\n`tools/bcr_validation.py --check yosys@0.64` passes all checks.\n\nStacks on top of #8861 (yosys@0.63) — metadata.json edit may need\nrebase once #8861 lands.\n\nUpstream release notes:\nhttps://github.com/YosysHQ/yosys/releases/tag/v0.64\n\n---------\n\nSigned-off-by: Øyvind Harboe \u003coyvind@ascenium.com\u003e\nSigned-off-by: Øyvind Harboe \u003coyvind.harboe@zylin.com\u003e"
    },
    {
      "commit": "d100bb0b0a76b27dd69bb44cfd12165e3c38be91",
      "tree": "a6815d3928c0d6e9bc31cb5377937c37064f19d2",
      "parents": [
        "bf99461d64448ea7c197fd99649f2034e0ec693d"
      ],
      "author": {
        "name": "Machine account for bazel-contrib",
        "email": "contrib@bazel.build",
        "time": "Tue May 26 01:28:44 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 26 01:28:44 2026"
      },
      "message": "rules_perl@1.1.1 (#8995)\n\nRelease: https://github.com/bazel-contrib/rules_perl/releases/tag/1.1.1\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_\n\nCo-authored-by: skeletonkey \u003c1487600+skeletonkey@users.noreply.github.com\u003e"
    },
    {
      "commit": "bf99461d64448ea7c197fd99649f2034e0ec693d",
      "tree": "bdee7925e4ecfc36f509596ba89311a3d4a8da89",
      "parents": [
        "5079f39dd37c78df6c2172b7a03b696f2525d0a8"
      ],
      "author": {
        "name": "Filip Filmar",
        "email": "filmil@gmail.com",
        "time": "Mon May 25 22:05:51 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 25 22:05:51 2026"
      },
      "message": "Publish rules_shar@1.0.7 (#8993)\n\nRelease: https://github.com/filmil/rules_shar/releases/tag/v1.0.7\n\n_Automated by [Publish to\nBCR](https://github.com/bazel-contrib/publish-to-bcr)_"
    },
    {
      "commit": "5079f39dd37c78df6c2172b7a03b696f2525d0a8",
      "tree": "578df3f5db5a2aebc96077fb528026e3cf688221",
      "parents": [
        "a480ea6e068ef24a3deb7fd56243b1a7e4aa8259"
      ],
      "author": {
        "name": "Harald",
        "email": "harald.achitz@gmail.com",
        "time": "Mon May 25 15:39:56 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 25 15:39:56 2026"
      },
      "message": "Update sqlite3, add version 3.53.1 (#8990)\n\nadd lastest sqlite3 version"
    },
    {
      "commit": "a480ea6e068ef24a3deb7fd56243b1a7e4aa8259",
      "tree": "ccaceb0d163f18cafb86274de5c61729c6193920",
      "parents": [
        "ab69c48d525e09d230629d36c2468d9c528229fb"
      ],
      "author": {
        "name": "Clément Guillot",
        "email": "guillot.clement@pm.me",
        "time": "Sat May 23 20:47:36 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat May 23 20:47:36 2026"
      },
      "message": "com_clementguillot_rules_quarkus@0.1.1 (#8983)\n\nRelease:\nhttps://github.com/clementguillot/rules_quarkus/releases/tag/v0.1.1\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": "ab69c48d525e09d230629d36c2468d9c528229fb",
      "tree": "30194058382fbffad8613ad692343a87629af8c8",
      "parents": [
        "8fdc370f078f640d96a3bbd54ae2a97f82348556"
      ],
      "author": {
        "name": "David Zbarsky",
        "email": "dzbarsky@gmail.com",
        "time": "Sat May 23 15:06:27 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat May 23 15:06:27 2026"
      },
      "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 09:01:09 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat May 23 09:01:09 2026"
      },
      "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 06:47:37 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat May 23 06:47:37 2026"
      },
      "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 18:02:48 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 22 18:02:48 2026"
      },
      "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 18:02:28 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 22 18:02:28 2026"
      },
      "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 16:23:25 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 22 16:23:25 2026"
      },
      "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 16:23:17 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 22 16:23:17 2026"
      },
      "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 16:23:07 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 22 16:23:07 2026"
      },
      "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 15:31:07 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 22 15:31:07 2026"
      },
      "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 13:40:35 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 22 13:40:35 2026"
      },
      "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 11:20:07 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 22 11:20:07 2026"
      },
      "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 11:15:52 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 22 11:15:52 2026"
      },
      "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 08:01:32 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 22 08:01:32 2026"
      },
      "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": "Fri May 22 04:39:37 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 22 04:39:37 2026"
      },
      "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": "Fri May 22 04:39:20 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 22 04:39:20 2026"
      },
      "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 23:08:33 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 21 23:08:33 2026"
      },
      "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 22:44:13 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 21 22:44:13 2026"
      },
      "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 21:16:05 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 21 21:16:05 2026"
      },
      "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 18:03:43 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 21 18:03:43 2026"
      },
      "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 17:35:40 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 21 17:35:40 2026"
      },
      "message": "Add nlopt 2.10.1 (#8963)\n\nAdds nlopt 2.10.1"
    }
  ],
  "next": "e9b96b9cb23706e8162561529fc4689cf332f342"
}
