Legacy Roles
A list of legacy roles.
GET /api/v1/roles/?format=api&namespace__name__in=ovirt%2Cwillow&page=3371
{ "count": 37073, "next": "http://galaxy.ansible.com/api/v1/roles/?format=api&namespace__name__in=ovirt%2Cwillow&page=3372", "previous": "http://galaxy.ansible.com/api/v1/roles/?format=api&namespace__name__in=ovirt%2Cwillow&page=3370", "results": [ { "id": 38745, "upstream_id": null, "created": "2024-06-29T21:36:27.988136Z", "modified": "2024-06-29T21:36:28.023112Z", "imported": "2024-06-29T21:36:27.985989", "github_user": "Ngwani12", "username": "Ngwani12", "github_repo": "edith", "github_branch": "main", "commit": "82d93426b3031d563b07ca21d27985a58f9d68f9", "commit_message": "Update main.yml", "name": "edith", "description": "ansible test roles", "summary_fields": { "dependencies": [], "namespace": { "id": 15780, "name": "Ngwani12", "avatar_url": "https://github.com/Ngwani12.png" }, "provider_namespace": { "id": 25406, "name": "ngwani12", "pulp_href": "/api/pulp/api/v3/pulp_ansible/namespaces/25406/" }, "repository": { "name": "edith", "original_name": "edith" }, "tags": [], "versions": [] }, "download_count": 21 }, { "id": 38746, "upstream_id": null, "created": "2024-06-30T09:25:19.942773Z", "modified": "2024-06-30T09:25:19.969249Z", "imported": "2024-06-30T09:25:19.940757", "github_user": "nkdkd", "username": "nkdkd", "github_repo": "sample-ansible-roles", "github_branch": "main", "commit": "76bd3bd32ab17cce79ba42bd78f2aa07827d56fc", "commit_message": "initial files\n", "name": "sample-ansible-roles", "description": "your role description", "summary_fields": { "dependencies": [], "namespace": { "id": 15817, "name": "nkdkd", "avatar_url": "https://github.com/nkdkd.png" }, "provider_namespace": { "id": 25442, "name": "nkdkd", "pulp_href": "/api/pulp/api/v3/pulp_ansible/namespaces/25442/" }, "repository": { "name": "sample-ansible-roles", "original_name": "sample-ansible-roles" }, "tags": [], "versions": [] }, "download_count": 21 }, { "id": 38747, "upstream_id": null, "created": "2024-07-01T05:33:05.618463Z", "modified": "2026-01-05T09:32:10.483879Z", "imported": "2026-01-05T09:32:10.291897", "github_user": "semrush", "username": "semrush", "github_repo": "ansible-role-clickhouse", "github_branch": "main", "commit": "c8df495a743a73c96594e0891f2209a5c721e303", "commit_message": "Bump the python-packages group across 1 directory with 29 updates (#49)\n\nBumps the python-packages group with 29 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [ansible](https://github.com/ansible-community/ansible-build-data) |\n`11.3.0` | `13.2.0` |\n| [ansible-compat](https://github.com/ansible/ansible-compat) | `25.1.4`\n| `25.12.0` |\n| [ansible-core](https://github.com/ansible/ansible) | `2.18.3` |\n`2.20.1` |\n| [ansible-lint](https://github.com/ansible/ansible-lint) | `25.1.3` |\n`25.12.2` |\n| [attrs](https://github.com/sponsors/hynek) | `25.3.0` | `25.4.0` |\n| [black](https://github.com/psf/black) | `25.9.0` | `25.12.0` |\n| [cachetools](https://github.com/tkem/cachetools) | `6.2.0` | `6.2.4` |\n| [cerberus](https://github.com/pyeve/cerberus) | `1.3.7` | `1.3.8` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.8.3` |\n`2025.11.12` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) |\n`3.4.3` | `3.4.4` |\n| [click](https://github.com/pallets/click) | `8.1.8` | `8.3.1` |\n| [cryptography](https://github.com/pyca/cryptography) | `46.0.2` |\n`46.0.3` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.19.1` |\n`3.20.1` |\n|\n[google-auth](https://github.com/googleapis/google-auth-library-python)\n| `2.41.1` | `2.45.0` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.11` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.1.0` |\n`2.3.0` |\n| [markdown-it-py](https://github.com/executablebooks/markdown-it-py) |\n`3.0.0` | `4.0.0` |\n| [mitogen](https://github.com/mitogen-hq/mitogen) | `0.3.29` | `0.3.36`\n|\n| [molecule](https://github.com/ansible-community/molecule) | `25.3.1` |\n`25.12.0` |\n|\n[molecule-plugins](https://github.com/ansible-community/molecule-plugins)\n| `23.7.0` | `25.8.12` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.4.0` |\n`4.5.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.1.0` | `7.2.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.2` | `9.0.2` |\n| [referencing](https://github.com/python-jsonschema/referencing) |\n`0.36.2` | `0.37.0` |\n| [rich](https://github.com/Textualize/rich) | `14.1.0` | `14.2.0` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.27.1` | `0.30.0` |\n| ruamel-yaml | `0.18.15` | `0.19.0` |\n| ruamel-yaml-clib | `0.2.14` | `0.2.15` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.5.0` | `2.6.2` |\n\n\nUpdates `ansible` from 11.3.0 to 13.2.0\n<details>\n<summary>Commits</summary>\n<ul>\n<li><a\nhref=\"https://github.com/ansible-community/ansible-build-data/commit/541ab55b5f6b256d484012a1146549fe7f5a2cee\"><code>541ab55</code></a>\nAnsible 13.2.0: Dependencies, changelog and porting guide (<a\nhref=\"https://redirect.github.com/ansible-community/ansible-build-data/issues/639\">#639</a>)</li>\n<li><a\nhref=\"https://github.com/ansible-community/ansible-build-data/commit/51b86426f8d6f7fef465545eadf5a23fac5654e8\"><code>51b8642</code></a>\nBump actions/upload-artifact from 5 to 6 (<a\nhref=\"https://redirect.github.com/ansible-community/ansible-build-data/issues/637\">#637</a>)</li>\n<li><a\nhref=\"https://github.com/ansible-community/ansible-build-data/commit/b9fba3a228bb4c9562f99ec3cddaf61e32a1f16e\"><code>b9fba3a</code></a>\nBump actions/download-artifact from 6 to 7 (<a\nhref=\"https://redirect.github.com/ansible-community/ansible-build-data/issues/638\">#638</a>)</li>\n<li><a\nhref=\"https://github.com/ansible-community/ansible-build-data/commit/060a7c987414805a9ac3708e38d14e192bb277df\"><code>060a7c9</code></a>\nAnsible 11.13.0: Dependencies, changelog and porting guide (<a\nhref=\"https://redirect.github.com/ansible-community/ansible-build-data/issues/636\">#636</a>)</li>\n<li><a\nhref=\"https://github.com/ansible-community/ansible-build-data/commit/63076269d8c81a9ed13563d5228396826ddd5bdc\"><code>6307626</code></a>\nAnsible 12.3.0: Dependencies, changelog and porting guide (<a\nhref=\"https://redirect.github.com/ansible-community/ansible-build-data/issues/635\">#635</a>)</li>\n<li><a\nhref=\"https://github.com/ansible-community/ansible-build-data/commit/855b4da1f26a68f10bfcff33326ed5b425f8de33\"><code>855b4da</code></a>\nAnsible 13.1.0: Dependencies, changelog and porting guide (<a\nhref=\"https://redirect.github.com/ansible-community/ansible-build-data/issues/633\">#633</a>)</li>\n<li><a\nhref=\"https://github.com/ansible-community/ansible-build-data/commit/0be01136a394480e3bfaaf8eb7df9a467666c5ad\"><code>0be0113</code></a>\nModify the URL address of the kaytus.ksmanage collection, This\ncollection has...</li>\n<li><a\nhref=\"https://github.com/ansible-community/ansible-build-data/commit/c0e5f69d45400b6f82c7fdbf53c620f68dbc17c5\"><code>c0e5f69</code></a>\nRemove deprecated junipernetworks.junos from Ansible 14. (<a\nhref=\"https://redirect.github.com/ansible-community/ansible-build-data/issues/631\">#631</a>)</li>\n<li><a\nhref=\"https://github.com/ansible-community/ansible-build-data/commit/b9d8292db5b80897b248bfb4f15ebe1ebf694906\"><code>b9d8292</code></a>\nBump actions/checkout from 5 to 6 (<a\nhref=\"https://redirect.github.com/ansible-community/ansible-build-data/issues/630\">#630</a>)</li>\n<li><a\nhref=\"https://github.com/ansible-community/ansible-build-data/commit/635477e95d780bf9974bf552f14f757dc7f3fc51\"><code>635477e</code></a>\nAdd 14/ directory (<a\nhref=\"https://redirect.github.com/ansible-community/ansible-build-data/issues/629\">#629</a>)</li>\n<li>Additional commits viewable in <a\nhref=\"https://github.com/ansible-community/ansible-build-data/compare/11.3.0...13.2.0\">compare\nview</a></li>\n</ul>\n</details>\n<br />\n\nUpdates `ansible-compat` from 25.1.4 to 25.12.0\n<details>\n<summary>Release notes</summary>\n<p><em>Sourced from <a\nhref=\"https://github.com/ansible/ansible-compat/releases\">ansible-compat's\nreleases</a>.</em></p>\n<blockquote>\n<h2>v25.12.0</h2>\n<h2>Maintenance</h2>\n<ul>\n<li>Add platform version check (<a\nhref=\"https://redirect.github.com/ansible/ansible-compat/issues/548\">#548</a>)\n<a href=\"https://github.com/cidrblock\"><code>@cidrblock</code></a></li>\n<li>chore(deps): update all dependencies (<a\nhref=\"https://redirect.github.com/ansible/ansible-compat/issues/547\">#547</a>)\n@<a href=\"https://github.com/apps/renovate\">renovate[bot]</a></li>\n<li>chore(deps): update all dependencies (<a\nhref=\"https://redirect.github.com/ansible/ansible-compat/issues/546\">#546</a>)\n@<a href=\"https://github.com/apps/renovate\">renovate[bot]</a></li>\n<li>chore: Temporarily disable tombi schema.strict for pyproject.toml\n(<a\nhref=\"https://redirect.github.com/ansible/ansible-compat/issues/545\">#545</a>)\n<a\nhref=\"https://github.com/alisonlhart\"><code>@alisonlhart</code></a></li>\n<li>chore(deps): update all dependencies (<a\nhref=\"https://redirect.github.com/ansible/ansible-compat/issues/544\">#544</a>)\n@<a href=\"https://github.com/apps/renovate\">renovate[bot]</a></li>\n</ul>\n<h2>v25.11.0</h2>\n<h2>Maintenance</h2>\n<ul>\n<li>chore(deps): update all dependencies (<a\nhref=\"https://redirect.github.com/ansible/ansible-compat/issues/543\">#543</a>)\n@<a href=\"https://github.com/apps/renovate\">renovate[bot]</a></li>\n<li>chore(deps): update all dependencies (<a\nhref=\"https://redirect.github.com/ansible/ansible-compat/issues/542\">#542</a>)\n@<a href=\"https://github.com/apps/renovate\">renovate[bot]</a></li>\n<li>chore(deps): update all dependencies (<a\nhref=\"https://redirect.github.com/ansible/ansible-compat/issues/540\">#540</a>)\n@<a href=\"https://github.com/apps/renovate\">renovate[bot]</a></li>\n<li>chore(deps): update all dependencies (<a\nhref=\"https://redirect.github.com/ansible/ansible-compat/issues/539\">#539</a>)\n@<a href=\"https://github.com/apps/renovate\">renovate[bot]</a></li>\n<li>Add finalize workflow for secure sonarcloud checks (<a\nhref=\"https://redirect.github.com/ansible/ansible-compat/issues/538\">#538</a>)\n<a\nhref=\"https://github.com/alisonlhart\"><code>@alisonlhart</code></a></li>\n<li>Update sonar-project.properties configuration (<a\nhref=\"https://redirect.github.com/ansible/ansible-compat/issues/536\">#536</a>)\n<a\nhref=\"https://github.com/alisonlhart\"><code>@alisonlhart</code></a></li>\n<li>chore(deps): update all dependencies (<a\nhref=\"https://redirect.github.com/ansible/ansible-compat/issues/537\">#537</a>)\n@<a href=\"https://github.com/apps/renovate\">renovate[bot]</a></li>\n<li>chore: tell uv to use unreleased ansible-core when running with\npy314 (<a\nhref=\"https://redirect.github.com/ansible/ansible-compat/issues/535\">#535</a>)\n<a href=\"https://github.com/ssbarnea\"><code>@ssbarnea</code></a></li>\n<li>[pre-commit.ci] pre-commit autoupdate (<a\nhref=\"https://redirect.github.com/ansible/ansible-compat/issues/534\">#534</a>)\n@<a\nhref=\"https://github.com/apps/pre-commit-ci\">pre-commit-ci[bot]</a></li>\n</ul>\n<h2>v25.8.2</h2>\n<h2>Fixes</h2>\n<ul>\n<li>fix: add support for python 3.14 (<a\nhref=\"https://redirect.github.com/ansible/ansible-compat/issues/533\">#533</a>)\n<a href=\"https://github.com/ssbarnea\"><code>@ssbarnea</code></a></li>\n<li>fix: remove tox.ini and adopt pep-735 (<a\nhref=\"https://redirect.github.com/ansible/ansible-compat/issues/526\">#526</a>)\n<a href=\"https://github.com/ssbarnea\"><code>@ssbarnea</code></a></li>\n</ul>\n<h2>Maintenance</h2>\n<ul>\n<li>chore(deps): update all dependencies (<a\nhref=\"https://redirect.github.com/ansible/ansible-compat/issues/532\">#532</a>)\n@<a href=\"https://github.com/apps/renovate\">renovate[bot]</a></li>\n<li>chore: hooks update (<a\nhref=\"https://redirect.github.com/ansible/ansible-compat/issues/531\">#531</a>)\n<a href=\"https://github.com/ssbarnea\"><code>@ssbarnea</code></a></li>\n<li>chore(deps): update all dependencies (<a\nhref=\"https://redirect.github.com/ansible/ansible-compat/issues/530\">#530</a>)\n@<a href=\"https://github.com/apps/renovate\">renovate[bot]</a></li>\n<li>chore(deps): update all dependencies (<a\nhref=\"https://redirect.github.com/ansible/ansible-compat/issues/529\">#529</a>)\n@<a href=\"https://github.com/apps/renovate\">renovate[bot]</a></li>\n<li>chore(deps): update all dependencies (<a\nhref=\"https://redirect.github.com/ansible/ansible-compat/issues/527\">#527</a>)\n@<a href=\"https://github.com/apps/renovate\">renovate[bot]</a></li>\n<li>chore: configure renovate (<a\nhref=\"https://redirect.github.com/ansible/ansible-compat/issues/524\">#524</a>)\n<a href=\"https://github.com/ssbarnea\"><code>@ssbarnea</code></a></li>\n<li>chore: update hooks (<a\nhref=\"https://redirect.github.com/ansible/ansible-compat/issues/525\">#525</a>)\n<a href=\"https://github.com/ssbarnea\"><code>@ssbarnea</code></a></li>\n<li>Bump actions/checkout from 4 to 5 (<a\nhref=\"https://redirect.github.com/ansible/ansible-compat/issues/515\">#515</a>)\n@<a href=\"https://github.com/apps/dependabot\">dependabot[bot]</a></li>\n</ul>\n<h2>v25.8.1</h2>\n<h2>Bugfixes</h2>\n<ul>\n<li>Restore <code>ansible-lint<25.8.1</code> behaviour for\n<code>ansible-lint<25.8.1</code> (<a\nhref=\"https://redirect.github.com/ansible/ansible-compat/issues/520\">#520</a>)\n<a href=\"https://github.com/cidrblock\"><code>@cidrblock</code></a></li>\n</ul>\n<h2>v25.8.0</h2>\n<h2>Enhancements</h2>\n<ul>\n<li>Bump the dependencies group in /.config with 5 updates (<a\nhref=\"https://redirect.github.com/ansible/ansible-compat/issues/507\">#507</a>)\n@<a href=\"https://github.com/apps/dependabot\">dependabot[bot]</a></li>\n<li>Bump markdown-exec from 1.10.3 to 1.11.0 in /.config in the\ndependencies group (<a\nhref=\"https://redirect.github.com/ansible/ansible-compat/issues/506\">#506</a>)\n@<a href=\"https://github.com/apps/dependabot\">dependabot[bot]</a></li>\n<li>Bump the dependencies group across 1 directory with 3 updates (<a\nhref=\"https://redirect.github.com/ansible/ansible-compat/issues/505\">#505</a>)\n@<a href=\"https://github.com/apps/dependabot\">dependabot[bot]</a></li>\n</ul>\n<!-- raw HTML omitted -->\n</blockquote>\n<p>... (truncated)</p>\n</details>\n<details>\n<summary>Commits</summary>\n<ul>\n<li><a\nhref=\"https://github.com/ansible/ansible-compat/commit/601b6905c7c7819efb1f2c820a853827b835ec4f\"><code>601b690</code></a>\nAdd platform version check (<a\nhref=\"https://redirect.github.com/ansible/ansible-compat/issues/548\">#548</a>)</li>\n<li><a\nhref=\"https://github.com/ansible/ansible-compat/commit/f8de21d2a42ba53679a6baba96773249b5205174\"><code>f8de21d</code></a>\nchore(deps): update all dependencies (<a\nhref=\"https://redirect.github.com/ansible/ansible-compat/issues/547\">#547</a>)</li>\n<li><a\nhref=\"https://github.com/ansible/ansible-compat/commit/bc972b8146943335a592600c59f1a03d3979cedf\"><code>bc972b8</code></a>\nchore(deps): update all dependencies (<a\nhref=\"https://redirect.github.com/ansible/ansible-compat/issues/546\">#546</a>)</li>\n<li><a\nhref=\"https://github.com/ansible/ansible-compat/commit/2a54adab4035b398a0bba671da981816cbf3b8f9\"><code>2a54ada</code></a>\nchore: Temporarily disable tombi schema.strict for pyproject.toml (<a\nhref=\"https://redirect.github.com/ansible/ansible-compat/issues/545\">#545</a>)</li>\n<li><a\nhref=\"https://github.com/ansible/ansible-compat/commit/384ce35dbf27ca74b0f92b751b93c25633e2d8d4\"><code>384ce35</code></a>\nchore(deps): update all dependencies (<a\nhref=\"https://redirect.github.com/ansible/ansible-compat/issues/544\">#544</a>)</li>\n<li><a\nhref=\"https://github.com/ansible/ansible-compat/commit/4900c15e756d60c214fb059cf735f5d34770731c\"><code>4900c15</code></a>\nchore(deps): update all dependencies (<a\nhref=\"https://redirect.github.com/ansible/ansible-compat/issues/543\">#543</a>)</li>\n<li><a\nhref=\"https://github.com/ansible/ansible-compat/commit/523a99d720a809a346a55474fa1deaaaa78ef8da\"><code>523a99d</code></a>\nchore(deps): update all dependencies (<a\nhref=\"https://redirect.github.com/ansible/ansible-compat/issues/542\">#542</a>)</li>\n<li><a\nhref=\"https://github.com/ansible/ansible-compat/commit/77ff6e6bab69662edc408d3fb4e1134c4ce69e81\"><code>77ff6e6</code></a>\nchore(deps): update all dependencies (<a\nhref=\"https://redirect.github.com/ansible/ansible-compat/issues/540\">#540</a>)</li>\n<li><a\nhref=\"https://github.com/ansible/ansible-compat/commit/44a2e5c015c003712b2aea4ee43dde012507c5b1\"><code>44a2e5c</code></a>\nchore(deps): update all dependencies (<a\nhref=\"https://redirect.github.com/ansible/ansible-compat/issues/539\">#539</a>)</li>\n<li><a\nhref=\"https://github.com/ansible/ansible-compat/commit/b4dc1bb2583c23ceb221f906fe3352c943cafd56\"><code>b4dc1bb</code></a>\nAdd finalize workflow for secure sonarcloud checks (<a\nhref=\"https://redirect.github.com/ansible/ansible-compat/issues/538\">#538</a>)</li>\n<li>Additional commits viewable in <a\nhref=\"https://github.com/ansible/ansible-compat/compare/v25.1.4...v25.12.0\">compare\nview</a></li>\n</ul>\n</details>\n<br />\n\nUpdates `ansible-core` from 2.18.3 to 2.20.1\n<details>\n<summary>Release notes</summary>\n<p><em>Sourced from <a\nhref=\"https://github.com/ansible/ansible/releases\">ansible-core's\nreleases</a>.</em></p>\n<blockquote>\n<h2>v2.20.1</h2>\n<h1>Changelog</h1>\n<p>See the <a\nhref=\"https://github.com/ansible/ansible/blob/v2.20.1/changelogs/CHANGELOG-v2.20.rst\">full\nchangelog</a> for the changes included in this release.</p>\n<h1>Release Artifacts</h1>\n<ul>\n<li>Built Distribution: <a\nhref=\"https://files.pythonhosted.org/packages/56/8c/b9ef852c9322bffd08ef72c8d6737922af810920e8ebd6ae5c9c5ac1f623/ansible_core-2.20.1-py3-none-any.whl\">ansible_core-2.20.1-py3-none-any.whl</a>\n- 2412350 bytes\n<ul>\n<li>2a66825b4a53f130b62515e7e2a3d811d544b19b6e8a22d9ef88c55896384cb3\n(SHA256)</li>\n</ul>\n</li>\n<li>Source Distribution: <a\nhref=\"https://files.pythonhosted.org/packages/3e/47/3543ea4e7ad65859c0043e9a03e1da99c57c22dfb29027e9951dd58e7524/ansible_core-2.20.1.tar.gz\">ansible_core-2.20.1.tar.gz</a>\n- 3313203 bytes\n<ul>\n<li>a891e5f90cd46626778f0f3d545ec1115840c9b50e8adf25944c5e1748452106\n(SHA256)</li>\n</ul>\n</li>\n</ul>\n<h2>v2.20.1rc1</h2>\n<h1>Changelog</h1>\n<p>See the <a\nhref=\"https://github.com/ansible/ansible/blob/v2.20.1rc1/changelogs/CHANGELOG-v2.20.rst\">full\nchangelog</a> for the changes included in this release.</p>\n<h1>Release Artifacts</h1>\n<ul>\n<li>Built Distribution: <a\nhref=\"https://files.pythonhosted.org/packages/10/b7/7f2054a657d019eba64b3c619184a62344d66bf0e935b606e70cf51828b0/ansible_core-2.20.1rc1-py3-none-any.whl\">ansible_core-2.20.1rc1-py3-none-any.whl</a>\n- 2412426 bytes\n<ul>\n<li>f30cba6f8e008662a8b8f327248b0dd151d679483a9f044e1fd7f67674bdea10\n(SHA256)</li>\n</ul>\n</li>\n<li>Source Distribution: <a\nhref=\"https://files.pythonhosted.org/packages/47/94/16022ff2d35d872a8261a4ddf2c6886ccbc1d321dec999cc83f8031889f6/ansible_core-2.20.1rc1.tar.gz\">ansible_core-2.20.1rc1.tar.gz</a>\n- 3318570 bytes\n<ul>\n<li>5491a48f43e54c39deb23e5411c4430f3a61f29b55d67dcc80dbb670ca12dd55\n(SHA256)</li>\n</ul>\n</li>\n</ul>\n<h2>v2.20.0</h2>\n<h1>Changelog</h1>\n<p>See the <a\nhref=\"https://github.com/ansible/ansible/blob/v2.20.0/changelogs/CHANGELOG-v2.20.rst\">full\nchangelog</a> for the changes included in this release.</p>\n<h1>Release Artifacts</h1>\n<ul>\n<li>Built Distribution: <a\nhref=\"https://files.pythonhosted.org/packages/f2/50/0e2057e0ba539299f8a5caf2471f80c1a69d5aad8bc38f05692ec254c3c5/ansible_core-2.20.0-py3-none-any.whl\">ansible_core-2.20.0-py3-none-any.whl</a>\n- 2402601 bytes\n<ul>\n<li>665f9e46401509f1f799b0fc624ce162127765885d61607c5e31a0f77652d7b6\n(SHA256)</li>\n</ul>\n</li>\n<li>Source Distribution: <a\nhref=\"https://files.pythonhosted.org/packages/02/5b/8992daa4102cf92eca06f7e40d9c9cfdb2d6440719dff9944417c570fea6/ansible_core-2.20.0.tar.gz\">ansible_core-2.20.0.tar.gz</a>\n- 3315281 bytes\n<ul>\n<li>cd73faf28a056c933bc1eee8f66ab597e7ec7309d42c8a6e5d6e4294c4a78b54\n(SHA256)</li>\n</ul>\n</li>\n</ul>\n<h2>v2.20.0rc3</h2>\n<h1>Changelog</h1>\n<p>See the <a\nhref=\"https://github.com/ansible/ansible/blob/v2.20.0rc3/changelogs/CHANGELOG-v2.20.rst\">full\nchangelog</a> for the changes included in this release.</p>\n<h1>Release Artifacts</h1>\n<ul>\n<li>Built Distribution: <a\nhref=\"https://files.pythonhosted.org/packages/a8/1c/d1382312469f6aad905d8e284901a69dba95522f1c234dd67732ec71c9ed/ansible_core-2.20.0rc3-py3-none-any.whl\">ansible_core-2.20.0rc3-py3-none-any.whl</a>\n- 2412137 bytes\n<ul>\n<li>2360711f7d29868ed05f5d182512ca3bda7f53ed614dab9add5830f91fa3045e\n(SHA256)</li>\n</ul>\n</li>\n<li>Source Distribution: <a\nhref=\"https://files.pythonhosted.org/packages/a2/f3/b67be5fa09b30b3dc48e42e951755c821ad77c8eab87012faf9ac79dd5b3/ansible_core-2.20.0rc3.tar.gz\">ansible_core-2.20.0rc3.tar.gz</a>\n- 3314699 bytes\n<ul>\n<li>4a57f6ac954f60b7405795c53f7a6a6966a97d30bfd50209f74e49c720954f59\n(SHA256)</li>\n</ul>\n</li>\n</ul>\n<h2>v2.20.0rc2</h2>\n<h1>Changelog</h1>\n<p>See the <a\nhref=\"https://github.com/ansible/ansible/blob/v2.20.0rc2/changelogs/CHANGELOG-v2.20.rst\">full\nchangelog</a> for the changes included in this release.</p>\n<h1>Release Artifacts</h1>\n<!-- raw HTML omitted -->\n</blockquote>\n<p>... (truncated)</p>\n</details>\n<details>\n<summary>Commits</summary>\n<ul>\n<li><a\nhref=\"https://github.com/ansible/ansible/commit/55ee8acd65cd94a110ce5eb5a3668c320b26f7d8\"><code>55ee8ac</code></a>\nNew release v2.20.1 (<a\nhref=\"https://redirect.github.com/ansible/ansible/issues/86312\">#86312</a>)</li>\n<li><a\nhref=\"https://github.com/ansible/ansible/commit/c0a6166fd1621c078732391d0cf9c7b38e6074e5\"><code>c0a6166</code></a>\nUpdate Ansible release version to v2.20.1rc1.post0. (<a\nhref=\"https://redirect.github.com/ansible/ansible/issues/86290\">#86290</a>)</li>\n<li><a\nhref=\"https://github.com/ansible/ansible/commit/754d8eb86899009d85ab34c8d812b2895fa3c279\"><code>754d8eb</code></a>\nNew release v2.20.1rc1 (<a\nhref=\"https://redirect.github.com/ansible/ansible/issues/86286\">#86286</a>)</li>\n<li><a\nhref=\"https://github.com/ansible/ansible/commit/fe6654bc8c5fbb7623c1a487b541ca24bd5d4860\"><code>fe6654b</code></a>\nvars loading, show file name instead of vars in error (<a\nhref=\"https://redirect.github.com/ansible/ansible/issues/86277\">#86277</a>)\n(<a\nhref=\"https://redirect.github.com/ansible/ansible/issues/86280\">#86280</a>)</li>\n<li><a\nhref=\"https://github.com/ansible/ansible/commit/19428e37afa96caf24df8e12bb0c9b71806fbc5b\"><code>19428e3</code></a>\n[stable-2.20] regex: fix example documentation for regex_test (<a\nhref=\"https://redirect.github.com/ansible/ansible/issues/86172\">#86172</a>)\n(<a\nhref=\"https://redirect.github.com/ansible/ansible/issues/86256\">#86256</a>)</li>\n<li><a\nhref=\"https://github.com/ansible/ansible/commit/f704b0c7eff9a8e5c8e4e9f998a194b9c045c119\"><code>f704b0c</code></a>\nruntime-metadata sanity test: ignore pre-release and build identifier\n(<a\nhref=\"https://redirect.github.com/ansible/ansible/issues/85198\">#85198</a>...</li>\n<li><a\nhref=\"https://github.com/ansible/ansible/commit/4e2136cdbd37e209f1773735af2a53307d4404cc\"><code>4e2136c</code></a>\n[stable-2.20] Fix getuser fallback error handling (<a\nhref=\"https://redirect.github.com/ansible/ansible/issues/86144\">#86144</a>)\n(<a\nhref=\"https://redirect.github.com/ansible/ansible/issues/86167\">#86167</a>)</li>\n<li><a\nhref=\"https://github.com/ansible/ansible/commit/79a243940ffc79f121b398bea67751c5ac5e4e5f\"><code>79a2439</code></a>\nFix AnsibleModule.human_to_bytes (<a\nhref=\"https://redirect.github.com/ansible/ansible/issues/85259\">#85259</a>)\n(<a\nhref=\"https://redirect.github.com/ansible/ansible/issues/86173\">#86173</a>)</li>\n<li><a\nhref=\"https://github.com/ansible/ansible/commit/8de1d8ea3f2b95162c55bfeca06b63391e9bdcca\"><code>8de1d8e</code></a>\n[stable-2.20] get_url: Fix regex for GNU digest line (<a\nhref=\"https://redirect.github.com/ansible/ansible/issues/86134\">#86134</a>)\n(<a\nhref=\"https://redirect.github.com/ansible/ansible/issues/86215\">#86215</a>)</li>\n<li><a\nhref=\"https://github.com/ansible/ansible/commit/cc7b98441817216c1e2a97748c2e16198c7972d7\"><code>cc7b984</code></a>\n[stable-2.20] Fix first_found example (<a\nhref=\"https://redirect.github.com/ansible/ansible/issues/86224\">#86224</a>)\n(<a\nhref=\"https://redirect.github.com/ansible/ansible/issues/86225\">#86225</a>)</li>\n<li>Additional commits viewable in <a\nhref=\"https://github.com/ansible/ansible/compare/v2.18.3...v2.20.1\">compare\nview</a></li>\n</ul>\n</details>\n<br />\n\nUpdates `ansible-lint` from 25.1.3 to 25.12.2\n<details>\n<summary>Release notes</summary>\n<p><em>Sourced from <a\nhref=\"https://github.com/ansible/ansible-lint/releases\">ansible-lint's\nreleases</a>.</em></p>\n<blockquote>\n<h2>v25.12.2</h2>\n<h2>Fixes</h2>\n<ul>\n<li>Update configuring.md to reflect correct precommit name (<a\nhref=\"https://redirect.github.com/ansible/ansible-lint/issues/4872\">#4872</a>)\n<a\nhref=\"https://github.com/AgustinRamiroDiaz\"><code>@AgustinRamiroDiaz</code></a></li>\n<li>fix: prevent trailing space on blank comment lines (<a\nhref=\"https://redirect.github.com/ansible/ansible-lint/issues/4868\">#4868</a>)\n<a\nhref=\"https://github.com/emmanuel-ferdman\"><code>@emmanuel-ferdman</code></a></li>\n</ul>\n<h2>Maintenance</h2>\n<ul>\n<li>chore(deps): update dependencies [security] - abandoned (<a\nhref=\"https://redirect.github.com/ansible/ansible-lint/issues/4874\">#4874</a>)\n@<a href=\"https://github.com/apps/renovate\">renovate[bot]</a></li>\n<li>chore(deps): update all dependencies (<a\nhref=\"https://redirect.github.com/ansible/ansible-lint/issues/4867\">#4867</a>)\n@<a href=\"https://github.com/apps/renovate\">renovate[bot]</a></li>\n<li>chore(deps): update dependencies [security] (<a\nhref=\"https://redirect.github.com/ansible/ansible-lint/issues/4873\">#4873</a>)\n@<a href=\"https://github.com/apps/renovate\">renovate[bot]</a></li>\n<li>chore(deps): bump filelock from 3.20.0 to 3.20.1 in /.config (<a\nhref=\"https://redirect.github.com/ansible/ansible-lint/issues/4869\">#4869</a>)\n@<a href=\"https://github.com/apps/dependabot\">dependabot[bot]</a></li>\n<li>chore(deps): update dependencies [security] (<a\nhref=\"https://redirect.github.com/ansible/ansible-lint/issues/4870\">#4870</a>)\n@<a href=\"https://github.com/apps/renovate\">renovate[bot]</a></li>\n</ul>\n<h2>v25.12.1</h2>\n<h2>Features</h2>\n<ul>\n<li>feat(action): Allow users to override python_version (<a\nhref=\"https://redirect.github.com/ansible/ansible-lint/issues/4829\">#4829</a>)\n<a\nhref=\"https://github.com/konstruktoid\"><code>@konstruktoid</code></a></li>\n</ul>\n<h2>Fixes</h2>\n<ul>\n<li>fix: avoid stacktrace when ansible syntax check does not return\nfilename (<a\nhref=\"https://redirect.github.com/ansible/ansible-lint/issues/4864\">#4864</a>)\n<a href=\"https://github.com/ssbarnea\"><code>@ssbarnea</code></a></li>\n<li>fix: change setup-python action to specific commit (<a\nhref=\"https://redirect.github.com/ansible/ansible-lint/issues/4856\">#4856</a>)\n<a href=\"https://github.com/arcanis\"><code>@arcanis</code></a></li>\n<li>fix: autofix comments missing space after hash (<a\nhref=\"https://redirect.github.com/ansible/ansible-lint/issues/4855\">#4855</a>)\n<a\nhref=\"https://github.com/emmanuel-ferdman\"><code>@emmanuel-ferdman</code></a></li>\n</ul>\n<h2>Maintenance</h2>\n<ul>\n<li>chore(deps): update all dependencies (<a\nhref=\"https://redirect.github.com/ansible/ansible-lint/issues/4863\">#4863</a>)\n@<a href=\"https://github.com/apps/renovate\">renovate[bot]</a></li>\n<li>chore: pre-commit autoupdate (<a\nhref=\"https://redirect.github.com/ansible/ansible-lint/issues/4859\">#4859</a>)\n@<a\nhref=\"https://github.com/apps/pre-commit-ci\">pre-commit-ci[bot]</a></li>\n<li>chore: adopt pytest>=9.0.0 config (<a\nhref=\"https://redirect.github.com/ansible/ansible-lint/issues/4861\">#4861</a>)\n<a href=\"https://github.com/Qalthos\"><code>@Qalthos</code></a></li>\n<li>chore(deps): update all dependencies (<a\nhref=\"https://redirect.github.com/ansible/ansible-lint/issues/4852\">#4852</a>)\n@<a href=\"https://github.com/apps/renovate\">renovate[bot]</a></li>\n</ul>\n<h2>v25.12.0</h2>\n<h2>Maintenance</h2>\n<ul>\n<li>chore: Remove cffi, importlib-metadata, reduce core lower bound (<a\nhref=\"https://redirect.github.com/ansible/ansible-lint/issues/4860\">#4860</a>)\n<a href=\"https://github.com/cidrblock\"><code>@cidrblock</code></a></li>\n</ul>\n<h2>v25.11.1</h2>\n<h2>Features</h2>\n<ul>\n<li>feat: detect missing prefix in role's handlers vars (<a\nhref=\"https://redirect.github.com/ansible/ansible-lint/issues/4826\">#4826</a>)\n<a href=\"https://github.com/cavcrosby\"><code>@cavcrosby</code></a></li>\n</ul>\n<h2>Fixes</h2>\n<ul>\n<li>Migrate RTD URLs to docs.ansible.com (<a\nhref=\"https://redirect.github.com/ansible/ansible-lint/issues/4842\">#4842</a>)\n<a href=\"https://github.com/gundalow\"><code>@gundalow</code></a></li>\n<li>fix: Pass module spec via stdin instead of command line args (<a\nhref=\"https://redirect.github.com/ansible/ansible-lint/issues/4844\">#4844</a>)\n<a href=\"https://github.com/apollo13\"><code>@apollo13</code></a></li>\n<li>fix: Update mypy python version to 3.12 (<a\nhref=\"https://redirect.github.com/ansible/ansible-lint/issues/4846\">#4846</a>)\n<a\nhref=\"https://github.com/alisonlhart\"><code>@alisonlhart</code></a></li>\n</ul>\n<h2>Maintenance</h2>\n<!-- raw HTML omitted -->\n</blockquote>\n<p>... (truncated)</p>\n</details>\n<details>\n<summary>Commits</summary>\n<ul>\n<li><a\nhref=\"https://github.com/ansible/ansible-lint/commit/a2bc8b8b13a80802215856c56823d85007d3baf5\"><code>a2bc8b8</code></a>\nchore(deps): update dependencies [security] - abandoned (<a\nhref=\"https://redirect.github.com/ansible/ansible-lint/issues/4874\">#4874</a>)</li>\n<li><a\nhref=\"https://github.com/ansible/ansible-lint/commit/9e388ecb62d67237e0929120995b37018f36493c\"><code>9e388ec</code></a>\nchore(deps): update all dependencies (<a\nhref=\"https://redirect.github.com/ansible/ansible-lint/issues/4867\">#4867</a>)</li>\n<li><a\nhref=\"https://github.com/ansible/ansible-lint/commit/53144ffcad9d9810f14e9baf17205e677da7e2e3\"><code>53144ff</code></a>\nchore(deps): update dependencies [security] (<a\nhref=\"https://redirect.github.com/ansible/ansible-lint/issues/4873\">#4873</a>)</li>\n<li><a\nhref=\"https://github.com/ansible/ansible-lint/commit/c3325b41f569b9d2a15ab92c1a3533d037e6da4c\"><code>c3325b4</code></a>\nchore(deps): bump filelock from 3.20.0 to 3.20.1 in /.config (<a\nhref=\"https://redirect.github.com/ansible/ansible-lint/issues/4869\">#4869</a>)</li>\n<li><a\nhref=\"https://github.com/ansible/ansible-lint/commit/ca20e83dbd58e99efddcaae47b4114ef7ea2c1a9\"><code>ca20e83</code></a>\nchore(deps): update dependencies [security] (<a\nhref=\"https://redirect.github.com/ansible/ansible-lint/issues/4870\">#4870</a>)</li>\n<li><a\nhref=\"https://github.com/ansible/ansible-lint/commit/4cab245192e25280272da045f876f344c6515819\"><code>4cab245</code></a>\nUpdate configuring.md to reflect correct precommit name (<a\nhref=\"https://redirect.github.com/ansible/ansible-lint/issues/4872\">#4872</a>)</li>\n<li><a\nhref=\"https://github.com/ansible/ansible-lint/commit/97c379e789e22c7a1ebd0b19766360d996958284\"><code>97c379e</code></a>\nfix: prevent trailing space on blank comment lines (<a\nhref=\"https://redirect.github.com/ansible/ansible-lint/issues/4868\">#4868</a>)</li>\n<li><a\nhref=\"https://github.com/ansible/ansible-lint/commit/40f24c2d511c6662ba96b53a35f386cf8b0c11ad\"><code>40f24c2</code></a>\nfeat(action): Allow users to override python_version (<a\nhref=\"https://redirect.github.com/ansible/ansible-lint/issues/4829\">#4829</a>)</li>\n<li><a\nhref=\"https://github.com/ansible/ansible-lint/commit/6aec17d1d38798a94096fedc1fb95462f3929246\"><code>6aec17d</code></a>\nchore(deps): update all dependencies (<a\nhref=\"https://redirect.github.com/ansible/ansible-lint/issues/4863\">#4863</a>)</li>\n<li><a\nhref=\"https://github.com/ansible/ansible-lint/commit/d824eb6ed32ac4704cc27c04ddee9e1796628dff\"><code>d824eb6</code></a>\nfix: avoid stacktrace when ansible syntax check does not return filename\n(<a\nhref=\"https://redirect.github.com/ansible/ansible-lint/issues/4864\">#4864</a>)</li>\n<li>Additional commits viewable in <a\nhref=\"https://github.com/ansible/ansible-lint/compare/v25.1.3...v25.12.2\">compare\nview</a></li>\n</ul>\n</details>\n<br />\n\nUpdates `attrs` from 25.3.0 to 25.4.0\n<details>\n<summary>Commits</summary>\n<ul>\n<li>See full diff in <a\nhref=\"https://github.com/sponsors/hynek/commits\">compare view</a></li>\n</ul>\n</details>\n<br />\n\nUpdates `black` from 25.9.0 to 25.12.0\n<details>\n<summary>Release notes</summary>\n<p><em>Sourced from <a\nhref=\"https://github.com/psf/black/releases\">black's\nreleases</a>.</em></p>\n<blockquote>\n<h2>25.12.0</h2>\n<p>Please test out the draft 2026 style in version 26.1a1! This style\nwill be finalized in\nthe January release (26.1.0). Most of the changes in\n<code>--preview</code> will be in the 2026\nstable style, but not all.\n<a href=\"https://redirect.github.com/psf/black/issues/4042\">Please share\nyour feedback!</a></p>\n<p>This release (25.12.0) will still produce the 2025 style.</p>\n<h3>Highlights</h3>\n<ul>\n<li>Black no longer supports running with Python 3.9 (<a\nhref=\"https://redirect.github.com/psf/black/issues/4842\">#4842</a>)</li>\n</ul>\n<h3>Stable style</h3>\n<ul>\n<li>Fix bug where comments preceding <code># fmt: off</code>/<code>#\nfmt: on</code> blocks were incorrectly\nremoved, particularly affecting Jupytext's <code># %% [markdown]</code>\ncomments (<a\nhref=\"https://redirect.github.com/psf/black/issues/4845\">#4845</a>)</li>\n<li>Fix crash when multiple <code># fmt: skip</code> comments are used\nin a multi-part if-clause, on\nstring literals, or on dictionary entries with long lines (<a\nhref=\"https://redirect.github.com/psf/black/issues/4872\">#4872</a>)</li>\n<li>Fix possible crash when <code>fmt: </code> directives aren't on the\ntop level (<a\nhref=\"https://redirect.github.com/psf/black/issues/4856\">#4856</a>)</li>\n</ul>\n<h3>Preview style</h3>\n<ul>\n<li>Fix <code>fmt: skip</code> skipping the line after instead of the\nline it's on (<a\nhref=\"https://redirect.github.com/psf/black/issues/4855\">#4855</a>)</li>\n<li>Remove unnecessary parentheses from the left-hand side of\nassignments while preserving\nmagic trailing commas and intentional multiline formatting (<a\nhref=\"https://redirect.github.com/psf/black/issues/4865\">#4865</a>)</li>\n<li>Fix <code>fix_fmt_skip_in_one_liners</code> crashing on\n<code>with</code> statements (<a\nhref=\"https://redirect.github.com/psf/black/issues/4853\">#4853</a>)</li>\n<li>Fix <code>fix_fmt_skip_in_one_liners</code> crashing on annotated\nparameters (<a\nhref=\"https://redirect.github.com/psf/black/issues/4854\">#4854</a>)</li>\n<li>Fix new lines being added after imports with <code># fmt:\nskip</code> on them (<a\nhref=\"https://redirect.github.com/psf/black/issues/4894\">#4894</a>)</li>\n</ul>\n<h3>Packaging</h3>\n<ul>\n<li>Releases now include arm64 Windows binaries and wheels (<a\nhref=\"https://redirect.github.com/psf/black/issues/4814\">#4814</a>)</li>\n</ul>\n<h3>Integrations</h3>\n<ul>\n<li>Add <code>output-file</code> input to GitHub Action\n<code>psf/black</code> to write formatter output to a\nfile for artifact capture and log cleanliness (<a\nhref=\"https://redirect.github.com/psf/black/issues/4824\">#4824</a>)</li>\n</ul>\n<h2>25.11.0</h2>\n<h3>Highlights</h3>\n<ul>\n<li>Enable base 3.14 support (<a\nhref=\"https://redirect.github.com/psf/black/issues/4804\">#4804</a>)</li>\n<li>Add support for the new Python 3.14 t-string syntax introduced by\nPEP 750 (<a\nhref=\"https://redirect.github.com/psf/black/issues/4805\">#4805</a>)</li>\n</ul>\n<h3>Stable style</h3>\n<ul>\n<li>Fix bug where comments between <code># fmt: off</code> and <code>#\nfmt: on</code> were reformatted (<a\nhref=\"https://redirect.github.com/psf/black/issues/4811\">#4811</a>)</li>\n<li>Comments containing fmt directives now preserve their exact\nformatting instead of\nbeing normalized (<a\nhref=\"https://redirect.github.com/psf/black/issues/4811\">#4811</a>)</li>\n</ul>\n<!-- raw HTML omitted -->\n</blockquote>\n<p>... (truncated)</p>\n</details>\n<details>\n<summary>Changelog</summary>\n<p><em>Sourced from <a\nhref=\"https://github.com/psf/black/blob/main/CHANGES.md\">black's\nchangelog</a>.</em></p>\n<blockquote>\n<h2>25.12.0</h2>\n<h3>Highlights</h3>\n<ul>\n<li>Black no longer supports running with Python 3.9 (<a\nhref=\"https://redirect.github.com/psf/black/issues/4842\">#4842</a>)</li>\n</ul>\n<h3>Stable style</h3>\n<ul>\n<li>Fix bug where comments preceding <code># fmt: off</code>/<code>#\nfmt: on</code> blocks were incorrectly\nremoved, particularly affecting Jupytext's <code># %% [markdown]</code>\ncomments (<a\nhref=\"https://redirect.github.com/psf/black/issues/4845\">#4845</a>)</li>\n<li>Fix crash when multiple <code># fmt: skip</code> comments are used\nin a multi-part if-clause, on\nstring literals, or on dictionary entries with long lines (<a\nhref=\"https://redirect.github.com/psf/black/issues/4872\">#4872</a>)</li>\n<li>Fix possible crash when <code>fmt: </code> directives aren't on the\ntop level (<a\nhref=\"https://redirect.github.com/psf/black/issues/4856\">#4856</a>)</li>\n</ul>\n<h3>Preview style</h3>\n<ul>\n<li>Fix <code>fmt: skip</code> skipping the line after instead of the\nline it's on (<a\nhref=\"https://redirect.github.com/psf/black/issues/4855\">#4855</a>)</li>\n<li>Remove unnecessary parentheses from the left-hand side of\nassignments while preserving\nmagic trailing commas and intentional multiline formatting (<a\nhref=\"https://redirect.github.com/psf/black/issues/4865\">#4865</a>)</li>\n<li>Fix <code>fix_fmt_skip_in_one_liners</code> crashing on\n<code>with</code> statements (<a\nhref=\"https://redirect.github.com/psf/black/issues/4853\">#4853</a>)</li>\n<li>Fix <code>fix_fmt_skip_in_one_liners</code> crashing on annotated\nparameters (<a\nhref=\"https://redirect.github.com/psf/black/issues/4854\">#4854</a>)</li>\n<li>Fix new lines being added after imports with <code># fmt:\nskip</code> on them (<a\nhref=\"https://redirect.github.com/psf/black/issues/4894\">#4894</a>)</li>\n</ul>\n<h3>Packaging</h3>\n<ul>\n<li>Releases now include arm64 Windows binaries and wheels (<a\nhref=\"https://redirect.github.com/psf/black/issues/4814\">#4814</a>)</li>\n</ul>\n<h3>Integrations</h3>\n<ul>\n<li>Add <code>output-file</code> input to GitHub Action\n<code>psf/black</code> to write formatter output to a\nfile for artifact capture and log cleanliness (<a\nhref=\"https://redirect.github.com/psf/black/issues/4824\">#4824</a>)</li>\n</ul>\n<h2>25.11.0</h2>\n<h3>Highlights</h3>\n<ul>\n<li>Enable base 3.14 support (<a\nhref=\"https://redirect.github.com/psf/black/issues/4804\">#4804</a>)</li>\n<li>Add support for the new Python 3.14 t-string syntax introduced by\nPEP 750 (<a\nhref=\"https://redirect.github.com/psf/black/issues/4805\">#4805</a>)</li>\n</ul>\n<h3>Stable style</h3>\n<ul>\n<li>Fix bug where comments between <code># fmt: off</code> and <code>#\nfmt: on</code> were reformatted (<a\nhref=\"https://redirect.github.com/psf/black/issues/4811\">#4811</a>)</li>\n<li>Comments containing fmt directives now preserve their exact\nformatting instead of\nbeing normalized (<a\nhref=\"https://redirect.github.com/psf/black/issues/4811\">#4811</a>)</li>\n</ul>\n<h3>Preview style</h3>\n<ul>\n<li>Move <code>multiline_string_handling</code> from\n<code>--unstable</code> to <code>--preview</code> (<a\nhref=\"https://redirect.github.com/psf/black/issues/4760\">#4760</a>)</li>\n<li>Fix bug where module docstrings would be treated as normal strings\nif preceded by\ncomments (<a\nhref=\"https://redirect.github.com/psf/black/issues/4764\">#4764</a>)</li>\n</ul>\n<!-- raw HTML omitted -->\n</blockquote>\n<p>... (truncated)</p>\n</details>\n<details>\n<summary>Commits</summary>\n<ul>\n<li><a\nhref=\"https://github.com/psf/black/commit/782e5605c86aab56be6f905da10dcd3e463fd9c2\"><code>782e560</code></a>\nPin actions/[email protected] (<a\nhref=\"https://redirect.github.com/psf/black/issues/4895\">#4895</a>)</li>\n<li><a\nhref=\"https://github.com/psf/black/commit/f0f40945c1b0ebaa9ca733aca517610574c451d6\"><code>f0f4094</code></a>\nFix new lines being added after imports with <code># fmt: skip</code> on\nthem (<a\nhref=\"https://redirect.github.com/psf/black/issues/4894\">#4894</a>)</li>\n<li><a\nhref=\"https://github.com/psf/black/commit/70fc194172184861aafb418c124824cae0fbe3b0\"><code>70fc194</code></a>\nRevert "Fix <code># fmt: skip</code> ignored in deeply nested\nexpressions" (<a\nhref=\"https://redirect.github.com/psf/black/issues/4893\">#4893</a>)</li>\n<li><a\nhref=\"https://github.com/psf/black/commit/7044b145f4826e0d6e07178d89666856a8e37aff\"><code>7044b14</code></a>\nPrepare 25.12.0 release (<a\nhref=\"https://redirect.github.com/psf/black/issues/4891\">#4891</a>)</li>\n<li><a\nhref=\"https://github.com/psf/black/commit/5b470f0e577f3c39e0f7d668934d587c0733a652\"><code>5b470f0</code></a>\nFix <code># fmt: skip</code> ignored in deeply nested expressions (<a\nhref=\"https://redirect.github.com/psf/black/issues/4883\">#4883</a>)</li>\n<li><a\nhref=\"https://github.com/psf/black/commit/1b342ef5b0433fc1ed61a7e05a65744bef706fc9\"><code>1b342ef</code></a>\nFix crash when multiple <code># fmt: skip</code> comments are used in\nmulti-part if-clau...</li>\n<li><a\nhref=\"https://github.com/psf/black/commit/7b265f16634155dafcca65f6122ef7ed8d14a67f\"><code>7b265f1</code></a>\nPin Hatch to hopefully fix Docker builds (<a\nhref=\"https://redirect.github.com/psf/black/issues/4878\">#4878</a>)</li>\n<li><a\nhref=\"https://github.com/psf/black/commit/c9523f463fdc9d9f9f0e61ca92d9b37acdf0d8fc\"><code>c9523f4</code></a>\nAttempt to fix Docker build failures (<a\nhref=\"https://redirect.github.com/psf/black/issues/4876\">#4876</a>)</li>\n<li><a\nhref=\"https://github.com/psf/black/commit/0f376e0c35bcb29f87ce18eace30333a3e105841\"><code>0f376e0</code></a>\nFix crashes when fmt directives are indented (<a\nhref=\"https://redirect.github.com/psf/black/issues/4856\">#4856</a>)</li>\n<li><a\nhref=\"https://github.com/psf/black/commit/a8bfcc1040fdfce2e02cdd85dc8bf4e7abe0462f\"><code>a8bfcc1</code></a>\nFix <code>fmt: skip</code> skipping the line after instead of the line\nit's on (<a\nhref=\"https://redirect.github.com/psf/black/issues/4855\">#4855</a>)</li>\n<li>Additional commits viewable in <a\nhref=\"https://github.com/psf/black/compare/25.9.0...25.12.0\">compare\nview</a></li>\n</ul>\n</details>\n<br />\n\nUpdates `cachetools` from 6.2.0 to 6.2.4\n<details>\n<summary>Changelog</summary>\n<p><em>Sourced from <a\nhref=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\">cachetools's\nchangelog</a>.</em></p>\n<blockquote>\n<h1>v6.2.4 (2025-12-15)</h1>\n<ul>\n<li>Fix license information displayed on PyPI be using an updated\nversion of <code>twine</code> for uploading.</li>\n</ul>\n<h1>v6.2.3 (2025-12-12)</h1>\n<ul>\n<li>\n<p>Improve documentation regarding <code>@cachedmethod</code> with\n<code>condition</code>\nparameter.</p>\n</li>\n<li>\n<p>Minor style and readability improvements.</p>\n</li>\n<li>\n<p>Modernize build environment.</p>\n</li>\n<li>\n<p>Update CI environment.</p>\n</li>\n</ul>\n<h1>v6.2.2 (2025-11-13)</h1>\n<ul>\n<li>\n<p>Minor improvements from GitHub Copilot code review.</p>\n</li>\n<li>\n<p>Improve documentation.</p>\n</li>\n</ul>\n<h1>v6.2.1 (2025-10-12)</h1>\n<ul>\n<li>\n<p>Add support for Python 3.14.</p>\n</li>\n<li>\n<p>Improve documentation.</p>\n</li>\n<li>\n<p>Update CI environment.</p>\n</li>\n</ul>\n</blockquote>\n</details>\n<details>\n<summary>Commits</summary>\n<ul>\n<li><a\nhref=\"https://github.com/tkem/cachetools/commit/9983ef8bd76758707ab9d197d4bd9fa47b4fb8bd\"><code>9983ef8</code></a>\nBump version for uploading with updated twine.</li>\n<li><a\nhref=\"https://github.com/tkem/cachetools/commit/c9354683857b10b5e00cb93d06f7549ac8344fc0\"><code>c935468</code></a>\nRelease v6.2.3.</li>\n<li><a\nhref=\"https://github.com/tkem/cachetools/commit/94d1099e6e79d34c436dc9f5d1cc039bcbf76738\"><code>94d1099</code></a>\nPrepare v6.2.3.</li>\n<li><a\nhref=\"https://github.com/tkem/cachetools/commit/af8b7d4ffa48d5947161ddb8c1ef1c60dda1e816\"><code>af8b7d4</code></a>\nFix <a\nhref=\"https://redirect.github.com/tkem/cachetools/issues/372\">#372</a>:\nConvert setup.cfg to pyproject.toml.</li>\n<li><a\nhref=\"https://github.com/tkem/cachetools/commit/20b8a192f666420a1986b793fd5846b89fdcd647\"><code>20b8a19</code></a>\nFix <a\nhref=\"https://redirect.github.com/tkem/cachetools/issues/370\">#370</a>:\nMention that using <a\nhref=\"https://github.com/cachedmethod\"><code>@cachedmethod</code></a>\nwith condition requires self to be...</li>\n<li><a\nhref=\"https://github.com/tkem/cachetools/commit/116fb4c3459067442d731e01a3db4694b50722f1\"><code>116fb4c</code></a>\nMinor style and readability improvements.</li>\n<li><a\nhref=\"https://github.com/tkem/cachetools/commit/96546ea34f8c77df009fb3bc019b72b03589c3fd\"><code>96546ea</code></a>\nBump actions/checkout from 5.0.0 to 6.0.0</li>\n<li><a\nhref=\"https://github.com/tkem/cachetools/commit/0106cc1d4764c9a94cd39a55579ce49bca9f4e1e\"><code>0106cc1</code></a>\nBump actions/setup-python from 6.0.0 to 6.1.0</li>\n<li><a\nhref=\"https://github.com/tkem/cachetools/commit/4ee2600ab09b109f79d4ef08103240bf9f239b2d\"><code>4ee2600</code></a>\nRelease v6.2.2.</li>\n<li><a\nhref=\"https://github.com/tkem/cachetools/commit/f1cec391fea1a1e407fe596b6e37b849adf7fce5\"><code>f1cec39</code></a>\nMinor improvements from GitHub Copilot code review.</li>\n<li>Additional commits viewable in <a\nhref=\"https://github.com/tkem/cachetools/compare/v6.2.0...v6.2.4\">compare\nview</a></li>\n</ul>\n</details>\n<br />\n\nUpdates `cerberus` from 1.3.7 to 1.3.8\n<details>\n<summary>Changelog</summary>\n<p><em>Sourced from <a\nhref=\"https://github.com/pyeve/cerberus/blob/1.3.x/CHANGES.rst\">cerberus's\nchangelog</a>.</em></p>\n<blockquote>\n<h2>Version 1.3.8</h2>\n<p>Released on November 6, 2025.</p>\n<p>New</p>\n<pre><code>\n- Support for Python 3.14\n</code></pre>\n</blockquote>\n</details>\n<details>\n<summary>Commits</summary>\n<ul>\n<li><a\nhref=\"https://github.com/pyeve/cerberus/commit/f2221c5a901bbf8618efb694ef9364bd0882ac9a\"><code>f2221c5</code></a>\nBumps version to 1.3.8</li>\n<li><a\nhref=\"https://github.com/pyeve/cerberus/commit/e7c995709e9fcdb2036ade9f5bf8f608e8ddf2c3\"><code>e7c9957</code></a>\nBump github/codeql-action from 2 to 4 (<a\nhref=\"https://redirect.github.com/pyeve/cerberus/issues/626\">#626</a>)</li>\n<li><a\nhref=\"https://github.com/pyeve/cerberus/commit/665562663c367ef4115725087096e9dd059d42cd\"><code>6655626</code></a>\nBump actions/checkout from 3 to 5 (<a\nhref=\"https://redirect.github.com/pyeve/cerberus/issues/625\">#625</a>)</li>\n<li><a\nhref=\"https://github.com/pyeve/cerberus/commit/4db1211eb2a6fdfc899e9231731c54f60745db92\"><code>4db1211</code></a>\nBump actions/setup-python from 4 to 6 (<a\nhref=\"https://redirect.github.com/pyeve/cerberus/issues/627\">#627</a>)</li>\n<li><a\nhref=\"https://github.com/pyeve/cerberus/commit/3f86cf410618dc646e0bbd8e7eb89161f0f171b2\"><code>3f86cf4</code></a>\nAdds a dependabot configuration to keep GH Actions up-to-date</li>\n<li><a\nhref=\"https://github.com/pyeve/cerberus/commit/b46f8816b3ba339eb0016d5632cde711ad8c6f5c\"><code>b46f881</code></a>\nAdds support for Python 3.14 (<a\nhref=\"https://redirect.github.com/pyeve/cerberus/issues/624\">#624</a>)</li>\n<li><a\nhref=\"https://github.com/pyeve/cerberus/commit/7878e60204a4b05d566e5b9a9db0c6bcc9062fe9\"><code>7878e60</code></a>\nGH Actions: Removes Python 3.7 from the test matrix</li>\n<li><a\nhref=\"https://github.com/pyeve/cerberus/commit/7c9c454bf10fe2a7008220c052c88a425a723ca6\"><code>7c9c454</code></a>\nUpdates black config and applies its style</li>\n<li><a\nhref=\"https://github.com/pyeve/cerberus/commit/1295e100dbaff3d989e7f5c6052419ae68980271\"><code>1295e10</code></a>\ndoclinks: Ignores URLs with the stackoverflow.com authority</li>\n<li>See full diff in <a\nhref=\"https://github.com/pyeve/cerberus/compare/1.3.7...1.3.8\">compare\nview</a></li>\n</ul>\n</details>\n<br />\n\nUpdates `certifi` from 2025.8.3 to 2025.11.12\n<details>\n<summary>Commits</summary>\n<ul>\n<li><a\nhref=\"https://github.com/certifi/python-certifi/commit/37ea150bee10958559f804f128de2fdd48e1ed45\"><code>37ea150</code></a>\n2025.11.12 (<a\nhref=\"https://redirect.github.com/certifi/python-certifi/issues/375\">#375</a>)</li>\n<li><a\nhref=\"https://github.com/certifi/python-certifi/commit/2fa50bb698145e2401e17b23f6969d3952a6f7c1\"><code>2fa50bb</code></a>\nBump actions/upload-artifact from 4.6.2 to 5.0.0 (<a\nhref=\"https://redirect.github.com/certifi/python-certifi/issues/374\">#374</a>)</li>\n<li><a\nhref=\"https://github.com/certifi/python-certifi/commit/6cadb5304715523e57ea425f833aa3495a4e01e4\"><code>6cadb53</code></a>\nBump actions/download-artifact from 5.0.0 to 6.0.0 (<a\nhref=\"https://redirect.github.com/certifi/python-certifi/issues/373\">#373</a>)</li>\n<li><a\nhref=\"https://github.com/certifi/python-certifi/commit/fb14ac49a976b1695d84b1ac1307276a20b3aac9\"><code>fb14ac4</code></a>\n2025.10.05 (<a\nhref=\"https://redirect.github.com/certifi/python-certifi/issues/371\">#371</a>)</li>\n<li><a\nhref=\"https://github.com/certifi/python-certifi/commit/2c7c7ee6b76a118191b685a4cc028d4241f22eb7\"><code>2c7c7ee</code></a>\nAdd Python 3.14 classifier in setup.py</li>\n<li><a\nhref=\"https://github.com/certifi/python-certifi/commit/1a5cb7b3771bba256755f88b3dcf3ac13f064622\"><code>1a5cb7b</code></a>\nBump actions/setup-python from 5.6.0 to 6.0.0 (<a\nhref=\"https://redirect.github.com/certifi/python-certifi/issues/367\">#367</a>)</li>\n<li><a\nhref=\"https://github.com/certifi/python-certifi/commit/dea59605ef2b266c2e0e67938e8c8535a04b1211\"><code>dea5960</code></a>\nBump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.0 (<a\nhref=\"https://redirect.github.com/certifi/python-certifi/issues/366\">#366</a>)</li>\n<li><a\nhref=\"https://github.com/certifi/python-certifi/commit/83566b7c993eef772facdaff59c7bba105675329\"><code>83566b7</code></a>\nBump actions/checkout from 4.2.2 to 5.0.0</li>\n<li><a\nhref=\"https://github.com/certifi/python-certifi/commit/ca2e121bdb304fd01f802d3b1ee6a65684f569f2\"><code>ca2e121</code></a>\nBump actions/download-artifact from 4.3.0 to 5.0.0</li>\n<li>See full diff in <a\nhref=\"https://github.com/certifi/python-certifi/compare/2025.08.03...2025.11.12\">compare\nview</a></li>\n</ul>\n</details>\n<br />\n\nUpdates `charset-normalizer` from 3.4.3 to 3.4.4\n<details>\n<summary>Release notes</summary>\n<p><em>Sourced from <a\nhref=\"https://github.com/jawah/charset_normalizer/releases\">charset-normalizer's\nreleases</a>.</em></p>\n<blockquote>\n<h2>Version 3.4.4</h2>\n<h2><a\nhref=\"https://github.com/Ousret/charset_normalizer/compare/3.4.3...3.4.4\">3.4.4</a>\n(2025-10-13)</h2>\n<h3>Changed</h3>\n<ul>\n<li>Bound <code>setuptools</code> to a specific constraint\n<code>setuptools>=68,<=81</code>.</li>\n<li>Raised upper bound of mypyc for the optional pre-built extension to\nv1.18.2</li>\n</ul>\n<h3>Removed</h3>\n<ul>\n<li><code>setuptools-scm</code> as a build dependency.</li>\n</ul>\n<h3>Misc</h3>\n<ul>\n<li>Enforced hashes in <code>dev-requirements.txt</code> and created\n<code>ci-requirements.txt</code> for security purposes.</li>\n<li>Additional pre-built wheels for riscv64, s390x, and armv7l\narchitectures.</li>\n<li>Restore <code>multiple.intoto.jsonl</code> in GitHub releases in\naddition to individual attestation file per wheel.</li>\n</ul>\n</blockquote>\n</details>\n<details>\n<summary>Changelog</summary>\n<p><em>Sourced from <a\nhref=\"https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md\">charset-normalizer's\nchangelog</a>.</em></p>\n<blockquote>\n<h2><a\nhref=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.4\">3.4.4</a>\n(2025-10-13)</h2>\n<h3>Changed</h3>\n<ul>\n<li>Bound <code>setuptools</code> to a specific constraint\n<code>setuptools>=68,<=81</code>.</li>\n<li>Raised upper bound of mypyc for the optional pre-built extension to\nv1.18.2</li>\n</ul>\n<h3>Removed</h3>\n<ul>\n<li><code>setuptools-scm</code> as a build dependency.</li>\n</ul>\n<h3>Misc</h3>\n<ul>\n<li>Enforced hashes in <code>dev-requirements.txt</code> and created\n<code>ci-requirements.txt</code> for security purposes.</li>\n<li>Additional pre-built wheels for riscv64, s390x, and armv7l\narchitectures.</li>\n<li>Restore <code> multiple.intoto.jsonl</code> in GitHub releases in\naddition to individual attestation file per wheel.</li>\n</ul>\n</blockquote>\n</details>\n<details>\n<summary>Commits</summary>\n<ul>\n<li><a\nhref=\"https://github.com/jawah/charset_normalizer/commit/b30ffdcc2f11043c0d34e60fe66d3815cd49b32b\"><code>b30ffdc</code></a>\n:wrench: fix checksum step in cd.yml</li>\n<li><a\nhref=\"https://github.com/jawah/charset_normalizer/commit/d3fbfcfad7dfe3c640886f1a6a6351da527f6634\"><code>d3fbfcf</code></a>\n:wrench: fix cd.yml</li>\n<li><a\nhref=\"https://github.com/jawah/charset_normalizer/commit/dafbb95f8c00d3cc8b99158caa63006ffab98749\"><code>dafbb95</code></a>\nRelease 3.4.4 (<a\nhref=\"https://redirect.github.com/jawah/charset_normalizer/issues/658\">#658</a>)</li>\n<li><a\nhref=\"https://github.com/jawah/charset_normalizer/commit/1f18ffaa69d2c84fea7abedb8840197ba9c14562\"><code>1f18ffa</code></a>\n:arrow_up: raise mypy upper bound to 1.18.2</li>\n<li><a\nhref=\"https://github.com/jawah/charset_normalizer/commit/ef4ac69ad203891f24e26b2422ab3a08053044fa\"><code>ef4ac69</code></a>\nMerge branch 'release-3.4.4' of github.com:jawah/charset_normalizer into\nrele...</li>\n<li><a\nhref=\"https://github.com/jawah/charset_normalizer/commit/4b35dda053db5e2e60a247e80a116e4ef04f439b\"><code>4b35dda</code></a>\n:pencil: write changelog for 3.4.4</li>\n<li><a\nhref=\"https://github.com/jawah/charset_normalizer/commit/0ec6452f1a34cbc77a55b237c4118807b44c2a33\"><code>0ec6452</code></a>\n:wrench: update cd.yml workflow (add riscv64, s390x and armv7l)</li>\n<li><a\nhref=\"https://github.com/jawah/charset_normalizer/commit/f341edec8a828dda394abfa011b1ded8b4b102e2\"><code>f341ede</code></a>\n:arrow_up: upgrade dependencies (dev, ci)</li>\n<li><a\nhref=\"https://github.com/jawah/charset_normalizer/commit/a308841e660a4d61ea6c448e7b8bf97415ecdc4a\"><code>a308841</code></a>\n:pencil: write changelog for 3.4.4</li>\n<li><a\nhref=\"https://github.com/jawah/charset_normalizer/commit/9c906da611d5ca5ef076d6bf7f60e629f661d0b0\"><code>9c906da</code></a>\n:wrench: update cd.yml workflow (add riscv64, s390x and armv7l)</li>\n<li>Additional commits viewable in <a\nhref=\"https://github.com/jawah/charset_normalizer/compare/3.4.3...3.4.4\">compare\nview</a></li>\n</ul>\n</details>\n<br />\n\nUpdates `click` from 8.1.8 to 8.3.1\n<details>\n<summary>Release notes</summary>\n<p><em>Sourced from <a\nhref=\"https://github.com/pallets/click/releases\">click's\nreleases</a>.</em></p>\n<blockquote>\n<h2>8.3.1</h2>\n<p>This is the Click 8.3.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.</p>\n<p>PyPI: <a\nhref=\"https://pypi.org/project/click/8.3.1/\">https://pypi.org/project/click/8.3.1/</a>\nChanges: <a\nhref=\"https://click.palletsprojects.com/page/changes/#version-8-3-1\">https://click.palletsprojects.com/page/changes/#version-8-3-1</a>\nMilestone: <a\nhref=\"https://github.com/pallets/click/milestone/28\">https://github.com/pallets/click/milestone/28</a></p>\n<ul>\n<li>Don't discard pager arguments by correctly using\n<code>subprocess.Popen</code>. <a\nhref=\"https://redirect.github.com/pallets/click/issues/3039\">#3039</a>\n<a\nhref=\"https://redirect.github.com/pallets/click/issues/3055\">#3055</a></li>\n<li>Replace <code>Sentinel.UNSET</code> default values by\n<code>None</code> as they're passed through the\n<code>Context.invoke()</code> method. <a\nhref=\"https://redirect.github.com/pallets/click/issues/3066\">#3066</a>\n<a\nhref=\"https://redirect.github.com/pallets/click/issues/3065\">#3065</a>\n<a\nhref=\"https://redirect.github.com/pallets/click/issues/3068\">#3068</a></li>\n<li>Fix conversion of <code>Sentinel.UNSET</code> happening too early,\nwhich caused incorrect behavior for multiple parameters using the same\nname. <a\nhref=\"https://redirect.github.com/pallets/click/issues/3071\">#3071</a>\n<a\nhref=\"https://redirect.github.com/pallets/click/issues/3079\">#3079</a></li>\n<li>Fix rendering when <code>prompt</code> and <code>confirm</code>\nparameter <code>prompt_suffix</code> is empty. <a\nhref=\"https://redirect.github.com/pallets/click/issues/3019\">#3019</a>\n<a\nhref=\"https://redirect.github.com/pallets/click/issues/3021\">#3021</a></li>\n<li>When <code>Sentinel.UNSET</code> is found during parsing, it will\nskip calls to <code>type_cast_value</code>. <a\nhref=\"https://redirect.github.com/pallets/click/issues/3069\">#3069</a>\n<a\nhref=\"https://redirect.github.com/pallets/click/issues/3090\">#3090</a></li>\n<li>Hide <code>Sentinel.UNSET</code> values as <code>None</code> when\nlooking up for other parameters through the context inside parameter\ncallbacks. <a\nhref=\"https://redirect.github.com/pallets/click/issues/3136\">#3136</a>\n<a\nhref=\"https://redirect.github.com/pallets/click/issues/3137\">#3137</a></li>\n</ul>\n<h2>8.3.0</h2>\n<p>This is the Click 8.3.0 feature release. A feature release may\ninclude new features, remove previously deprecated code, add new\ndeprecation, or introduce potentially breaking changes.</p>\n<p>We encourage everyone to upgrade. You can read more about our <a\nhref=\"https://palletsprojects.com/versions\">Version Support Policy</a>\non our website.</p>\n<p>PyPI: <a\nhref=\"https://pypi.org/project/click/8.3.0/\">https://pypi.org/project/click/8.3.0/</a>\nChanges: <a\nhref=\"https://click.palletsprojects.com/page/changes/#version-8-3-0\">https://click.palletsprojects.com/page/changes/#version-8-3-0</a>\nMilestone <a\nhref=\"https://github.com/pallets/click/milestone/27\">https://github.com/pallets/click/milestone/27</a></p>\n<ul>\n<li>\n<p><strong>Improved flag option handling</strong>: Reworked the\nrelationship between <code>flag_value</code>\nand <code>default</code> parameters for better consistency:</p>\n<ul>\n<li>The <code>default</code> parameter value is now preserved as-is and\npassed directly\nto CLI functions (no more unexpected transformations)</li>\n<li>Exception: flag options with <code>default=True</code> maintain\nbackward compatibility\nby defaulting to their <code>flag_value</code></li>\n<li>The <code>default</code> parameter can now be any type\n(<code>bool</code>, <code>None</code>, etc.)</li>\n<li>Fixes inconsistencies reported in: <a\nhref=\"https://redirect.github.com/pallets/click/issues/1992\">#1992</a>\n<a\nhref=\"https://redirect.github.com/pallets/click/issues/2514\">#2514</a>\n<a\nhref=\"https://redirect.github.com/pallets/click/issues/2610\">#2610</a>\n<a\nhref=\"https://redirect.github.com/pallets/click/issues/3024\">#3024</a>\n<a\nhref=\"https://redirect.github.com/pallets/click/issues/3030\">#3030</a></li>\n</ul>\n</li>\n<li>\n<p>Allow <code>default</code> to be set on <code>Argument</code> for\n<code>nargs = -1</code>. <a\nhref=\"https://redirect.github.com/pallets/click/issues/2164\">#2164</a>\n<a\nhref=\"https://redirect.github.com/pallets/click/issues/3030\">#3030</a></p>\n</li>\n<li>\n<p>Show correct auto complete value for <code>nargs</code> option in\ncombination with flag\noption <a\nhref=\"https://redirect.github.com/pallets/click/issues/2813\">#2813</a></p>\n</li>\n<li>\n<p>Show correct auto complete value for nargs option in combination with\nflag option <a\nhref=\"https://redirect.github.com/pallets/click/issues/2813\">#2813</a></p>\n</li>\n<li>\n<p>Fix handling of quoted and escaped parameters in Fish autocompletion.\n<a\nhref=\"https://redirect.github.com/pallets/click/issues/2995\">#2995</a>\n<a\nhref=\"https://redirect.github.com/pallets/click/issues/3013\">#3013</a></p>\n</li>\n<li>\n<p>Lazily import <code>shutil</code>. <a\nhref=\"https://redirect.github.com/pallets/click/issues/3023\">#3023</a></p>\n</li>\n<li>\n<p>Properly forward exception information to resources registered with\n<code>click.core.Context.with_resource()</code>. <a\nhref=\"https://redirect.github.com/pallets/click/issues/2447\">#2447</a>\n<a\nhref=\"https://redirect.github.com/pallets/click/issues/3058\">#3058</a></p>\n</li>\n<li>\n<p>Fix regression related to EOF handling in CliRunner. <a\nhref=\"https://redirect.github.com/pallets/click/issues/2939\">#2939</a>\n<a\nhref=\"https://redirect.github.com/pallets/click/issues/2940\">#2940</a></p>\n</li>\n</ul>\n<h2>8.2.2</h2>\n<p>This is the Click 8.2.2 fix release, which fixes bugs but does not\notherwise change behavior and should not result in breaking changes\ncompared to the latest feature release.</p>\n<p>PyPI: <a\nhref=\"https://pypi.org/project/click/8.2.2/\">https://pypi.org/project/click/8.2.2/</a></p>\n<!-- raw HTML omitted -->\n</blockquote>\n<p>... (truncated)</p>\n</details>\n<details>\n<summary>Changelog</summary>\n<p><em>Sourced from <a\nhref=\"https://github.com/pallets/click/blob/main/CHANGES.rst\">click's\nchangelog</a>.</em></p>\n<blockquote>\n<h2>Version 8.3.1</h2>\n<p>Released 2025-11-15</p>\n<ul>\n<li>Don't discard pager arguments by correctly using\n<code>subprocess.Popen</code>. :issue:<code>3039</code>\n:pr:<code>3055</code></li>\n<li>Replace <code>Sentinel.UNSET</code> default values by\n<code>None</code> as they're passed through\nthe <code>Context.invoke()</code> method. :issue:<code>3066</code>\n:issue:<code>3065</code> :pr:<code>3068</code></li>\n<li>Fix conversion of <code>Sentinel.UNSET</code> happening too early,\nwhich caused incorrect\nbehavior for multiple parameters using the same name.\n:issue:<code>3071</code> :pr:<code>3079</code></li>\n<li>Hide <code>Sentinel.UNSET</code> values as <code>None</code> when\nlooking up for other parameters\nthrough the context inside parameter callbacks. :issue:<code>3136</code>\n:pr:<code>3137</code></li>\n<li>Fix rendering when <code>prompt</code> and <code>confirm</code>\nparameter <code>prompt_suffix</code> is\nempty. :issue:<code>3019</code> :pr:<code>3021</code></li>\n<li>When <code>Sentinel.UNSET</code> is found during parsing, it will\nskip calls to\n<code>type_cast_value</code>. :issue:<code>3069</code>\n:pr:<code>3090</code></li>\n</ul>\n<h2>Version 8.3.0</h2>\n<p>Released 2025-09-17</p>\n<ul>\n<li>\n<p><strong>Improved flag option handling</strong>: Reworked the\nrelationship between <code>flag_value</code>\nand <code>default</code> parameters for better consistency:</p>\n<ul>\n<li>The <code>default</code> parameter value is now preserved as-is and\npassed directly\nto CLI functions (no more unexpected transformations)</li>\n<li>Exception: flag options with <code>default=True</code> maintain\nbackward compatibility\nby defaulting to their <code>flag_value</code></li>\n<li>The <code>default</code> parameter can now be any type\n(<code>bool</code>, <code>None</code>, etc.)</li>\n<li>Fixes inconsistencies reported in: :issue:<code>1992</code>\n:issue:<code>2514</code> :issue:<code>2610</code>\n:issue:<code>3024</code> :pr:<code>3030</code></li>\n</ul>\n</li>\n<li>\n<p>Allow <code>default</code> to be set on <code>Argument</code> for\n<code>nargs = -1</code>. :issue:<code>2164</code>\n:pr:<code>3030</code></p>\n</li>\n<li>\n<p>Show correct auto complete value for <code>nargs</code> option in\ncombination with flag\noption :issue:<code>2813</code></p>\n</li>\n<li>\n<p>Fix handling of quoted and escaped parameters in Fish autocompletion.\n:issue:<code>2995</code> :pr:<code>3013</code></p>\n</li>\n<li>\n<p>Lazily import <code>shutil</code>. :pr:<code>3023</code></p>\n</li>\n<li>\n<p>Properly forward exception information to resources registered with\n<code>click.core.Context.with_resource()</code>.\n:issue:<code>2447</code> :pr:<code>3058</code></p>\n</li>\n<li>\n<p>Fix regression related to EOF handling in <code>CliRunner</code>.\n:issue:<code>2939</code> :pr:<code>2940</code></p>\n</li>\n</ul>\n<h2>Version 8.2.2</h2>\n<p>Released 2025-07-31</p>\n<ul>\n<li>Fix reconciliation of <code>default</code>, <code>flag_value</code>\nand <code>type</code> parameters for\nflag options, as well as parsing and normalization of environment\nvariables.</li>\n</ul>\n<!-- raw HTML omitted -->\n</blockquote>\n<p>... (truncated)</p>\n</details>\n<details>\n<summary>Commits</summary>\n<ul>\n<li><a\nhref=\"https://github.com/pallets/click/commit/1d038f270701498433cb432f54db89f95f07a845\"><code>1d038f2</code></a>\nrelease version 8.3.1</li>\n<li><a\nhref=\"https://github.com/pallets/click/commit/03f3889f505d0c9ca4f9d6810f9e4ba2799f2a66\"><code>03f3889</code></a>\nFix Ruff UP038 warning (<a\nhref=\"https://redirect.github.com/pallets/click/issues/3141\">#3141</a>)</li>\n<li><a\nhref=\"https://github.com/pallets/click/commit/3867781222cb63693ca67df94352d29d8e6e2770\"><code>3867781</code></a>\nFix Ruff UP038 warning</li>\n<li><a\nhref=\"https://github.com/pallets/click/commit/b91bb9548a5617b1197add95e084d569f57149c3\"><code>b91bb95</code></a>\nProvide altered context to callbacks to hide <code>UNSET</code> values\nas <code>None</code> (<a\nhref=\"https://redirect.github.com/pallets/click/issues/3137\">#3137</a>)</li>\n<li><a\nhref=\"https://github.com/pallets/click/commit/437e1e3295c7ec979fc1bf285bb402ca20d847e7\"><code>437e1e3</code></a>\nTemporarily provide a fake context to the callback to hide\n<code>UNSET</code> values as ...</li>\n<li><a\nhref=\"https://github.com/pallets/click/commit/ea70da487b05d6bb758d472a3a9ffab4a5b7fcd5\"><code>ea70da4</code></a>\nDon't test using a file in docs/ (<a\nhref=\"https://redirect.github.com/pallets/click/issues/3102\">#3102</a>)</li>\n<li><a\nhref=\"https://github.com/pallets/click/commit/e27b307462b725722f620c69dd1d5509c032d18a\"><code>e27b307</code></a>\nMake <code>uv run --all-extras pyright --verifytypes click</code> pass\n(<a\nhref=\"https://redirect.github.com/pallets/click/issues/3072\">#3072</a>)</li>\n<li><a\nhref=\"https://github.com/pallets/click/commit/a92c573f3195c9da3058eadf1735d38af186d22c\"><code>a92c573</code></a>\nFix test_edit to work with BSD sed (<a\nhref=\"https://redirect.github.com/pallets/click/issues/3129\">#3129</a>)</li>\n<li><a\nhref=\"https://github.com/pallets/click/commit/bd131e1ab63da2281d6dd9b8205ad2eb5a085468\"><code>bd131e1</code></a>\nFix test_edit to work with BSD sed</li>\n<li><a\nhref=\"https://github.com/pallets/click/commit/0b5c6b75f617e6ee2f9f6dcd071b8a4bf183d1ed\"><code>0b5c6b7</code></a>\nAdd Best practices section (<a\nhref=\"https://redirect.github.com/pallets/click/issues/3127\">#3127</a>)</li>\n<li>Additional commits viewable in <a\nhref=\"https://github.com/pallets/click/compare/8.1.8...8.3.1\">compare\nview</a></li>\n</ul>\n</details>\n<br />\n\nUpdates `cryptography` from 46.0.2 to 46.0.3\n<details>\n<summary>Changelog</summary>\n<p><em>Sourced from <a\nhref=\"https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst\">cryptography's\nchangelog</a>.</em></p>\n<blockquote>\n<p>46.0.3 - 2025-10-15</p>\n<pre><code>\n* Fixed compilation when using LibreSSL 4.2.0.\n<p>.. _v46-0-2:<br />\n</code></pre></p>\n</blockquote>\n</details>\n<details>\n<summary>Commits</summary>\n<ul>\n<li><a\nhref=\"https://github.com/pyca/cryptography/commit/c0af4dd7b75921bbe9f1d41a03dbd4b64a9e3403\"><code>c0af4dd</code></a>\nrelease 46.0.3 (<a\nhref=\"https://redirect.github.com/pyca/cryptography/issues/13681\">#13681</a>)</li>\n<li>See full diff in <a\nhref=\"https://github.com/pyca/cryptography/compare/46.0.2...46.0.3\">compare\nview</a></li>\n</ul>\n</details>\n<br />\n\nUpdates `filelock` from 3.19.1 to 3.20.1\n<details>\n<summary>Release notes</summary>\n<p><em>Sourced from <a\nhref=\"https://github.com/tox-dev/py-filelock/releases\">filelock's\nreleases</a>.</em></p>\n<blockquote>\n<h2>3.20.1</h2>\n<!-- raw HTML omitted -->\n<h2>What's Changed</h2>\n<ul>\n<li>CVE-2025-68146: Fix TOCTOU symlink vulnerability in lock file\ncreation by <a\nhref=\"https://github.com/gaborbernat\"><code>@gaborbernat</code></a> in\n<a\nhref=\"https://redirect.github.com/tox-dev/filelock/pull/461\">tox-dev/filelock#461</a></li>\n</ul>\n<p><strong>Full Changelog</strong>: <a\nhref=\"https://github.com/tox-dev/filelock/compare/3.20.0...3.20.1\">https://github.com/tox-dev/filelock/compare/3.20.0...3.20.1</a></p>\n<h2>3.20.0</h2>\n<!-- raw HTML omitted -->\n<h2>What's Changed</h2>\n<ul>\n<li>Add tox.toml to sdist by <a\nhref=\"https://github.com/mtelka\"><code>@mtelka</code></a> in <a\nhref=\"https://redirect.github.com/tox-dev/filelock/pull/436\">tox-dev/filelock#436</a></li>\n<li>Update docs with example by <a\nhref=\"https://github.com/znichollscr\"><code>@znichollscr</code></a> in\n<a\nhref=\"https://redirect.github.com/tox-dev/filelock/pull/438\">tox-dev/filelock#438</a></li>\n<li>Add 3.14 support and drop 3.9 by <a\nhref=\"https://github.com/gaborbernat\"><code>@gaborbernat</code></a> in\n<a\nhref=\"https://redirect.github.com/tox-dev/filelock/pull/448\">tox-dev/filelock#448</a></li>\n</ul>\n<h2>New Contributors</h2>\n<ul>\n<li><a href=\"https://github.com/mtelka\"><code>@mtelka</code></a> made\ntheir first contribution in <a\nhref=\"https://redirect.github.com/tox-dev/filelock/pull/436\">tox-dev/filelock#436</a></li>\n<li><a\nhref=\"https://github.com/znichollscr\"><code>@znichollscr</code></a>\nmade their first contribution in <a\nhref=\"https://redirect.github.com/tox-dev/filelock/pull/438\">tox-dev/filelock#438<...\n\n_Description has been truncated_\n\nSigned-off-by: dependabot[bot] <[email protected]>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>", "name": "clickhouse", "description": "Next-gen ansible role for ClickHouse with YAML", "summary_fields": { "dependencies": [], "namespace": { "id": 15820, "name": "semrush", "avatar_url": "https://github.com/semrush.png" }, "provider_namespace": { "id": 25445, "name": "semrush", "pulp_href": "/api/pulp/api/v3/pulp_ansible/namespaces/25445/" }, "repository": { "name": "ansible-role-clickhouse", "original_name": "ansible-role-clickhouse" }, "tags": [ "clickhouse" ], "versions": [ { "id": "4ed0a1ca-6934-4c8e-b45f-958179fd3ee2", "name": "1.0.4", "release_date": "2026-01-05T11:19:29+02:00" }, { "id": "a1b55335-2439-4d0e-99c4-923a90d46905", "name": "1.0.3", "release_date": "2024-12-08T09:03:12+01:00" }, { "id": "f5958e06-3b8c-42a1-871d-5ec53eadc216", "name": "1.0.2", "release_date": "2024-11-05T23:37:28+03:00" }, { "id": "e34a6374-21ec-498a-bedb-af1dac7c8927", "name": "1.0.1", "release_date": "2024-11-05T13:18:06+03:00" }, { "id": "b52345a8-0d40-408e-8b18-1f12a26154a0", "name": "1.0.0", "release_date": "2024-10-03T17:30:02+02:00" } ] }, "download_count": 60 }, { "id": 38748, "upstream_id": null, "created": "2024-07-01T10:54:39.892631Z", "modified": "2024-07-01T10:54:39.920045Z", "imported": "2024-07-01T10:54:39.890487", "github_user": "shubham1507", "username": "shubham1507", "github_repo": "dummy-role", "github_branch": "master", "commit": "53a4ad62dd0a559f7ad350c29fb214cff86da4fd", "commit_message": "Update main.yml", "name": "dummy-role", "description": "its dummy", "summary_fields": { "dependencies": [], "namespace": { "id": 15732, "name": "shubham1507", "avatar_url": "https://github.com/shubham1507.png" }, "provider_namespace": { "id": 25359, "name": "shubham1507", "pulp_href": "/api/pulp/api/v3/pulp_ansible/namespaces/25359/" }, "repository": { "name": "dummy-role", "original_name": "dummy-role" }, "tags": [], "versions": [] }, "download_count": 21 }, { "id": 38749, "upstream_id": null, "created": "2024-07-01T14:24:05.528689Z", "modified": "2024-07-01T14:24:05.571704Z", "imported": "2024-07-01T14:24:05.526586", "github_user": "Mallesh511", "username": "Mallesh511", "github_repo": "Dummy-role", "github_branch": "master", "commit": "3cccbb1958bc16ff79889e7cac33b487c0c720fd", "commit_message": "Update main.yml", "name": "Dummy-role", "description": "A demo role for httpd Installation", "summary_fields": { "dependencies": [], "namespace": { "id": 15835, "name": "Mallesh511", "avatar_url": "https://github.com/Mallesh511.png" }, "provider_namespace": { "id": 25460, "name": "mallesh511", "pulp_href": "/api/pulp/api/v3/pulp_ansible/namespaces/25460/" }, "repository": { "name": "Dummy-role", "original_name": "Dummy-role" }, "tags": [], "versions": [] }, "download_count": 21 }, { "id": 38750, "upstream_id": null, "created": "2024-07-01T15:38:35.354101Z", "modified": "2024-07-01T15:38:35.388614Z", "imported": "2024-07-01T15:38:35.351219", "github_user": "fredolize30", "username": "fredolize30", "github_repo": "dummy_role", "github_branch": "main", "commit": "ab3c7bc7a64185061efd0f521051b9a45c78c794", "commit_message": "initial commit\n", "name": "dummy_role", "description": "your role description", "summary_fields": { "dependencies": [], "namespace": { "id": 15840, "name": "fredolize30", "avatar_url": "https://github.com/fredolize30.png" }, "provider_namespace": { "id": 25465, "name": "fredolize30", "pulp_href": "/api/pulp/api/v3/pulp_ansible/namespaces/25465/" }, "repository": { "name": "dummy_role", "original_name": "dummy_role" }, "tags": [], "versions": [] }, "download_count": 21 }, { "id": 38751, "upstream_id": null, "created": "2024-07-01T21:48:30.342765Z", "modified": "2024-07-01T21:48:30.369725Z", "imported": "2024-07-01T21:48:30.340687", "github_user": "yvettewoteh", "username": "yvettewoteh", "github_repo": "dan", "github_branch": "main", "commit": "fa2dd18483a3158c273a1a81f28cc582eb6df3d9", "commit_message": "Update main.yml", "name": "dan", "description": "ansible roles", "summary_fields": { "dependencies": [], "namespace": { "id": 15762, "name": "yvettewoteh", "avatar_url": "https://github.com/yvettewoteh.png" }, "provider_namespace": { "id": 25388, "name": "yvettewoteh", "pulp_href": "/api/pulp/api/v3/pulp_ansible/namespaces/25388/" }, "repository": { "name": "dan", "original_name": "dan" }, "tags": [], "versions": [] }, "download_count": 20 }, { "id": 38752, "upstream_id": null, "created": "2024-07-02T10:03:21.314225Z", "modified": "2024-07-02T10:03:21.388808Z", "imported": "2024-07-02T10:03:21.312085", "github_user": "Aakash644", "username": "Aakash644", "github_repo": "ansible_dummy_role", "github_branch": "master", "commit": "c0221883d520343b945ad097fd01c1542bc24c81", "commit_message": "first commit\n", "name": "ansible_dummy_role", "description": "your role description", "summary_fields": { "dependencies": [], "namespace": { "id": 15858, "name": "Aakash644", "avatar_url": "https://github.com/Aakash644.png" }, "provider_namespace": { "id": 25483, "name": "aakash644", "pulp_href": "/api/pulp/api/v3/pulp_ansible/namespaces/25483/" }, "repository": { "name": "ansible_dummy_role", "original_name": "ansible_dummy_role" }, "tags": [], "versions": [] }, "download_count": 20 }, { "id": 38753, "upstream_id": null, "created": "2024-07-02T10:21:57.791383Z", "modified": "2024-07-02T10:21:57.834012Z", "imported": "2024-07-02T10:21:57.789176", "github_user": "disappointingsupernova", "username": "disappointingsupernova", "github_repo": "ansible-role-centos7-disable-mirrorlist", "github_branch": "main", "commit": "27a56dc1c85497f0c188b6245122841b85a084d3", "commit_message": "add Meta\n", "name": "centos7-disable-mirrorlist", "description": "Ansible role for CentOS 7 that disables mirrorlist and sets baseurl to vault.centos.org", "summary_fields": { "dependencies": [], "namespace": { "id": 15767, "name": "disappointingsupernova", "avatar_url": "https://github.com/disappointingsupernova.png" }, "provider_namespace": { "id": 25393, "name": "disappointingsupernova", "pulp_href": "/api/pulp/api/v3/pulp_ansible/namespaces/25393/" }, "repository": { "name": "ansible-role-centos7-disable-mirrorlist", "original_name": "ansible-role-centos7-disable-mirrorlist" }, "tags": [], "versions": [] }, "download_count": 27 }, { "id": 38754, "upstream_id": null, "created": "2024-07-02T19:42:02.086228Z", "modified": "2024-07-02T19:42:02.128422Z", "imported": "2024-07-02T19:42:02.084124", "github_user": "wittdennis", "username": "wittdennis", "github_repo": "ansible-role-wireguard-ui", "github_branch": "0.1.0", "commit": "0dde648d55c1e1760bb964f1d12b2c4287270938", "commit_message": "chore(version): 0.1.0", "name": "wireguard_ui", "description": "Role to manage a wireguard ui installation", "summary_fields": { "dependencies": [], "namespace": { "id": 13712, "name": "wittdennis", "avatar_url": "https://github.com/wittdennis.png" }, "provider_namespace": { "id": 23438, "name": "wittdennis", "pulp_href": "/api/pulp/api/v3/pulp_ansible/namespaces/23438/" }, "repository": { "name": "ansible-role-wireguard-ui", "original_name": "ansible-role-wireguard-ui" }, "tags": [ "wireguard", "ui", "gui" ], "versions": [ { "id": "b7eb2fa2-7750-4d7d-a3ac-b0b40757b880", "name": "0.1.0", "release_date": "2024-07-02T19:41:46+00:00" } ] }, "download_count": 8301 } ] }