{"id":4306,"name":"uwsgi","ecosystem":"pip","repository_url":null,"issues_count":128,"created_at":"2025-06-06T16:30:25.390Z","updated_at":"2025-06-06T16:30:25.390Z","purl":"pkg:pypi/uwsgi","metadata":{"id":2961694,"name":"uwsgi","ecosystem":"pypi","description":"The uWSGI server","homepage":"https://uwsgi-docs.readthedocs.io/en/latest/","licenses":"GPL2","normalized_licenses":["GPL-2.0"],"repository_url":null,"keywords_array":[],"namespace":null,"versions_count":66,"first_release_published_at":"2013-03-17T07:24:19.000Z","latest_release_published_at":"2025-06-03T08:13:53.000Z","latest_release_number":"2.0.30","last_synced_at":"2025-06-06T12:00:56.469Z","created_at":"2022-04-10T12:59:05.340Z","updated_at":"2025-06-06T12:00:56.469Z","registry_url":"https://pypi.org/project/uwsgi/","install_command":"pip install uwsgi --index-url https://pypi.org/simple","documentation_url":"https://uwsgi.readthedocs.io/","metadata":{"funding":null,"documentation":null,"classifiers":[],"normalized_name":"uwsgi"},"repo_metadata":{},"repo_metadata_updated_at":"2024-09-08T02:13:54.140Z","dependent_packages_count":53,"downloads":1463838,"downloads_period":"last-month","dependent_repos_count":5701,"rankings":{"downloads":0.268463001849243,"dependent_repos_count":0.13100386936066313,"dependent_packages_count":0.3056866455402807,"stargazers_count":null,"forks_count":null,"docker_downloads_count":0.7019149348208285,"average":0.3517671128927538},"purl":"pkg:pypi/uwsgi","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/uwsgi","docker_dependents_count":91,"docker_downloads_count":16120053,"usage_url":"https://repos.ecosyste.ms/usage/pypi/uwsgi","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/uwsgi/dependencies","status":null,"funding_links":[],"critical":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/uwsgi/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/uwsgi/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/uwsgi/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/uwsgi/related_packages","maintainers":[{"uuid":"unbit","login":"unbit","name":null,"email":null,"url":null,"packages_count":8,"html_url":"https://pypi.org/user/unbit/","role":null,"created_at":"2022-12-26T02:07:42.252Z","updated_at":"2022-12-26T02:07:42.252Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/unbit/packages"},{"uuid":"xrmx","login":"xrmx","name":null,"email":null,"url":null,"packages_count":16,"html_url":"https://pypi.org/user/xrmx/","role":null,"created_at":"2022-12-26T02:07:42.258Z","updated_at":"2022-12-26T02:07:42.258Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/xrmx/packages"}],"registry":{"name":"pypi.org","url":"https://pypi.org","ecosystem":"pypi","default":true,"packages_count":690329,"maintainers_count":292761,"namespaces_count":0,"keywords_count":228590,"github":"pypi","metadata":{"funded_packages_count":48950},"icon_url":"https://github.com/pypi.png","created_at":"2022-04-04T15:19:23.364Z","updated_at":"2025-06-06T05:32:09.692Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/namespaces"}},"unique_repositories_count":65,"unique_repositories_count_past_30_days":1,"recent_issues":[{"uuid":"4475721777","node_id":"PR_kwDOSbTTLM7c-24h","number":6,"state":"open","title":"Bump the production-dependencies group with 22 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-19T08:28:06.000Z","updated_at":"2026-05-19T08:28:07.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"production-dependencies","update_count":22,"packages":[{"name":"flask","old_version":"3.1.1","new_version":"3.1.3","repository_url":"https://github.com/pallets/flask"},{"name":"flask-wtf","old_version":"1.2.2","new_version":"1.3.0","repository_url":"https://github.com/pallets-eco/flask-wtf"},{"name":"google-cloud-datastore","old_version":"2.20.2","new_version":"2.21.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"grpcio","old_version":"1.71.0","new_version":"1.80.0","repository_url":"https://github.com/grpc/grpc"},{"name":"gunicorn","old_version":"23.0.0","new_version":"26.0.0","repository_url":"https://github.com/benoitc/gunicorn"},{"name":"pika","old_version":"1.3.2","new_version":"1.4.0","repository_url":"https://github.com/pika/pika"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"requests","old_version":"2.33.0","new_version":"2.34.2","repository_url":"https://github.com/psf/requests"},{"name":"structlog","old_version":"25.2.0","new_version":"25.5.0","repository_url":"https://github.com/hynek/structlog"},{"name":"marshmallow","old_version":"3.26.2","new_version":"4.3.0","repository_url":"https://github.com/marshmallow-code/marshmallow"},{"name":"google-cloud-storage","old_version":"3.1.0","new_version":"3.10.1","repository_url":"https://github.com/googleapis/python-storage"},{"name":"jsonpointer","old_version":"3.0.0","new_version":"3.1.1","repository_url":"https://github.com/stefankoegl/python-json-pointer"},{"name":"redis","old_version":"7.1.0","new_version":"7.4.0","repository_url":"https://github.com/redis/redis-py"},{"name":"flask-compress","old_version":"1.17","new_version":"1.24","repository_url":"https://github.com/colour-science/flask-compress"},{"name":"uwsgi","old_version":"2.0.28","new_version":"2.0.31"},{"name":"email-validator","old_version":"2.2.0","new_version":"2.3.0","repository_url":"https://github.com/JoshData/python-email-validator"},{"name":"google-cloud-pubsub","old_version":"2.29.0","new_version":"2.38.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-tasks","old_version":"2.19.2","new_version":"2.22.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"simplejson","old_version":"3.20.1","new_version":"4.1.1","repository_url":"https://github.com/simplejson/simplejson"},{"name":"markupsafe","old_version":"3.0.2","new_version":"3.0.3","repository_url":"https://github.com/pallets/markupsafe"},{"name":"cachetools","old_version":"6.2.2","new_version":"7.1.3","repository_url":"https://github.com/tkem/cachetools"},{"name":"gevent","old_version":"25.9.1","new_version":"26.4.0","repository_url":"https://github.com/gevent/gevent"}],"path":null,"ecosystem":"pip"},"body":"Bumps the production-dependencies group with 22 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [flask](https://github.com/pallets/flask) | `3.1.1` | `3.1.3` |\n| [flask-wtf](https://github.com/pallets-eco/flask-wtf) | `1.2.2` | `1.3.0` |\n| [google-cloud-datastore](https://github.com/googleapis/google-cloud-python) | `2.20.2` | `2.21.0` |\n| [grpcio](https://github.com/grpc/grpc) | `1.71.0` | `1.80.0` |\n| [gunicorn](https://github.com/benoitc/gunicorn) | `23.0.0` | `26.0.0` |\n| [pika](https://github.com/pika/pika) | `1.3.2` | `1.4.0` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [requests](https://github.com/psf/requests) | `2.33.0` | `2.34.2` |\n| [structlog](https://github.com/hynek/structlog) | `25.2.0` | `25.5.0` |\n| [marshmallow](https://github.com/marshmallow-code/marshmallow) | `3.26.2` | `4.3.0` |\n| [google-cloud-storage](https://github.com/googleapis/python-storage) | `3.1.0` | `3.10.1` |\n| [jsonpointer](https://github.com/stefankoegl/python-json-pointer) | `3.0.0` | `3.1.1` |\n| [redis](https://github.com/redis/redis-py) | `7.1.0` | `7.4.0` |\n| [flask-compress](https://github.com/colour-science/flask-compress) | `1.17` | `1.24` |\n| [uwsgi](https://uwsgi-docs.readthedocs.io/en/latest/) | `2.0.28` | `2.0.31` |\n| [email-validator](https://github.com/JoshData/python-email-validator) | `2.2.0` | `2.3.0` |\n| [google-cloud-pubsub](https://github.com/googleapis/google-cloud-python) | `2.29.0` | `2.38.0` |\n| [google-cloud-tasks](https://github.com/googleapis/google-cloud-python) | `2.19.2` | `2.22.0` |\n| [simplejson](https://github.com/simplejson/simplejson) | `3.20.1` | `4.1.1` |\n| [markupsafe](https://github.com/pallets/markupsafe) | `3.0.2` | `3.0.3` |\n| [cachetools](https://github.com/tkem/cachetools) | `6.2.2` | `7.1.3` |\n| [gevent](https://github.com/gevent/gevent) | `25.9.1` | `26.4.0` |\n\nUpdates `flask` from 3.1.1 to 3.1.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/flask/releases\"\u003eflask's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.1.3\u003c/h2\u003e\n\u003cp\u003eThis is the Flask 3.1.3 security fix release, which fixes a security issue but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/Flask/3.1.3/\"\u003ehttps://pypi.org/project/Flask/3.1.3/\u003c/a\u003e\nChanges: \u003ca href=\"https://flask.palletsprojects.com/page/changes/#version-3-1-3\"\u003ehttps://flask.palletsprojects.com/page/changes/#version-3-1-3\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe session is marked as accessed for operations that only access the keys but not the values, such as \u003ccode\u003ein\u003c/code\u003e and \u003ccode\u003elen\u003c/code\u003e. \u003ca href=\"https://github.com/pallets/flask/security/advisories/GHSA-68rp-wp8r-4726\"\u003eGHSA-68rp-wp8r-4726\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.1.2\u003c/h2\u003e\n\u003cp\u003eThis is the Flask 3.1.2 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/Flask/3.1.2/\"\u003ehttps://pypi.org/project/Flask/3.1.2/\u003c/a\u003e\nChanges: \u003ca href=\"https://flask.palletsprojects.com/page/changes/#version-3-1-2\"\u003ehttps://flask.palletsprojects.com/page/changes/#version-3-1-2\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/flask/milestone/38?closed=1\"\u003ehttps://github.com/pallets/flask/milestone/38?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003estream_with_context\u003c/code\u003e does not fail inside async views. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5774\"\u003e#5774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen using \u003ccode\u003efollow_redirects\u003c/code\u003e in the test client, the final state of \u003ccode\u003esession\u003c/code\u003e is correct. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5786\"\u003e#5786\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelax type hint for passing bytes IO to \u003ccode\u003esend_file\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5776\"\u003e#5776\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 href=\"https://github.com/pallets/flask/blob/main/CHANGES.rst\"\u003eflask's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.1.3\u003c/h2\u003e\n\u003cp\u003eReleased 2026-02-18\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe session is marked as accessed for operations that only access the keys\nbut not the values, such as \u003ccode\u003ein\u003c/code\u003e and \u003ccode\u003elen\u003c/code\u003e. :ghsa:\u003ccode\u003e68rp-wp8r-4726\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.1.2\u003c/h2\u003e\n\u003cp\u003eReleased 2025-08-19\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003estream_with_context\u003c/code\u003e does not fail inside async views. :issue:\u003ccode\u003e5774\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eWhen using \u003ccode\u003efollow_redirects\u003c/code\u003e in the test client, the final state\nof \u003ccode\u003esession\u003c/code\u003e is correct. :issue:\u003ccode\u003e5786\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRelax type hint for passing bytes IO to \u003ccode\u003esend_file\u003c/code\u003e. :issue:\u003ccode\u003e5776\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 href=\"https://github.com/pallets/flask/commit/22d924701a6ae2e4cd01e9a15bbaf3946094af65\"\u003e\u003ccode\u003e22d9247\u003c/code\u003e\u003c/a\u003e release version 3.1.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/089cb86dd22bff589a4eafb7ab8e42dc357623b4\"\u003e\u003ccode\u003e089cb86\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/c17f379390731543eea33a570a47bd4ef76a54fa\"\u003e\u003ccode\u003ec17f379\u003c/code\u003e\u003c/a\u003e request context tracks session access\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/27be9338405382445a7cb01151e084559b98d602\"\u003e\u003ccode\u003e27be933\u003c/code\u003e\u003c/a\u003e start version 3.1.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/4e652d3f68b90d50aa2301d3b7e68c3fafd9251d\"\u003e\u003ccode\u003e4e652d3\u003c/code\u003e\u003c/a\u003e Abort if the instance folder cannot be created (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5903\"\u003e#5903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/3d03098a97ddc6a908aa4a50c2ef7381f8297d0a\"\u003e\u003ccode\u003e3d03098\u003c/code\u003e\u003c/a\u003e Abort if the instance folder cannot be created\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/407eb76b27884848383a37c7274654f0271e4bc4\"\u003e\u003ccode\u003e407eb76\u003c/code\u003e\u003c/a\u003e document using gevent for async (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5900\"\u003e#5900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/ac5664d2281533eacafd64f5cc7d5edcdaccab60\"\u003e\u003ccode\u003eac5664d\u003c/code\u003e\u003c/a\u003e document using gevent for async\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/4f79d5b59a56bc4356a97f2e81a35f98cb18d7b3\"\u003e\u003ccode\u003e4f79d5b\u003c/code\u003e\u003c/a\u003e Increase required flit_core version to 3.11 (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5865\"\u003e#5865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/fe3b215d3ade4db68262dae1a3cdc464a1fc524f\"\u003e\u003ccode\u003efe3b215\u003c/code\u003e\u003c/a\u003e Increase required flit_core version to 3.11\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/flask/compare/3.1.1...3.1.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flask-wtf` from 1.2.2 to 1.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets-eco/flask-wtf/releases\"\u003eflask-wtf's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.3.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epre-commit autoupdate by \u003ca href=\"https://github.com/azmeuk\"\u003e\u003ccode\u003e@​azmeuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/607\"\u003epallets-eco/flask-wtf#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eremove slsa provenance by \u003ca href=\"https://github.com/davidism\"\u003e\u003ccode\u003e@​davidism\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/638\"\u003epallets-eco/flask-wtf#638\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14 by \u003ca href=\"https://github.com/azmeuk\"\u003e\u003ccode\u003e@​azmeuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/648\"\u003epallets-eco/flask-wtf#648\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTry not to read uploaded files into memory by \u003ca href=\"https://github.com/Zverik\"\u003e\u003ccode\u003e@​Zverik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/635\"\u003epallets-eco/flask-wtf#635\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMigrate the project to uv by \u003ca href=\"https://github.com/azmeuk\"\u003e\u003ccode\u003e@​azmeuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/649\"\u003epallets-eco/flask-wtf#649\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReCaptcha field testing mode documentation by \u003ca href=\"https://github.com/OmeirP\"\u003e\u003ccode\u003e@​OmeirP\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/650\"\u003epallets-eco/flask-wtf#650\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow nonce in reCaptcha by \u003ca href=\"https://github.com/kesara\"\u003e\u003ccode\u003e@​kesara\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/312\"\u003epallets-eco/flask-wtf#312\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCSRF meta tag helper by \u003ca href=\"https://github.com/azmeuk\"\u003e\u003ccode\u003e@​azmeuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/674\"\u003epallets-eco/flask-wtf#674\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ewidget support the kwargs to add custom html attributes by \u003ca href=\"https://github.com/thivolle-cazat-cedric\"\u003e\u003ccode\u003e@​thivolle-cazat-cedric\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/353\"\u003epallets-eco/flask-wtf#353\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRespect exempts in CSRFProtect.protect() by \u003ca href=\"https://github.com/rauchy\"\u003e\u003ccode\u003e@​rauchy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/419\"\u003epallets-eco/flask-wtf#419\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdding RECAPTCHA_ENABLE to disable recaptcha by \u003ca href=\"https://github.com/rnt\"\u003e\u003ccode\u003e@​rnt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/509\"\u003epallets-eco/flask-wtf#509\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove CSRF Documentation by \u003ca href=\"https://github.com/israel-oye\"\u003e\u003ccode\u003e@​israel-oye\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/584\"\u003epallets-eco/flask-wtf#584\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=\"https://github.com/Zverik\"\u003e\u003ccode\u003e@​Zverik\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/635\"\u003epallets-eco/flask-wtf#635\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/OmeirP\"\u003e\u003ccode\u003e@​OmeirP\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/650\"\u003epallets-eco/flask-wtf#650\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kesara\"\u003e\u003ccode\u003e@​kesara\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/312\"\u003epallets-eco/flask-wtf#312\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thivolle-cazat-cedric\"\u003e\u003ccode\u003e@​thivolle-cazat-cedric\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/353\"\u003epallets-eco/flask-wtf#353\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rauchy\"\u003e\u003ccode\u003e@​rauchy\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/419\"\u003epallets-eco/flask-wtf#419\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rnt\"\u003e\u003ccode\u003e@​rnt\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/509\"\u003epallets-eco/flask-wtf#509\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/israel-oye\"\u003e\u003ccode\u003e@​israel-oye\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/584\"\u003epallets-eco/flask-wtf#584\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pallets-eco/flask-wtf/compare/v1.2.2...v1.3.0\"\u003ehttps://github.com/pallets-eco/flask-wtf/compare/v1.2.2...v1.3.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 href=\"https://github.com/pallets-eco/flask-wtf/blob/main/docs/changes.rst\"\u003eflask-wtf's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.3.0\u003c/h2\u003e\n\u003cp\u003eReleased 2026-04-23\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDon't read the whole uploaded files to know their size. :pr:\u003ccode\u003e635\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eStop support for Python 3.9. Start support for Python 3.14. :pr:\u003ccode\u003e648\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eMigrate the project to uv. :pr:\u003ccode\u003e649\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAllow setting a \u003ccode\u003enonce\u003c/code\u003e on :class:\u003ccode\u003e~flask_wtf.recaptcha.RecaptchaField\u003c/code\u003e\n(string or zero-argument callable) for nonce-based Content Security\nPolicies. :pr:\u003ccode\u003e312\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ecsrf_meta_tag()\u003c/code\u003e helper and \u003ccode\u003eWTF_CSRF_META_NAME\u003c/code\u003e setting to render\nthe CSRF token as an HTML \u003ccode\u003e\u0026lt;meta\u0026gt;\u003c/code\u003e tag.\u003c/li\u003e\n\u003cli\u003eForward keyword arguments passed to the reCAPTCHA widget as HTML attributes\non the captcha \u003ccode\u003e\u0026lt;div\u0026gt;\u003c/code\u003e, with the field id used as a default \u003ccode\u003eid\u003c/code\u003e.\n:pr:\u003ccode\u003e353\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eapply_exemptions\u003c/code\u003e parameter to\n:meth:\u003ccode\u003e~flask_wtf.csrf.CSRFProtect.protect\u003c/code\u003e so \u003ccode\u003e@csrf.exempt\u003c/code\u003e keeps working\nwhen validation is triggered manually. :pr:\u003ccode\u003e419\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eRECAPTCHA_ENABLED\u003c/code\u003e setting. :pr:\u003ccode\u003e509\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 href=\"https://github.com/pallets-eco/flask-wtf/commit/63eb4d3bd55735fc136bdc6f23a90ca2b220b602\"\u003e\u003ccode\u003e63eb4d3\u003c/code\u003e\u003c/a\u003e chore: bump to v1.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/192ece3da0d98682c13e12574d7b1fc938bdd8e8\"\u003e\u003ccode\u003e192ece3\u003c/code\u003e\u003c/a\u003e Improve CSRF Documentation (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/584\"\u003e#584\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/1f8522d4a362ee66ab12a1ebf55379501dfcef0d\"\u003e\u003ccode\u003e1f8522d\u003c/code\u003e\u003c/a\u003e Adding RECAPTCHA_ENABLE to disable recaptcha (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/509\"\u003e#509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/64b9215be16dc123f7eb187494dbba6bd0e5c2cd\"\u003e\u003ccode\u003e64b9215\u003c/code\u003e\u003c/a\u003e Respect exempts in CSRFProtect.protect() (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/419\"\u003e#419\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/adf674f80c5c5e55c050729e3ec086b4d6cb0f26\"\u003e\u003ccode\u003eadf674f\u003c/code\u003e\u003c/a\u003e widget support the kwargs to add custom html attributes (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/353\"\u003e#353\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/ea1f797112f857c783dcd2c6e3954357df8e1bb7\"\u003e\u003ccode\u003eea1f797\u003c/code\u003e\u003c/a\u003e feat: CSRF meta tag helper (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/674\"\u003e#674\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/412e3efda3703b141ca75afbcbf0538a7797b713\"\u003e\u003ccode\u003e412e3ef\u003c/code\u003e\u003c/a\u003e Allow nonce in reCaptcha (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/312\"\u003e#312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/a7b764a1fa8f4ea960d81104c364a2d29429e1b8\"\u003e\u003ccode\u003ea7b764a\u003c/code\u003e\u003c/a\u003e ReCaptcha field testing mode documentation (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/650\"\u003e#650\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/c053c0ec11560e68e558636962bbec1115a7ae2a\"\u003e\u003ccode\u003ec053c0e\u003c/code\u003e\u003c/a\u003e chore(deps-dev): bump pytest from 9.0.1 to 9.0.3 (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/673\"\u003e#673\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/ca2216cdf72717aa3c2355ba5f454080c78d9273\"\u003e\u003ccode\u003eca2216c\u003c/code\u003e\u003c/a\u003e chore(deps): bump uv from 0.9.11 to 0.11.6 (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/672\"\u003e#672\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets-eco/flask-wtf/compare/v1.2.2...v1.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-datastore` from 2.20.2 to 2.21.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/releases\"\u003egoogle-cloud-datastore's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-cloud-os-login: v2.21.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-os-login-v2.20.0...google-cloud-os-login-v2.21.0\"\u003ev2.21.0\u003c/a\u003e (2026-05-06)\u003c/h2\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 href=\"https://github.com/googleapis/google-cloud-python/blob/main/packages/google-cloud-documentai/CHANGELOG.md\"\u003egoogle-cloud-datastore's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-documentai-v2.20.2...google-cloud-documentai-v2.21.0\"\u003e2.21.0\u003c/a\u003e (2023-12-07)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for python 3.12 (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/fb6f9dbfadfe1a8ca3b236e0cae5c85cf2862f3e\"\u003efb6f9db\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIntroduce compatibility with native namespace packages (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/fb6f9dbfadfe1a8ca3b236e0cae5c85cf2862f3e\"\u003efb6f9db\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRequire proto-plus \u0026gt;= 1.22.3 (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/fb6f9dbfadfe1a8ca3b236e0cae5c85cf2862f3e\"\u003efb6f9db\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eretry_async\u003c/code\u003e instead of \u003ccode\u003eretry\u003c/code\u003e in async client (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/fb6f9dbfadfe1a8ca3b236e0cae5c85cf2862f3e\"\u003efb6f9db\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 href=\"https://github.com/googleapis/google-cloud-python/commit/c60ded47847b04b2536f19c1610b5592b7952d6a\"\u003e\u003ccode\u003ec60ded4\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20260108T181058Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/15005\"\u003e#15005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c0e3e9d221c3b8cd6d99503fadbb8e643db1e325\"\u003e\u003ccode\u003ec0e3e9d\u003c/code\u003e\u003c/a\u003e chore: disable treat warnings as errors (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/15008\"\u003e#15008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/45d4cee9e0e48a209b2d9292be29a15125548458\"\u003e\u003ccode\u003e45d4cee\u003c/code\u003e\u003c/a\u003e docs(samples): Update BigQuery Storage Arrow samples batching logic (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14961\"\u003e#14961\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/45149baca6064be265db1b653abb405c298a2b41\"\u003e\u003ccode\u003e45149ba\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20260108T162506Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/15001\"\u003e#15001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/d58a9ba338df3df1afca11e155fe449c32631179\"\u003e\u003ccode\u003ed58a9ba\u003c/code\u003e\u003c/a\u003e test: Add 'cryptography' 'cachetools' to test deps for bigquery-storage (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14999\"\u003e#14999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/10289465a87988b9bf35a85893f26ea372ad717b\"\u003e\u003ccode\u003e1028946\u003c/code\u003e\u003c/a\u003e feat: add v1 api for google-cloud-maintenance-api (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14998\"\u003e#14998\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/b3cb4de3ce50c3ec55af2b132d756252a32641f3\"\u003e\u003ccode\u003eb3cb4de\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260107T084051Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14995\"\u003e#14995\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/17cc12897e6afdf3f3131531c50a8226a3f57c0f\"\u003e\u003ccode\u003e17cc128\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20251231T091651Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14991\"\u003e#14991\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c353aa5bcc937ef9399c8efc90492dadbcf01aa2\"\u003e\u003ccode\u003ec353aa5\u003c/code\u003e\u003c/a\u003e chore: librarian update image pull request: 20251219T024955Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14985\"\u003e#14985\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/f38453832a2bb0226c389c30df13d072d1642377\"\u003e\u003ccode\u003ef384538\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20251217T215552Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14980\"\u003e#14980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-documentai-v2.20.2...google-cloud-iam-v2.21.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `grpcio` from 1.71.0 to 1.80.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/grpc/grpc/releases\"\u003egrpcio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v1.80.0\u003c/h2\u003e\n\u003cp\u003eThis is release 1.80.0 (\u003ca href=\"https://github.com/grpc/grpc/blob/master/doc/g_stands_for.md\"\u003eglimmering\u003c/a\u003e) of gRPC Core.\u003c/p\u003e\n\u003cp\u003eFor gRPC documentation, see \u003ca href=\"https://grpc.io/\"\u003egrpc.io\u003c/a\u003e. For previous releases, see \u003ca href=\"https://github.com/grpc/grpc/releases\"\u003eReleases\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis release contains refinements, improvements, and bug fixes, with highlights listed below.\u003c/p\u003e\n\u003ch2\u003eCore\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[ssl] Implement TLS private key signer in Python. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/41701\"\u003e#41701\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[TLS Credentials]: Private Key Offload Implementation. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/41606\"\u003e#41606\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix max sockaddr struct size on OpenBSD. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/40454\"\u003e#40454\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[core] Enable EventEngine for Python by default, and EventEngine fork support in Python and Ruby. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/41432\"\u003e#41432\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[TLS Credentials]: Create InMemoryCertificateProvider to update certificates independently. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/41484\"\u003e#41484\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Ruby] Build/test ruby 4.0 and build native gems with Ruby 4.0 support. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/41324\"\u003e#41324\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[EventEngine] Remove an incorrect std::move in DNSServiceResolver constructor. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/41502\"\u003e#41502\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[RR and WRR] enable change to connect from a random index. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/41472\"\u003e#41472\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[xds] Implement gRFC A101. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/41051\"\u003e#41051\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eC++\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[C++] Add SNI override option to C++ channel credentials options API. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/41460\"\u003e#41460\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eC#\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[C# tools] Option to append Async to server side method names \u003ca href=\"https://redirect.github.com/grpc/grpc/issues/39010\"\u003e#39010\u003c/a\u003e. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/39797\"\u003e#39797\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eObjective-C\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[Fix][Compiler] Plugins fall back to the edition 2023 for older protobuf. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/41357\"\u003e#41357\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePHP\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[PHP] Disable php infinite recursion check for callback from Core to PHP. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/41835\"\u003e#41835\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[PHP] Fix runtime error with PHp8.5 alpha because zend_exception_get_defaul…. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/40337\"\u003e#40337\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePython\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[Python] Fix \u003ccode\u003eGRPC_TRACE\u003c/code\u003e not working when absl log initialized in cython. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/41814\"\u003e#41814\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRevert \u0026quot;[Python] Align GRPC_ENABLE_FORK_SUPPORT env defaults in core and python (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/41455\"\u003e#41455\u003c/a\u003e)\u0026quot;. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/41769\"\u003e#41769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Python] Fix AsyncIO Server maximum_concurrent_rpcs enforcement preventing negative active_rpcs count. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/41532\"\u003e#41532\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Python] Docs: correct \u003ccode\u003egrpc.Compression\u003c/code\u003e references. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/41705\"\u003e#41705\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Python] [Typeguard] Part 4 - Add Typeguard to AIO stack in tests . (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/40226\"\u003e#40226\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 href=\"https://github.com/grpc/grpc/commit/f5e2d6e856176c2f6b7691032adfefe21e5f64c1\"\u003e\u003ccode\u003ef5e2d6e\u003c/code\u003e\u003c/a\u003e [Release] Bump version to 1.80.0 (on v1.80.x branch) (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/41857\"\u003e#41857\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/938cfecaebfc28b5e6bcdb95d55aba3962d9b55b\"\u003e\u003ccode\u003e938cfec\u003c/code\u003e\u003c/a\u003e [subchannel connection scaling] fix when we reset backoff (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/41935\"\u003e#41935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/91778bec667d7310864420f2b32aeb2e41e1b51c\"\u003e\u003ccode\u003e91778be\u003c/code\u003e\u003c/a\u003e [Backport][v1.80.x][Python] New \u003ccode\u003e_create\u003c/code\u003e method for aio.Metadata (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/41888\"\u003e#41888\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/f10b9f26933703c5fe3e080f50ef19c858d773e0\"\u003e\u003ccode\u003ef10b9f2\u003c/code\u003e\u003c/a\u003e [bzlmod] upgrade rules_swift to avoid BCR CI breakage on Windows with bazel 7...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/be4c1c55b69493868241bfffd4bc318d3d592656\"\u003e\u003ccode\u003ebe4c1c5\u003c/code\u003e\u003c/a\u003e [subchannel] fix crash in connection scaling code (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/41853\"\u003e#41853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/a71df73eafb18fa0210a13dd6a2ce2cb6594d427\"\u003e\u003ccode\u003ea71df73\u003c/code\u003e\u003c/a\u003e [Release] Bump version to 1.80.0-pre1 (on v1.80.x branch) (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/41844\"\u003e#41844\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/3ca09e4818f4362e75c9c224f1d4c2065db75a0a\"\u003e\u003ccode\u003e3ca09e4\u003c/code\u003e\u003c/a\u003e [Python] Fix GRPC_TRACE and add test to check the GRPC_TRACE logs print (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/41814\"\u003e#41814\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/260c6fd37c502e984836a446c5d90e4a1298036d\"\u003e\u003ccode\u003e260c6fd\u003c/code\u003e\u003c/a\u003e [PHP] Disable php infinite recursion check for callback from Core to PHP (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/41\"\u003e#41\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/50957c5c47de1c85637fc9dafe6d4eb4c1224f6b\"\u003e\u003ccode\u003e50957c5\u003c/code\u003e\u003c/a\u003e [Flakiness] Delete flaky iomgr fd_conservation_posix_test and create an Event...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/e1e1d0a8150b5178d4b75e15f4856a4d825a8999\"\u003e\u003ccode\u003ee1e1d0a\u003c/code\u003e\u003c/a\u003e [Bzlmod] Turn off bzlmod for PSM python tests. (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/41810\"\u003e#41810\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/grpc/grpc/compare/v1.71.0...v1.80.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gunicorn` from 23.0.0 to 26.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/benoitc/gunicorn/releases\"\u003egunicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.0.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eEventlet worker removed\u003c/strong\u003e: The \u003ccode\u003eeventlet\u003c/code\u003e worker class has been dropped. Migrate to \u003ccode\u003egevent\u003c/code\u003e, \u003ccode\u003egthread\u003c/code\u003e, or \u003ccode\u003etornado\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eASGI Framework Compatibility Suite\u003c/strong\u003e: New end-to-end compatibility test harness covering Starlette, FastAPI, Litestar, Quart, Sanic, and BlackSheep. Current grid passes 438/444 tests (98%).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eASGI Test Suite Expansion\u003c/strong\u003e: 134 additional ASGI unit tests covering protocol semantics, lifespan, websockets, and chunked framing.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eHTTP/1.1 Request-Target Validation\u003c/strong\u003e (RFC 9112 sections 3.2.3, 3.2.4):\n\u003cul\u003e\n\u003cli\u003eReject \u003ccode\u003eauthority-form\u003c/code\u003e request-target outside \u003ccode\u003eCONNECT\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eReject \u003ccode\u003easterisk-form\u003c/code\u003e request-target outside \u003ccode\u003eOPTIONS\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eReject \u003ccode\u003erelative-reference\u003c/code\u003e request-targets\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eHeader Field Hardening\u003c/strong\u003e (RFC 9110):\n\u003cul\u003e\n\u003cli\u003eReject control characters in header field-value (section 5.5)\u003c/li\u003e\n\u003cli\u003eReject forbidden trailer field-names (section 6.5.1)\u003c/li\u003e\n\u003cli\u003eReject \u003ccode\u003eContent-Length\u003c/code\u003e list form (RFC 9112 section 6.3)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRequest Smuggling Hardening\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eTighten keepalive gate and scope \u003ccode\u003efinish_body\u003c/code\u003e byte cap\u003c/li\u003e\n\u003cli\u003eKeep \u003ccode\u003e_body_receiver\u003c/code\u003e alive across the keepalive smuggling gate so pipelined requests cannot re-enter a closed body\u003c/li\u003e\n\u003cli\u003eAddress parser/protocol findings from a six-point WSGI/ASGI audit\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ePROXY Protocol (ASGI)\u003c/strong\u003e: Enforce \u003ccode\u003eproxy_allow_ips\u003c/code\u003e and tighten v1/v2 parsing in the ASGI callback parser.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eConnection Draining\u003c/strong\u003e: Drain the connection on close per RFC 9112 section 9.6 to prevent reset-on-close truncation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eBody Framing on HEAD/204/304\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eKeep \u003ccode\u003eContent-Length\u003c/code\u003e on HEAD and 304 responses (\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3621\"\u003e#3621\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop body framing on HEAD/204/304 even when the framework set it\u003c/li\u003e\n\u003cli\u003eWarn once when an ASGI app emits a body for a no-body response\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eHTTP/2 ASGI\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e_handle_stream_ended\u003c/code\u003e to set \u003ccode\u003e_body_complete\u003c/code\u003e in the async HTTP/2 handler so request bodies finalize correctly on stream end\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eInvalidChunkExtension\u003c/code\u003e mapping and fast-parser support in ASGI tests (\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3565\"\u003e#3565\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eHTTP/1.1 100-Continue\u003c/strong\u003e: Stop adding \u003ccode\u003eTransfer-Encoding: chunked\u003c/code\u003e to 100-Continue interim responses.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eWebSocket Close Handshake\u003c/strong\u003e (RFC 6455):\n\u003cul\u003e\n\u003cli\u003eComply with the close handshake state machine\u003c/li\u003e\n\u003cli\u003eClose the transport after the close handshake completes\u003c/li\u003e\n\u003cli\u003eFix binary send when the \u003ccode\u003etext\u003c/code\u003e key is \u003ccode\u003eNone\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eEarly Hints\u003c/strong\u003e: Validate headers in the \u003ccode\u003eearly_hints\u003c/code\u003e callback to match \u003ccode\u003eprocess_headers\u003c/code\u003e; pass only the header name to \u003ccode\u003eInvalidHeader\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3588\"\u003e#3588\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eASGI Framework Fixes\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eFix ASGI disconnect handling for Django-style apps\u003c/li\u003e\n\u003cli\u003eFix Litestar request handling (use raw ASGI receive for body/headers)\u003c/li\u003e\n\u003cli\u003eFix Litestar HTTP endpoints for compatibility tests\u003c/li\u003e\n\u003cli\u003eFix Quart headers endpoint to normalize keys to lowercase\u003c/li\u003e\n\u003cli\u003eFix Quart WebSocket close test app (missing \u003ccode\u003eaccept()\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix duplicate \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header for BlackSheep streaming\u003c/li\u003e\n\u003c/ul\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 href=\"https://github.com/benoitc/gunicorn/commit/5d819cf36040f6cc6175fcc804d703fb899509dd\"\u003e\u003ccode\u003e5d819cf\u003c/code\u003e\u003c/a\u003e release: 26.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/b45c70df105f7d5dcbc5abfb732804d6464edc21\"\u003e\u003ccode\u003eb45c70d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3611\"\u003e#3611\u003c/a\u003e from zc-mattcen/docs-typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/99c8d48acf453deb5c49fe12e195dbc00d888d1e\"\u003e\u003ccode\u003e99c8d48\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3623\"\u003e#3623\u003c/a\u003e from benoitc/chore/drop-eventlet-add-h2-uvloop-test-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/5a655af50f20e005dd9e32e6078dc82fa45f3d4b\"\u003e\u003ccode\u003e5a655af\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3622\"\u003e#3622\u003c/a\u003e from benoitc/test/docker-port-and-ipv4-fixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/201df19a8011c0a1d6a0e75ebe22e89d48eb935e\"\u003e\u003ccode\u003e201df19\u003c/code\u003e\u003c/a\u003e chore: remove eventlet worker; add h2 and uvloop to test deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/f4ac8e1f1bf1d365e77f41915da55bec31873f84\"\u003e\u003ccode\u003ef4ac8e1\u003c/code\u003e\u003c/a\u003e test: pass action name to dirty client and stabilize after TTOU spam\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/54d38afddf1f0db0c15b5f4ff63f3c7bfad96961\"\u003e\u003ccode\u003e54d38af\u003c/code\u003e\u003c/a\u003e test: unblock docker fixtures on macOS hosts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/68843c8893dd938456f0a2da62085ab5776f8871\"\u003e\u003ccode\u003e68843c8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3621\"\u003e#3621\u003c/a\u003e from benoitc/fix/asgi-preserve-content-length-on-hea...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/31f2618f733cc0c78690df63f4e344aaf3f56b20\"\u003e\u003ccode\u003e31f2618\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3620\"\u003e#3620\u003c/a\u003e from benoitc/fix/asgi-proxy-protocol-trust-and-parsing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/41ec7527dbd8a9e52728477700707ad40e41d9dc\"\u003e\u003ccode\u003e41ec752\u003c/code\u003e\u003c/a\u003e fix: keep Content-Length on HEAD and 304 responses\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/benoitc/gunicorn/compare/23.0.0...26.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pika` from 1.3.2 to 1.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pika/pika/releases\"\u003epika's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.4.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pypi.org/project/pika/1.4.0/\"\u003ehttps://pypi.org/project/pika/1.4.0/\u003c/a\u003e | \u003ca href=\"https://github.com/pika/pika/milestone/23?closed=1\"\u003eGitHub milestone\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: add python3.10 support and make code python3.7+ by \u003ca href=\"https://github.com/vinitkumar\"\u003e\u003ccode\u003e@​vinitkumar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1351\"\u003epika/pika#1351\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typo in example docstring by \u003ca href=\"https://github.com/kinoute\"\u003e\u003ccode\u003e@​kinoute\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1396\"\u003epika/pika#1396\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixing pika v1.0.0 breaking change (order of parameters) for the `cha… by \u003ca href=\"https://github.com/mprinc\"\u003e\u003ccode\u003e@​mprinc\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1393\"\u003epika/pika#1393\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Python 3.11 to various places by \u003ca href=\"https://github.com/lukebakken\"\u003e\u003ccode\u003e@​lukebakken\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1399\"\u003epika/pika#1399\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocumentation improvements by \u003ca href=\"https://github.com/hcmturner\"\u003e\u003ccode\u003e@​hcmturner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1403\"\u003epika/pika#1403\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix typo by \u003ca href=\"https://github.com/khadkarajesh\"\u003e\u003ccode\u003e@​khadkarajesh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1404\"\u003epika/pika#1404\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate example to use python3 syntax by \u003ca href=\"https://github.com/AleksaC\"\u003e\u003ccode\u003e@​AleksaC\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1408\"\u003epika/pika#1408\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix exchange type enum type by \u003ca href=\"https://github.com/liortct\"\u003e\u003ccode\u003e@​liortct\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1410\"\u003epika/pika#1410\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd more connections to the adapters by \u003ca href=\"https://github.com/dgoeries\"\u003e\u003ccode\u003e@​dgoeries\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1405\"\u003epika/pika#1405\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix typo by \u003ca href=\"https://github.com/uwe\"\u003e\u003ccode\u003e@​uwe\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1414\"\u003epika/pika#1414\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeature \u003ca href=\"https://redirect.github.com/pika/pika/issues/1363\"\u003e#1363\u003c/a\u003e -- Bump examples python version to 3 by \u003ca href=\"https://github.com/alfawal\"\u003e\u003ccode\u003e@​alfawal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1416\"\u003epika/pika#1416\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAttempt to re-enable GeventConnection on Windows by \u003ca href=\"https://github.com/lukebakken\"\u003e\u003ccode\u003e@​lukebakken\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1417\"\u003epika/pika#1417\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd examples of using client_properties to URLParameters and ConnectionParameters by \u003ca href=\"https://github.com/johanrhodin\"\u003e\u003ccode\u003e@​johanrhodin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1436\"\u003epika/pika#1436\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMisc Windows CI updates by \u003ca href=\"https://github.com/lukebakken\"\u003e\u003ccode\u003e@​lukebakken\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1438\"\u003epika/pika#1438\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse sys.platform instead of platform.system() by \u003ca href=\"https://github.com/cvijdea-bd\"\u003e\u003ccode\u003e@​cvijdea-bd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1467\"\u003epika/pika#1467\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eList Python 3.12 as supported by \u003ca href=\"https://github.com/lukebakken\"\u003e\u003ccode\u003e@​lukebakken\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1474\"\u003epika/pika#1474\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShrink the compatibility module and remove Python \u0026lt;3.7 support by \u003ca href=\"https://github.com/alfawal\"\u003e\u003ccode\u003e@​alfawal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1441\"\u003epika/pika#1441\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eexample: Remove unnecessary guard by \u003ca href=\"https://github.com/jpmckinney\"\u003e\u003ccode\u003e@​jpmckinney\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1435\"\u003epika/pika#1435\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDifferentiate release types by \u003ccode\u003egithub.event.release.prerelease\u003c/code\u003e by \u003ca href=\"https://github.com/lukebakken\"\u003e\u003ccode\u003e@​lukebakken\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1477\"\u003epika/pika#1477\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ebasic_consumer_threaded\u003c/code\u003e example by \u003ca href=\"https://github.com/leogallot\"\u003e\u003ccode\u003e@​leogallot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1507\"\u003epika/pika#1507\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd description for the example blocking_consume_recover_multiple_hosts by \u003ca href=\"https://github.com/federicsp\"\u003e\u003ccode\u003e@​federicsp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1512\"\u003epika/pika#1512\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix tests with Python 3.14, except RuntimeError from asyncio.get_event_loop by \u003ca href=\"https://github.com/hroncok\"\u003e\u003ccode\u003e@​hroncok\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1524\"\u003epika/pika#1524\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate ConnectionParameters doc by \u003ca href=\"https://github.com/ryoung9550\"\u003e\u003ccode\u003e@​ryoung9550\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1494\"\u003epika/pika#1494\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate versions by \u003ca href=\"https://github.com/lukebakken\"\u003e\u003ccode\u003e@​lukebakken\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1514\"\u003epika/pika#1514\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003especify your own consumer_tag when using consume() method of BlockingChannel by \u003ca href=\"https://github.com/ivan-eguidazu\"\u003e\u003ccode\u003e@​ivan-eguidazu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1485\"\u003epika/pika#1485\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eremoval of pika.compat.dictkeys() by \u003ca href=\"https://github.com/a-detiste\"\u003e\u003ccode\u003e@​a-detiste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1492\"\u003epika/pika#1492\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd all public APIs to \u003ccode\u003e__all__\u003c/code\u003e by \u003ca href=\"https://github.com/augustelalande\"\u003e\u003ccode\u003e@​augustelalande\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1476\"\u003epika/pika#1476\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eConvert utcnow() and utcfromtimestamp() by \u003ca href=\"https://github.com/mh21\"\u003e\u003ccode\u003e@​mh21\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1484\"\u003epika/pika#1484\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Issue # 1530: advertise exchange_exchange_bindings  by \u003ca href=\"https://github.com/kenliao94\"\u003e\u003ccode\u003e@​kenliao94\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1540\"\u003epika/pika#1540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eJpaluska/add threadsafe publisher example by \u003ca href=\"https://github.com/jpaluska\"\u003e\u003ccode\u003e@​jpaluska\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1546\"\u003epika/pika#1546\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd python 3.14 to CI and drop 3.9 by \u003ca href=\"https://github.com/alonfaraj\"\u003e\u003ccode\u003e@​alonfaraj\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1549\"\u003epika/pika#1549\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: replace 3 bare except clauses with except Exception by \u003ca href=\"https://github.com/haosenwang1018\"\u003e\u003ccode\u003e@​haosenwang1018\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1545\"\u003epika/pika#1545\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the github-actions group with 4 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1552\"\u003epika/pika#1552\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eruff\u003c/code\u003e lint check to CI (\u003ca href=\"https://redirect.github.com/pika/pika/issues/1371\"\u003eGH-1371\u003c/a\u003e) by \u003ca href=\"https://github.com/lukebakken\"\u003e\u003ccode\u003e@​lukebakken\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1551\"\u003epika/pika#1551\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove dead Code Climate config files by \u003ca href=\"https://github.com/lukebakken\"\u003e\u003ccode\u003e@​lukebakken\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1553\"\u003epika/pika#1553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: Add return value documentation for Channel methods (\u003ca href=\"https://redirect.github.com/pika/pika/issues/1522\"\u003e#1522\u003c/a\u003e) by \u003ca href=\"https://github.com/suchitd\"\u003e\u003ccode\u003e@​suchitd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1555\"\u003epika/pika#1555\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eBlockingIOError\u003c/code\u003e from \u003ccode\u003e_read_interrupt\u003c/code\u003e on Windows (\u003ca href=\"https://redirect.github.com/pika/pika/issues/1314\"\u003eGH-1314\u003c/a\u003e) by \u003ca href=\"https://github.com/lukebakken\"\u003e\u003ccode\u003e@​lukebakken\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1554\"\u003epika/pika#1554\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImplement tests compatibility patch for RabbitMQ 4.3  by \u003ca href=\"https://github.com/alonfaraj\"\u003e\u003ccode\u003e@​alonfaraj\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1548\"\u003epika/pika#1548\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the github-actions group with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1557\"\u003epika/pika#1557\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMigrate to pytest by \u003ca href=\"https://github.com/alonfaraj\"\u003e\u003ccode\u003e@​alonfaraj\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1550\"\u003epika/pika#1550\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix asyncio.get_event_loop() deprecation in _AsyncioIOServicesAdapter by \u003ca href=\"https://github.com/geomarceau\"\u003e\u003ccode\u003e@​geomarceau\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1544\"\u003epika/pika#1544\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop more Python 2 compatibility code by \u003ca href=\"https://github.com/lukebakken\"\u003e\u003ccode\u003e@​lukebakken\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1561\"\u003epika/pika#1561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAlign Python versions metadata and docs  by \u003ca href=\"https://github.com/alonfaraj\"\u003e\u003ccode\u003e@​alonfaraj\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1556\"\u003epika/pika#1556\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLegacy file fixes by \u003ca href=\"https://github.com/alonfaraj\"\u003e\u003ccode\u003e@​alonfaraj\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1562\"\u003epika/pika#1562\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd AGENTS.md with AI agent guidelines by \u003ca href=\"https://github.com/lukebakken\"\u003e\u003ccode\u003e@​lukebakken\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1560\"\u003epika/pika#1560\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix field table type decoding to match RabbitMQ wire format by \u003ca href=\"https://github.com/lukebakken\"\u003e\u003ccode\u003e@​lukebakken\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1566\"\u003epika/pika#1566\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pika/pika/blob/main/CHANGELOG.md\"\u003epika's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/pika/pika/tree/1.4.0\"\u003e1.4.0\u003c/a\u003e (2026-05-06)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pika/pika/compare/1.4.0b0...1.4.0\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eImplemented enhancements:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnforce yapf/google formatting in CI \u003ca href=\"https://redirect.github.com/pika/pika/issues/1558\"\u003e#1558\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Hatch dev environment and scripts \u003ca href=\"https://redirect.github.com/pika/pika/pull/1579\"\u003e#1579\u003c/a\u003e (\u003ca href=\"https://github.com/lukebakken\"\u003elukebakken\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop more Python 2 compatibility code \u003ca href=\"https://redirect.github.com/pika/pika/pull/1561\"\u003e#1561\u003c/a\u003e (\u003ca href=\"https://github.com/lukebakken\"\u003elukebakken\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eClosed issues:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Hatch scripts to standardize developer commands \u003ca href=\"https://redirect.github.com/pika/pika/issues/1578\"\u003e#1578\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix outdated and broken documentation across the project \u003ca href=\"https://redirect.github.com/pika/pika/issues/1568\"\u003e#1568\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Codecov default branch and badge \u003ca href=\"https://redirect.github.com/pika/pika/issues/1563\"\u003e#1563\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGitHub actions workflows and test code need updates for RabbitMQ 4.3 \u003ca href=\"https://redirect.github.com/pika/pika/issues/1547\"\u003e#1547\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edatetime.datetime.utcfromtimestamp() is deprecated \u003ca href=\"https://redirect.github.com/pika/pika/issues/1539\"\u003e#1539\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eURLParameters这个类有bug \u003ca href=\"https://redirect.github.com/pika/pika/issues/1533\"\u003e#1533\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCustom transport \u003ca href=\"https://redirect.github.com/pika/pika/issues/1532\"\u003e#1532\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ex-delay value is being returned in the header as a UINT64 and not a SINT16 \u003ca href=\"https://redirect.github.com/pika/pika/issues/1531\"\u003e#1531\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePika should advertise the \u003ccode\u003eexchange_exchange_bindings\u003c/code\u003e client capability \u003ca href=\"https://redirect.github.com/pika/pika/issues/1530\"\u003e#1530\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMissing type annotations \u003ca href=\"https://redirect.github.com/pika/pika/issues/1523\"\u003e#1523\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eThere is no info about return type of queue_declare() method of pika.channel \u003ca href=\"https://redirect.github.com/pika/pika/issues/1522\"\u003e#1522\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGetting the user who sent the message \u003ca href=\"https://redirect.github.com/pika/pika/issues/1510\"\u003e#1510\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhere is examples/consume_recover_retry.py ? \u003ca href=\"https://redirect.github.com/pika/pika/issues/1499\"\u003e#1499\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eType Hint Issue with arguments parameter in queue_declare method of BlockingChannel Class - (expected \u0026quot;DeclareOk | None\u0026quot;  [arg-type]) \u003ca href=\"https://redirect.github.com/pika/pika/issues/1482\"\u003e#1482\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003equeue_declare does not receive the callback at random times \u003ca href=\"https://redirect.github.com/pika/pika/issues/1480\"\u003e#1480\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eThere is no current event loop in thread \u003ca href=\"https://redirect.github.com/pika/pika/issues/1479\"\u003e#1479\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCannot find reference 'exceptions' in '__init__.pyi'  \u003ca href=\"https://redirect.github.com/pika/pika/issues/1473\"\u003e#1473\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eConvert to \u003ccode\u003epytest\u003c/code\u003e \u003ca href=\"https://redirect.github.com/pika/pika/issues/1469\"\u003e#1469\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd a CI lint check using \u003ccode\u003eruff\u003c/code\u003e and fix all findings \u003ca href=\"https://redirect.github.com/pika/pika/issues/1371\"\u003e#1371\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for proxy configuration (Socks5) \u003ca href=\"https://redirect.github.com/pika/pika/issues/1359\"\u003e#1359\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBlockingIOError: [WinError 10035] A non-blocking socket operation could not be completed immediately \u003ca href=\"https://redirect.github.com/pika/pika/issues/1314\"\u003e#1314\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eMerged pull requests:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate outdated documentation across the pika project \u003ca href=\"https://redirect.github.com/pika/pika/pull/1577\"\u003e#1577\u003c/a\u003e (\u003ca href=\"https://github.com/suchitd\"\u003esuchitd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix TypeError in select_connection \u003ca href=\"https://redirect.github.com/pika/pika/pull/1575\"\u003e#1575\u003c/a\u003e (\u003ca href=\"https://github.com/suchitd\"\u003esuchitd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport Python 3.7+ in CI and fix \u003ccode\u003etyping_extensions\u003c/code\u003e import \u003ca href=\"https://redirect.github.com/pika/pika/pull/1574\"\u003e#1574\u003c/a\u003e (\u003ca href=\"https://github.com/lukebakken\"\u003elukebakken\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eyapf\u003c/code\u003e formatter enforcement \u003ca href=\"https://redirect.github.com/pika/pika/pull/1573\"\u003e#1573\u003c/a\u003e (\u003ca href=\"https://github.com/alonfaraj\"\u003ealonfaraj\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReplace \u003ccode\u003ePIKA_TEST_TLS\u003c/code\u003e env with pytest flag \u003ca href=\"https://redirect.github.com/pika/pika/pull/1572\"\u003e#1572\u003c/a\u003e (\u003ca href=\"https://github.com/alonfaraj\"\u003ealonfaraj\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix field table type decoding to match RabbitMQ wire format \u003ca href=\"https://redirect.github.com/pika/pika/pull/1566\"\u003e#1566\u003c/a\u003e (\u003ca href=\"https://github.com/lukebakken\"\u003elukebakken\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLegacy file fixes \u003ca href=\"https://redirect.github.com/pika/pika/pull/1562\"\u003e#1562\u003c/a\u003e (\u003ca href=\"https://github.com/alonfaraj\"\u003ealonfaraj\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd AGENTS.md with AI agent guidelines \u003ca href=\"https://redirect.github.com/pika/pika/pull/1560\"\u003e#1560\u003c/a\u003e (\u003ca href=\"https://github.com/lukebakken\"\u003elukebakken\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump the github-actions group with 2 updates \u003ca href=\"https://redirect.github.com/pika/pika/pull/1557\"\u003e#1557\u003c/a\u003e (\u003ca href=\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAlign Python versions metadata and docs  \u003ca href=\"https://redirect.github.com/pika/pika/pull/1556\"\u003e#1556\u003c/a\u003e (\u003ca href=\"https://github.com/alonfaraj\"\u003ealonfaraj\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocs: Add return value documentation for Channel methods (\u003ca href=\"https://redirect.github.com/pika/pika/issues/1522\"\u003e#1522\u003c/a\u003e) \u003ca href=\"https://redirect.github.com/pika/pika/pull/1555\"\u003e#1555\u003c/a\u003e (\u003ca href=\"https://github.com/suchitd\"\u003esuchitd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eBlockingIOError\u003c/code\u003e from \u003ccode\u003e_read_interrupt\u003c/code\u003e on Windows (\u003ca href=\"https://redirect.github.com/pika/pika/issues/1314\"\u003eGH-1314\u003c/a\u003e) \u003ca href=\"https://redirect.github.com/pika/pika/pull/1554\"\u003e#1554\u003c/a\u003e (\u003ca href=\"https://github.com/lukebakken\"\u003elukebakken\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove dead Code Climate config files \u003ca href=\"https://redirect.github.com/pika/pika/pull/1553\"\u003e#1553\u003c/a\u003e (\u003ca href=\"https://github.com/lukebakken\"\u003elukebakken\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump the github-actions group with 4 updates \u003ca href=\"https://redirect.github.com/pika/pika/pull/1552\"\u003e#1552\u003c/a\u003e (\u003ca href=\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pika/pika/commit/305fbe60088790a2648580078b4808f138e325d7\"\u003e\u003ccode\u003e305fbe6\u003c/code\u003e\u003c/a\u003e pika 1.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pika/pika/commit/9a3a6e51d17b2b87b29fb8dc48256e79bfdfea58\"\u003e\u003ccode\u003e9a3a6e5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pika/pika/issues/1577\"\u003e#1577\u003c/a\u003e from pika/doc/project-scope-update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pika/pika/commit/f750ce3a60d7a0cb5cf0fcf68ddb68190935b720\"\u003e\u003ccode\u003ef750ce3\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into doc/project-scope-update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pika/pika/commit/ccfe924f5e15b5b1c88384135a64d0f9a6254685\"\u003e\u003ccode\u003eccfe924\u003c/code\u003e\u003c/a\u003e Ensure that pip is run the same way in each workflow.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pika/pika/commit/47129ca63f282a6b2e8335645236a0fa0b27c0ae\"\u003e\u003ccode\u003e47129ca\u003c/code\u003e\u003c/a\u003e Caching pip artifacts actually does not accomplish anything.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pika/pika/commit/0a721f75c7eda0923a4390e544341a737d6a7815\"\u003e\u003ccode\u003e0a721f7\u003c/code\u003e\u003c/a\u003e Fix copyright year and document \u003ccode\u003elegacy-python.yaml\u003c/code\u003e workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pika/pika/commit/f7f51dbd069201a0ff07140cbd3511a36555e398\"\u003e\u003ccode\u003ef7f51db\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into doc/project-scope-update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pika/pika/commit/6e6283352e302c8e25dd5151e1a0164901ff8902\"\u003e\u003ccode\u003e6e62833\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pika/pika/issues/1579\"\u003e#1579\u003c/a\u003e from pika/feature/gh-1578-hatch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pika/pika/commit/3d038ad4cf36708a0e19547e5eaccfdd776ef024\"\u003e\u003ccode\u003e3d038ad\u003c/code\u003e\u003c/a\u003e Remove test-requirements.txt and all references to it, since it is superseded...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pika/pika/commit/540db57e418fa58927cff1a3dd4b8aad123dc4c2\"\u003e\u003ccode\u003e540db57\u003c/code\u003e\u003c/a\u003e Fix formatting issue in legacy-python CI workflow for virtualenv installation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pika/pika/compare/1.3.2...1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyyaml` from 6.0.2 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/yaml/pyyaml/releases\"\u003epyyaml's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14 and free-threading (experimental).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ehttps://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\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 href=\"https://github.com/yaml/pyyaml/blob/6.0.3/CHANGES\"\u003epyyaml's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e6.0.3 (2025-09-25)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/yaml/pyyaml/pull/864\"\u003eyaml/pyyaml#864\u003c/a\u003e -- Support for Python 3.14 and free-threading (experimental)\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 href=\"https://github.com/yaml/pyyaml/commit/49790e73684bebad1df05ef8d828fa12f685bffb\"\u003e\u003ccode\u003e49790e7\u003c/code\u003e\u003c/a\u003e Release 6.0.3 (\u003ca href=\"https://redirect.github.com/yaml/pyyaml/issues/889\"\u003e#889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.33.0 to 2.34.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\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 to avoid invariance issues with \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling \u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"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 href=\"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 \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"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 removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"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 \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"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 implementations\nweren't being properly detected as Iterables. (\u003ca href=\"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=\"https://github.com/k223kim\"\u003e\u003ccode\u003e@​k223kim\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"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 href=\"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\u003ch2\u003ev2.34.0\u003c/h2\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. \u003cstrong\u003eWe believe types are comprehensive but if you find issues, please\nreport them to the \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003epinned tracking issue\u003c/a\u003e.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\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 href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\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 to 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 code. (\u003ca href=\"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 \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"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 removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"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 \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"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 implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. We believe types are comprehensive but if you find issues, please\nreport them to the pinned tracking issue.\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\nproxy_bypass implementation has been updated with CPython's fix from\nbpo-39057. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer incorrectly strips duplicate leading slashes in\nURI paths. This should address user issues with specific presigned\nURLs. Note the full fix requires urllib3 2.7.0+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7315\"\u003e#7315\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 href=\"https://github.com/psf/requests/commit/6e83187b8feb273ed4c6cdab5efd8d54901dfab3\"\u003e\u003ccode\u003e6e83187\u003c/code\u003e\u003c/a\u003e v2.34.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/84d10f0be83e8f6aeca8a05230c52216431c4d0b\"\u003e\u003ccode\u003e84d10f0\u003c/code\u003e\u003c/a\u003e Move Request.headers back to Mapping (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b7b549b54571d03950b16afd2d01bc6ff0348224\"\u003e\u003ccode\u003eb7b549b\u003c/code\u003e\u003c/a\u003e v2.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e511bc72777a94c45d004e010c597925092e1efe\"\u003e\u003ccode\u003ee511bc7\u003c/code\u003e\u003c/a\u003e Fix mutability issues with headers input types (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/5691f596134c2feb121e595c77a0178921fcce61\"\u003e\u003ccode\u003e5691f59\u003c/code\u003e\u003c/a\u003e Update JsonType containers to read-based collections (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2144213c307691710c9d665700860fc4993c3035\"\u003e\u003ccode\u003e2144213\u003c/code\u003e\u003c/a\u003e Constrain Response.reason to str (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6404f345e562d962abe6700a1c357ec1e7e18232\"\u003e\u003ccode\u003e6404f34\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eprepare_body\u003c/code\u003e stream detection for \u003ccode\u003e__getattr__\u003c/code\u003e-based file wrappers (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7\"\u003e#7\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0b401c76b6e80a4eecf3c690085b2553f6e261ca\"\u003e\u003ccode\u003e0b401c7\u003c/code\u003e\u003c/a\u003e v2.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/86b378d3f60f828daa13ca50aa82e287ff7b66b4\"\u003e\u003ccode\u003e86b378d\u003c/code\u003e\u003c/a\u003e Align Session.get parameters with requests.get (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7429\"\u003e#7429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/a4f9a5999bdb9bf2d6e7c8aa973b28cacb17134f\"\u003e\u003ccode\u003ea4f9a59\u003c/code\u003e\u003c/a\u003e Port bpo-39057 to Requests (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.33.0...v2.34.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `structlog` from 25.2.0 to 25.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/hynek/structlog/releases\"\u003estructlog's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.5.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cp\u003eHuge release! There's plenty of important little bug fixes and new features, but the headliner is definitely the improved ergonomics of \u003ccode\u003estructlog.dev.ConsoleRenderer\u003c/code\u003e. We have finally accepted that local development has different priorities than production and made it both mutable (with automatic re-configuration) and also easily retrievable (\u003ccode\u003ecr = ConsoleRenderer.get_active()\u003c/code\u003e). This allows you, for example, to disable Rich exception formatting as easily as \u003ccode\u003estructlog.dev.ConsoleRenderer.get_active().exception_formatter = structlog.dev.plain_traceback\u003c/code\u003e. Please check out the \u003ca href=\"https://www.structlog.org/en/stable/console-output.html\"\u003eupdated docs\u003c/a\u003e!\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eFull changelog below!\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eSpecial Thanks\u003c/h2\u003e\n\u003cp\u003eThis release would not be possible without my generous sponsors! Thank you to all of you making sustainable maintenance possible! If \u003cem\u003eyou\u003c/em\u003e would like to join them, go to \u003ca href=\"https://github.com/sponsors/hynek\"\u003ehttps://github.com/sponsors/hynek\u003c/a\u003e and check out the sweet perks!\u003c/p\u003e\n\u003ch3\u003eAbove and Beyond\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://www.variomedia.de/\"\u003eVariomedia AG\u003c/a\u003e (@\u003ca href=\"https://github.com/variomedia\"\u003evariomedia\u003c/a\u003e), \u003ca href=\"https://www.tidelift.com/\"\u003eTidelift\u003c/a\u003e (@\u003ca href=\"https://github.com/tidelift\"\u003etidelift\u003c/a\u003e), \u003ca href=\"https://www.thanks.dev\"\u003ethanks.dev\u003c/a\u003e (@\u003ca href=\"https://github.com/thnxdev\"\u003ethnxdev\u003c/a\u003e), \u003ca href=\"https://privacy-solutions.org\"\u003ePrivacy Solutions GmbH\u003c/a\u003e (@\u003ca href=\"https://github.com/privacy-solutions\"\u003eprivacy-solutions\u003c/a\u003e), \u003ca href=\"https://quesma.com/\"\u003eQuesma\u003c/a\u003e (\u003ca href=\"https://github.com/QuesmaOrg\"\u003e\u003ccode\u003e@​QuesmaOrg\u003c/code\u003e\u003c/a\u003e), \u003ca href=\"http://filepreviews.io/\"\u003eFilePreviews\u003c/a\u003e (@\u003ca href=\"https://gi...\n\n_Description has been truncated_","html_url":"https://github.com/ONSdigital/census31-eq-questionnaire-runner/pull/6","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ONSdigital%2Fcensus31-eq-questionnaire-runner/issues/6","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/6/packages"},{"uuid":"4237330891","node_id":"PR_kwDODRkoPc7RX1lV","number":1867,"state":"open","title":"Bump the production-dependencies group across 1 directory with 23 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-10T07:17:18.000Z","updated_at":"2026-04-24T09:00:30.347Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"production-dependencies","update_count":23,"packages":[{"name":"flask","old_version":"3.1.1","new_version":"3.1.3","repository_url":"https://github.com/pallets/flask"},{"name":"google-cloud-datastore","old_version":"2.20.2","new_version":"2.21.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"grpcio","old_version":"1.71.0","new_version":"1.80.0","repository_url":"https://github.com/grpc/grpc"},{"name":"gunicorn","old_version":"23.0.0","new_version":"25.3.0","repository_url":"https://github.com/benoitc/gunicorn"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"requests","old_version":"2.33.0","new_version":"2.33.1","repository_url":"https://github.com/psf/requests"},{"name":"structlog","old_version":"25.2.0","new_version":"25.5.0","repository_url":"https://github.com/hynek/structlog"},{"name":"ua-parser","old_version":"1.0.1","new_version":"1.0.2","repository_url":"https://github.com/ua-parser/uap-python"},{"name":"boto3","old_version":"1.37.23","new_version":"1.42.87","repository_url":"https://github.com/boto/boto3"},{"name":"humanize","old_version":"4.12.2","new_version":"4.15.0","repository_url":"https://github.com/python-humanize/humanize"},{"name":"marshmallow","old_version":"3.26.2","new_version":"4.3.0","repository_url":"https://github.com/marshmallow-code/marshmallow"},{"name":"google-cloud-storage","old_version":"3.1.0","new_version":"3.10.1","repository_url":"https://github.com/googleapis/python-storage"},{"name":"jsonpointer","old_version":"3.0.0","new_version":"3.1.1","repository_url":"https://github.com/stefankoegl/python-json-pointer"},{"name":"redis","old_version":"7.1.0","new_version":"7.4.0","repository_url":"https://github.com/redis/redis-py"},{"name":"flask-compress","old_version":"1.17","new_version":"1.24","repository_url":"https://github.com/colour-science/flask-compress"},{"name":"uwsgi","old_version":"2.0.28","new_version":"2.0.31"},{"name":"email-validator","old_version":"2.2.0","new_version":"2.3.0","repository_url":"https://github.com/JoshData/python-email-validator"},{"name":"google-cloud-pubsub","old_version":"2.29.0","new_version":"2.37.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-tasks","old_version":"2.19.2","new_version":"2.22.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"simplejson","old_version":"3.20.1","new_version":"3.20.2","repository_url":"https://github.com/simplejson/simplejson"},{"name":"markupsafe","old_version":"3.0.2","new_version":"3.0.3","repository_url":"https://github.com/pallets/markupsafe"},{"name":"cachetools","old_version":"6.2.2","new_version":"7.0.5","repository_url":"https://github.com/tkem/cachetools"},{"name":"gevent","old_version":"25.9.1","new_version":"26.4.0","repository_url":"https://github.com/gevent/gevent"}],"path":null,"ecosystem":"pip"},"body":"Bumps the production-dependencies group with 23 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [flask](https://github.com/pallets/flask) | `3.1.1` | `3.1.3` |\n| [google-cloud-datastore](https://github.com/googleapis/google-cloud-python) | `2.20.2` | `2.21.0` |\n| [grpcio](https://github.com/grpc/grpc) | `1.71.0` | `1.80.0` |\n| [gunicorn](https://github.com/benoitc/gunicorn) | `23.0.0` | `25.3.0` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [requests](https://github.com/psf/requests) | `2.33.0` | `2.33.1` |\n| [structlog](https://github.com/hynek/structlog) | `25.2.0` | `25.5.0` |\n| [ua-parser](https://github.com/ua-parser/uap-python) | `1.0.1` | `1.0.2` |\n| [boto3](https://github.com/boto/boto3) | `1.37.23` | `1.42.87` |\n| [humanize](https://github.com/python-humanize/humanize) | `4.12.2` | `4.15.0` |\n| [marshmallow](https://github.com/marshmallow-code/marshmallow) | `3.26.2` | `4.3.0` |\n| [google-cloud-storage](https://github.com/googleapis/python-storage) | `3.1.0` | `3.10.1` |\n| [jsonpointer](https://github.com/stefankoegl/python-json-pointer) | `3.0.0` | `3.1.1` |\n| [redis](https://github.com/redis/redis-py) | `7.1.0` | `7.4.0` |\n| [flask-compress](https://github.com/colour-science/flask-compress) | `1.17` | `1.24` |\n| [uwsgi](https://uwsgi-docs.readthedocs.io/en/latest/) | `2.0.28` | `2.0.31` |\n| [email-validator](https://github.com/JoshData/python-email-validator) | `2.2.0` | `2.3.0` |\n| [google-cloud-pubsub](https://github.com/googleapis/google-cloud-python) | `2.29.0` | `2.37.0` |\n| [google-cloud-tasks](https://github.com/googleapis/google-cloud-python) | `2.19.2` | `2.22.0` |\n| [simplejson](https://github.com/simplejson/simplejson) | `3.20.1` | `3.20.2` |\n| [markupsafe](https://github.com/pallets/markupsafe) | `3.0.2` | `3.0.3` |\n| [cachetools](https://github.com/tkem/cachetools) | `6.2.2` | `7.0.5` |\n| [gevent](https://github.com/gevent/gevent) | `25.9.1` | `26.4.0` |\n\n\nUpdates `flask` from 3.1.1 to 3.1.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/flask/releases\"\u003eflask's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.1.3\u003c/h2\u003e\n\u003cp\u003eThis is the Flask 3.1.3 security fix release, which fixes a security issue but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/Flask/3.1.3/\"\u003ehttps://pypi.org/project/Flask/3.1.3/\u003c/a\u003e\nChanges: \u003ca href=\"https://flask.palletsprojects.com/page/changes/#version-3-1-3\"\u003ehttps://flask.palletsprojects.com/page/changes/#version-3-1-3\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe session is marked as accessed for operations that only access the keys but not the values, such as \u003ccode\u003ein\u003c/code\u003e and \u003ccode\u003elen\u003c/code\u003e. \u003ca href=\"https://github.com/pallets/flask/security/advisories/GHSA-68rp-wp8r-4726\"\u003eGHSA-68rp-wp8r-4726\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.1.2\u003c/h2\u003e\n\u003cp\u003eThis is the Flask 3.1.2 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/Flask/3.1.2/\"\u003ehttps://pypi.org/project/Flask/3.1.2/\u003c/a\u003e\nChanges: \u003ca href=\"https://flask.palletsprojects.com/page/changes/#version-3-1-2\"\u003ehttps://flask.palletsprojects.com/page/changes/#version-3-1-2\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/flask/milestone/38?closed=1\"\u003ehttps://github.com/pallets/flask/milestone/38?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003estream_with_context\u003c/code\u003e does not fail inside async views. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5774\"\u003e#5774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen using \u003ccode\u003efollow_redirects\u003c/code\u003e in the test client, the final state of \u003ccode\u003esession\u003c/code\u003e is correct. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5786\"\u003e#5786\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelax type hint for passing bytes IO to \u003ccode\u003esend_file\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5776\"\u003e#5776\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 href=\"https://github.com/pallets/flask/blob/main/CHANGES.rst\"\u003eflask's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.1.3\u003c/h2\u003e\n\u003cp\u003eReleased 2026-02-18\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe session is marked as accessed for operations that only access the keys\nbut not the values, such as \u003ccode\u003ein\u003c/code\u003e and \u003ccode\u003elen\u003c/code\u003e. :ghsa:\u003ccode\u003e68rp-wp8r-4726\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.1.2\u003c/h2\u003e\n\u003cp\u003eReleased 2025-08-19\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003estream_with_context\u003c/code\u003e does not fail inside async views. :issue:\u003ccode\u003e5774\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eWhen using \u003ccode\u003efollow_redirects\u003c/code\u003e in the test client, the final state\nof \u003ccode\u003esession\u003c/code\u003e is correct. :issue:\u003ccode\u003e5786\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRelax type hint for passing bytes IO to \u003ccode\u003esend_file\u003c/code\u003e. :issue:\u003ccode\u003e5776\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 href=\"https://github.com/pallets/flask/commit/22d924701a6ae2e4cd01e9a15bbaf3946094af65\"\u003e\u003ccode\u003e22d9247\u003c/code\u003e\u003c/a\u003e release version 3.1.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/089cb86dd22bff589a4eafb7ab8e42dc357623b4\"\u003e\u003ccode\u003e089cb86\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/c17f379390731543eea33a570a47bd4ef76a54fa\"\u003e\u003ccode\u003ec17f379\u003c/code\u003e\u003c/a\u003e request context tracks session access\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/27be9338405382445a7cb01151e084559b98d602\"\u003e\u003ccode\u003e27be933\u003c/code\u003e\u003c/a\u003e start version 3.1.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/4e652d3f68b90d50aa2301d3b7e68c3fafd9251d\"\u003e\u003ccode\u003e4e652d3\u003c/code\u003e\u003c/a\u003e Abort if the instance folder cannot be created (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5903\"\u003e#5903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/3d03098a97ddc6a908aa4a50c2ef7381f8297d0a\"\u003e\u003ccode\u003e3d03098\u003c/code\u003e\u003c/a\u003e Abort if the instance folder cannot be created\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/407eb76b27884848383a37c7274654f0271e4bc4\"\u003e\u003ccode\u003e407eb76\u003c/code\u003e\u003c/a\u003e document using gevent for async (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5900\"\u003e#5900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/ac5664d2281533eacafd64f5cc7d5edcdaccab60\"\u003e\u003ccode\u003eac5664d\u003c/code\u003e\u003c/a\u003e document using gevent for async\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/4f79d5b59a56bc4356a97f2e81a35f98cb18d7b3\"\u003e\u003ccode\u003e4f79d5b\u003c/code\u003e\u003c/a\u003e Increase required flit_core version to 3.11 (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5865\"\u003e#5865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/fe3b215d3ade4db68262dae1a3cdc464a1fc524f\"\u003e\u003ccode\u003efe3b215\u003c/code\u003e\u003c/a\u003e Increase required flit_core version to 3.11\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/flask/compare/3.1.1...3.1.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-datastore` from 2.20.2 to 2.21.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/blob/main/packages/google-cloud-documentai/CHANGELOG.md\"\u003egoogle-cloud-datastore's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-documentai-v2.20.2...google-cloud-documentai-v2.21.0\"\u003e2.21.0\u003c/a\u003e (2023-12-07)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for python 3.12 (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/fb6f9dbfadfe1a8ca3b236e0cae5c85cf2862f3e\"\u003efb6f9db\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIntroduce compatibility with native namespace packages (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/fb6f9dbfadfe1a8ca3b236e0cae5c85cf2862f3e\"\u003efb6f9db\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRequire proto-plus \u0026gt;= 1.22.3 (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/fb6f9dbfadfe1a8ca3b236e0cae5c85cf2862f3e\"\u003efb6f9db\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eretry_async\u003c/code\u003e instead of \u003ccode\u003eretry\u003c/code\u003e in async client (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/fb6f9dbfadfe1a8ca3b236e0cae5c85cf2862f3e\"\u003efb6f9db\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 href=\"https://github.com/googleapis/google-cloud-python/commit/c60ded47847b04b2536f19c1610b5592b7952d6a\"\u003e\u003ccode\u003ec60ded4\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20260108T181058Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/15005\"\u003e#15005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c0e3e9d221c3b8cd6d99503fadbb8e643db1e325\"\u003e\u003ccode\u003ec0e3e9d\u003c/code\u003e\u003c/a\u003e chore: disable treat warnings as errors (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/15008\"\u003e#15008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/45d4cee9e0e48a209b2d9292be29a15125548458\"\u003e\u003ccode\u003e45d4cee\u003c/code\u003e\u003c/a\u003e docs(samples): Update BigQuery Storage Arrow samples batching logic (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14961\"\u003e#14961\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/45149baca6064be265db1b653abb405c298a2b41\"\u003e\u003ccode\u003e45149ba\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20260108T162506Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/15001\"\u003e#15001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/d58a9ba338df3df1afca11e155fe449c32631179\"\u003e\u003ccode\u003ed58a9ba\u003c/code\u003e\u003c/a\u003e test: Add 'cryptography' 'cachetools' to test deps for bigquery-storage (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14999\"\u003e#14999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/10289465a87988b9bf35a85893f26ea372ad717b\"\u003e\u003ccode\u003e1028946\u003c/code\u003e\u003c/a\u003e feat: add v1 api for google-cloud-maintenance-api (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14998\"\u003e#14998\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/b3cb4de3ce50c3ec55af2b132d756252a32641f3\"\u003e\u003ccode\u003eb3cb4de\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260107T084051Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14995\"\u003e#14995\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/17cc12897e6afdf3f3131531c50a8226a3f57c0f\"\u003e\u003ccode\u003e17cc128\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20251231T091651Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14991\"\u003e#14991\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c353aa5bcc937ef9399c8efc90492dadbcf01aa2\"\u003e\u003ccode\u003ec353aa5\u003c/code\u003e\u003c/a\u003e chore: librarian update image pull request: 20251219T024955Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14985\"\u003e#14985\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/f38453832a2bb0226c389c30df13d072d1642377\"\u003e\u003ccode\u003ef384538\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20251217T215552Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14980\"\u003e#14980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-documentai-v2.20.2...google-cloud-iam-v2.21.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `grpcio` from 1.71.0 to 1.80.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/grpc/grpc/releases\"\u003egrpcio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v1.80.0\u003c/h2\u003e\n\u003cp\u003eThis is release 1.80.0 (\u003ca href=\"https://github.com/grpc/grpc/blob/master/doc/g_stands_for.md\"\u003eglimmering\u003c/a\u003e) of gRPC Core.\u003c/p\u003e\n\u003cp\u003eFor gRPC documentation, see \u003ca href=\"https://grpc.io/\"\u003egrpc.io\u003c/a\u003e. For previous releases, see \u003ca href=\"https://github.com/grpc/grpc/releases\"\u003eReleases\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis release contains refinements, improvements, and bug fixes, with highlights listed below.\u003c/p\u003e\n\u003ch2\u003eCore\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[ssl] Implement TLS private key signer in Python. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/41701\"\u003e#41701\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[TLS Credentials]: Private Key Offload Implementation. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/41606\"\u003e#41606\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix max sockaddr struct size on OpenBSD. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/40454\"\u003e#40454\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[core] Enable EventEngine for Python by default, and EventEngine fork support in Python and Ruby. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/41432\"\u003e#41432\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[TLS Credentials]: Create InMemoryCertificateProvider to update certificates independently. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/41484\"\u003e#41484\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Ruby] Build/test ruby 4.0 and build native gems with Ruby 4.0 support. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/41324\"\u003e#41324\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[EventEngine] Remove an incorrect std::move in DNSServiceResolver constructor. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/41502\"\u003e#41502\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[RR and WRR] enable change to connect from a random index. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/41472\"\u003e#41472\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[xds] Implement gRFC A101. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/41051\"\u003e#41051\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eC++\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[C++] Add SNI override option to C++ channel credentials options API. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/41460\"\u003e#41460\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eC#\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[C# tools] Option to append Async to server side method names \u003ca href=\"https://redirect.github.com/grpc/grpc/issues/39010\"\u003e#39010\u003c/a\u003e. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/39797\"\u003e#39797\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eObjective-C\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[Fix][Compiler] Plugins fall back to the edition 2023 for older protobuf. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/41357\"\u003e#41357\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePHP\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[PHP] Disable php infinite recursion check for callback from Core to PHP. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/41835\"\u003e#41835\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[PHP] Fix runtime error with PHp8.5 alpha because zend_exception_get_defaul…. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/40337\"\u003e#40337\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePython\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[Python] Fix \u003ccode\u003eGRPC_TRACE\u003c/code\u003e not working when absl log initialized in cython. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/41814\"\u003e#41814\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRevert \u0026quot;[Python] Align GRPC_ENABLE_FORK_SUPPORT env defaults in core and python (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/41455\"\u003e#41455\u003c/a\u003e)\u0026quot;. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/41769\"\u003e#41769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Python] Fix AsyncIO Server maximum_concurrent_rpcs enforcement preventing negative active_rpcs count. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/41532\"\u003e#41532\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Python] Docs: correct \u003ccode\u003egrpc.Compression\u003c/code\u003e references. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/41705\"\u003e#41705\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Python] [Typeguard] Part 4 - Add Typeguard to AIO stack in tests . (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/40226\"\u003e#40226\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 href=\"https://github.com/grpc/grpc/commit/f5e2d6e856176c2f6b7691032adfefe21e5f64c1\"\u003e\u003ccode\u003ef5e2d6e\u003c/code\u003e\u003c/a\u003e [Release] Bump version to 1.80.0 (on v1.80.x branch) (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/41857\"\u003e#41857\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/938cfecaebfc28b5e6bcdb95d55aba3962d9b55b\"\u003e\u003ccode\u003e938cfec\u003c/code\u003e\u003c/a\u003e [subchannel connection scaling] fix when we reset backoff (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/41935\"\u003e#41935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/91778bec667d7310864420f2b32aeb2e41e1b51c\"\u003e\u003ccode\u003e91778be\u003c/code\u003e\u003c/a\u003e [Backport][v1.80.x][Python] New \u003ccode\u003e_create\u003c/code\u003e method for aio.Metadata (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/41888\"\u003e#41888\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/f10b9f26933703c5fe3e080f50ef19c858d773e0\"\u003e\u003ccode\u003ef10b9f2\u003c/code\u003e\u003c/a\u003e [bzlmod] upgrade rules_swift to avoid BCR CI breakage on Windows with bazel 7...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/be4c1c55b69493868241bfffd4bc318d3d592656\"\u003e\u003ccode\u003ebe4c1c5\u003c/code\u003e\u003c/a\u003e [subchannel] fix crash in connection scaling code (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/41853\"\u003e#41853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/a71df73eafb18fa0210a13dd6a2ce2cb6594d427\"\u003e\u003ccode\u003ea71df73\u003c/code\u003e\u003c/a\u003e [Release] Bump version to 1.80.0-pre1 (on v1.80.x branch) (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/41844\"\u003e#41844\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/3ca09e4818f4362e75c9c224f1d4c2065db75a0a\"\u003e\u003ccode\u003e3ca09e4\u003c/code\u003e\u003c/a\u003e [Python] Fix GRPC_TRACE and add test to check the GRPC_TRACE logs print (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/41814\"\u003e#41814\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/260c6fd37c502e984836a446c5d90e4a1298036d\"\u003e\u003ccode\u003e260c6fd\u003c/code\u003e\u003c/a\u003e [PHP] Disable php infinite recursion check for callback from Core to PHP (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/41\"\u003e#41\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/50957c5c47de1c85637fc9dafe6d4eb4c1224f6b\"\u003e\u003ccode\u003e50957c5\u003c/code\u003e\u003c/a\u003e [Flakiness] Delete flaky iomgr fd_conservation_posix_test and create an Event...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/e1e1d0a8150b5178d4b75e15f4856a4d825a8999\"\u003e\u003ccode\u003ee1e1d0a\u003c/code\u003e\u003c/a\u003e [Bzlmod] Turn off bzlmod for PSM python tests. (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/41810\"\u003e#41810\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/grpc/grpc/compare/v1.71.0...v1.80.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gunicorn` from 23.0.0 to 25.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/benoitc/gunicorn/releases\"\u003egunicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eGunicorn 25.3.0\u003c/h2\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eHTTP/2 ASGI Body Duplication\u003c/strong\u003e: Fix request body being received twice in HTTP/2\nASGI requests, causing JSON parsing errors with \u0026quot;Extra data\u0026quot; messages\n(\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3558\"\u003e#3558\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eASGI Chunked EOF Handling\u003c/strong\u003e: Add \u003ccode\u003efinish()\u003c/code\u003e method to callback parser to handle\nchunked encoding edge case where connection closes before final CRLF after zero-chunk\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eHTTP/2 Documentation\u003c/strong\u003e: Fix \u003ccode\u003ehttp_protocols\u003c/code\u003e examples to use comma-separated string\ninstead of list syntax (\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3561\"\u003e#3561\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eChunked Encoding\u003c/strong\u003e: Reject chunk extensions containing bare CR bytes per RFC 9112\n(\u003ca href=\"https://github.com/benoitc/gunicorn/discussions/3556\"\u003e#3556\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eRequest Line Limit\u003c/strong\u003e: Fix \u003ccode\u003e--limit-request-line 0\u003c/code\u003e to mean unlimited as documented,\ninstead of using default maximum. Works with both Python and fast C parser.\n(\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3563\"\u003e#3563\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eASGI Parser Header Validation\u003c/strong\u003e: Add security checks per RFC 9110/9112:\n\u003cul\u003e\n\u003cli\u003eReject duplicate Content-Length headers\u003c/li\u003e\n\u003cli\u003eReject requests with both Content-Length and Transfer-Encoding\u003c/li\u003e\n\u003cli\u003eReject chunked transfer encoding in HTTP/1.0\u003c/li\u003e\n\u003cli\u003eReject stacked chunked encoding\u003c/li\u003e\n\u003cli\u003eValidate Transfer-Encoding values\u003c/li\u003e\n\u003cli\u003eStrict chunk size validation\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eFast HTTP Parser\u003c/strong\u003e: Update to gunicorn_h1c \u0026gt;= 0.6.3 for \u003ccode\u003easgi_headers\u003c/code\u003e property\nand \u003ccode\u003eInvalidChunkExtension\u003c/code\u003e validation for bare CR rejection\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eASGI PROXY Protocol\u003c/strong\u003e: Add PROXY protocol v1/v2 support to callback parser\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eDocker Images\u003c/strong\u003e: Update to Python 3.14\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eGunicorn 25.2.0\u003c/h2\u003e\n\u003ch3\u003eNew Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFast HTTP Parser (gunicorn_h1c 0.4.1)\u003c/strong\u003e: Integrate new exception types and limit parameters from gunicorn_h1c 0.4.1 for both WSGI and ASGI workers\n\u003cul\u003e\n\u003cli\u003eRequires gunicorn_h1c \u0026gt;= 0.4.1 for \u003ccode\u003ehttp_parser='fast'\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFalls back to Python parser in \u003ccode\u003eauto\u003c/code\u003e mode if version not met\u003c/li\u003e\n\u003cli\u003eProper HTTP status codes for limit errors (414, 431)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003euWSGI Async Workers\u003c/strong\u003e: Fix \u003ccode\u003eInvalidUWSGIHeader: incomplete header\u003c/code\u003e error when using gevent or gthread workers with uwsgi protocol behind nginx. (\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3552\"\u003e#3552\u003c/a\u003e, [PR \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3554\"\u003e#3554\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/pull/3554\"\u003ebenoitc/gunicorn#3554\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 href=\"https://github.com/benoitc/gunicorn/commit/9bce72cfc3985aba7e0c47bf3c00fa681b2847e4\"\u003e\u003ccode\u003e9bce72c\u003c/code\u003e\u003c/a\u003e Update changelog with missing 25.3.0 changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/2a15fdb93ab136e5776692d620852f481c89d610\"\u003e\u003ccode\u003e2a15fdb\u003c/code\u003e\u003c/a\u003e Fix pylint isinstance-second-argument-not-valid-type warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/8d08aaa2cbd38fdfa2ca6fb94094c47b9c16730a\"\u003e\u003ccode\u003e8d08aaa\u003c/code\u003e\u003c/a\u003e Fix --limit-request-line 0 to mean unlimited\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/d40a37454736e40916eb51e35895f1c22c0cd34a\"\u003e\u003ccode\u003ed40a374\u003c/code\u003e\u003c/a\u003e Fix pytest-asyncio configuration and treq_asgi hex escapes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/da8bd4850ac0f2d0df215390dad88392eb538d74\"\u003e\u003ccode\u003eda8bd48\u003c/code\u003e\u003c/a\u003e Remove unused AsyncRequest class\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/b00f125755ec3f509a3e82dc5568d9f2d8bddba7\"\u003e\u003ccode\u003eb00f125\u003c/code\u003e\u003c/a\u003e Integrate gunicorn_h1c 0.6.3 with InvalidChunkExtension support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/bdb2ebd5a4913fff1e92800f3763e4a879526d3e\"\u003e\u003ccode\u003ebdb2ebd\u003c/code\u003e\u003c/a\u003e Reject chunk extensions with bare CR bytes (RFC 9112)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/7057fc9f89f0ce4d9ac01a12ea2f39768fb32be6\"\u003e\u003ccode\u003e7057fc9\u003c/code\u003e\u003c/a\u003e Fix http_protocols documentation to use string syntax\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/d43acb8fe0910b6669c163e2f4a439e464eab012\"\u003e\u003ccode\u003ed43acb8\u003c/code\u003e\u003c/a\u003e Update to gunicorn_h1c \u0026gt;= 0.6.2 for asgi_headers support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/cbd27e82a238cb1326336c6aa4b8ae058e2c9ff9\"\u003e\u003ccode\u003ecbd27e8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3559\"\u003e#3559\u003c/a\u003e from benleembruggen/fix/http2-asgi-body-duplication\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/benoitc/gunicorn/compare/23.0.0...25.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyyaml` from 6.0.2 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/yaml/pyyaml/releases\"\u003epyyaml's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14 and free-threading (experimental).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ehttps://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\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 href=\"https://github.com/yaml/pyyaml/blob/6.0.3/CHANGES\"\u003epyyaml's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e6.0.3 (2025-09-25)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/yaml/pyyaml/pull/864\"\u003eyaml/pyyaml#864\u003c/a\u003e -- Support for Python 3.14 and free-threading (experimental)\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 href=\"https://github.com/yaml/pyyaml/commit/49790e73684bebad1df05ef8d828fa12f685bffb\"\u003e\u003ccode\u003e49790e7\u003c/code\u003e\u003c/a\u003e Release 6.0.3 (\u003ca href=\"https://redirect.github.com/yaml/pyyaml/issues/889\"\u003e#889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.33.0 to 2.33.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.1\u003c/h2\u003e\n\u003ch2\u003e2.33.1 (2026-03-30)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed test cleanup for CVE-2026-25645 to avoid leaving unnecessary\nfiles in the tmp directory. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed Content-Type header parsing for malformed values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved error consistency for malformed header values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\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=\"https://github.com/ferdnyc\"\u003e\u003ccode\u003e@​ferdnyc\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7277\"\u003epsf/requests#7277\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2331-2026-03-30\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2331-2026-03-30\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 href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.1 (2026-03-30)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed test cleanup for CVE-2026-25645 to avoid leaving unnecessary\nfiles in the tmp directory. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed Content-Type header parsing for malformed values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved error consistency for malformed header values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\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 href=\"https://github.com/psf/requests/commit/111d2b77790bf49943c0dfa09b365371c24aec7e\"\u003e\u003ccode\u003e111d2b7\u003c/code\u003e\u003c/a\u003e v2.33.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/f0198e6dfc431a2293dc16e1b1e8fcddc910a7f3\"\u003e\u003ccode\u003ef0198e6\u003c/code\u003e\u003c/a\u003e Fix malformed value parsing for Content-Type (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc7dd0fc4d56e808bcdd85ac2d797b3107c89259\"\u003e\u003ccode\u003ebc7dd0f\u003c/code\u003e\u003c/a\u003e Fix cosmetic header validity parsing regex (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/4443b1a847b190010c2972a658924b98b5db6360\"\u003e\u003ccode\u003e4443b1a\u003c/code\u003e\u003c/a\u003e Fix unintended test extra (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7306\"\u003e#7306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/389eea58dfb2f2ee096421a812e3af29c0298951\"\u003e\u003ccode\u003e389eea5\u003c/code\u003e\u003c/a\u003e Cleanup extracted file after extract_zipped_path test (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/7407309c8a8a73aa2f4337184025d440bbedab7a\"\u003e\u003ccode\u003e7407309\u003c/code\u003e\u003c/a\u003e Packaging: DRY out extras definition (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7277\"\u003e#7277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/psf/requests/compare/v2.33.0...v2.33.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `structlog` from 25.2.0 to 25.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/hynek/structlog/releases\"\u003estructlog's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.5.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cp\u003eHuge release! There's plenty of important little bug fixes and new features, but the headliner is definitely the improved ergonomics of \u003ccode\u003estructlog.dev.ConsoleRenderer\u003c/code\u003e. We have finally accepted that local development has different priorities than production and made it both mutable (with automatic re-configuration) and also easily retrievable (\u003ccode\u003ecr = ConsoleRenderer.get_active()\u003c/code\u003e). This allows you, for example, to disable Rich exception formatting as easily as \u003ccode\u003estructlog.dev.ConsoleRenderer.get_active().exception_formatter = structlog.dev.plain_traceback\u003c/code\u003e. Please check out the \u003ca href=\"https://www.structlog.org/en/stable/console-output.html\"\u003eupdated docs\u003c/a\u003e!\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eFull changelog below!\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eSpecial Thanks\u003c/h2\u003e\n\u003cp\u003eThis release would not be possible without my generous sponsors! Thank you to all of you making sustainable maintenance possible! If \u003cem\u003eyou\u003c/em\u003e would like to join them, go to \u003ca href=\"https://github.com/sponsors/hynek\"\u003ehttps://github.com/sponsors/hynek\u003c/a\u003e and check out the sweet perks!\u003c/p\u003e\n\u003ch3\u003eAbove and Beyond\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://www.variomedia.de/\"\u003eVariomedia AG\u003c/a\u003e (@\u003ca href=\"https://github.com/variomedia\"\u003evariomedia\u003c/a\u003e), \u003ca href=\"https://www.tidelift.com/\"\u003eTidelift\u003c/a\u003e (@\u003ca href=\"https://github.com/tidelift\"\u003etidelift\u003c/a\u003e), \u003ca href=\"https://www.thanks.dev\"\u003ethanks.dev\u003c/a\u003e (@\u003ca href=\"https://github.com/thnxdev\"\u003ethnxdev\u003c/a\u003e), \u003ca href=\"https://privacy-solutions.org\"\u003ePrivacy Solutions GmbH\u003c/a\u003e (@\u003ca href=\"https://github.com/privacy-solutions\"\u003eprivacy-solutions\u003c/a\u003e), \u003ca href=\"https://quesma.com/\"\u003eQuesma\u003c/a\u003e (\u003ca href=\"https://github.com/QuesmaOrg\"\u003e\u003ccode\u003e@​QuesmaOrg\u003c/code\u003e\u003c/a\u003e), \u003ca href=\"http://filepreviews.io/\"\u003eFilePreviews\u003c/a\u003e (@\u003ca href=\"https://github.com/filepreviews\"\u003efilepreviews\u003c/a\u003e), \u003ca href=\"https://www.lambdatest.com\"\u003eLambdaTest\u003c/a\u003e (@\u003ca href=\"https://github.com/LambdaTest-Inc\"\u003eLambdaTest-Inc\u003c/a\u003e), \u003ca href=\"https://doist.com/\"\u003eDoist\u003c/a\u003e (@\u003ca href=\"https://github.com/Doist\"\u003eDoist\u003c/a\u003e), Daniel Fortunov (@\u003ca href=\"https://github.com/asqui\"\u003easqui\u003c/a\u003e), and Kevin P. Fleming (@\u003ca href=\"https://github.com/kpfleming\"\u003ekpfleming\u003c/a\u003e).\u003c/p\u003e\n\u003ch3\u003eMaintenance Sustainers\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://buttondown.com\"\u003eButtondown\u003c/a\u003e (@\u003ca href=\"https://github.com/buttondown\"\u003ebuttondown\u003c/a\u003e), Jeff McCarrell (@\u003ca href=\"https://github.com/jmccarrell\"\u003ejmccarrell\u003c/a\u003e), \u003ca href=\"https://christopher.xyz\"\u003eChristopher Dignam\u003c/a\u003e (@\u003ca href=\"https://github.com/chdsbd\"\u003echdsbd\u003c/a\u003e), Magnus Watn (@\u003ca href=\"https://github.com/magnuswatn\"\u003emagnuswatn\u003c/a\u003e), \u003ca href=\"https://cra.mr\"\u003eDavid Cramer\u003c/a\u003e (@\u003ca href=\"https://github.com/dcramer\"\u003edcramer\u003c/a\u003e), Jesse Snyder (@\u003ca href=\"https://github.com/jessesnyder\"\u003ejessesnyder\u003c/a\u003e), \u003ca href=\"https://rivolaks.com\"\u003eRivo Laks\u003c/a\u003e (@\u003ca href=\"https://github.com/rivol\"\u003erivol\u003c/a\u003e), \u003ca href=\"https://polar.sh\"\u003ePolar\u003c/a\u003e (@\u003ca href=\"https://github.com/polarsource\"\u003epolarsource\u003c/a\u003e), \u003ca href=\"https://www.miketheman.net\"\u003eMike Fiedler\u003c/a\u003e (@\u003ca href=\"https://github.com/miketheman\"\u003emiketheman\u003c/a\u003e), Duncan Hill (@\u003ca href=\"https://github.com/cricalix\"\u003ecricalix\u003c/a\u003e), Colin Marquardt (@\u003ca href=\"https://github.com/cmarqu\"\u003ecmarqu\u003c/a\u003e), \u003ca href=\"https://blog.journeythatcounts.nl\"\u003ePieter Swinkels\u003c/a\u003e (@\u003ca href=\"https://github.com/swinkels\"\u003eswinkels\u003c/a\u003e), Nick Libertini (@\u003ca href=\"https://github.com/libertininick\"\u003elibertininick\u003c/a\u003e), \u003ca href=\"https://bmdphd.info/\"\u003eBrian M. Dennis\u003c/a\u003e (@\u003ca href=\"https://github.com/crossjam\"\u003ecrossjam\u003c/a\u003e), Celebrity News AG (@\u003ca href=\"https://github.com/celebritynewsag\"\u003ecelebritynewsag\u003c/a\u003e), \u003ca href=\"https://westervelt.com\"\u003eThe Westervelt Company\u003c/a\u003e (@\u003ca href=\"https://github.com/westerveltco\"\u003ewesterveltco\u003c/a\u003e), \u003ca href=\"https://slafs.net\"\u003eSławomir Ehlert\u003c/a\u003e (@\u003ca href=\"https://github.com/slafs\"\u003eslafs\u003c/a\u003e), Mostafa Khalil (@\u003ca href=\"https://github.com/khadrawy\"\u003ekhadrawy\u003c/a\u003e), \u003ca href=\"https://fmularczyk.pl\"\u003eFilip Mularczyk\u003c/a\u003e (@\u003ca href=\"https://github.com/mukiblejlok\"\u003emukiblejlok\u003c/a\u003e), Thomas Klinger (@\u003ca href=\"https://github.com/thmsklngr\"\u003ethmsklngr\u003c/a\u003e), \u003ca href=\"https://poehlmann.io\"\u003eAndreas Poehlmann\u003c/a\u003e (@\u003ca href=\"https://github.com/ap--\"\u003eap--\u003c/a\u003e), \u003ca href=\"https://atbigelow.com\"\u003eAugust Trapper Bigelow\u003c/a\u003e (@\u003ca href=\"https://github.com/atbigelow\"\u003eatbigelow\u003c/a\u003e), \u003ca href=\"https://noumenal.es/\"\u003eCarlton Gibson\u003c/a\u003e (@\u003ca href=\"https://github.com/carltongibson\"\u003ecarltongibson\u003c/a\u003e), \u003ca href=\"https://roboflow.com\"\u003eRoboflow\u003c/a\u003e (@\u003ca href=\"https://github.com/roboflow\"\u003eroboflow\u003c/a\u003e), and Jeff McCarrell (@\u003ca href=\"https://github.com/jmccarrell\"\u003ejmccarrell\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003eFull Changelog\u003c/h2\u003e\n\u003ch3\u003eDeprecated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003estructlog.dev.ConsoleRenderer()\u003c/code\u003e's \u003cem\u003epad_event\u003c/em\u003e argument has been renamed to \u003cem\u003epad_event_to\u003c/em\u003e to differentiate it from the boolean \u003cem\u003epad_level\u003c/em\u003e argument. \u003cem\u003epad_event\u003c/em\u003e is now deprecated.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003estructlog.dev.ConsoleRenderer.get_active()\u003c/code\u003e that returns the currently active \u003ccode\u003estructlog.dev.ConsoleRenderer()\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/hynek/structlog/pull/749\"\u003e#749\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003estructlog.dev.ConsoleRenderer()\u003c/code\u003e now supports setting the \u003ccode\u003eexception_formatter\u003c/code\u003e attribute.\u003c/p\u003e\n\u003cp\u003eYou can now disable the pretty-printing of exceptions by setting it to \u003ccode\u003estructlog.dev.plain_traceback\u003c/code\u003e:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecr = structlog.dev.ConsoleRenderer.get_active()\r\ncr.exception_formatter = structlog.dev.plain_traceback\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eSame goes for \u003cem\u003esort_keys\u003c/em\u003e, \u003cem\u003ecolumns\u003c/em\u003e, \u003cem\u003ecolors\u003c/em\u003e, \u003cem\u003eforce_colors\u003c/em\u003e, \u003cem\u003elevel_styles\u003c/em\u003e, \u003cem\u003epad_event_to\u003c/em\u003e, \u003cem\u003eevent_key\u003c/em\u003e, \u003cem\u003etimestamp_key\u003c/em\u003e, and \u003cem\u003erepr_native_str\u003c/em\u003e.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/hynek/structlog/pull/749\"\u003e#749\u003c/a\u003e \u003ca href=\"https://redirect.github.com/hynek/structlog/pull/756\"\u003e#756\u003c/a\u003e \u003ca href=\"https://redirect.github.com/hynek/structlog/pull/757\"\u003e#757\u003c/a\u003e \u003ca href=\"https://redirect.github.com/hynek/structlog/pull/759\"\u003e#759\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003estructlog.dev.ConsoleRenderer.get_default_column_styles()\u003c/code\u003e for reuse the default column styles. \u003ca href=\"https://redirect.github.com/hynek/structlog/pull/741\"\u003e#741\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003estructlog.testing.capture_logs()\u003c/code\u003e now optionally accepts \u003cem\u003eprocessors\u003c/em\u003e to apply before capture. \u003ca href=\"https://redirect.github.com/hynek/structlog/pull/728\"\u003e#728\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 href=\"https://github.com/hynek/structlog/blob/main/CHANGELOG.md\"\u003estructlog's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/hynek/structlog/compare/25.4.0...25.5.0\"\u003e25.5.0\u003c/a\u003e - 2025-10-27\u003c/h2\u003e\n\u003ch3\u003eDeprecated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003estructlog.dev.ConsoleRenderer()\u003c/code\u003e's \u003cem\u003epad_event\u003c/em\u003e argument has been renamed to \u003cem\u003epad_event_to\u003c/em\u003e to differentiate it from the boolean \u003cem\u003epad_level\u003c/em\u003e argument.\n\u003cem\u003epad_event\u003c/em\u003e is now deprecated.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003estructlog.dev.ConsoleRenderer.get_active()\u003c/code\u003e that returns the currently active \u003ccode\u003estructlog.dev.ConsoleRenderer()\u003c/code\u003e.\n\u003ca href=\"https://redirect.github.com/hynek/structlog/pull/749\"\u003e#749\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003estructlog.dev.ConsoleRenderer()\u003c/code\u003e now supports setting the \u003ccode\u003eexception_formatter\u003c/code\u003e attribute.\u003c/p\u003e\n\u003cp\u003eYou can now disable the pretty-printing of exceptions by setting it to \u003ccode\u003estructlog.dev.plain_traceback\u003c/code\u003e:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecr = structlog.dev.ConsoleRenderer.get_active()\ncr.exception_formatter = structlog.dev.plain_traceback\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eSame goes for \u003cem\u003esort_keys\u003c/em\u003e, \u003cem\u003ecolumns\u003c/em\u003e, \u003cem\u003ecolors\u003c/em\u003e, \u003cem\u003eforce_colors\u003c/em\u003e, \u003cem\u003elevel_styles\u003c/em\u003e, \u003cem\u003epad_event_to\u003c/em\u003e, \u003cem\u003eevent_key\u003c/em\u003e, \u003cem\u003etimestamp_key\u003c/em\u003e, and \u003cem\u003erepr_native_str\u003c/em\u003e.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/hynek/structlog/pull/749\"\u003e#749\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/hynek/structlog/pull/756\"\u003e#756\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/hynek/structlog/pull/757\"\u003e#757\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/hynek/structlog/pull/759\"\u003e#759\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003estructlog.dev.ConsoleRenderer.get_default_column_styles()\u003c/code\u003e for reuse the default column styles.\n\u003ca href=\"https://redirect.github.com/hynek/structlog/pull/741\"\u003e#741\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003estructlog.testing.capture_logs()\u003c/code\u003e now optionally accepts \u003cem\u003eprocessors\u003c/em\u003e to apply before capture.\n\u003ca href=\"https://redirect.github.com/hynek/structlog/pull/728\"\u003e#728\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003estructlog.dev.RichTracebackFormatter\u003c/code\u003e now exposes the upstream \u003cem\u003ecode_width\u003c/em\u003e parameter.\nDefault \u003cem\u003ewidth\u003c/em\u003e is now \u003ccode\u003eNone\u003c/code\u003e for full terminal width.\nFull terminal width is now handled by Rich itself, bringing support for reflow and \u003ccode\u003eCOLUMN\u003c/code\u003e environment variable.\nPassing \u003ccode\u003e-1\u003c/code\u003e for \u003cem\u003ewidth\u003c/em\u003e is now deprecated and automatically replaced by \u003ccode\u003eNone\u003c/code\u003e.\n\u003ca href=\"https://redirect.github.com/hynek/structlog/pull/717\"\u003e#717\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eNative loggers now allow the passing of a dictionary for dictionary-based interpolation \u003ccode\u003elog.info(\u0026quot;hello %(name)s!\u0026quot;, {\u0026quot;name\u0026quot;: \u0026quot;world\u0026quot;})\u003c/code\u003e.\n\u003ca href=\"https://redirect.github.com/hynek/structlog/pull/748\"\u003e#748\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eOn Python 3.11+, \u003ccode\u003estructlog.processors.CallsiteParameterAdder\u003c/code\u003e now supports \u003ccode\u003eCallsiteParameter.QUAL_NAME\u003c/code\u003e that adds the qualified name of the callsite, including scope and class names.\nThis is only available for \u003cem\u003estructlog\u003c/em\u003e-originated events since the standard library has no equivalent.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003estructlog.stdlib.LoggerFactory\u003c/code\u003e now supports the \u003cem\u003estacklevel\u003c/em\u003e parameter.\n\u003ca href=\"https://redirect.github.com/hynek/structlog/pull/763\"\u003e#763\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\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/structlog/commit/c0ef9e09e7a536cae65e33c1ac1c8b4e6a6f7511\"\u003e\u003ccode\u003ec0ef9e0\u003c/code\u003e\u003c/a\u003e Prepare 25.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/structlog/commit/9cb662fe32046f92f08346c58089a2dcba7cb4bf\"\u003e\u003ccode\u003e9cb662f\u003c/code\u003e\u003c/a\u003e docs: nit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/structlog/commit/5400612735ad07bbe8ee9f2279f3040aa2e69ca4\"\u003e\u003ccode\u003e5400612\u003c/code\u003e\u003c/a\u003e docs/stdlib: add warning about ProcessorFormatter\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/structlog/commit/1c2c19aa19c8f30330b76465b7a0d9993b9e8360\"\u003e\u003ccode\u003e1c2c19a\u003c/code\u003e\u003c/a\u003e Try validating pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/structlog/commit/aca10f23dd12bd9e14cfe712f1ce66c9cb5f4400\"\u003e\u003ccode\u003eaca10f2\u003c/code\u003e\u003c/a\u003e Drop pretend dependency (\u003ca href=\"https://redirect.github.com/hynek/structlog/issues/766\"\u003e#766\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/structlog/commit/3800d401db2c682c7c83b2d3eec38d81c9791f4d\"\u003e\u003ccode\u003e3800d40\u003c/code\u003e\u003c/a\u003e docs: use native\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/structlog/commit/ecaa15ac6b166ebca9f2b4f5cfdb4c4ec138a602\"\u003e\u003ccode\u003eecaa15a\u003c/code\u003e\u003c/a\u003e stdlib: add support for stacklevel (\u003ca href=\"https://redirect.github.com/hynek/structlog/issues/763\"\u003e#763\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/structlog/commit/7f7a221aed6bbff3c13cefd7effe14cc4f0cfc24\"\u003e\u003ccode\u003e7f7a221\u003c/code\u003e\u003c/a\u003e update dev (\u003ca href=\"https://redirect.github.com/hynek/structlog/issues/765\"\u003e#765\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/structlog/commit/5acfc85e3c3fa821dc65b55a226900d40dc0831c\"\u003e\u003ccode\u003e5acfc85\u003c/code\u003e\u003c/a\u003e docs: 5% bigger still\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/structlog/commit/c102862e3f30de84c898c4501418dede15056c6d\"\u003e\u003ccode\u003ec102862\u003c/code\u003e\u003c/a\u003e docs: bigger font\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/hynek/structlog/compare/25.2.0...25.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ua-parser` from 1.0.1 to 1.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ua-parser/uap-python/releases\"\u003eua-parser's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eua-parser 1.0.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed bug in yaml and json loaders, mostly (but not exclusively) affecting windows (non-ascii regex files would fail to parse)\u003c/li\u003e\n\u003cli\u003eAdded caching by default to the regex and re2 resolvers.\u003c/li\u003e\n\u003cli\u003eDropped Python 3.9\u003c/li\u003e\n\u003cli\u003eAdded support for Python 3.13, 3.14, 3.14t, graal25\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 href=\"https://github.com/ua-parser/uap-python/commit/2179269a30d695cda0c9d59067d64fa47171a187\"\u003e\u003ccode\u003e2179269\u003c/code\u003e\u003c/a\u003e Fix release job's condition\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ua-parser/uap-python/commit/f7aa24d80f9d5f8eed1e08ca5a264af5c61a3681\"\u003e\u003ccode\u003ef7aa24d\u003c/code\u003e\u003c/a\u003e Bump versions in preparation for new releases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ua-parser/uap-python/commit/f5ba8dbe8f997f3180bd5ec0cca3e38ea113b2ba\"\u003e\u003ccode\u003ef5ba8db\u003c/code\u003e\u003c/a\u003e Update docs for \u003ca href=\"https://redirect.github.com/ua-parser/uap-python/issues/302\"\u003e#302\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ua-parser/uap-python/commit/c85e4e3d4cdf54200bb8eca5c14c682e052650f8\"\u003e\u003ccode\u003ec85e4e3\u003c/code\u003e\u003c/a\u003e Always cache resolvers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ua-parser/uap-python/commit/fa30fada2f63685082b24ab25acc19f82f8b6ed1\"\u003e\u003ccode\u003efa30fad\u003c/code\u003e\u003c/a\u003e Improve caching\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ua-parser/uap-python/commit/39531862fe74f53e2b14a94056bacf6a227e16b7\"\u003e\u003ccode\u003e3953186\u003c/code\u003e\u003c/a\u003e Modernize dataclasses use\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ua-parser/uap-python/commit/0188997e9eaacfea9982e29e604e3e4ba4da1cce\"\u003e\u003ccode\u003e0188997\u003c/code\u003e\u003c/a\u003e Fix readme (3.9 support was dropped by \u003ca href=\"https://redirect.github.com/ua-parser/uap-python/issues/285\"\u003e#285\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ua-parser/uap-python/commit/891837c725d47a1e7913513eb410f9e58befdabc\"\u003e\u003ccode\u003e891837c\u003c/code\u003e\u003c/a\u003e Remove setuptools-scm from build requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ua-parser/uap-python/commit/84206d860c09c73e9617f876ed4913cd2bfff4a6\"\u003e\u003ccode\u003e84206d8\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eproject.license\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ua-parser/uap-python/commit/6d891a6f8f8bc4f419220fb56b12b1fc15ae4349\"\u003e\u003ccode\u003e6d891a6\u003c/code\u003e\u003c/a\u003e Remove license classifier\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ua-parser/uap-python/compare/1.0.1...1.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `boto3` from 1.37.23 to 1.42.87\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/8d65320e4df23b56f3dc5b09ad75d95bcc85382b\"\u003e\u003ccode\u003e8d65320\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.87'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/aff7ae57451834a94a1ba027b3bce741612e3d09\"\u003e\u003ccode\u003eaff7ae5\u003c/code\u003e\u003c/a\u003e Bumping version to 1.42.87\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/a58071d342a6c659814e6baca5d353d0c311a5e5\"\u003e\u003ccode\u003ea58071d\u003c/code\u003e\u003c/a\u003e Add changelog entries from botocore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/bf26a45aa2447dfee29ab904b99eeda523c20874\"\u003e\u003ccode\u003ebf26a45\u003c/code\u003e\u003c/a\u003e Add boto3 version clarification for login with console credentials (\u003ca href=\"https://redirect.github.com/boto/boto3/issues/4758\"\u003e#4758\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/a4315bc80b83e8cf59e8582eef0e75f79fc01e4a\"\u003e\u003ccode\u003ea4315bc\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.86'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/8f0be8d174a0523018093fde6cbe236f5889cc37\"\u003e\u003ccode\u003e8f0be8d\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.86' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/f78bb8a98d3ae1f449505f99dd050932db96da66\"\u003e\u003ccode\u003ef78bb8a\u003c/code\u003e\u003c/a\u003e Bumping version to 1.42.86\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/db209b52a0591d13c55127c374c24c42aa558cee\"\u003e\u003ccode\u003edb209b5\u003c/code\u003e\u003c/a\u003e Add changelog entries from botocore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/499ee750eb6d5bd5ea8ecb9ce5081db5b84f2e93\"\u003e\u003ccode\u003e499ee75\u003c/code\u003e\u003c/a\u003e Allow SSEC bucket decryption in s3 integ tests (\u003ca href=\"https://redirect.github.com/boto/boto3/issues/4759\"\u003e#4759\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/c24d93e592ef5b06d9943253aea3a2e94d762f88\"\u003e\u003ccode\u003ec24d93e\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.85'\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boto/boto3/compare/1.37.23...1.42.87\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `humanize` from 4.12.2 to 4.15.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-humanize/humanize/releases\"\u003ehumanize's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.15.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd locale support for decimal separator in \u003ccode\u003eintword\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/287\"\u003e#287\u003c/a\u003e) \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.15 (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/275\"\u003e#275\u003c/a\u003e) \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplace pre-commit with prek (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/276\"\u003e#276\u003c/a\u003e) \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003enaturaldelta\u003c/code\u003e: round the value to nearest unit that makes sense (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/272\"\u003e#272\u003c/a\u003e) \u003ca href=\"https://github.com/dangillet\"\u003e\u003ccode\u003e@​dangillet\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix plural form for \u003ccode\u003eintword\u003c/code\u003e and improve performance (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/273\"\u003e#273\u003c/a\u003e) \u003ca href=\"https://github.com/dangillet\"\u003e\u003ccode\u003e@​dangillet\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace \u003ccode\u003eException\u003c/code\u003e with more specific \u003ccode\u003eFileNotFoundError\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/286\"\u003e#286\u003c/a\u003e) \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.14.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Uzbek language (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/264\"\u003e#264\u003c/a\u003e) \u003ca href=\"https://github.com/sSimuSs\"\u003e\u003ccode\u003e@​sSimuSs\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/268\"\u003e#268\u003c/a\u003e) \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.13.0\u003c/h2\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimise \u003ccode\u003enaturalsize\u003c/code\u003e algorithm by using \u003ccode\u003emath.log\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/253\"\u003e#253\u003c/a\u003e) \u003ca href=\"https://github.com/Zaczero\"\u003e\u003ccode\u003e@​Zaczero\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eprecisedelta\u003c/code\u003e rounding (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/254\"\u003e#254\u003c/a\u003e) \u003ca href=\"https://github.com/dangillet\"\u003e\u003ccode\u003e@​dangillet\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.12.3\u003c/h2\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression in \u003ccode\u003enaturalsize\u003c/code\u003e for \u003ccode\u003efloat\u003c/code\u003e and \u003ccode\u003estr\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/250\"\u003e#250\u003c/a\u003e) \u003ca href=\"https://github.com/loicleyendecker\"\u003e\u003ccode\u003e@​loicleyendecker\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprovements for French translation (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/248\"\u003e#248\u003c/a\u003e) \u003ca href=\"https://github.com/merwok\"\u003e\u003ccode\u003e@​merwok\u003c/code\u003e\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 href=\"https://github.com/python-humanize/humanize/commit/2ddb5903cdc1c7e6eb6b083f4f99f73db50aecd9\"\u003e\u003ccode\u003e2ddb590\u003c/code\u003e\u003c/a\u003e Replace \u003ccode\u003eException\u003c/code\u003e with more specific \u003ccode\u003eFileNotFoundError\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/286\"\u003e#286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-humanize/humanize/commit/e87f2e25660d3af2ea553ea8dc63bff99652bc94\"\u003e\u003ccode\u003ee87f2e2\u003c/code\u003e\u003c/a\u003e Add locale support for decimal separator in \u003ccode\u003eintword\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-humanize/humanize/commit/717518400d6709cf7e9bebe4a9424eb3b1ebd60d\"\u003e\u003ccode\u003e7175184\u003c/code\u003e\u003c/a\u003e Add locale support for decimal separator in intword\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-humanize/humanize/commit/25269993e7ef021edaba620c96827ca21cc13d7e\"\u003e\u003ccode\u003e2526999\u003c/code\u003e\u003c/a\u003e Update config (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/285\"\u003e#285\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-humanize/humanize/commit/ba532d9ae45d1da89f3687259324365dc187ebca\"\u003e\u003ccode\u003eba532d9\u003c/code\u003e\u003c/a\u003e Replace Exception with more specific FileNotFoundError\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-humanize/humanize/commit/bdc49ea831cb3a79ba0155a57f27259cabb8cafd\"\u003e\u003ccode\u003ebdc49ea\u003c/code\u003e\u003c/a\u003e Don't ignore UP038, it's been removed from Ruff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-humanize/humanize/commit/86f116bda6698c3e03e0db5f7fcfd929a4ba9ad4\"\u003e\u003ccode\u003e86f116b\u003c/code\u003e\u003c/a\u003e Add seven-day cooldown to Renovate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-humanize/humanize/commit/e3f7116924dad455a87e85a5d7b8b7a07460fd57\"\u003e\u003ccode\u003ee3f7116\u003c/code\u003e\u003c/a\u003e No need for setup-python with prek-action\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-humanize/humanize/commit/3dca143f7884b928632f68449423d914531ca267\"\u003e\u003ccode\u003e3dca143\u003c/code\u003e\u003c/a\u003e \u003ccode\u003enaturaldelta\u003c/code\u003e: round the value to nearest unit that makes sense (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/272\"\u003e#272\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-humanize/humanize/commit/bac6f269d7f51adcd62840db969c0a40fec8fd70\"\u003e\u003ccode\u003ebac6f26\u003c/code\u003e\u003c/a\u003e Apply suggestion from \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-humanize/humanize/compare/4.12.2...4.15.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `marshmallow` from 3.26.2 to 4.3.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/marshmallow-code/marshmallow/blob/dev/CHANGELOG.rst\"\u003emarshmallow's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.3.0 (2026-04-03)\u003c/h2\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre_load\u003c/code\u003e and \u003ccode\u003epost_load\u003c/code\u003e parameters to \u003ccode\u003emarshmallow.fields.Field\u003c/code\u003e for\nfield-level pre- and post-processing (:issue:\u003ccode\u003e2787\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eTyping: improvements to \u003ccode\u003emarshmallow.validate\u003c/code\u003e (:pr:\u003ccode\u003e2940\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.2.4 (2026-04-02)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003emarshmallow.validate.URL\u003c/code\u003e and \u003ccode\u003emarshmallow.validate.Email\u003c/code\u003e accept Internationalized Domain Names (IDNs) (:issue:\u003ccode\u003e2821\u003c/code\u003e, :issue:\u003ccode\u003e2936\u003c/code\u003e).\n\u003ccode\u003emarshmallow.validate.Email\u003c/code\u003e also correctly rejects IDN domains with leading/trailing hyphens.\nThanks :user:\u003ccode\u003etouhidurrr\u003c/code\u003e for the report.\u003c/li\u003e\n\u003cli\u003eTyping: Fix typing of \u003ccode\u003enested\u003c/code\u003e in \u003ccode\u003emarshmallow.fields.Nested\u003c/code\u003e (:pr:\u003ccode\u003e2935\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.2.3 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMake \u003ccode\u003emarshmallow.fields.Number\u003c/code\u003e and \u003ccode\u003emarshmallow.fields.Mapping\u003c/code\u003e abstract base classes to\nprevent using them within Schemas (:issue:\u003ccode\u003e2924\u003c/code\u003e). Thanks :user:\u003ccode\u003eMartingaleCoda\u003c/code\u003e for reporting.\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003erequired\u003c/code\u003e to be set on \u003ccode\u003emarshmallow.fields.Contant\u003c/code\u003e (:issue:\u003ccode\u003e2900\u003c/code\u003e).\nThanks :user:\u003ccode\u003enosnickid\u003c/code\u003e for the report and :user:\u003ccode\u003eworksbyfriday\u003c/code\u003e for the PR.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003emarshmallow.validate.OneOf\u003c/code\u003e emitting extra pairs when labels outnumber choices (:issue:\u003ccode\u003e2869\u003c/code\u003e).\nThanks: user:\u003ccode\u003eT90REAL\u003c/code\u003e for the report and :user:\u003ccode\u003erstar327\u003c/code\u003e for the PR.\u003c/li\u003e\n\u003cli\u003eFix behavior when passing a dot-delimited attribute name to \u003ccode\u003epartial\u003c/code\u003e for a key with \u003ccode\u003edata_key\u003c/code\u003e set (:pr:\u003ccode\u003e2903\u003c/code\u003e).\nThanks :user:\u003ccode\u003ebysiber\u003c/code\u003e for the PR.\u003c/li\u003e\n\u003cli\u003eFix Enum field by-name lookup to only return actual members (:pr:\u003ccode\u003e2902\u003c/code\u003e).\nThanks :user:\u003ccode\u003ebysiber\u003c/code\u003e for the PR.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emarshmallow.fields.DateTime\u003c/code\u003e with \u003ccode\u003eformat=\u0026quot;timestamp_ms\u0026quot;\u003c/code\u003e properly\nrejects bool values (:pr:\u003ccode\u003e2904\u003c/code\u003e). Thanks :user:\u003ccode\u003ebysiber\u003c/code\u003e for the PR.\u003c/li\u003e\n\u003cli\u003eFix typing of \u003ccode\u003eerror_messages\u003c/code\u003e argument to \u003ccode\u003emarshmallow.fields.Field\u003c/code\u003e (:pr:\u003ccode\u003e1636\u003c/code\u003e).\nThanks :user:\u003ccode\u003erepole\u003c/code\u003e for reporting and :user:\u003ccode\u003edhruvildarji\u003c/code\u003e for the PR.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eOther changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eipaddress.*\u003c/code\u003e to \u003ccode\u003emarshmallow.Schema.TYPE_MAPPING\u003c/code\u003e (:issue:\u003ccode\u003e1695\u003c/code\u003e).\nThanks :user:\u003ccode\u003eliberforce\u003c/code\u003e for the suggestion and :user:\u003ccode\u003edhruvildarji\u003c/code\u003e for the PR.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.2.2 (2026-02-04)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix behavior of \u003ccode\u003efields.Contant(None)\u003c/code\u003e (:issue:\u003ccode\u003e2868\u003c/code\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 href=\"https://github.com/marshmallow-code/marshmallow/commit/b596fdb0d1bda68ae400ab29e1f1bde2f06900b3\"\u003e\u003ccode\u003eb596fdb\u003c/code\u003e\u003c/a\u003e Bump version and update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/256f0aabbc18232219e33854999372cfe1643f52\"\u003e\u003ccode\u003e256f0aa\u003c/code\u003e\u003c/a\u003e Add pre/post_load parameters to Field (\u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2799\"\u003e#2799\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/c847ad47a3f1235021bd2624b10c255a936ed107\"\u003e\u003ccode\u003ec847ad4\u003c/code\u003e\u003c/a\u003e Typing improvements to marshmallow.validate (\u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/eb863228f5273244c19388fb6161ffdb90cb04d1\"\u003e\u003ccode\u003eeb86322\u003c/code\u003e\u003c/a\u003e Remove redundant docs job (\u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2939\"\u003e#2939\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/a44ad62a876d2e9330d0e370b438bafb058676d4\"\u003e\u003ccode\u003ea44ad62\u003c/code\u003e\u003c/a\u003e Avoid infinite recursion in nesting docs (\u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2938\"\u003e#2938\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/3360e34a2da480eba03ae07bd4b15f0859027bf8\"\u003e\u003ccode\u003e3360e34\u003c/code\u003e\u003c/a\u003e Bump version and update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/7b9ce45ac906c2597ac0acb7416e01e80218b546\"\u003e\u003ccode\u003e7b9ce45\u003c/code\u003e\u003c/a\u003e Fix changelog typos and update releasing docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/f07eadc87dfac25ed505d5cd9d186920f2682733\"\u003e\u003ccode\u003ef07eadc\u003c/code\u003e\u003c/a\u003e Fix validate.Email to accept IDNs (\u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2937\"\u003e#2937\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/4acb783c73130f762aa5b0df6b65ff7685d5ff2c\"\u003e\u003ccode\u003e4acb783\u003c/code\u003e\u003c/a\u003e Fix Unreachable Warning (\u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2935\"\u003e#2935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/3492fae7b31d310814ad16fcddad5c7717d54949\"\u003e\u003ccode\u003e3492fae\u003c/code\u003e\u003c/a\u003e Remove redundant python-version (\u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2932\"\u003e#2932\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/marshmallow-code/marshmallow/compare/3.26.2...4.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-storage` from 3.1.0 to 3.10.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-storage/releases\"\u003egoogle-cloud-storage's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-cloud-storage: v3.10.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-storage/compare/v3.10.0...v3.10.1\"\u003e3.10.1\u003c/a\u003e (2026-03-23)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eraise ValueError if api_endpoint is unset when using AnonymousCredentials in AsyncGrpcClient.  (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1778\"\u003e#1778\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/17828ea3\"\u003e17828ea3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogle-cloud-storage: v3.10.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-storage/compare/v3.9.0...v3.10.0\"\u003e3.10.0\u003c/a\u003e (2026-03-18)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[Bucket Encryption Enforcement] add support for bucket encryption enforcement config (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1742\"\u003e#1742\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/2a6e8b00e4e6ff57460373f8e628fd363be47811\"\u003e2a6e8b00e4e6ff57460373f8e628fd363be47811\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerf Improvments\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[Rapid Buckets Reads] Use raw proto access for read resumption strategy (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1764\"\u003e#1764\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/14cfd61ce35365a409650981239ef742cdf375fb\"\u003e14cfd61ce35365a409650981239ef742cdf375fb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Rapid Buckets Benchmarks] init mp pool \u0026amp; grpc client once, use os.sched_setaffinity (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1751\"\u003e#1751\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/a9eb82c1b9b3c6ae5717d47b76284ed0deb5f769\"\u003ea9eb82c1b9b3c6ae5717d47b76284ed0deb5f769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Rapid Buckets Writes] don't flush at every append, results in bad perf (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1746\"\u003e#1746\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/ab62d728ac7d7be3c4fe9a99d72e35ead310805a\"\u003eab62d728ac7d7be3c4fe9a99d72e35ead310805a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[Windows] skip downloading blobs whose name contain \u003ccode\u003e\u0026quot;:\u0026quot; \u003c/code\u003e eg: \u003ccode\u003eC:\u003c/code\u003e \u003ccode\u003eD:\u003c/code\u003e etc when application runs in Windows. (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1774\"\u003e#1774\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/558198823ed51918db9c0137715d1e7f5b593975\"\u003e558198823ed51918db9c0137715d1e7f5b593975\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Path Traversal] Prevent path traversal in \u003ccode\u003edownload_many_to_path\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1768\"\u003e#1768\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/700fec3bf7aa37bd5ea4b163cc3f9e8e6892bd5a\"\u003e700fec3bf7aa37bd5ea4b163cc3f9e8e6892bd5a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Rapid Buckets] pass token correctly, '\u0026amp;' instead of ',' (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1756\"\u003e#1756\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/d8dd1e074d2431de9b45e0103181dce749a447a0\"\u003ed8dd1e074d2431de9b45e0103181dce749a447a0\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogle-cloud-storage 3.9.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-storage/compare/v3.8.0...v3.9.0\"\u003e3.9.0\u003c/a\u003e (2026-02-02)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eupdate generation for MRD (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1730\"\u003e#1730\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/08bc7082\"\u003e08bc7082\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eadd get_object method for async grpc client (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1735\"\u003e#1735\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/0e5ec29b\"\u003e0e5ec29b\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd micro-benchmarks for reads comparing standard (regional) vs rapid (zonal) buckets. (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1697\"\u003e#1697\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/1917649f\"\u003e1917649f\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd support for opening via \u003ccode\u003ewrite_handle\u003c/code\u003e and fix \u003ccode\u003ewrite_handle\u003c/code\u003e type (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1715\"\u003e#1715\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/2bc15fa5\"\u003e2bc15fa5\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eadd samples for appendable objects writes and reads (\u003ca href=\"https://github.com/googleapis/python-storage/commit/2e1a1eb5\"\u003e2e1a1eb5\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eadd samples for appendable objects writes and reads (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1705\"\u003e#1705\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/2e1a1eb5\"\u003e2e1a1eb5\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eadd context manager to mrd (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1724\"\u003e#1724\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/5ac2808a\"\u003e5ac2808a\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMove Zonal Buckets features of \u003ccode\u003e_experimental\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1728\"\u003e#1728\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/74c9ecc5\"\u003e74c9ecc5\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eadd default user agent for grpc (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1726\"\u003e#1726\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/7b319469\"\u003e7b319469\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 href=\"https://github.com/googleapis/python-storage/blob/main/CHANGELOG.md\"\u003egoogle-cloud-storage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-storage/compare/v3.10.0...v3.10.1\"\u003e3.10.1\u003c/a\u003e (2026-03-23)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eraise ValueError if api_endpoint is unset when using AnonymousCredentials in AsyncGrpcClient.  (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1778\"\u003e#1778\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/17828ea316872938a98a6360b10a2495c54bbbcb\"\u003e17828ea316872938a98a6360b10a2495c54bbbcb\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-storage/compare/v3.9.0...v3.10.0\"\u003e3.10.0\u003c/a\u003e (2026-03-18)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[Bucket Encryption Enforcement] add support for bucket encryption enforcement config (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1742\"\u003e#1742\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/2a6e8b00e4e6ff57460373f8e628fd363be47811\"\u003e2a6e8b00e4e6ff57460373f8e628fd363be47811\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerf Improvments\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[Rapid Buckets Reads] Use raw proto access for read resumption strategy (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1764\"\u003e#1764\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/14cfd61ce35365a409650981239ef742cdf375fb\"\u003e14cfd61ce35365a409650981239ef742cdf375fb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Rapid Buckets Benchmarks] init mp pool \u0026amp; grpc client once, use os.sched_setaffinity (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1751\"\u003e#1751\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/a9eb82c1b9b3c6ae5717d47b76284ed0deb5f769\"\u003ea9eb82c1b9b3c6ae5717d47b76284ed0deb5f769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Rapid Buckets Writes] don't flush at every append, results in bad perf (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1746\"\u003e#1746\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/ab62d728ac7d7be3c4fe9a99d72e35ead310805a\"\u003eab62d728ac7d7be3c4fe9a99d72e35ead310805a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[Windows] skip downloading blobs whose name contain \u003ccode\u003e\u0026quot;:\u0026quot; \u003c/code\u003e eg: \u003ccode\u003eC:\u003c/code\u003e \u003ccode\u003eD:\u003c/code\u003e etc when application runs in Windows. (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1774\"\u003e#1774\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/558198823ed51918db9c0137715d1e7f5b593975\"\u003e558198823ed51918db9c0137715d1e7f5b593975\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Path Traversal] Prevent path traversal in \u003ccode\u003edownload_many_to_path\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1768\"\u003e#1768\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/700fec3bf7aa37bd5ea4b163cc3f9e8e6892bd5a\"\u003e700fec3bf7aa37bd5ea4b163cc3f9e8e6892bd5a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Rapid Buckets] pass token correctly, '\u0026amp;' instead of ',' (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1756\"\u003e#1756\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/d8dd1e074d2431de9b45e0103181dce749a447a0\"\u003ed8dd1e074d2431de9b45e0103181dce749a447a0\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-storage/compare/v3.8.0...v3.9.0\"\u003e3.9.0\u003c/a\u003e (2026-02-02)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd get_object method for async grpc client (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1735\"\u003e#1735\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/0e5ec29bc6a31b77bcfba4254cef5bffb199095c\"\u003e0e5ec29bc6a31b77bcfba4254cef5bffb199095c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eexpose \u003ccode\u003eDELETE_OBJECT\u003c/code\u003e   in \u003ccode\u003eAsyncGrpcClient\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1718\"\u003e#1718\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/c8dd7a0b124c395b7b60189ee78f47aba8d51f7d\"\u003ec8dd7a0b124c395b7b60189ee78f47aba8d51f7d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate generation for MRD (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1730\"\u003e#1730\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/08bc7082db7392f13bc8...\n\n_Description has been truncated_","html_url":"https://github.com/ONSdigital/eq-questionnaire-runner/pull/1867","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ONSdigital%2Feq-questionnaire-runner/issues/1867","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1867/packages"},{"uuid":"3828367906","node_id":"PR_kwDOQDraYs698EM9","number":12,"state":"open","title":"deps: bump the prod-deps group across 1 directory with 37 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-01-19T07:22:57.000Z","updated_at":"2026-01-26T08:12:43.469Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps: bump","group_name":"prod-deps","update_count":37,"packages":[{"name":"django","old_version":"4.2.24","new_version":"6.0.1","repository_url":"https://github.com/django/django"},{"name":"psycopg2-binary","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"celery","old_version":"5.5.3","new_version":"5.6.2","repository_url":"https://github.com/celery/celery"},{"name":"hiredis","old_version":"3.2.1","new_version":"3.3.0","repository_url":"https://github.com/redis/hiredis-py"},{"name":"brotli","old_version":"1.1.0","new_version":"1.2.0","repository_url":"https://github.com/google/brotli"},{"name":"django-compressor","old_version":"4.5.1","new_version":"4.6.0","repository_url":"https://github.com/django-compressor/django-compressor"},{"name":"django-pint","old_version":"0.7.3","new_version":"1.0.3","repository_url":"https://github.com/CarliJoy/django-pint"},{"name":"django-post-office","old_version":"3.10.1","new_version":"3.11.0","repository_url":"https://github.com/ui/django-post_office"},{"name":"drf-yasg","old_version":"1.21.10","new_version":"1.21.14","repository_url":"https://github.com/axnsan12/drf-yasg"},{"name":"jellyfish","old_version":"1.2.0","new_version":"1.2.1"},{"name":"markdown","old_version":"3.9","new_version":"3.10","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"xlsxwriter","old_version":"3.2.5","new_version":"3.2.9","repository_url":"https://github.com/jmcnamara/XlsxWriter"},{"name":"xmltodict","old_version":"0.15.1","new_version":"1.0.2","repository_url":"https://github.com/martinblech/xmltodict"},{"name":"xmlschema","old_version":"4.1.0","new_version":"4.3.1","repository_url":"https://github.com/sissaschool/xmlschema"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"shapely","old_version":"2.0.7","new_version":"2.1.2","repository_url":"https://github.com/shapely/shapely"},{"name":"django-treebeard","old_version":"4.7.1","new_version":"4.8.0","repository_url":"https://github.com/django-treebeard/django-treebeard"},{"name":"django-two-factor-auth","old_version":"1.17.0","new_version":"1.18.1"},{"name":"importlib-metadata","old_version":"8.7.0","new_version":"8.7.1","repository_url":"https://github.com/python/importlib_metadata"},{"name":"boto3","old_version":"1.40.27","new_version":"1.42.30","repository_url":"https://github.com/boto/boto3"},{"name":"django-ses","old_version":"4.4.0","new_version":"4.6.0","repository_url":"https://github.com/django-ses/django-ses"},{"name":"uwsgi","old_version":"2.0.30","new_version":"2.0.31"},{"name":"coverage","old_version":"7.10.6","new_version":"7.13.1","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"coveralls","old_version":"4.0.1","new_version":"4.0.2","repository_url":"https://github.com/TheKevJames/coveralls-python"},{"name":"tox","old_version":"4.30.2","new_version":"4.34.1","repository_url":"https://github.com/tox-dev/tox"},{"name":"psutil","old_version":"7.0.0","new_version":"7.2.1","repository_url":"https://github.com/giampaolo/psutil"},{"name":"faker","old_version":"37.6.0","new_version":"40.1.2","repository_url":"https://github.com/joke2k/faker"},{"name":"vcrpy","old_version":"7.0.0","new_version":"8.1.1","repository_url":"https://github.com/kevin1024/vcrpy"},{"name":"pytest","old_version":"8.4.2","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pre-commit","old_version":"4.3.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"sphinx","old_version":"7.4.7","new_version":"9.1.0","repository_url":"https://github.com/sphinx-doc/sphinx"},{"name":"sphinxcontrib-spelling","old_version":"8.0.0","new_version":"8.0.2","repository_url":"https://github.com/sphinx-contrib/spelling"},{"name":"sphinx-rtd-theme","old_version":"3.0.2","new_version":"3.1.0","repository_url":"https://github.com/readthedocs/sphinx_rtd_theme"},{"name":"docutils","old_version":"0.21.2","new_version":"0.22.4","repository_url":"https://github.com/rtfd/recommonmark"},{"name":"hypothesis","old_version":"6.138.15","new_version":"6.150.2","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"django-debug-toolbar","old_version":"6.0.0","new_version":"6.1.0","repository_url":"https://github.com/django-commons/django-debug-toolbar"}],"path":null,"ecosystem":"pip"},"body":"Bumps the prod-deps group with 37 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [django](https://github.com/django/django) | `4.2.24` | `6.0.1` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [celery](https://github.com/celery/celery) | `5.5.3` | `5.6.2` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.2.1` | `3.3.0` |\n| [brotli](https://github.com/google/brotli) | `1.1.0` | `1.2.0` |\n| [django-compressor](https://github.com/django-compressor/django-compressor) | `4.5.1` | `4.6.0` |\n| [django-pint](https://github.com/CarliJoy/django-pint) | `0.7.3` | `1.0.3` |\n| [django-post-office](https://github.com/ui/django-post_office) | `3.10.1` | `3.11.0` |\n| [drf-yasg](https://github.com/axnsan12/drf-yasg) | `1.21.10` | `1.21.14` |\n| [jellyfish](https://jellyfish.jpt.sh/) | `1.2.0` | `1.2.1` |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.9` | `3.10` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [xlsxwriter](https://github.com/jmcnamara/XlsxWriter) | `3.2.5` | `3.2.9` |\n| [xmltodict](https://github.com/martinblech/xmltodict) | `0.15.1` | `1.0.2` |\n| [xmlschema](https://github.com/sissaschool/xmlschema) | `4.1.0` | `4.3.1` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [shapely](https://github.com/shapely/shapely) | `2.0.7` | `2.1.2` |\n| [django-treebeard](https://github.com/django-treebeard/django-treebeard) | `4.7.1` | `4.8.0` |\n| [django-two-factor-auth[phonenumbers]](https://github.com/jazzband/django-two-factor-auth) | `1.17.0` | `1.18.1` |\n| [importlib-metadata](https://github.com/python/importlib_metadata) | `8.7.0` | `8.7.1` |\n| [boto3](https://github.com/boto/boto3) | `1.40.27` | `1.42.30` |\n| [django-ses](https://github.com/django-ses/django-ses) | `4.4.0` | `4.6.0` |\n| [uwsgi](https://uwsgi-docs.readthedocs.io/en/latest/) | `2.0.30` | `2.0.31` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.13.1` |\n| [coveralls](https://github.com/TheKevJames/coveralls-python) | `4.0.1` | `4.0.2` |\n| [tox](https://github.com/tox-dev/tox) | `4.30.2` | `4.34.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.1` |\n| [faker](https://github.com/joke2k/faker) | `37.6.0` | `40.1.2` |\n| [vcrpy](https://github.com/kevin1024/vcrpy) | `7.0.0` | `8.1.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.2` | `9.0.2` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.3.0` | `4.5.1` |\n| [sphinx](https://github.com/sphinx-doc/sphinx) | `7.4.7` | `9.1.0` |\n| [sphinxcontrib-spelling](https://github.com/sphinx-contrib/spelling) | `8.0.0` | `8.0.2` |\n| [sphinx-rtd-theme](https://github.com/readthedocs/sphinx_rtd_theme) | `3.0.2` | `3.1.0` |\n| [docutils](https://github.com/rtfd/recommonmark) | `0.21.2` | `0.22.4` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.138.15` | `6.150.2` |\n| [django-debug-toolbar](https://github.com/django-commons/django-debug-toolbar) | `6.0.0` | `6.1.0` |\n\n\nUpdates `django` from 4.2.24 to 6.0.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/85eb963c5297fb285aecf4a90c97141a1b9c5bee\"\u003e\u003ccode\u003e85eb963\u003c/code\u003e\u003c/a\u003e [6.0.x] Bumped version for 6.0.1 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/ac4a5509e3a6f2e1099ea659e0c1eb3ed4e9e00f\"\u003e\u003ccode\u003eac4a550\u003c/code\u003e\u003c/a\u003e [6.0.x] Added release date for 6.0.1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/dcfc5b04ee8af8284e772a2f3619cd8affb1c07a\"\u003e\u003ccode\u003edcfc5b0\u003c/code\u003e\u003c/a\u003e [6.0.x] Added release date for 5.2.10.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/42bab76258162e1df77d080aa69cac5d803ae90a\"\u003e\u003ccode\u003e42bab76\u003c/code\u003e\u003c/a\u003e [6.0.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36843\"\u003e#36843\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django/django/issues/36793\"\u003e#36793\u003c/a\u003e -- Reverted \u0026quot;Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/27489\"\u003e#27489\u003c/a\u003e -- Renamed permissions...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/764af478be8c25c186d27031c50c9a1d0697781b\"\u003e\u003ccode\u003e764af47\u003c/code\u003e\u003c/a\u003e [6.0.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/33647\"\u003e#33647\u003c/a\u003e -- Fixed silent data truncation in bulk_create on Postgres.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/b7b5465b1c026dda7de646fca15ca1e97886d021\"\u003e\u003ccode\u003eb7b5465\u003c/code\u003e\u003c/a\u003e [6.0.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36829\"\u003e#36829\u003c/a\u003e -- Reverted value of ClearableFileInput.use_fieldset to ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/90daa655486c7fc69e9dad41c5e96f00339a3b9b\"\u003e\u003ccode\u003e90daa65\u003c/code\u003e\u003c/a\u003e [6.0.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/30515\"\u003e#30515\u003c/a\u003e -- Documented resolve_url() in docs/topics/http/shortcut...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/d35daf8600a66c0ff20e36f82969df61a7fc4981\"\u003e\u003ccode\u003ed35daf8\u003c/code\u003e\u003c/a\u003e [6.0.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36796\"\u003e#36796\u003c/a\u003e -- Handled lazy routes correctly in RoutePattern.match().\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/16107ab710dc23d5ea0aa17da6bf29fe89b61bb0\"\u003e\u003ccode\u003e16107ab\u003c/code\u003e\u003c/a\u003e [6.0.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/36810\"\u003e#36810\u003c/a\u003e -- Avoided infinite recursion in LazyNonce.\u003cstrong\u003erepr\u003c/strong\u003e().\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/774543ed4feb37916071e81c0d0b81ba514333fa\"\u003e\u003ccode\u003e774543e\u003c/code\u003e\u003c/a\u003e [6.0.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36305\"\u003e#36305\u003c/a\u003e -- Added documentation indentation guidelines to contrib...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/4.2.24...6.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2-binary` from 2.9.10 to 2.9.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2-binary's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix building when pg_config returns an empty string (:ticket:\u003ccode\u003e[#1599](https://github.com/psycopg/psycopg2/issues/1599)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eWheel package bundled with OpenSSL 1.1.1v.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.6\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\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 href=\"https://github.com/psycopg/psycopg2/commit/fd9ae8cad2bcfc3e7e9410e7b6f07cda8f4f05ec\"\u003e\u003ccode\u003efd9ae8c\u003c/code\u003e\u003c/a\u003e chore: bump to version 2.9.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d923840546942534f0956d9202f914fd9feac5fd\"\u003e\u003ccode\u003ed923840\u003c/code\u003e\u003c/a\u003e chore: update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d42dc7169d3cd93517e282e9ef5dc2a2b40650a2\"\u003e\u003ccode\u003ed42dc71\u003c/code\u003e\u003c/a\u003e Merge branch 'fix-1791'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4fde6560c32f06ad1304404c9f7f86148dcc4be0\"\u003e\u003ccode\u003e4fde656\u003c/code\u003e\u003c/a\u003e fix: avoid failed assert passing more arguments than placeholders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/8308c19d6af0d904b313997539ed33415990a74e\"\u003e\u003ccode\u003e8308c19\u003c/code\u003e\u003c/a\u003e fix: drop warning about the use of deprecated PyWeakref_GetObject function\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1a1eabf098a3374409bb2ab4b594777b900f396d\"\u003e\u003ccode\u003e1a1eabf\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/github-script from 7 to 8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/897af8b38beda851d7257dfc525129e37c0ec9e0\"\u003e\u003ccode\u003e897af8b\u003c/code\u003e\u003c/a\u003e build(deps): bump peter-evans/repository-dispatch from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ceefd305117113ca10e383a626e87ba0796f3638\"\u003e\u003ccode\u003eceefd30\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4dc585430cabe94cee96c5a9de0265d0f55370f1\"\u003e\u003ccode\u003e4dc5854\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1945788dcf6172bb1b9328ebc3587ccf0e6a659c\"\u003e\u003ccode\u003e1945788\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1802\"\u003e#1802\u003c/a\u003e from edgarrmondragon/cp314-wheels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.10...2.9.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `celery` from 5.5.3 to 5.6.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/celery/celery/releases\"\u003ecelery's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.6.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix recursive WorkController instantiation in DjangoWorkerFixup + AttributeError when pool_cls is a string by \u003ca href=\"https://github.com/bruunotrindade\"\u003e\u003ccode\u003e@​bruunotrindade\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10045\"\u003ecelery/celery#10045\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix: Revoked tasks now immediately update backend status to REVOKED by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9869\"\u003ecelery/celery#9869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare for release: v5.6.2 by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10049\"\u003ecelery/celery#10049\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=\"https://github.com/bruunotrindade\"\u003e\u003ccode\u003e@​bruunotrindade\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10045\"\u003ecelery/celery#10045\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/celery/celery/compare/v5.6.1...v5.6.2\"\u003ehttps://github.com/celery/celery/compare/v5.6.1...v5.6.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.6.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix Redis Sentinel ACL authentication support by \u003ca href=\"https://github.com/anthonykuzmich7\"\u003e\u003ccode\u003e@​anthonykuzmich7\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10013\"\u003ecelery/celery#10013\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Broker heartbeats not sent during graceful shutdown by \u003ca href=\"https://github.com/weetster\"\u003e\u003ccode\u003e@​weetster\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9986\"\u003ecelery/celery#9986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs \u003ca href=\"https://redirect.github.com/celery/celery/issues/5410\"\u003e#5410\u003c/a\u003e -- Document confirm_publish broker transport option by \u003ca href=\"https://github.com/JaeHyuckSa\"\u003e\u003ccode\u003e@​JaeHyuckSa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10016\"\u003ecelery/celery#10016\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eclose DB pools only in prefork mode by \u003ca href=\"https://github.com/petrprikryl\"\u003e\u003ccode\u003e@​petrprikryl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10020\"\u003ecelery/celery#10020\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Avoid unnecessary Django database connection creation during cleanup by \u003ca href=\"https://github.com/snopoke\"\u003e\u003ccode\u003e@​snopoke\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10015\"\u003ecelery/celery#10015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ereliable prefork detection by \u003ca href=\"https://github.com/petrprikryl\"\u003e\u003ccode\u003e@​petrprikryl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10023\"\u003ecelery/celery#10023\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebetter coverage by \u003ca href=\"https://github.com/petrprikryl\"\u003e\u003ccode\u003e@​petrprikryl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10029\"\u003ecelery/celery#10029\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: clarify \u003ccode\u003eresult_extended\u003c/code\u003e vs periodic task metadata and show \u003ccode\u003eheaders[\u0026quot;periodic_task_name\u0026quot;]\u003c/code\u003e example by \u003ca href=\"https://github.com/SpaceShaman\"\u003e\u003ccode\u003e@​SpaceShaman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10030\"\u003ecelery/celery#10030\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStop importing pytest_subtests by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10032\"\u003ecelery/celery#10032\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly use exceptiongroup backport for Python \u0026lt; 3.11 by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10033\"\u003ecelery/celery#10033\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare for release: v5.6.1 by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10037\"\u003ecelery/celery#10037\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=\"https://github.com/anthonykuzmich7\"\u003e\u003ccode\u003e@​anthonykuzmich7\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10013\"\u003ecelery/celery#10013\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/weetster\"\u003e\u003ccode\u003e@​weetster\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9986\"\u003ecelery/celery#9986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JaeHyuckSa\"\u003e\u003ccode\u003e@​JaeHyuckSa\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10016\"\u003ecelery/celery#10016\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/snopoke\"\u003e\u003ccode\u003e@​snopoke\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10015\"\u003ecelery/celery#10015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SpaceShaman\"\u003e\u003ccode\u003e@​SpaceShaman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10030\"\u003ecelery/celery#10030\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/celery/celery/compare/v5.6.0...v5.6.1\"\u003ehttps://github.com/celery/celery/compare/v5.6.0...v5.6.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.6.0\u003c/h2\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003ch2\u003eKey Highlights\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.celeryq.dev/en/stable/history/whatsnew-5.6.html\"\u003eWhat's new in Celery 5.6\u003c/a\u003e for a complete overview or read the main highlights below.\u003c/p\u003e\n\u003ch3\u003ePython 3.9 Minimum Version\u003c/h3\u003e\n\u003cp\u003eCelery 5.6.0 drops support for Python 3.8 (EOL). The minimum required Python version is now 3.9. Users still on Python 3.8 must upgrade their Python version before upgrading to Celery 5.6.0.\u003c/p\u003e\n\u003cp\u003eAdditionally, this release includes initial support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eSQS: Reverted to \u003ccode\u003epycurl\u003c/code\u003e from \u003ccode\u003eurllib3\u003c/code\u003e\u003c/h3\u003e\n\u003cp\u003eThe switch from \u003ccode\u003epycurl\u003c/code\u003e to \u003ccode\u003eurllib3\u003c/code\u003e for the SQS transport (introduced in Celery 5.5.0 via Kombu) has been reverted due to critical issues affecting SQS users.\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 href=\"https://github.com/celery/celery/blob/main/Changelog.rst\"\u003ecelery's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.6.2\u003c/h1\u003e\n\u003cp\u003e:release-date: 2026-01-04\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eWhat's Changed\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Fix recursive WorkController instantiation in DjangoWorkerFixup + AttributeError when pool_cls is a string ([#10045](https://github.com/celery/celery/issues/10045))\n- Bugfix: Revoked tasks now immediately update backend status to REVOKED ([#9869](https://github.com/celery/celery/issues/9869))\n- Prepare for release: v5.6.2 ([#10049](https://github.com/celery/celery/issues/10049))\n\u003cp\u003e.. _version-5.6.1:\u003c/p\u003e\n\u003ch1\u003e5.6.1\u003c/h1\u003e\n\u003cp\u003e:release-date: 2025-12-29\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eWhat's Changed\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix Redis Sentinel ACL authentication support (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10013\"\u003e#10013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: Broker heartbeats not sent during graceful shutdown (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9986\"\u003e#9986\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edocs \u003ca href=\"https://redirect.github.com/celery/celery/issues/5410\"\u003e#5410\u003c/a\u003e -- Document confirm_publish broker transport option (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10016\"\u003e#10016\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclose DB pools only in prefork mode (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10020\"\u003e#10020\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: Avoid unnecessary Django database connection creation during cleanup (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10015\"\u003e#10015\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereliable prefork detection (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10023\"\u003e#10023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebetter coverage (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10029\"\u003e#10029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocs: clarify \u003ccode\u003eresult_extended\u003c/code\u003e vs periodic task metadata and show \u003ccode\u003eheaders[\u0026quot;periodic_task_name\u0026quot;]\u003c/code\u003e example (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10030\"\u003e#10030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStop importing pytest_subtests (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10032\"\u003e#10032\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOnly use exceptiongroup backport for Python \u0026lt; 3.11 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10033\"\u003e#10033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrepare for release: v5.6.1 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10037\"\u003e#10037\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _version-5.6.0:\u003c/p\u003e\n\u003ch1\u003e5.6.0\u003c/h1\u003e\n\u003cp\u003e:release-date: 2025-11-30\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003cp\u003eKey Highlights\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nSee :ref:`whatsnew-5.6` for a complete overview or read the main highlights below.\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt; \n\u003c/code\u003e\u003c/pre\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 href=\"https://github.com/celery/celery/commit/6a43c846f183ef0cbade24f4b9a8f7a6ea113b44\"\u003e\u003ccode\u003e6a43c84\u003c/code\u003e\u003c/a\u003e Prepare for release: v5.6.2 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10049\"\u003e#10049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/333a82f746734151c5cbe848916085455b0a3748\"\u003e\u003ccode\u003e333a82f\u003c/code\u003e\u003c/a\u003e Bugfix: Revoked tasks now immediately update backend status to REVOKED (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9869\"\u003e#9869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/9d6ab110d947270c4edf0b42454266d2954e653d\"\u003e\u003ccode\u003e9d6ab11\u003c/code\u003e\u003c/a\u003e Fix recursive WorkController instantiation in DjangoWorkerFixup + AttributeEr...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/21dbc73f81d2fae058de49e665afaa1cd92da5c0\"\u003e\u003ccode\u003e21dbc73\u003c/code\u003e\u003c/a\u003e Prepare for release: v5.6.1 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10037\"\u003e#10037\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/ba20bed7723c684d12ddd62d6a7c0c0d901b3351\"\u003e\u003ccode\u003eba20bed\u003c/code\u003e\u003c/a\u003e Only use exceptiongroup backport for Python \u0026lt; 3.11 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10033\"\u003e#10033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/21675299bc2d10c648448ec5221136e07c1eec1a\"\u003e\u003ccode\u003e2167529\u003c/code\u003e\u003c/a\u003e Stop importing pytest_subtests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/0527296acb1f1790788301d4395ba6d5ce2a9704\"\u003e\u003ccode\u003e0527296\u003c/code\u003e\u003c/a\u003e Bump google-cloud-firestore from 2.21.0 to 2.22.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/5f8659bdba4561796d66e938a1e2c71d4489562f\"\u003e\u003ccode\u003e5f8659b\u003c/code\u003e\u003c/a\u003e Clarify 'result_extended' setting usage in tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/f19db7008682c782d85e69b5ce736970491752ea\"\u003e\u003ccode\u003ef19db70\u003c/code\u003e\u003c/a\u003e Bump mypy from 1.19.0 to 1.19.1 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10028\"\u003e#10028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/6da72bde60553a1c350eef1e17d834d004ed099d\"\u003e\u003ccode\u003e6da72bd\u003c/code\u003e\u003c/a\u003e better coverage (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10029\"\u003e#10029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/celery/celery/compare/v5.5.3...v5.6.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `hiredis` from 3.2.1 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/hiredis-py/releases\"\u003ehiredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.3.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e by \u003ca href=\"https://github.com/zweizeichen\"\u003e\u003ccode\u003e@​zweizeichen\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\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 href=\"https://github.com/redis/hiredis-py/commit/187d0f387afed58a955a42ea8c5467100871f98b\"\u003e\u003ccode\u003e187d0f3\u003c/code\u003e\u003c/a\u003e Version 3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/3efcf037edc5a9f7abfaedbd3f60b2a03feb4787\"\u003e\u003ccode\u003e3efcf03\u003c/code\u003e\u003c/a\u003e Add Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/215\"\u003e#215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/966cede2c0ca0a8ac4fe0786571e5c230f39c36e\"\u003e\u003ccode\u003e966cede\u003c/code\u003e\u003c/a\u003e Fix assertion in reader.c (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/212\"\u003e#212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/78def309e58126fdaacb66e6fd40df9c46494062\"\u003e\u003ccode\u003e78def30\u003c/code\u003e\u003c/a\u003e Bump version to 3.3.0-dev\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/redis/hiredis-py/compare/v3.2.1...v3.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `brotli` from 1.1.0 to 1.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/google/brotli/releases\"\u003ebrotli's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.0\u003c/h2\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\u003c/li\u003e\n\u003cli\u003eCLI: \u003ccode\u003ebrcat\u003c/code\u003e alias; allow decoding concatenated brotli streams\u003c/li\u003e\n\u003cli\u003ekt: pure Kotlin decoder\u003c/li\u003e\n\u003cli\u003ecgo: support \u0026quot;raw\u0026quot; dictionaries\u003c/li\u003e\n\u003cli\u003ebuild: Bazel modules\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: dropped \u003ccode\u003efinalize()\u003c/code\u003e for native entities\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: in \u003ccode\u003ecompress\u003c/code\u003e pass correct length to native encoder\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebuild: install man pages\u003c/li\u003e\n\u003cli\u003ebuild: updated / fixed / refined Bazel buildfiles\u003c/li\u003e\n\u003cli\u003eencoder: faster encoding\u003c/li\u003e\n\u003cli\u003ecgo: link via pkg-config\u003c/li\u003e\n\u003cli\u003epython: modernize extension / allow multi-phase module initialization\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edecoder / encoder: static tables use \u0026quot;small\u0026quot; model (allows 2GiB+ binaries)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.0 RC2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed (compared to RC1)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epick changes from Debian patch by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1349\"\u003egoogle/brotli#1349\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epick changes from Alpine patch by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1348\"\u003egoogle/brotli#1348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epick VCPKG patches by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1350\"\u003egoogle/brotli#1350\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix copy-paste in Java decoder by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1357\"\u003egoogle/brotli#1357\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.0 RC1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eIMPORTANT\u003c/strong\u003e: though this is a pre-release for v1.2.0, it is expected that some changes will be added before release; most notably concerning build files: patches applied by Alpine, Debian, Conan, VCPKG will be partially/fully integrated.\u003c/p\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\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 href=\"https://github.com/google/brotli/blob/master/CHANGELOG.md\"\u003ebrotli's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.2.0] - 2025-10-27\u003c/h2\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\u003c/li\u003e\n\u003cli\u003eCLI: \u003ccode\u003ebrcat\u003c/code\u003e alias; allow decoding concatenated brotli streams\u003c/li\u003e\n\u003cli\u003ekt: pure Kotlin decoder\u003c/li\u003e\n\u003cli\u003ecgo: support \u0026quot;raw\u0026quot; dictionaries\u003c/li\u003e\n\u003cli\u003ebuild: Bazel modules\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: dropped \u003ccode\u003efinalize()\u003c/code\u003e for native entities\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: in \u003ccode\u003ecompress\u003c/code\u003e pass correct length to native encoder\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebuild: install man pages\u003c/li\u003e\n\u003cli\u003ebuild: updated / fixed / refined Bazel buildfiles\u003c/li\u003e\n\u003cli\u003eencoder: faster encoding\u003c/li\u003e\n\u003cli\u003ecgo: link via pkg-config\u003c/li\u003e\n\u003cli\u003epython: modernize extension / allow multi-phase module initialization\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edecoder / encoder: static tables use \u0026quot;small\u0026quot; model (allows 2GiB+ binaries)\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 href=\"https://github.com/google/brotli/commit/028fb5a23661f123017c060daa546b55cf4bde29\"\u003e\u003ccode\u003e028fb5a\u003c/code\u003e\u003c/a\u003e release v1.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/390de5b472ec8c40a7b8e5029e47fd6493f7a755\"\u003e\u003ccode\u003e390de5b\u003c/code\u003e\u003c/a\u003e build and test csharp decoder\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/3499acbb7ac7818c1b929a8c9c5c5f8a634751da\"\u003e\u003ccode\u003e3499acb\u003c/code\u003e\u003c/a\u003e regenerate go/kt/js/ts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/8ca2312c61f1f5853be0708f9b1d6a6ad002d2a4\"\u003e\u003ccode\u003e8ca2312\u003c/code\u003e\u003c/a\u003e fix release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/ee771daf20bab6533cbc629407c50cff1c87d9f1\"\u003e\u003ccode\u003eee771da\u003c/code\u003e\u003c/a\u003e fix copy-paste in Java decoder\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/42aee3289154cb3e8db1c7a8ebfa639c857578b9\"\u003e\u003ccode\u003e42aee32\u003c/code\u003e\u003c/a\u003e try to fix release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/392c06bac05cc1d098ab105cbbda766f19853d92\"\u003e\u003ccode\u003e392c06b\u003c/code\u003e\u003c/a\u003e redesign release resource uploading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/1964cdb1b9e16a2a0c27fbd3b2a3bccb2c1a8294\"\u003e\u003ccode\u003e1964cdb\u003c/code\u003e\u003c/a\u003e ramp up all GH actions plugins\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/61605b1cb34ba84ae71c13b383d850a59cac85b2\"\u003e\u003ccode\u003e61605b1\u003c/code\u003e\u003c/a\u003e pick VCPKG patches\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/4b0f27b6f985b4301ad5cec4a31b9792ecf252bc\"\u003e\u003ccode\u003e4b0f27b\u003c/code\u003e\u003c/a\u003e pick changes from Alpine patch\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/google/brotli/compare/go/cbrotli/v1.1.0...v1.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-compressor` from 4.5.1 to 4.6.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-compressor/django-compressor/blob/develop/docs/changelog.txt\"\u003edjango-compressor's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003ev4.6 (2025-11-10)\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003eFull list of changes from v4.5.1 \u0026lt;https://github.com/django-compressor/django-compressor/compare/4.5.1...4.6\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed compatibility with latest BS4.\u003c/li\u003e\n\u003cli\u003eRemoved top pin for rcssmin and rjsmin dependencies.\u003c/li\u003e\n\u003cli\u003eAvoid compressing the same node concurrently in offline compression.\u003c/li\u003e\n\u003cli\u003eAvoid use of deprecated ast.Constant.s\u003c/li\u003e\n\u003cli\u003eOfficially support Django 6.0\u003c/li\u003e\n\u003cli\u003eOfficially support Django 5.2\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Django 5.0\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 3.9.\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 3.8.\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 href=\"https://github.com/django-compressor/django-compressor/commit/3ada994897cf982f97fc4c934be42eb1e0b71b9a\"\u003e\u003ccode\u003e3ada994\u003c/code\u003e\u003c/a\u003e Prepare 4.6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/1baa82a6cf6942eb12007217f26195a95df727e2\"\u003e\u003ccode\u003e1baa82a\u003c/code\u003e\u003c/a\u003e Remove CI testing for EOL Django 5.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/8706a52b740e7555abefc8fba1eaae1986ded1a5\"\u003e\u003ccode\u003e8706a52\u003c/code\u003e\u003c/a\u003e Add CI testing for Python 3.14 and Django 6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/7be9ce2cefedf59302207728e383fa7811232d59\"\u003e\u003ccode\u003e7be9ce2\u003c/code\u003e\u003c/a\u003e Bump brotli, lxml, and coverage test dependencies.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/d6fd8136febd1ba409b366c7471db8763522d91d\"\u003e\u003ccode\u003ed6fd813\u003c/code\u003e\u003c/a\u003e Remove test version pinning for rcssmin and rjsmin.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/2b46e7d1724109ebb5db49b76f008dc039f0a9db\"\u003e\u003ccode\u003e2b46e7d\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1307\"\u003e#1307\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/b97bb05836eb6a42d2746d43792e9d13f041b615\"\u003e\u003ccode\u003eb97bb05\u003c/code\u003e\u003c/a\u003e Disable bs4's multi valued attributes (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1296\"\u003e#1296\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/4e5433076300508e1c3648da3345ae606386eb3f\"\u003e\u003ccode\u003e4e54330\u003c/code\u003e\u003c/a\u003e Migrate packaging to pyproject.toml (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1313\"\u003e#1313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/872f8d52ce51957bccf4a91338d177c2ea4a3908\"\u003e\u003ccode\u003e872f8d5\u003c/code\u003e\u003c/a\u003e Remove version pinning for rcssmin and rjsmin (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1312\"\u003e#1312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/cc38666efb13c6e0b355cf273f56b783d7157e29\"\u003e\u003ccode\u003ecc38666\u003c/code\u003e\u003c/a\u003e Drop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1311\"\u003e#1311\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-compressor/django-compressor/compare/4.5.1...4.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-pint` from 0.7.3 to 1.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/CarliJoy/django-pint/releases\"\u003edjango-pint's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.0.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCorrect minimal Django version to 5.2 in pyproject.toml\u003c/li\u003e\n\u003cli\u003eFix documentation builds\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFix PyPI signatures\u003c/h2\u003e\n\u003cp\u003eFix broken pipeline for PyPI Sigstore uploads. No source code changes.\u003c/p\u003e\n\u003ch2\u003ev1.0.1\u003c/h2\u003e\n\u003cp\u003eFix a problem with the release pipeline. No source code changes.\u003c/p\u003e\n\u003ch2\u003ev1.0.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMakefile for easier dev setup by \u003ca href=\"https://github.com/mmarras\"\u003e\u003ccode\u003e@​mmarras\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CarliJoy/django-pint/pull/100\"\u003eCarliJoy/django-pint#100\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etry unit conversion instead of literal dimensionality check \u003ca href=\"https://redirect.github.com/CarliJoy/django-pint/issues/99\"\u003e#99\u003c/a\u003e by \u003ca href=\"https://github.com/mmarras\"\u003e\u003ccode\u003e@​mmarras\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CarliJoy/django-pint/pull/101\"\u003eCarliJoy/django-pint#101\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003econvert numeric types to str before calling Decimal by \u003ca href=\"https://github.com/SamuelJennings\"\u003e\u003ccode\u003e@​SamuelJennings\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CarliJoy/django-pint/pull/108\"\u003eCarliJoy/django-pint#108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMigrate to pyproject and ruff by \u003ca href=\"https://github.com/CarliJoy\"\u003e\u003ccode\u003e@​CarliJoy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CarliJoy/django-pint/pull/118\"\u003eCarliJoy/django-pint#118\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=\"https://github.com/mmarras\"\u003e\u003ccode\u003e@​mmarras\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/CarliJoy/django-pint/pull/100\"\u003eCarliJoy/django-pint#100\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Adiorz\"\u003e\u003ccode\u003e@​Adiorz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/CarliJoy/django-pint/pull/117\"\u003eCarliJoy/django-pint#117\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/CarliJoy/django-pint/compare/v0.7.3...v1.0.0\"\u003ehttps://github.com/CarliJoy/django-pint/compare/v0.7.3...v1.0.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 href=\"https://github.com/CarliJoy/django-pint/blob/main/CHANGELOG.rst\"\u003edjango-pint's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eVersion 1.0.3\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eCorrect minimal Django version to 5.2 in pyproject.toml\u003c/li\u003e\n\u003cli\u003eFix documentation builds\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eVersion 1.0.2\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix broken pipeline for PyPI Sigstore uploads. No source code changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eVersion 1.0.1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix Problem in Publish Pipeline using old upload-artifact (no source code changes)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eVersion 1.0.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eStart following \u003ccode\u003eSemVer \u0026lt;https://semver.org/spec/v2.0.0.html\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003eConvert numeric types to str before calling Decimal \u003ccode\u003e[#101](https://github.com/CarliJoy/django-pint/issues/101) by @mmarra \u0026lt;https://github.com/CarliJoy/django-pint/pull/101\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003eTry unit conversion instead of literal dimensionality check \u003ccode\u003e[#108](https://github.com/CarliJoy/django-pint/issues/108)  by @SamuelJennings \u0026lt;https://github.com/CarliJoy/django-pint/pull/108\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8 and 3.9 and Django 3.2\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.12, 3.13 and 3.14 and Django 6.0 \u003ccode\u003e[#116](https://github.com/CarliJoy/django-pint/issues/116) by @Adiorz \u0026lt;https://github.com/CarliJoy/django-pint/pull/117\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003eModernize project setup: Use \u003ccode\u003epyproject.toml\u003c/code\u003e only and \u003ccode\u003eruff\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eVersion 0.7.2\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix conversion of number input to DecimalField (\u003ccode\u003eissue [#106](https://github.com/CarliJoy/django-pint/issues/106) \u0026lt;https://github.com/CarliJoy/django-pint/issues/106\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eVersion 0.7.1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix wrong unit display in widget (\u003ccode\u003eissue [#43](https://github.com/CarliJoy/django-pint/issues/43) \u0026lt;https://github.com/CarliJoy/django-pint/issues/43\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eVersion 0.7.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003edrop support for Django (\u0026lt;3.2) and Python Versions (\u0026lt;3.7) as they reached EOL\u003c/li\u003e\n\u003cli\u003eadd \u003ccode\u003ePositiveIntegerQuantityField\u003c/code\u003e (\u003ccode\u003emerge request [#39](https://github.com/CarliJoy/django-pint/issues/39) from jwygoda\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003efix display of negative and scientific numbers in Widget (\u003ccode\u003emerger request [#41](https://github.com/CarliJoy/django-pint/issues/41) from mikeford3\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eVersion 0.6.3\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix error with Django 3.2 (\u003ccode\u003eissue [#36](https://github.com/CarliJoy/django-pint/issues/36)\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eremove PrecisionError\u003c/li\u003e\n\u003cli\u003erestructure function a bit, add more type annotations\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eVersion 0.6.2\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eonly a internal technical release as the PyPi token had to be removed\ndue to security breach before and no new token was set before\nreleasing 0.6.1\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eVersion 0.6.1\u003c/h1\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 href=\"https://github.com/CarliJoy/django-pint/commit/67fa3b9f7af927bedf810fc8694d72452b17fbed\"\u003e\u003ccode\u003e67fa3b9\u003c/code\u003e\u003c/a\u003e Fix minimal django version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CarliJoy/django-pint/commit/cdccb655abc7988dda9d1df95ce2087fb78c9c83\"\u003e\u003ccode\u003ecdccb65\u003c/code\u003e\u003c/a\u003e Fix docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CarliJoy/django-pint/commit/dbc1df925da844c730945c2d580317353aa610d3\"\u003e\u003ccode\u003edbc1df9\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CarliJoy/django-pint/commit/d8912bec27d2f8edcb3debd6aa0fc8883c1e8312\"\u003e\u003ccode\u003ed8912be\u003c/code\u003e\u003c/a\u003e Publish Pipeline: Use newer version of sigstore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CarliJoy/django-pint/commit/26d263a1d4f0b6d1bf1c04e7824560188d8448d5\"\u003e\u003ccode\u003e26d263a\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CarliJoy/django-pint/commit/bf21c31770a0cb82714221f59d3f57e93f852ca5\"\u003e\u003ccode\u003ebf21c31\u003c/code\u003e\u003c/a\u003e Fix publish pipeline: Use upload artifacts version 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CarliJoy/django-pint/commit/3a079f2b24145052178a4a6bcdb53d091c6d3786\"\u003e\u003ccode\u003e3a079f2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/CarliJoy/django-pint/issues/118\"\u003e#118\u003c/a\u003e from CarliJoy/migrate_to_pyproject_and_ruff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CarliJoy/django-pint/commit/a302da5319f8f88f64ead260a645942392d36532\"\u003e\u003ccode\u003ea302da5\u003c/code\u003e\u003c/a\u003e prepare new release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CarliJoy/django-pint/commit/68b6277a88d1540777c1aefc787ab7530eb2d5d4\"\u003e\u003ccode\u003e68b6277\u003c/code\u003e\u003c/a\u003e Modernize: use pyproject.toml only and ruff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CarliJoy/django-pint/commit/599410c070a277699e750ad27dc5ebb765a832d5\"\u003e\u003ccode\u003e599410c\u003c/code\u003e\u003c/a\u003e feat: upgrade python up to 3.14 and django up to 6.0 (\u003ca href=\"https://redirect.github.com/CarliJoy/django-pint/issues/117\"\u003e#117\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/CarliJoy/django-pint/compare/v0.7.3...v1.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-post-office` from 3.10.1 to 3.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ui/django-post_office/releases\"\u003edjango-post-office's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded Python 3.14 and Django 6.0 compatibility. Thanks \u003ca href=\"https://github.com/selwin\"\u003e\u003ccode\u003e@​selwin\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eReplaced \u003ccode\u003ebleach\u003c/code\u003e with \u003ccode\u003enh3\u003c/code\u003e for HTML sanitization. \u003ccode\u003ebleach\u003c/code\u003e has been deprecated since 2023. Thanks \u003ca href=\"https://github.com/selwin\"\u003e\u003ccode\u003e@​selwin\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eSESWebhookHandler\u003c/code\u003e and \u003ccode\u003eSparkPostWebhookHandler\u003c/code\u003e for handling webhook events (beta feature). Thanks \u003ca href=\"https://github.com/selwin\"\u003e\u003ccode\u003e@​selwin\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eOptimized the way templates are fetched during email delivery. Thanks \u003ca href=\"https://github.com/selwin\"\u003e\u003ccode\u003e@​selwin\u003c/code\u003e\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 href=\"https://github.com/ui/django-post_office/blob/master/CHANGELOG.md\"\u003edjango-post-office's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003eUnreleased\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplaced \u003ccode\u003ebleach\u003c/code\u003e with \u003ccode\u003enh3\u003c/code\u003e for HTML sanitization. \u003ccode\u003ebleach\u003c/code\u003e has been deprecated since 2023. Thanks \u003ca href=\"https://github.com/selwin\"\u003e\u003ccode\u003e@​selwin\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eSESWebhookHandler\u003c/code\u003e and \u003ccode\u003eSparkPostWebhookHandler\u003c/code\u003e for handling webhook events (beta feature). Thanks \u003ca href=\"https://github.com/selwin\"\u003e\u003ccode\u003e@​selwin\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eOptimized the way templates are fetched during email delivery. Thanks \u003ca href=\"https://github.com/selwin\"\u003e\u003ccode\u003e@​selwin\u003c/code\u003e\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 href=\"https://github.com/ui/django-post_office/commit/825af68a79bce78acb18c945d1f3acd5935a975b\"\u003e\u003ccode\u003e825af68\u003c/code\u003e\u003c/a\u003e Bump version to 3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/99be3b50a904d84f35fecb14f6c64575611a2e8a\"\u003e\u003ccode\u003e99be3b5\u003c/code\u003e\u003c/a\u003e Delete publish.yml (\u003ca href=\"https://redirect.github.com/ui/django-post_office/issues/513\"\u003e#513\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/a360b7946a0b8a777e0764ab7423749f7686716b\"\u003e\u003ccode\u003ea360b79\u003c/code\u003e\u003c/a\u003e Improve tests (\u003ca href=\"https://redirect.github.com/ui/django-post_office/issues/509\"\u003e#509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/fe7c583512845d31685245b783a502bfc221c0c6\"\u003e\u003ccode\u003efe7c583\u003c/code\u003e\u003c/a\u003e Python314 fix (\u003ca href=\"https://redirect.github.com/ui/django-post_office/issues/511\"\u003e#511\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/0556f5eaaffbbbb29bd3db2ad0c2ef2086595971\"\u003e\u003ccode\u003e0556f5e\u003c/code\u003e\u003c/a\u003e Updated test.yml so tests don't get triggered twice (\u003ca href=\"https://redirect.github.com/ui/django-post_office/issues/512\"\u003e#512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/00ddbc165e597af2967fa3fcd3f34a66d0659ae3\"\u003e\u003ccode\u003e00ddbc1\u003c/code\u003e\u003c/a\u003e Webhooks (\u003ca href=\"https://redirect.github.com/ui/django-post_office/issues/510\"\u003e#510\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/936d1ac816ffd3cf734bd77f0bb7ec17082793f3\"\u003e\u003ccode\u003e936d1ac\u003c/code\u003e\u003c/a\u003e Updated README.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/91fbc6c28be60288961521520581d20745b3320c\"\u003e\u003ccode\u003e91fbc6c\u003c/code\u003e\u003c/a\u003e Webhook handlers (\u003ca href=\"https://redirect.github.com/ui/django-post_office/issues/505\"\u003e#505\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/0f68aaf444779682ea3d8806a5f46dea1a753e08\"\u003e\u003ccode\u003e0f68aaf\u003c/code\u003e\u003c/a\u003e Merge branch 'webhooks'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/5b7fdf9989517b1e740cc725ae635833dc376a12\"\u003e\u003ccode\u003e5b7fdf9\u003c/code\u003e\u003c/a\u003e Move tests (\u003ca href=\"https://redirect.github.com/ui/django-post_office/issues/508\"\u003e#508\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ui/django-post_office/compare/v3.10.1...v3.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `drf-yasg` from 1.21.10 to 1.21.14\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/axnsan12/drf-yasg/releases\"\u003edrf-yasg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.21.14\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix missing swagger-ui sourcemaps (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/950\"\u003e#950\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003e1.21.12\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Bring the bundled swagger ui up to date (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/944\"\u003e#944\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update the logout button to use a POST request. (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/945\"\u003e#945\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a live demo domain (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/946\"\u003e#946\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Handle annotations that are not available at runtime (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/941\"\u003e#941\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003e1.21.11\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/917\"\u003e#917\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/916\"\u003e#916\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/926\"\u003e#926\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/922\"\u003e#922\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/928\"\u003e#928\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/923\"\u003e#923\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/848\"\u003e#848\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/903\"\u003e#903\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 href=\"https://github.com/axnsan12/drf-yasg/blob/master/docs/changelog.rst\"\u003edrf-yasg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e#########\nChangelog\n#########\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.14\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.13\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix missing swagger-ui sourcemaps (:pr:\u003ccode\u003e950\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.12\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Bring the bundled swagger ui up to date (:pr:\u003ccode\u003e944\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update the logout button to use a POST request. (:pr:\u003ccode\u003e945\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a live demo domain (:pr:\u003ccode\u003e946\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Handle annotations that are not available at runtime (:pr:\u003ccode\u003e941\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.11\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (:pr:\u003ccode\u003e917\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (:pr:\u003ccode\u003e916\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (:pr:\u003ccode\u003e926\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (:pr:\u003ccode\u003e922\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (:pr:\u003ccode\u003e928\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (:pr:\u003ccode\u003e923\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (:pr:\u003ccode\u003e848\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (:pr:\u003ccode\u003e903\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.10\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix type hints when using postponed evaluation of annotations (PEP-563) (:pr:\u003ccode\u003e840\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update JSON \u0026amp; YAML renderers to not use a \u0026quot;.\u0026quot; in their format string (:pr:\u003ccode\u003e911\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix lint errors when comparing types with == instead of is (:pr:\u003ccode\u003e868\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update swagger-ui-dist to address CVE-2021-46708 (:pr:\u003ccode\u003e904\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.9\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Added support for zoneinfo object fields (:pr:\u003ccode\u003e908\u003c/code\u003e)\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/7dceb2783db31631785cd15866c9b44540accf9f\"\u003e\u003ccode\u003e7dceb27\u003c/code\u003e\u003c/a\u003e Add version 1.21.14 details to the changelog (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/952\"\u003e#952\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/763cdd6473eb963ad36987088e697cfd4f744acc\"\u003e\u003ccode\u003e763cdd6\u003c/code\u003e\u003c/a\u003e Add version 1.21.13 details to the changelog (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/951\"\u003e#951\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/a0559fcacd996b76fbbb5ea0d70aa5c314f06e0c\"\u003e\u003ccode\u003ea0559fc\u003c/code\u003e\u003c/a\u003e Add missing swagger-ui sourcemaps (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/950\"\u003e#950\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/2bf74d0789b40aafa638c8fc1d4e25ea8340f530\"\u003e\u003ccode\u003e2bf74d0\u003c/code\u003e\u003c/a\u003e Add version 1.21.12 details to the changelog (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/948\"\u003e#948\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/b421e89667932159562652d3639368667e5d89d9\"\u003e\u003ccode\u003eb421e89\u003c/code\u003e\u003c/a\u003e swagger ui fix (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/944\"\u003e#944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/40fee2bd8be59bb1b112419fdb79cd9a09745306\"\u003e\u003ccode\u003e40fee2b\u003c/code\u003e\u003c/a\u003e Add live demo domain and environment variables (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/946\"\u003e#946\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/1785b84fe129382595790f390f2b983f62b45271\"\u003e\u003ccode\u003e1785b84\u003c/code\u003e\u003c/a\u003e Update logout button to use POST request. (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/945\"\u003e#945\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/0522cc1d9b12df97c2b01cb94ad1587933e8d52c\"\u003e\u003ccode\u003e0522cc1\u003c/code\u003e\u003c/a\u003e Rename github actions files to .yaml (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/942\"\u003e#942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/3a381234c9a6986bbd44867632ff3cdc78ffe352\"\u003e\u003ccode\u003e3a38123\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 in the github-actions group (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/943\"\u003e#943\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/b252a0d8f8f87b9ef6417827ae631cf11a6262a1\"\u003e\u003ccode\u003eb252a0d\u003c/code\u003e\u003c/a\u003e Handle annotations not available at runtime (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/941\"\u003e#941\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/axnsan12/drf-yasg/compare/1.21.10...1.21.14\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jellyfish` from 1.2.0 to 1.2.1\n\nUpdates `markdown` from 3.9 to 3.10\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/releases\"\u003emarkdown's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.10.0\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\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 href=\"https://github.com/Python-Markdown/markdown/blob/master/docs/changelog.md\"\u003emarkdown's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003etitle: Changelog\ntoc_depth: 2\u003c/p\u003e\n\u003ch1\u003ePython-Markdown Changelog\u003c/h1\u003e\n\u003cp\u003eAll notable changes to this project will be documented in this file.\u003c/p\u003e\n\u003cp\u003eThe format is based on \u003ca href=\"https://keepachangelog.com/en/1.1.0/\"\u003eKeep a Changelog\u003c/a\u003e,\nand this project adheres to the\n\u003ca href=\"https://packaging.python.org/en/latest/specifications/version-specifiers/\"\u003ePython Version Specification\u003c/a\u003e.\nSee the \u003ca href=\"https://github.com/Python-Markdown/markdown/blob/master/docs/contributing.md\"\u003eContributing Guide\u003c/a\u003e for details.\u003c/p\u003e\n\u003ch2\u003e[Unreleased]\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure nested elements inside inline comments are properly unescaped (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1571\"\u003e#1571\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eMake the docs build successfully with mkdocstrings-python 2.0 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1575\"\u003e#1575\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix infinite loop when multiple bogus or unclosed HTML comments appear in input (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1578\"\u003e#1578\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.10.0] - 2025-11-03\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.9.0] - 2025-09-04\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFootnotes are now ordered by the occurrence of their references in the\ndocument. A new configuration option for the footnotes extension,\n\u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e, has been added to support restoring the previous\nbehavior of ordering footnotes by the occurrence of definitions (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1367\"\u003e#1367\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure inline processing iterates through elements in document order (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1546\"\u003e#1546\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix handling of incomplete HTML tags in code spans in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1547\"\u003e#1547\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.8.2] - 2025-06-19\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/22e89c1fc346f72218a10e392a0c3b4731912522\"\u003e\u003ccode\u003e22e89c1\u003c/code\u003e\u003c/a\u003e Bump version to 3.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/c138aea5139a6aceae05bb957e866d9ce7577b94\"\u003e\u003ccode\u003ec138aea\u003c/code\u003e\u003c/a\u003e + PY314 - PY39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/746f7f527b15f63845253e3b86947b806ef1b98f\"\u003e\u003ccode\u003e746f7f5\u003c/code\u003e\u003c/a\u003e cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/a5ee2b4aad05531898ab8fd726c7ece31ddadf8b\"\u003e\u003ccode\u003ea5ee2b4\u003c/code\u003e\u003c/a\u003e Revert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/5354daf618149f92580a1407c036115753c5df73\"\u003e\u003ccode\u003e5354daf\u003c/code\u003e\u003c/a\u003e Fix an HTML comment parsing case that can cause an infinite loop\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Python-Markdown/markdown/compare/3.9.0...3.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyyaml` from 6.0.2 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/yaml/pyyaml/releases\"\u003epyyaml's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14 and free-threading (experimental).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ehttps://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\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 href=\"https://github.com/yaml/pyyaml/blob/6.0.3/CHANGES\"\u003epyyaml's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e6.0.3 (2025-09-25)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/yaml/pyyaml/pull/864\"\u003eyaml/pyyaml#864\u003c/a\u003e -- Support for Python 3.14 and free-threading (experimental)\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 href=\"https://github.com/yaml/pyyaml/commit/49790e73684bebad1df05ef8d828fa12f685bffb\"\u003e\u003ccode\u003e49790e7\u003c/code\u003e\u003c/a\u003e Release 6.0.3 (\u003ca href=\"https://redirect.github.com/yaml/pyyaml/issues/889\"\u003e#889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xlsxwriter` from 3.2.5 to 3.2.9\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jmcnamara/XlsxWriter/blob/main/Changes\"\u003exlsxwriter's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.2.9 - September 16 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved the \u003ccode\u003epy.typed\u003c/code\u003e file since it was causing a lot of downstream CI\nfailures where consumers weren't handling the xlsxwriter types correctly or\ntaking them into account.\u003c/p\u003e\n\u003cp\u003eThe file will be re-added once the xlsxwriter typing is more comprehensive.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.2.8 - September 14 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003emypy\u003c/code\u003e implicit export error caused by the \u003ccode\u003eWorkbook()\u003c/code\u003e type\nannotations changes in v3.2.7 and v3.2.6.\u003c/p\u003e\n\u003cp\u003e:issue:\u003ccode\u003e1154\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.2.7 - September 13 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed typing issue in \u003ccode\u003eWorkbook()\u003c/code\u003e constructor.\u003c/p\u003e\n\u003cp\u003e:issue:\u003ccode\u003e1152\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.2.6 - September 12 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded an option to position custom data labels in the same way that the data\nlabels can be positioned for the entire series.\u003c/p\u003e\n\u003cp\u003e:feature:\u003ccode\u003e1147\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd border, fill, gradient and pattern formatting options for\nchart titles and also chart axis titles.\u003c/p\u003e\n\u003cp\u003e:feature:\u003ccode\u003e957\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd additional type annotations. This is an ongoing refactoring.\u003c/p\u003e\n\u003cp\u003e:feature:\u003ccode\u003e1123\u003c/code\u003e.\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 href=\"https://github.com/jmcnamara/XlsxWriter/commit/e943bee8c9cdf0661cfdb83d5497e0725390e41e\"\u003e\u003ccode\u003ee943bee\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/392bd9e6572785394c6553e2d4f7ae2bb80782f4\"\u003e\u003ccode\u003e392bd9e\u003c/code\u003e\u003c/a\u003e typing: remove py.typed file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/eb99afecdd0050209835f9f237d580dc53e42afa\"\u003e\u003ccode\u003eeb99afe\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/5ec29826d5e398bb5adebaabafbeb9d443a6ed8c\"\u003e\u003ccode\u003e5ec2982\u003c/code\u003e\u003c/a\u003e workbook: add explicit export for mypy compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/ca85cbb03a5898c9e7b66c78ac67a365e7f53002\"\u003e\u003ccode\u003eca85cbb\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/3710251aaaa9524ee302ec04608bfc1b577d4ba5\"\u003e\u003ccode\u003e3710251\u003c/code\u003e\u003c/a\u003e typing: add more supported types to Workbook() constructor\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/27db7a14672bfe1a18f29dfbab646aa0149a369b\"\u003e\u003ccode\u003e27db7a1\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/f05067654b42283557c3621e411b6fbadb7051b6\"\u003e\u003ccode\u003ef050676\u003c/code\u003e\u003c/a\u003e docs: add CI spell check\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/60f708cc1e10c0c66ae870be4f350f45a9d3ecc8\"\u003e\u003ccode\u003e60f708c\u003c/code\u003e\u003c/a\u003e chart: add axis title formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/53dc08e5d240310c88bbfce8d1a42330ae256535\"\u003e\u003ccode\u003e53dc08e\u003c/code\u003e\u003c/a\u003e chart: add chart title formatting options\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jmcnamara/XlsxWriter/compare/RELEASE_3.2.5...RELEASE_3.2.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xmltodict` from 0.15.1 to 1.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/martinblech/xmltodict/releases\"\u003exmltodict's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.0.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.1...v1.0.2\"\u003e1.0.2\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eallow DOCTYPE with disable_entities=True (default) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/25b61a41f580cfc211df07c5fbbf603bd8eb5a5f\"\u003e25b61a4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.0...v1.0.1\"\u003e1.0.1\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efail closed when entities disabled (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c986d2d37a93d45fcc059b09063d9d9c45a655ec\"\u003ec986d2d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003evalidate XML comments (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/3d4d2d3a4cd0f68d1211dba549010261fa87b969\"\u003e3d4d2d3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd SECURITY.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/64130233c8fea272a5f82f2f585e1593523ec1b1\"\u003e6413023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify behavior for empty lists (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2025b5cb5e64fc9c4d54b8644187a0a193bdd0ed\"\u003e2025b5c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify process_comments docs (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/6b464fce284a93dbb292f3d063c9f310a478a014\"\u003e6b464fc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify strip whitespace comment behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/b3e22032d21cc387d6cecf3930116e8fdc3151cf\"\u003eb3e2203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ecreate AGENTS.md for coding agents (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/0da66ee797ced7479312aecef92c6a25e235007c\"\u003e0da66ee\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace travis with actions badge (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2576b94c918fbd154489a95dbbb3feda8bd3cbd8\"\u003e2576b94\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate CONTRIBUTING.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/db3918057cf125af989a1263d52df8df5ef8c642\"\u003edb39180\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v0.15.1...v1.0.0\"\u003e1.0.0\u003c/a\u003e (2025-09-12)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emodernize for Python 3.9+; drop legacy compat paths\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add limited XML comment round-trip; unify \u003ccode\u003e_emit\u003c/code\u003e behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/e43537eee61c20ef50f0e4242eb9223de7a6aefd\"\u003ee43537e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add selective \u003ccode\u003eforce_cdata\u003c/code\u003e support (bool/tuple/callable) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/a497fedb7d6103d68af155543ac3337a73778b19\"\u003ea497fed\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/375\"\u003e#375\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003enamespaces:\u003c/strong\u003e attach \u003ccode\u003e[@xmlns](https://github.com/xmlns)\u003c/code\u003e to declaring element when process_namespaces=True (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/f0322e578184421693434902547f330f4f0a44c3\"\u003ef0322e5\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/163\"\u003e#163\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e avoid parent accumulation at item_depth; add regression tests (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/220240c5eb2d12b75adf26cc84ec9c803ce8bb2b\"\u003e220240c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e handle non-string \u003ccode\u003e#text\u003c/code\u003e with attributes; unify value conversion (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/927a025ae8a62cbb542d5caff38b29161a2096fa\"\u003e927a025\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/366\"\u003e#366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e skip empty lists to keep pretty/compact outputs consistent (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/ab4c86fed24dc8ef0e932a524edfb01c6453ecf6\"\u003eab4c86f\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/martinblech/xmltodict/blob/master/CHANGELOG.md\"\u003exmltodict's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.1...v1.0.2\"\u003e1.0.2\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eallow DOCTYPE with disable_entities=True (def...\n\n_Description has been truncated_","html_url":"https://github.com/chrislkl/seed/pull/12","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrislkl%2Fseed/issues/12","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/12/packages"},{"uuid":"3780341937","node_id":"PR_kwDOQDraYs67eXHd","number":11,"state":"closed","title":"deps: bump the prod-deps group across 1 directory with 35 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-01-19T07:20:56.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-05T06:31:59.000Z","updated_at":"2026-01-19T07:20:58.000Z","time_to_close":1212537,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps: bump","group_name":"prod-deps","update_count":35,"packages":[{"name":"django","old_version":"4.2.24","new_version":"6.0","repository_url":"https://github.com/django/django"},{"name":"psycopg2-binary","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"celery","old_version":"5.5.3","new_version":"5.6.2","repository_url":"https://github.com/celery/celery"},{"name":"hiredis","old_version":"3.2.1","new_version":"3.3.0","repository_url":"https://github.com/redis/hiredis-py"},{"name":"brotli","old_version":"1.1.0","new_version":"1.2.0","repository_url":"https://github.com/google/brotli"},{"name":"django-compressor","old_version":"4.5.1","new_version":"4.6.0","repository_url":"https://github.com/django-compressor/django-compressor"},{"name":"django-post-office","old_version":"3.10.1","new_version":"3.11.0","repository_url":"https://github.com/ui/django-post_office"},{"name":"drf-yasg","old_version":"1.21.10","new_version":"1.21.11","repository_url":"https://github.com/axnsan12/drf-yasg"},{"name":"jellyfish","old_version":"1.2.0","new_version":"1.2.1"},{"name":"markdown","old_version":"3.9","new_version":"3.10","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"xlsxwriter","old_version":"3.2.5","new_version":"3.2.9","repository_url":"https://github.com/jmcnamara/XlsxWriter"},{"name":"xmltodict","old_version":"0.15.1","new_version":"1.0.2","repository_url":"https://github.com/martinblech/xmltodict"},{"name":"xmlschema","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/sissaschool/xmlschema"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"shapely","old_version":"2.0.7","new_version":"2.1.2","repository_url":"https://github.com/shapely/shapely"},{"name":"django-treebeard","old_version":"4.7.1","new_version":"4.8.0","repository_url":"https://github.com/django-treebeard/django-treebeard"},{"name":"django-two-factor-auth","old_version":"1.17.0","new_version":"1.18.1"},{"name":"importlib-metadata","old_version":"8.7.0","new_version":"8.7.1","repository_url":"https://github.com/python/importlib_metadata"},{"name":"boto3","old_version":"1.40.27","new_version":"1.42.21","repository_url":"https://github.com/boto/boto3"},{"name":"django-ses","old_version":"4.4.0","new_version":"4.5.0","repository_url":"https://github.com/django-ses/django-ses"},{"name":"uwsgi","old_version":"2.0.30","new_version":"2.0.31"},{"name":"coverage","old_version":"7.10.6","new_version":"7.13.1","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"coveralls","old_version":"4.0.1","new_version":"4.0.2","repository_url":"https://github.com/TheKevJames/coveralls-python"},{"name":"tox","old_version":"4.30.2","new_version":"4.33.0","repository_url":"https://github.com/tox-dev/tox"},{"name":"psutil","old_version":"7.0.0","new_version":"7.2.1","repository_url":"https://github.com/giampaolo/psutil"},{"name":"faker","old_version":"37.6.0","new_version":"40.1.0","repository_url":"https://github.com/joke2k/faker"},{"name":"vcrpy","old_version":"7.0.0","new_version":"8.1.1","repository_url":"https://github.com/kevin1024/vcrpy"},{"name":"pytest","old_version":"8.4.2","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pre-commit","old_version":"4.3.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"sphinx","old_version":"7.4.7","new_version":"9.1.0","repository_url":"https://github.com/sphinx-doc/sphinx"},{"name":"sphinxcontrib-spelling","old_version":"8.0.0","new_version":"8.0.2","repository_url":"https://github.com/sphinx-contrib/spelling"},{"name":"docutils","old_version":"0.21.2","new_version":"0.22.4","repository_url":"https://github.com/rtfd/recommonmark"},{"name":"hypothesis","old_version":"6.138.15","new_version":"6.148.13","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"django-debug-toolbar","old_version":"6.0.0","new_version":"6.1.0","repository_url":"https://github.com/django-commons/django-debug-toolbar"}],"path":null,"ecosystem":"pip"},"body":"Bumps the prod-deps group with 35 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [django](https://github.com/django/django) | `4.2.24` | `6.0` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [celery](https://github.com/celery/celery) | `5.5.3` | `5.6.2` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.2.1` | `3.3.0` |\n| [brotli](https://github.com/google/brotli) | `1.1.0` | `1.2.0` |\n| [django-compressor](https://github.com/django-compressor/django-compressor) | `4.5.1` | `4.6.0` |\n| [django-post-office](https://github.com/ui/django-post_office) | `3.10.1` | `3.11.0` |\n| [drf-yasg](https://github.com/axnsan12/drf-yasg) | `1.21.10` | `1.21.11` |\n| [jellyfish](https://jellyfish.jpt.sh/) | `1.2.0` | `1.2.1` |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.9` | `3.10` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [xlsxwriter](https://github.com/jmcnamara/XlsxWriter) | `3.2.5` | `3.2.9` |\n| [xmltodict](https://github.com/martinblech/xmltodict) | `0.15.1` | `1.0.2` |\n| [xmlschema](https://github.com/sissaschool/xmlschema) | `4.1.0` | `4.2.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [shapely](https://github.com/shapely/shapely) | `2.0.7` | `2.1.2` |\n| [django-treebeard](https://github.com/django-treebeard/django-treebeard) | `4.7.1` | `4.8.0` |\n| [django-two-factor-auth[phonenumbers]](https://github.com/jazzband/django-two-factor-auth) | `1.17.0` | `1.18.1` |\n| [importlib-metadata](https://github.com/python/importlib_metadata) | `8.7.0` | `8.7.1` |\n| [boto3](https://github.com/boto/boto3) | `1.40.27` | `1.42.21` |\n| [django-ses](https://github.com/django-ses/django-ses) | `4.4.0` | `4.5.0` |\n| [uwsgi](https://uwsgi-docs.readthedocs.io/en/latest/) | `2.0.30` | `2.0.31` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.13.1` |\n| [coveralls](https://github.com/TheKevJames/coveralls-python) | `4.0.1` | `4.0.2` |\n| [tox](https://github.com/tox-dev/tox) | `4.30.2` | `4.33.0` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.1` |\n| [faker](https://github.com/joke2k/faker) | `37.6.0` | `40.1.0` |\n| [vcrpy](https://github.com/kevin1024/vcrpy) | `7.0.0` | `8.1.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.2` | `9.0.2` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.3.0` | `4.5.1` |\n| [sphinx](https://github.com/sphinx-doc/sphinx) | `7.4.7` | `9.1.0` |\n| [sphinxcontrib-spelling](https://github.com/sphinx-contrib/spelling) | `8.0.0` | `8.0.2` |\n| [docutils](https://github.com/rtfd/recommonmark) | `0.21.2` | `0.22.4` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.138.15` | `6.148.13` |\n| [django-debug-toolbar](https://github.com/django-commons/django-debug-toolbar) | `6.0.0` | `6.1.0` |\n\n\nUpdates `django` from 4.2.24 to 6.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/36b5f39d9372147f0e758f590e35ee2b2bc317dd\"\u003e\u003ccode\u003e36b5f39\u003c/code\u003e\u003c/a\u003e [6.0.x] Bumped version for 6.0 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/4f46d1f43345da90037aab1c238d81058b61515b\"\u003e\u003ccode\u003e4f46d1f\u003c/code\u003e\u003c/a\u003e [6.0.x] Updated man page for Django 6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/a9f5ca5c58df7b662ad23ba9a39619c41a7e39ff\"\u003e\u003ccode\u003ea9f5ca5\u003c/code\u003e\u003c/a\u003e [6.0.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/35859\"\u003e#35859\u003c/a\u003e -- Clarified Tasks ref and topics docs regarding availabl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/45f9e0e969257c0938fec4b51b9b0264aa49bd25\"\u003e\u003ccode\u003e45f9e0e\u003c/code\u003e\u003c/a\u003e [6.0.x] Finalized release notes for Django 6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/ac44a55c80a918c30a4f5f03becd4cf01500bbb6\"\u003e\u003ccode\u003eac44a55\u003c/code\u003e\u003c/a\u003e [6.0.x] Made cosmetic edits to docs/releases/6.0.txt.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/00575b79312c719a6b37035067095e2d679bb5d7\"\u003e\u003ccode\u003e00575b7\u003c/code\u003e\u003c/a\u003e [6.0.x] Updated translations from Transifex.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/8414487569431f14e3da0c90185f03267a118160\"\u003e\u003ccode\u003e8414487\u003c/code\u003e\u003c/a\u003e [6.0.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/35444\"\u003e#35444\u003c/a\u003e -- Fixed typo in PostgreSQL StringAgg deprecation warning.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/1f8f36ee794aba06246f3a3e48a3fefadff019ea\"\u003e\u003ccode\u003e1f8f36e\u003c/code\u003e\u003c/a\u003e [6.0.x] Added CVE-2025-13372 and CVE-2025-64460 to security archive.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/224fc79c02366158be05beaaa18ad557b0c9096a\"\u003e\u003ccode\u003e224fc79\u003c/code\u003e\u003c/a\u003e [6.0.x] Added stub release notes for 5.2.10.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/1dbd07a608e495a0c229edaaf84d58d8976313b5\"\u003e\u003ccode\u003e1dbd07a\u003c/code\u003e\u003c/a\u003e [6.0.x] Fixed CVE-2025-64460 -- Corrected quadratic inner text accumulation i...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/4.2.24...6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2-binary` from 2.9.10 to 2.9.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2-binary's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix building when pg_config returns an empty string (:ticket:\u003ccode\u003e[#1599](https://github.com/psycopg/psycopg2/issues/1599)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eWheel package bundled with OpenSSL 1.1.1v.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.6\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\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 href=\"https://github.com/psycopg/psycopg2/commit/fd9ae8cad2bcfc3e7e9410e7b6f07cda8f4f05ec\"\u003e\u003ccode\u003efd9ae8c\u003c/code\u003e\u003c/a\u003e chore: bump to version 2.9.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d923840546942534f0956d9202f914fd9feac5fd\"\u003e\u003ccode\u003ed923840\u003c/code\u003e\u003c/a\u003e chore: update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d42dc7169d3cd93517e282e9ef5dc2a2b40650a2\"\u003e\u003ccode\u003ed42dc71\u003c/code\u003e\u003c/a\u003e Merge branch 'fix-1791'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4fde6560c32f06ad1304404c9f7f86148dcc4be0\"\u003e\u003ccode\u003e4fde656\u003c/code\u003e\u003c/a\u003e fix: avoid failed assert passing more arguments than placeholders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/8308c19d6af0d904b313997539ed33415990a74e\"\u003e\u003ccode\u003e8308c19\u003c/code\u003e\u003c/a\u003e fix: drop warning about the use of deprecated PyWeakref_GetObject function\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1a1eabf098a3374409bb2ab4b594777b900f396d\"\u003e\u003ccode\u003e1a1eabf\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/github-script from 7 to 8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/897af8b38beda851d7257dfc525129e37c0ec9e0\"\u003e\u003ccode\u003e897af8b\u003c/code\u003e\u003c/a\u003e build(deps): bump peter-evans/repository-dispatch from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ceefd305117113ca10e383a626e87ba0796f3638\"\u003e\u003ccode\u003eceefd30\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4dc585430cabe94cee96c5a9de0265d0f55370f1\"\u003e\u003ccode\u003e4dc5854\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1945788dcf6172bb1b9328ebc3587ccf0e6a659c\"\u003e\u003ccode\u003e1945788\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1802\"\u003e#1802\u003c/a\u003e from edgarrmondragon/cp314-wheels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.10...2.9.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `celery` from 5.5.3 to 5.6.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/celery/celery/releases\"\u003ecelery's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.6.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix recursive WorkController instantiation in DjangoWorkerFixup + AttributeError when pool_cls is a string by \u003ca href=\"https://github.com/bruunotrindade\"\u003e\u003ccode\u003e@​bruunotrindade\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10045\"\u003ecelery/celery#10045\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix: Revoked tasks now immediately update backend status to REVOKED by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9869\"\u003ecelery/celery#9869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare for release: v5.6.2 by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10049\"\u003ecelery/celery#10049\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=\"https://github.com/bruunotrindade\"\u003e\u003ccode\u003e@​bruunotrindade\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10045\"\u003ecelery/celery#10045\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/celery/celery/compare/v5.6.1...v5.6.2\"\u003ehttps://github.com/celery/celery/compare/v5.6.1...v5.6.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.6.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix Redis Sentinel ACL authentication support by \u003ca href=\"https://github.com/anthonykuzmich7\"\u003e\u003ccode\u003e@​anthonykuzmich7\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10013\"\u003ecelery/celery#10013\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Broker heartbeats not sent during graceful shutdown by \u003ca href=\"https://github.com/weetster\"\u003e\u003ccode\u003e@​weetster\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9986\"\u003ecelery/celery#9986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs \u003ca href=\"https://redirect.github.com/celery/celery/issues/5410\"\u003e#5410\u003c/a\u003e -- Document confirm_publish broker transport option by \u003ca href=\"https://github.com/JaeHyuckSa\"\u003e\u003ccode\u003e@​JaeHyuckSa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10016\"\u003ecelery/celery#10016\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eclose DB pools only in prefork mode by \u003ca href=\"https://github.com/petrprikryl\"\u003e\u003ccode\u003e@​petrprikryl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10020\"\u003ecelery/celery#10020\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Avoid unnecessary Django database connection creation during cleanup by \u003ca href=\"https://github.com/snopoke\"\u003e\u003ccode\u003e@​snopoke\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10015\"\u003ecelery/celery#10015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ereliable prefork detection by \u003ca href=\"https://github.com/petrprikryl\"\u003e\u003ccode\u003e@​petrprikryl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10023\"\u003ecelery/celery#10023\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebetter coverage by \u003ca href=\"https://github.com/petrprikryl\"\u003e\u003ccode\u003e@​petrprikryl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10029\"\u003ecelery/celery#10029\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: clarify \u003ccode\u003eresult_extended\u003c/code\u003e vs periodic task metadata and show \u003ccode\u003eheaders[\u0026quot;periodic_task_name\u0026quot;]\u003c/code\u003e example by \u003ca href=\"https://github.com/SpaceShaman\"\u003e\u003ccode\u003e@​SpaceShaman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10030\"\u003ecelery/celery#10030\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStop importing pytest_subtests by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10032\"\u003ecelery/celery#10032\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly use exceptiongroup backport for Python \u0026lt; 3.11 by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10033\"\u003ecelery/celery#10033\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare for release: v5.6.1 by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10037\"\u003ecelery/celery#10037\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=\"https://github.com/anthonykuzmich7\"\u003e\u003ccode\u003e@​anthonykuzmich7\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10013\"\u003ecelery/celery#10013\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/weetster\"\u003e\u003ccode\u003e@​weetster\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9986\"\u003ecelery/celery#9986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JaeHyuckSa\"\u003e\u003ccode\u003e@​JaeHyuckSa\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10016\"\u003ecelery/celery#10016\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/snopoke\"\u003e\u003ccode\u003e@​snopoke\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10015\"\u003ecelery/celery#10015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SpaceShaman\"\u003e\u003ccode\u003e@​SpaceShaman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10030\"\u003ecelery/celery#10030\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/celery/celery/compare/v5.6.0...v5.6.1\"\u003ehttps://github.com/celery/celery/compare/v5.6.0...v5.6.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.6.0\u003c/h2\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003ch2\u003eKey Highlights\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.celeryq.dev/en/stable/history/whatsnew-5.6.html\"\u003eWhat's new in Celery 5.6\u003c/a\u003e for a complete overview or read the main highlights below.\u003c/p\u003e\n\u003ch3\u003ePython 3.9 Minimum Version\u003c/h3\u003e\n\u003cp\u003eCelery 5.6.0 drops support for Python 3.8 (EOL). The minimum required Python version is now 3.9. Users still on Python 3.8 must upgrade their Python version before upgrading to Celery 5.6.0.\u003c/p\u003e\n\u003cp\u003eAdditionally, this release includes initial support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eSQS: Reverted to \u003ccode\u003epycurl\u003c/code\u003e from \u003ccode\u003eurllib3\u003c/code\u003e\u003c/h3\u003e\n\u003cp\u003eThe switch from \u003ccode\u003epycurl\u003c/code\u003e to \u003ccode\u003eurllib3\u003c/code\u003e for the SQS transport (introduced in Celery 5.5.0 via Kombu) has been reverted due to critical issues affecting SQS users.\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 href=\"https://github.com/celery/celery/blob/main/Changelog.rst\"\u003ecelery's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.6.2\u003c/h1\u003e\n\u003cp\u003e:release-date: 2026-01-04\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eWhat's Changed\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Fix recursive WorkController instantiation in DjangoWorkerFixup + AttributeError when pool_cls is a string ([#10045](https://github.com/celery/celery/issues/10045))\n- Bugfix: Revoked tasks now immediately update backend status to REVOKED ([#9869](https://github.com/celery/celery/issues/9869))\n- Prepare for release: v5.6.2 ([#10049](https://github.com/celery/celery/issues/10049))\n\u003cp\u003e.. _version-5.6.1:\u003c/p\u003e\n\u003ch1\u003e5.6.1\u003c/h1\u003e\n\u003cp\u003e:release-date: 2025-12-29\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eWhat's Changed\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix Redis Sentinel ACL authentication support (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10013\"\u003e#10013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: Broker heartbeats not sent during graceful shutdown (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9986\"\u003e#9986\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edocs \u003ca href=\"https://redirect.github.com/celery/celery/issues/5410\"\u003e#5410\u003c/a\u003e -- Document confirm_publish broker transport option (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10016\"\u003e#10016\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclose DB pools only in prefork mode (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10020\"\u003e#10020\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: Avoid unnecessary Django database connection creation during cleanup (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10015\"\u003e#10015\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereliable prefork detection (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10023\"\u003e#10023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebetter coverage (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10029\"\u003e#10029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocs: clarify \u003ccode\u003eresult_extended\u003c/code\u003e vs periodic task metadata and show \u003ccode\u003eheaders[\u0026quot;periodic_task_name\u0026quot;]\u003c/code\u003e example (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10030\"\u003e#10030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStop importing pytest_subtests (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10032\"\u003e#10032\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOnly use exceptiongroup backport for Python \u0026lt; 3.11 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10033\"\u003e#10033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrepare for release: v5.6.1 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10037\"\u003e#10037\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _version-5.6.0:\u003c/p\u003e\n\u003ch1\u003e5.6.0\u003c/h1\u003e\n\u003cp\u003e:release-date: 2025-11-30\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003cp\u003eKey Highlights\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nSee :ref:`whatsnew-5.6` for a complete overview or read the main highlights below.\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt; \n\u003c/code\u003e\u003c/pre\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 href=\"https://github.com/celery/celery/commit/6a43c846f183ef0cbade24f4b9a8f7a6ea113b44\"\u003e\u003ccode\u003e6a43c84\u003c/code\u003e\u003c/a\u003e Prepare for release: v5.6.2 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10049\"\u003e#10049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/333a82f746734151c5cbe848916085455b0a3748\"\u003e\u003ccode\u003e333a82f\u003c/code\u003e\u003c/a\u003e Bugfix: Revoked tasks now immediately update backend status to REVOKED (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9869\"\u003e#9869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/9d6ab110d947270c4edf0b42454266d2954e653d\"\u003e\u003ccode\u003e9d6ab11\u003c/code\u003e\u003c/a\u003e Fix recursive WorkController instantiation in DjangoWorkerFixup + AttributeEr...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/21dbc73f81d2fae058de49e665afaa1cd92da5c0\"\u003e\u003ccode\u003e21dbc73\u003c/code\u003e\u003c/a\u003e Prepare for release: v5.6.1 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10037\"\u003e#10037\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/ba20bed7723c684d12ddd62d6a7c0c0d901b3351\"\u003e\u003ccode\u003eba20bed\u003c/code\u003e\u003c/a\u003e Only use exceptiongroup backport for Python \u0026lt; 3.11 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10033\"\u003e#10033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/21675299bc2d10c648448ec5221136e07c1eec1a\"\u003e\u003ccode\u003e2167529\u003c/code\u003e\u003c/a\u003e Stop importing pytest_subtests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/0527296acb1f1790788301d4395ba6d5ce2a9704\"\u003e\u003ccode\u003e0527296\u003c/code\u003e\u003c/a\u003e Bump google-cloud-firestore from 2.21.0 to 2.22.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/5f8659bdba4561796d66e938a1e2c71d4489562f\"\u003e\u003ccode\u003e5f8659b\u003c/code\u003e\u003c/a\u003e Clarify 'result_extended' setting usage in tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/f19db7008682c782d85e69b5ce736970491752ea\"\u003e\u003ccode\u003ef19db70\u003c/code\u003e\u003c/a\u003e Bump mypy from 1.19.0 to 1.19.1 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10028\"\u003e#10028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/6da72bde60553a1c350eef1e17d834d004ed099d\"\u003e\u003ccode\u003e6da72bd\u003c/code\u003e\u003c/a\u003e better coverage (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10029\"\u003e#10029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/celery/celery/compare/v5.5.3...v5.6.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `hiredis` from 3.2.1 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/hiredis-py/releases\"\u003ehiredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.3.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e by \u003ca href=\"https://github.com/zweizeichen\"\u003e\u003ccode\u003e@​zweizeichen\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\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 href=\"https://github.com/redis/hiredis-py/commit/187d0f387afed58a955a42ea8c5467100871f98b\"\u003e\u003ccode\u003e187d0f3\u003c/code\u003e\u003c/a\u003e Version 3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/3efcf037edc5a9f7abfaedbd3f60b2a03feb4787\"\u003e\u003ccode\u003e3efcf03\u003c/code\u003e\u003c/a\u003e Add Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/215\"\u003e#215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/966cede2c0ca0a8ac4fe0786571e5c230f39c36e\"\u003e\u003ccode\u003e966cede\u003c/code\u003e\u003c/a\u003e Fix assertion in reader.c (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/212\"\u003e#212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/78def309e58126fdaacb66e6fd40df9c46494062\"\u003e\u003ccode\u003e78def30\u003c/code\u003e\u003c/a\u003e Bump version to 3.3.0-dev\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/redis/hiredis-py/compare/v3.2.1...v3.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `brotli` from 1.1.0 to 1.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/google/brotli/releases\"\u003ebrotli's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.0\u003c/h2\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\u003c/li\u003e\n\u003cli\u003eCLI: \u003ccode\u003ebrcat\u003c/code\u003e alias; allow decoding concatenated brotli streams\u003c/li\u003e\n\u003cli\u003ekt: pure Kotlin decoder\u003c/li\u003e\n\u003cli\u003ecgo: support \u0026quot;raw\u0026quot; dictionaries\u003c/li\u003e\n\u003cli\u003ebuild: Bazel modules\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: dropped \u003ccode\u003efinalize()\u003c/code\u003e for native entities\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: in \u003ccode\u003ecompress\u003c/code\u003e pass correct length to native encoder\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebuild: install man pages\u003c/li\u003e\n\u003cli\u003ebuild: updated / fixed / refined Bazel buildfiles\u003c/li\u003e\n\u003cli\u003eencoder: faster encoding\u003c/li\u003e\n\u003cli\u003ecgo: link via pkg-config\u003c/li\u003e\n\u003cli\u003epython: modernize extension / allow multi-phase module initialization\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edecoder / encoder: static tables use \u0026quot;small\u0026quot; model (allows 2GiB+ binaries)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.0 RC2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed (compared to RC1)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epick changes from Debian patch by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1349\"\u003egoogle/brotli#1349\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epick changes from Alpine patch by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1348\"\u003egoogle/brotli#1348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epick VCPKG patches by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1350\"\u003egoogle/brotli#1350\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix copy-paste in Java decoder by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1357\"\u003egoogle/brotli#1357\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.0 RC1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eIMPORTANT\u003c/strong\u003e: though this is a pre-release for v1.2.0, it is expected that some changes will be added before release; most notably concerning build files: patches applied by Alpine, Debian, Conan, VCPKG will be partially/fully integrated.\u003c/p\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\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 href=\"https://github.com/google/brotli/blob/master/CHANGELOG.md\"\u003ebrotli's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.2.0] - 2025-10-27\u003c/h2\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\u003c/li\u003e\n\u003cli\u003eCLI: \u003ccode\u003ebrcat\u003c/code\u003e alias; allow decoding concatenated brotli streams\u003c/li\u003e\n\u003cli\u003ekt: pure Kotlin decoder\u003c/li\u003e\n\u003cli\u003ecgo: support \u0026quot;raw\u0026quot; dictionaries\u003c/li\u003e\n\u003cli\u003ebuild: Bazel modules\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: dropped \u003ccode\u003efinalize()\u003c/code\u003e for native entities\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: in \u003ccode\u003ecompress\u003c/code\u003e pass correct length to native encoder\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebuild: install man pages\u003c/li\u003e\n\u003cli\u003ebuild: updated / fixed / refined Bazel buildfiles\u003c/li\u003e\n\u003cli\u003eencoder: faster encoding\u003c/li\u003e\n\u003cli\u003ecgo: link via pkg-config\u003c/li\u003e\n\u003cli\u003epython: modernize extension / allow multi-phase module initialization\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edecoder / encoder: static tables use \u0026quot;small\u0026quot; model (allows 2GiB+ binaries)\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 href=\"https://github.com/google/brotli/commit/028fb5a23661f123017c060daa546b55cf4bde29\"\u003e\u003ccode\u003e028fb5a\u003c/code\u003e\u003c/a\u003e release v1.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/390de5b472ec8c40a7b8e5029e47fd6493f7a755\"\u003e\u003ccode\u003e390de5b\u003c/code\u003e\u003c/a\u003e build and test csharp decoder\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/3499acbb7ac7818c1b929a8c9c5c5f8a634751da\"\u003e\u003ccode\u003e3499acb\u003c/code\u003e\u003c/a\u003e regenerate go/kt/js/ts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/8ca2312c61f1f5853be0708f9b1d6a6ad002d2a4\"\u003e\u003ccode\u003e8ca2312\u003c/code\u003e\u003c/a\u003e fix release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/ee771daf20bab6533cbc629407c50cff1c87d9f1\"\u003e\u003ccode\u003eee771da\u003c/code\u003e\u003c/a\u003e fix copy-paste in Java decoder\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/42aee3289154cb3e8db1c7a8ebfa639c857578b9\"\u003e\u003ccode\u003e42aee32\u003c/code\u003e\u003c/a\u003e try to fix release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/392c06bac05cc1d098ab105cbbda766f19853d92\"\u003e\u003ccode\u003e392c06b\u003c/code\u003e\u003c/a\u003e redesign release resource uploading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/1964cdb1b9e16a2a0c27fbd3b2a3bccb2c1a8294\"\u003e\u003ccode\u003e1964cdb\u003c/code\u003e\u003c/a\u003e ramp up all GH actions plugins\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/61605b1cb34ba84ae71c13b383d850a59cac85b2\"\u003e\u003ccode\u003e61605b1\u003c/code\u003e\u003c/a\u003e pick VCPKG patches\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/4b0f27b6f985b4301ad5cec4a31b9792ecf252bc\"\u003e\u003ccode\u003e4b0f27b\u003c/code\u003e\u003c/a\u003e pick changes from Alpine patch\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/google/brotli/compare/go/cbrotli/v1.1.0...v1.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-compressor` from 4.5.1 to 4.6.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-compressor/django-compressor/blob/develop/docs/changelog.txt\"\u003edjango-compressor's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003ev4.6 (2025-11-10)\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003eFull list of changes from v4.5.1 \u0026lt;https://github.com/django-compressor/django-compressor/compare/4.5.1...4.6\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed compatibility with latest BS4.\u003c/li\u003e\n\u003cli\u003eRemoved top pin for rcssmin and rjsmin dependencies.\u003c/li\u003e\n\u003cli\u003eAvoid compressing the same node concurrently in offline compression.\u003c/li\u003e\n\u003cli\u003eAvoid use of deprecated ast.Constant.s\u003c/li\u003e\n\u003cli\u003eOfficially support Django 6.0\u003c/li\u003e\n\u003cli\u003eOfficially support Django 5.2\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Django 5.0\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 3.9.\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 3.8.\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 href=\"https://github.com/django-compressor/django-compressor/commit/3ada994897cf982f97fc4c934be42eb1e0b71b9a\"\u003e\u003ccode\u003e3ada994\u003c/code\u003e\u003c/a\u003e Prepare 4.6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/1baa82a6cf6942eb12007217f26195a95df727e2\"\u003e\u003ccode\u003e1baa82a\u003c/code\u003e\u003c/a\u003e Remove CI testing for EOL Django 5.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/8706a52b740e7555abefc8fba1eaae1986ded1a5\"\u003e\u003ccode\u003e8706a52\u003c/code\u003e\u003c/a\u003e Add CI testing for Python 3.14 and Django 6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/7be9ce2cefedf59302207728e383fa7811232d59\"\u003e\u003ccode\u003e7be9ce2\u003c/code\u003e\u003c/a\u003e Bump brotli, lxml, and coverage test dependencies.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/d6fd8136febd1ba409b366c7471db8763522d91d\"\u003e\u003ccode\u003ed6fd813\u003c/code\u003e\u003c/a\u003e Remove test version pinning for rcssmin and rjsmin.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/2b46e7d1724109ebb5db49b76f008dc039f0a9db\"\u003e\u003ccode\u003e2b46e7d\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1307\"\u003e#1307\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/b97bb05836eb6a42d2746d43792e9d13f041b615\"\u003e\u003ccode\u003eb97bb05\u003c/code\u003e\u003c/a\u003e Disable bs4's multi valued attributes (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1296\"\u003e#1296\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/4e5433076300508e1c3648da3345ae606386eb3f\"\u003e\u003ccode\u003e4e54330\u003c/code\u003e\u003c/a\u003e Migrate packaging to pyproject.toml (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1313\"\u003e#1313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/872f8d52ce51957bccf4a91338d177c2ea4a3908\"\u003e\u003ccode\u003e872f8d5\u003c/code\u003e\u003c/a\u003e Remove version pinning for rcssmin and rjsmin (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1312\"\u003e#1312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/cc38666efb13c6e0b355cf273f56b783d7157e29\"\u003e\u003ccode\u003ecc38666\u003c/code\u003e\u003c/a\u003e Drop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1311\"\u003e#1311\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-compressor/django-compressor/compare/4.5.1...4.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-post-office` from 3.10.1 to 3.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ui/django-post_office/releases\"\u003edjango-post-office's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded Python 3.14 and Django 6.0 compatibility. Thanks \u003ca href=\"https://github.com/selwin\"\u003e\u003ccode\u003e@​selwin\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eReplaced \u003ccode\u003ebleach\u003c/code\u003e with \u003ccode\u003enh3\u003c/code\u003e for HTML sanitization. \u003ccode\u003ebleach\u003c/code\u003e has been deprecated since 2023. Thanks \u003ca href=\"https://github.com/selwin\"\u003e\u003ccode\u003e@​selwin\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eSESWebhookHandler\u003c/code\u003e and \u003ccode\u003eSparkPostWebhookHandler\u003c/code\u003e for handling webhook events (beta feature). Thanks \u003ca href=\"https://github.com/selwin\"\u003e\u003ccode\u003e@​selwin\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eOptimized the way templates are fetched during email delivery. Thanks \u003ca href=\"https://github.com/selwin\"\u003e\u003ccode\u003e@​selwin\u003c/code\u003e\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 href=\"https://github.com/ui/django-post_office/blob/master/CHANGELOG.md\"\u003edjango-post-office's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003eUnreleased\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplaced \u003ccode\u003ebleach\u003c/code\u003e with \u003ccode\u003enh3\u003c/code\u003e for HTML sanitization. \u003ccode\u003ebleach\u003c/code\u003e has been deprecated since 2023. Thanks \u003ca href=\"https://github.com/selwin\"\u003e\u003ccode\u003e@​selwin\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eSESWebhookHandler\u003c/code\u003e and \u003ccode\u003eSparkPostWebhookHandler\u003c/code\u003e for handling webhook events (beta feature). Thanks \u003ca href=\"https://github.com/selwin\"\u003e\u003ccode\u003e@​selwin\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eOptimized the way templates are fetched during email delivery. Thanks \u003ca href=\"https://github.com/selwin\"\u003e\u003ccode\u003e@​selwin\u003c/code\u003e\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 href=\"https://github.com/ui/django-post_office/commit/825af68a79bce78acb18c945d1f3acd5935a975b\"\u003e\u003ccode\u003e825af68\u003c/code\u003e\u003c/a\u003e Bump version to 3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/99be3b50a904d84f35fecb14f6c64575611a2e8a\"\u003e\u003ccode\u003e99be3b5\u003c/code\u003e\u003c/a\u003e Delete publish.yml (\u003ca href=\"https://redirect.github.com/ui/django-post_office/issues/513\"\u003e#513\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/a360b7946a0b8a777e0764ab7423749f7686716b\"\u003e\u003ccode\u003ea360b79\u003c/code\u003e\u003c/a\u003e Improve tests (\u003ca href=\"https://redirect.github.com/ui/django-post_office/issues/509\"\u003e#509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/fe7c583512845d31685245b783a502bfc221c0c6\"\u003e\u003ccode\u003efe7c583\u003c/code\u003e\u003c/a\u003e Python314 fix (\u003ca href=\"https://redirect.github.com/ui/django-post_office/issues/511\"\u003e#511\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/0556f5eaaffbbbb29bd3db2ad0c2ef2086595971\"\u003e\u003ccode\u003e0556f5e\u003c/code\u003e\u003c/a\u003e Updated test.yml so tests don't get triggered twice (\u003ca href=\"https://redirect.github.com/ui/django-post_office/issues/512\"\u003e#512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/00ddbc165e597af2967fa3fcd3f34a66d0659ae3\"\u003e\u003ccode\u003e00ddbc1\u003c/code\u003e\u003c/a\u003e Webhooks (\u003ca href=\"https://redirect.github.com/ui/django-post_office/issues/510\"\u003e#510\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/936d1ac816ffd3cf734bd77f0bb7ec17082793f3\"\u003e\u003ccode\u003e936d1ac\u003c/code\u003e\u003c/a\u003e Updated README.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/91fbc6c28be60288961521520581d20745b3320c\"\u003e\u003ccode\u003e91fbc6c\u003c/code\u003e\u003c/a\u003e Webhook handlers (\u003ca href=\"https://redirect.github.com/ui/django-post_office/issues/505\"\u003e#505\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/0f68aaf444779682ea3d8806a5f46dea1a753e08\"\u003e\u003ccode\u003e0f68aaf\u003c/code\u003e\u003c/a\u003e Merge branch 'webhooks'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/5b7fdf9989517b1e740cc725ae635833dc376a12\"\u003e\u003ccode\u003e5b7fdf9\u003c/code\u003e\u003c/a\u003e Move tests (\u003ca href=\"https://redirect.github.com/ui/django-post_office/issues/508\"\u003e#508\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ui/django-post_office/compare/v3.10.1...v3.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `drf-yasg` from 1.21.10 to 1.21.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/axnsan12/drf-yasg/releases\"\u003edrf-yasg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.21.11\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/917\"\u003e#917\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/916\"\u003e#916\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/926\"\u003e#926\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/922\"\u003e#922\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/928\"\u003e#928\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/923\"\u003e#923\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/848\"\u003e#848\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/903\"\u003e#903\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 href=\"https://github.com/axnsan12/drf-yasg/blob/master/docs/changelog.rst\"\u003edrf-yasg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e#########\nChangelog\n#########\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.11\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (:pr:\u003ccode\u003e917\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (:pr:\u003ccode\u003e916\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (:pr:\u003ccode\u003e926\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (:pr:\u003ccode\u003e922\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (:pr:\u003ccode\u003e928\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (:pr:\u003ccode\u003e923\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (:pr:\u003ccode\u003e848\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (:pr:\u003ccode\u003e903\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.10\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix type hints when using postponed evaluation of annotations (PEP-563) (:pr:\u003ccode\u003e840\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update JSON \u0026amp; YAML renderers to not use a \u0026quot;.\u0026quot; in their format string (:pr:\u003ccode\u003e911\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix lint errors when comparing types with == instead of is (:pr:\u003ccode\u003e868\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update swagger-ui-dist to address CVE-2021-46708 (:pr:\u003ccode\u003e904\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.9\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Added support for zoneinfo object fields (:pr:\u003ccode\u003e908\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.8\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Python 3.11 and 3.12 support (:pr:\u003ccode\u003e891\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix pkg_resources version lookups for Python 3.9+ (:pr:\u003ccode\u003e891\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.7\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cem\u003eRelease date: Jul 20, 2023\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Added \u003ccode\u003edrf_yasg.inspectors.query.DrfAPICompatInspector\u003c/code\u003e (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Added \u003ccode\u003eDrfAPICompatInspector\u003c/code\u003e to serve as a replacement \u003ccode\u003eCoreAPICompatInspector\u003c/code\u003e (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow \u003ccode\u003eDEFAULT_SPEC_RENDERERS\u003c/code\u003e default renderers to be overriden in the settings (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fixed redoc source mapping (:pr:\u003ccode\u003e859\u003c/code\u003e)\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/f8cb2db70ca42fb709565f89fdd152b614dc865d\"\u003e\u003ccode\u003ef8cb2db\u003c/code\u003e\u003c/a\u003e Add version 1.21.11 details to the changelog (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/939\"\u003e#939\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/0c6d08d5ebc52e802e5e1acbabbadfe179d4087d\"\u003e\u003ccode\u003e0c6d08d\u003c/code\u003e\u003c/a\u003e Update the ruff lint rules (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/920\"\u003e#920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/055a74dc10128fd55a48f7f74f6b58ffcc48e83d\"\u003e\u003ccode\u003e055a74d\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 in the github-actions group (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/937\"\u003e#937\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/a8813ace8e39cc2c28a916053c74415e10db1425\"\u003e\u003ccode\u003ea8813ac\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 in the github-actions group (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/936\"\u003e#936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/9f4b44943ad930e23e979b80090102dfca1d588b\"\u003e\u003ccode\u003e9f4b449\u003c/code\u003e\u003c/a\u003e Restore the live demo and replace heroku with apprunner (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/935\"\u003e#935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/298325122e11aeba87e6c8f16604e45d870649e7\"\u003e\u003ccode\u003e2983251\u003c/code\u003e\u003c/a\u003e fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/a74689370c393432debbe6285b3afb3e462aee58\"\u003e\u003ccode\u003ea746893\u003c/code\u003e\u003c/a\u003e allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/916\"\u003e#916\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/e747ad6db413c2d20c3eab79739e22ffde5930c7\"\u003e\u003ccode\u003ee747ad6\u003c/code\u003e\u003c/a\u003e Fixes issue with filter parameters not appearing in Swagger after upgrading t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/ee3c871501dad5f0585c8c62ac0659fedab999a1\"\u003e\u003ccode\u003eee3c871\u003c/code\u003e\u003c/a\u003e update Python, Django, and DRF versions \u0026amp; packaging configuration (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/922\"\u003e#922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/be6eeedcbebcb45151a9d18018d880d1fcdcf143\"\u003e\u003ccode\u003ebe6eeed\u003c/code\u003e\u003c/a\u003e Remove usage of pkg_resources (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/928\"\u003e#928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/axnsan12/drf-yasg/compare/1.21.10...1.21.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jellyfish` from 1.2.0 to 1.2.1\n\nUpdates `markdown` from 3.9 to 3.10\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/releases\"\u003emarkdown's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.10.0\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\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 href=\"https://github.com/Python-Markdown/markdown/blob/master/docs/changelog.md\"\u003emarkdown's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003etitle: Changelog\ntoc_depth: 2\u003c/p\u003e\n\u003ch1\u003ePython-Markdown Changelog\u003c/h1\u003e\n\u003cp\u003eAll notable changes to this project will be documented in this file.\u003c/p\u003e\n\u003cp\u003eThe format is based on \u003ca href=\"https://keepachangelog.com/en/1.1.0/\"\u003eKeep a Changelog\u003c/a\u003e,\nand this project adheres to the\n\u003ca href=\"https://packaging.python.org/en/latest/specifications/version-specifiers/\"\u003ePython Version Specification\u003c/a\u003e.\nSee the \u003ca href=\"https://github.com/Python-Markdown/markdown/blob/master/docs/contributing.md\"\u003eContributing Guide\u003c/a\u003e for details.\u003c/p\u003e\n\u003ch2\u003e[Unreleased]\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure nested elements inside inline comments are properly unescaped (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1571\"\u003e#1571\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eMake the docs build successfully with mkdocstrings-python 2.0 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1575\"\u003e#1575\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix infinite loop when multiple bogus or unclosed HTML comments appear in input (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1578\"\u003e#1578\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.10.0] - 2025-11-03\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.9.0] - 2025-09-04\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFootnotes are now ordered by the occurrence of their references in the\ndocument. A new configuration option for the footnotes extension,\n\u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e, has been added to support restoring the previous\nbehavior of ordering footnotes by the occurrence of definitions (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1367\"\u003e#1367\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure inline processing iterates through elements in document order (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1546\"\u003e#1546\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix handling of incomplete HTML tags in code spans in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1547\"\u003e#1547\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.8.2] - 2025-06-19\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/22e89c1fc346f72218a10e392a0c3b4731912522\"\u003e\u003ccode\u003e22e89c1\u003c/code\u003e\u003c/a\u003e Bump version to 3.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/c138aea5139a6aceae05bb957e866d9ce7577b94\"\u003e\u003ccode\u003ec138aea\u003c/code\u003e\u003c/a\u003e + PY314 - PY39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/746f7f527b15f63845253e3b86947b806ef1b98f\"\u003e\u003ccode\u003e746f7f5\u003c/code\u003e\u003c/a\u003e cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/a5ee2b4aad05531898ab8fd726c7ece31ddadf8b\"\u003e\u003ccode\u003ea5ee2b4\u003c/code\u003e\u003c/a\u003e Revert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/5354daf618149f92580a1407c036115753c5df73\"\u003e\u003ccode\u003e5354daf\u003c/code\u003e\u003c/a\u003e Fix an HTML comment parsing case that can cause an infinite loop\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Python-Markdown/markdown/compare/3.9.0...3.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyyaml` from 6.0.2 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/yaml/pyyaml/releases\"\u003epyyaml's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14 and free-threading (experimental).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ehttps://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\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 href=\"https://github.com/yaml/pyyaml/blob/6.0.3/CHANGES\"\u003epyyaml's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e6.0.3 (2025-09-25)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/yaml/pyyaml/pull/864\"\u003eyaml/pyyaml#864\u003c/a\u003e -- Support for Python 3.14 and free-threading (experimental)\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 href=\"https://github.com/yaml/pyyaml/commit/49790e73684bebad1df05ef8d828fa12f685bffb\"\u003e\u003ccode\u003e49790e7\u003c/code\u003e\u003c/a\u003e Release 6.0.3 (\u003ca href=\"https://redirect.github.com/yaml/pyyaml/issues/889\"\u003e#889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xlsxwriter` from 3.2.5 to 3.2.9\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jmcnamara/XlsxWriter/blob/main/Changes\"\u003exlsxwriter's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.2.9 - September 16 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved the \u003ccode\u003epy.typed\u003c/code\u003e file since it was causing a lot of downstream CI\nfailures where consumers weren't handling the xlsxwriter types correctly or\ntaking them into account.\u003c/p\u003e\n\u003cp\u003eThe file will be re-added once the xlsxwriter typing is more comprehensive.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.2.8 - September 14 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003emypy\u003c/code\u003e implicit export error caused by the \u003ccode\u003eWorkbook()\u003c/code\u003e type\nannotations changes in v3.2.7 and v3.2.6.\u003c/p\u003e\n\u003cp\u003e:issue:\u003ccode\u003e1154\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.2.7 - September 13 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed typing issue in \u003ccode\u003eWorkbook()\u003c/code\u003e constructor.\u003c/p\u003e\n\u003cp\u003e:issue:\u003ccode\u003e1152\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.2.6 - September 12 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded an option to position custom data labels in the same way that the data\nlabels can be positioned for the entire series.\u003c/p\u003e\n\u003cp\u003e:feature:\u003ccode\u003e1147\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd border, fill, gradient and pattern formatting options for\nchart titles and also chart axis titles.\u003c/p\u003e\n\u003cp\u003e:feature:\u003ccode\u003e957\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd additional type annotations. This is an ongoing refactoring.\u003c/p\u003e\n\u003cp\u003e:feature:\u003ccode\u003e1123\u003c/code\u003e.\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 href=\"https://github.com/jmcnamara/XlsxWriter/commit/e943bee8c9cdf0661cfdb83d5497e0725390e41e\"\u003e\u003ccode\u003ee943bee\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/392bd9e6572785394c6553e2d4f7ae2bb80782f4\"\u003e\u003ccode\u003e392bd9e\u003c/code\u003e\u003c/a\u003e typing: remove py.typed file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/eb99afecdd0050209835f9f237d580dc53e42afa\"\u003e\u003ccode\u003eeb99afe\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/5ec29826d5e398bb5adebaabafbeb9d443a6ed8c\"\u003e\u003ccode\u003e5ec2982\u003c/code\u003e\u003c/a\u003e workbook: add explicit export for mypy compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/ca85cbb03a5898c9e7b66c78ac67a365e7f53002\"\u003e\u003ccode\u003eca85cbb\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/3710251aaaa9524ee302ec04608bfc1b577d4ba5\"\u003e\u003ccode\u003e3710251\u003c/code\u003e\u003c/a\u003e typing: add more supported types to Workbook() constructor\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/27db7a14672bfe1a18f29dfbab646aa0149a369b\"\u003e\u003ccode\u003e27db7a1\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/f05067654b42283557c3621e411b6fbadb7051b6\"\u003e\u003ccode\u003ef050676\u003c/code\u003e\u003c/a\u003e docs: add CI spell check\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/60f708cc1e10c0c66ae870be4f350f45a9d3ecc8\"\u003e\u003ccode\u003e60f708c\u003c/code\u003e\u003c/a\u003e chart: add axis title formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/53dc08e5d240310c88bbfce8d1a42330ae256535\"\u003e\u003ccode\u003e53dc08e\u003c/code\u003e\u003c/a\u003e chart: add chart title formatting options\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jmcnamara/XlsxWriter/compare/RELEASE_3.2.5...RELEASE_3.2.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xmltodict` from 0.15.1 to 1.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/martinblech/xmltodict/releases\"\u003exmltodict's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.0.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.1...v1.0.2\"\u003e1.0.2\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eallow DOCTYPE with disable_entities=True (default) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/25b61a41f580cfc211df07c5fbbf603bd8eb5a5f\"\u003e25b61a4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.0...v1.0.1\"\u003e1.0.1\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efail closed when entities disabled (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c986d2d37a93d45fcc059b09063d9d9c45a655ec\"\u003ec986d2d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003evalidate XML comments (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/3d4d2d3a4cd0f68d1211dba549010261fa87b969\"\u003e3d4d2d3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd SECURITY.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/64130233c8fea272a5f82f2f585e1593523ec1b1\"\u003e6413023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify behavior for empty lists (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2025b5cb5e64fc9c4d54b8644187a0a193bdd0ed\"\u003e2025b5c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify process_comments docs (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/6b464fce284a93dbb292f3d063c9f310a478a014\"\u003e6b464fc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify strip whitespace comment behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/b3e22032d21cc387d6cecf3930116e8fdc3151cf\"\u003eb3e2203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ecreate AGENTS.md for coding agents (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/0da66ee797ced7479312aecef92c6a25e235007c\"\u003e0da66ee\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace travis with actions badge (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2576b94c918fbd154489a95dbbb3feda8bd3cbd8\"\u003e2576b94\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate CONTRIBUTING.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/db3918057cf125af989a1263d52df8df5ef8c642\"\u003edb39180\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v0.15.1...v1.0.0\"\u003e1.0.0\u003c/a\u003e (2025-09-12)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emodernize for Python 3.9+; drop legacy compat paths\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add limited XML comment round-trip; unify \u003ccode\u003e_emit\u003c/code\u003e behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/e43537eee61c20ef50f0e4242eb9223de7a6aefd\"\u003ee43537e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add selective \u003ccode\u003eforce_cdata\u003c/code\u003e support (bool/tuple/callable) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/a497fedb7d6103d68af155543ac3337a73778b19\"\u003ea497fed\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/375\"\u003e#375\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003enamespaces:\u003c/strong\u003e attach \u003ccode\u003e[@xmlns](https://github.com/xmlns)\u003c/code\u003e to declaring element when process_namespaces=True (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/f0322e578184421693434902547f330f4f0a44c3\"\u003ef0322e5\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/163\"\u003e#163\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e avoid parent accumulation at item_depth; add regression tests (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/220240c5eb2d12b75adf26cc84ec9c803ce8bb2b\"\u003e220240c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e handle non-string \u003ccode\u003e#text\u003c/code\u003e with attributes; unify value conversion (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/927a025ae8a62cbb542d5caff38b29161a2096fa\"\u003e927a025\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/366\"\u003e#366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e skip empty lists to keep pretty/compact outputs consistent (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/ab4c86fed24dc8ef0e932a524edfb01c6453ecf6\"\u003eab4c86f\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/martinblech/xmltodict/blob/master/CHANGELOG.md\"\u003exmltodict's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.1...v1.0.2\"\u003e1.0.2\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eallow DOCTYPE with disable_entities=True (default) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/25b61a41f580cfc211df07c5fbbf603bd8eb5a5f\"\u003e25b61a4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.0...v1.0.1\"\u003e1.0.1\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efail closed when entities disabled (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c986d2d37a93d45fcc059b09063d9d9c45a655ec\"\u003ec986d2d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003evalidate XML comments (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/3d4d2d3a4cd0f68d1211dba549010261fa87b969\"\u003e3d4d2d3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd SECURITY.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/64130233c8fea272a5f82f2f585e1593523ec1b1\"\u003e6413023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify behavior for empty lists (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2025b5cb5e64fc9c4d54b8644187a0a193bdd0ed\"\u003e2025b5c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify process_comments docs (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/6b464fce284a93dbb292f3d063c9f310a478a014\"\u003e6b464fc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify strip whitespace comment behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/b3e22032d21cc387d6cecf3930116e8fdc3151cf\"\u003eb3e2203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ecreate AGENTS.md for coding agents (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/0da66ee797ced7479312aecef92c6a25e235007c\"\u003e0da66ee\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace travis with actions badge (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2576b94c918fbd154489a95dbbb3feda8bd3cbd8\"\u003e2576b94\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate CONTRIBUTING.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/db3918057cf125af989a1263d52df8df5ef8c642\"\u003edb39180\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v0.15.1...v1.0.0\"\u003e1.0.0\u003c/a\u003e (2025-09-12)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emodernize for Python 3.9+; drop legacy compat paths\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add limited XML comment round-trip; unify \u003ccode\u003e_emit\u003c/code\u003e behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/e43537eee61c20ef50f0e4242eb9223de7a6aefd\"\u003ee43537e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add selective \u003ccode\u003eforce_cdata\u003c/code\u003e support (bool/tuple/callable) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/a497fedb7d6103d68af155543ac3337a73778b19\"\u003ea497fed\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/375\"\u003e#375\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003enamespaces:\u003c/strong\u003e attach \u003ccode\u003e[@xmlns](https://github.com/xmlns)\u003c/code\u003e to declaring element when process_namespaces=True (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/f0322e578184421693434902547f330f4f0a44c3\"\u003ef0322e5\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/163\"\u003e#163\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e avoid parent accumulation at item_depth; add regression tests (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/220240c5eb2d12b75adf26cc84ec9c803ce8bb2b\"\u003e220240c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e handle non-string \u003ccode\u003e#text\u003c/code\u003e with attributes; unify value conversion (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/927a025ae8a62cbb542d5caff38b29161a2096fa\"\u003e927a025\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/366\"\u003e#366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e skip empty lists to keep pretty/compact outputs consistent (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/ab4c86fed24dc8ef0e932a524edfb01c6453ecf6\"\u003eab4c86f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eReverts\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove initial Release Drafter config (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c0b74ed58f933bffd160c60a58620f672710ff7c\"\u003ec0b74ed\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 href=\"https://github.com/martinblech/xmltodict/commit/d079849136b031c471ec96a168ad7859ed5994ff\"\u003e\u003ccode\u003ed079849\u003c/code\u003e\u003c/a\u003e chore(master): release 1.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/25b61a41f580cfc211df07c5fbbf603bd8eb5a5f\"\u003e\u003ccode\u003e25b61a4\u003c/code\u003e\u003c/a\u003e fix: allow DOCTYPE with disable_entities=True (default)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/a2a9ab7e0692a62f64d97ff12553d0d53368c854\"\u003e\u003ccode\u003ea2a9ab7\u003c/code\u003e\u003c/a\u003e ci(publish): allow uploading release assets\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/656e6af9543e640fda7e96d6bdd6e693756687be\"\u003e\u003ccode\u003e656e6af\u003c/code\u003e\u003c/a\u003e chore(master): release 1.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c986d2d37a93d45fcc059b09063d9d9c45a655ec\"\u003e\u003ccode\u003ec986d2d\u003c/code\u003e\u003c/a\u003e fix: fail closed when entities disabled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/3d4d2d3a4cd0f68d1211dba549010261fa87b969\"\u003e\u003ccode\u003e3d4d2d3\u003c/code\u003e\u003c/a\u003e fix: validate XML comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/b4a5f2a3f04aff68384486e957632c8438396fd6\"\u003e\u003ccode\u003eb4a5f2a\u003c/code\u003e\u003c/a\u003e refactor: remove jython-specific parsing branches\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/6b464fce284a93dbb292f3d063c9f310a478a014\"\u003e\u003ccode\u003e6b464fc\u003c/code\u003e\u003c/a\u003e docs: clarify process_comments docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/34daa304d443e49113d195294d99c6f58ce4714c\"\u003e\u003ccode\u003e34daa30\u003c/code\u003e\u003c/a\u003e refactor: remove unused helper functions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2025b5cb5e64fc9c4d54b8644187a0a193bdd0ed\"\u003e\u003ccode\u003e2025b5c\u003c/code\u003e\u003c/a\u003e docs: clarify behavior for empty lists\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/martinblech/xmltodict/compare/v0.15.1...v1.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xmlschema` from 4.1.0 to 4.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sissaschool/xmlschema/releases\"\u003exmlschema's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.2.0 (2025-10-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd arguments validation for schemas and validation methods (by validation contexts)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSchemaSettings\u003c/code\u003e dataclass for storing read-only settings for schema instances\nand for managing package default settings\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eblock\u003c/em\u003e argument to \u003ccode\u003eXMLResource\u003c/code\u003e class (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/464\"\u003e#464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_SCHEMA_SOURCES\u003c/em\u003e package limit (\u003ccode\u003e1000\u003c/code\u003e, applied to \u003ccode\u003eXsdGlobals\u003c/code\u003e global maps instances)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_XML_ELEMENTS\u003c/em\u003e package limit (\u003ccode\u003e1,000,000\u003c/code\u003e, applied to non-lazy \u003ccode\u003eXMLResource\u003c/code\u003e instances)\u003c/li\u003e\n\u003cli\u003eReduce \u003cem\u003eMAX_XML_DEPTH\u003c/em\u003e limit to 1000 and apply it to all \u003ccode\u003eXMLResource\u003c/code\u003e instances\u003c/li\u003e\n\u003cli\u003eFix for substitute match in case of unexpected child (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\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 href=\"https://github.com/sissaschool/xmlschema/blob/master/CHANGELOG.rst\"\u003exmlschema's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ccode\u003ev4.2.0\u003c/code\u003e_ (2025-10-14)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd arguments validation for schemas and validation methods (by validation contexts)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSchemaSettings\u003c/code\u003e dataclass for storing read-only settings for schema instances\nand for managing package default settings\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eblock\u003c/em\u003e argument to \u003ccode\u003eXMLResource\u003c/code\u003e class (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/464\"\u003e#464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_SCHEMA_SOURCES\u003c/em\u003e package limit (\u003ccode\u003e1000\u003c/code\u003e, applied to \u003ccode\u003eXsdGlobals\u003c/code\u003e global maps instances)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_XML_ELEMENTS\u003c/em\u003e package limit (\u003ccode\u003e1,000,000\u003c/code\u003e, applied to non-lazy \u003ccode\u003eXMLResource\u003c/code\u003e instances)\u003c/li\u003e\n\u003cli\u003eReduce \u003cem\u003eMAX_XML_DEPTH\u003c/em\u003e limit to 1000 and apply it to all \u003ccode\u003eXMLResource\u003c/code\u003e instances\u003c/li\u003e\n\u003cli\u003eFix for substitute match in case of unexpected child (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\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 href=\"https://github.com/sissaschool/xmlschema/commit/2783030fcdcd5307563822906862a9e7088931b2\"\u003e\u003ccode\u003e2783030\u003c/code\u003e\u003c/a\u003e Bump minor release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/...\n\n_Description has been truncated_","html_url":"https://github.com/chrislkl/seed/pull/11","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrislkl%2Fseed/issues/11","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/11/packages"},{"uuid":"3752501390","node_id":"PR_kwDOQDraYs66Ev1g","number":10,"state":"closed","title":"deps: bump the prod-deps group across 1 directory with 34 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-01-05T06:30:08.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-22T06:28:36.000Z","updated_at":"2026-01-05T06:30:10.000Z","time_to_close":1209692,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps: bump","group_name":"prod-deps","update_count":34,"packages":[{"name":"django","old_version":"4.2.24","new_version":"6.0","repository_url":"https://github.com/django/django"},{"name":"psycopg2-binary","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"celery","old_version":"5.5.3","new_version":"5.6.0","repository_url":"https://github.com/celery/celery"},{"name":"hiredis","old_version":"3.2.1","new_version":"3.3.0","repository_url":"https://github.com/redis/hiredis-py"},{"name":"brotli","old_version":"1.1.0","new_version":"1.2.0","repository_url":"https://github.com/google/brotli"},{"name":"django-compressor","old_version":"4.5.1","new_version":"4.6.0","repository_url":"https://github.com/django-compressor/django-compressor"},{"name":"drf-yasg","old_version":"1.21.10","new_version":"1.21.11","repository_url":"https://github.com/axnsan12/drf-yasg"},{"name":"jellyfish","old_version":"1.2.0","new_version":"1.2.1"},{"name":"markdown","old_version":"3.9","new_version":"3.10","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"xlsxwriter","old_version":"3.2.5","new_version":"3.2.9","repository_url":"https://github.com/jmcnamara/XlsxWriter"},{"name":"xmltodict","old_version":"0.15.1","new_version":"1.0.2","repository_url":"https://github.com/martinblech/xmltodict"},{"name":"xmlschema","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/sissaschool/xmlschema"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"shapely","old_version":"2.0.7","new_version":"2.1.2","repository_url":"https://github.com/shapely/shapely"},{"name":"django-treebeard","old_version":"4.7.1","new_version":"4.8.0","repository_url":"https://github.com/django-treebeard/django-treebeard"},{"name":"django-two-factor-auth","old_version":"1.17.0","new_version":"1.18.1"},{"name":"importlib-metadata","old_version":"8.7.0","new_version":"8.7.1","repository_url":"https://github.com/python/importlib_metadata"},{"name":"boto3","old_version":"1.40.27","new_version":"1.42.14","repository_url":"https://github.com/boto/boto3"},{"name":"django-ses","old_version":"4.4.0","new_version":"4.5.0","repository_url":"https://github.com/django-ses/django-ses"},{"name":"uwsgi","old_version":"2.0.30","new_version":"2.0.31"},{"name":"coverage","old_version":"7.10.6","new_version":"7.13.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"coveralls","old_version":"4.0.1","new_version":"4.0.2","repository_url":"https://github.com/TheKevJames/coveralls-python"},{"name":"tox","old_version":"4.30.2","new_version":"4.32.0","repository_url":"https://github.com/tox-dev/tox"},{"name":"psutil","old_version":"7.0.0","new_version":"7.1.3","repository_url":"https://github.com/giampaolo/psutil"},{"name":"faker","old_version":"37.6.0","new_version":"39.0.0","repository_url":"https://github.com/joke2k/faker"},{"name":"vcrpy","old_version":"7.0.0","new_version":"8.1.0","repository_url":"https://github.com/kevin1024/vcrpy"},{"name":"pytest","old_version":"8.4.2","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pre-commit","old_version":"4.3.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"sphinx","old_version":"7.4.7","new_version":"9.0.4","repository_url":"https://github.com/sphinx-doc/sphinx"},{"name":"sphinxcontrib-spelling","old_version":"8.0.0","new_version":"8.0.2","repository_url":"https://github.com/sphinx-contrib/spelling"},{"name":"docutils","old_version":"0.21.2","new_version":"0.22.4","repository_url":"https://github.com/rtfd/recommonmark"},{"name":"hypothesis","old_version":"6.138.15","new_version":"6.148.7","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"django-debug-toolbar","old_version":"6.0.0","new_version":"6.1.0","repository_url":"https://github.com/django-commons/django-debug-toolbar"}],"path":null,"ecosystem":"pip"},"body":"Bumps the prod-deps group with 34 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [django](https://github.com/django/django) | `4.2.24` | `6.0` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [celery](https://github.com/celery/celery) | `5.5.3` | `5.6.0` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.2.1` | `3.3.0` |\n| [brotli](https://github.com/google/brotli) | `1.1.0` | `1.2.0` |\n| [django-compressor](https://github.com/django-compressor/django-compressor) | `4.5.1` | `4.6.0` |\n| [drf-yasg](https://github.com/axnsan12/drf-yasg) | `1.21.10` | `1.21.11` |\n| [jellyfish](https://jellyfish.jpt.sh/) | `1.2.0` | `1.2.1` |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.9` | `3.10` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [xlsxwriter](https://github.com/jmcnamara/XlsxWriter) | `3.2.5` | `3.2.9` |\n| [xmltodict](https://github.com/martinblech/xmltodict) | `0.15.1` | `1.0.2` |\n| [xmlschema](https://github.com/sissaschool/xmlschema) | `4.1.0` | `4.2.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [shapely](https://github.com/shapely/shapely) | `2.0.7` | `2.1.2` |\n| [django-treebeard](https://github.com/django-treebeard/django-treebeard) | `4.7.1` | `4.8.0` |\n| [django-two-factor-auth[phonenumbers]](https://github.com/jazzband/django-two-factor-auth) | `1.17.0` | `1.18.1` |\n| [importlib-metadata](https://github.com/python/importlib_metadata) | `8.7.0` | `8.7.1` |\n| [boto3](https://github.com/boto/boto3) | `1.40.27` | `1.42.14` |\n| [django-ses](https://github.com/django-ses/django-ses) | `4.4.0` | `4.5.0` |\n| [uwsgi](https://uwsgi-docs.readthedocs.io/en/latest/) | `2.0.30` | `2.0.31` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.13.0` |\n| [coveralls](https://github.com/TheKevJames/coveralls-python) | `4.0.1` | `4.0.2` |\n| [tox](https://github.com/tox-dev/tox) | `4.30.2` | `4.32.0` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.1.3` |\n| [faker](https://github.com/joke2k/faker) | `37.6.0` | `39.0.0` |\n| [vcrpy](https://github.com/kevin1024/vcrpy) | `7.0.0` | `8.1.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.2` | `9.0.2` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.3.0` | `4.5.1` |\n| [sphinx](https://github.com/sphinx-doc/sphinx) | `7.4.7` | `9.0.4` |\n| [sphinxcontrib-spelling](https://github.com/sphinx-contrib/spelling) | `8.0.0` | `8.0.2` |\n| [docutils](https://github.com/rtfd/recommonmark) | `0.21.2` | `0.22.4` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.138.15` | `6.148.7` |\n| [django-debug-toolbar](https://github.com/django-commons/django-debug-toolbar) | `6.0.0` | `6.1.0` |\n\n\nUpdates `django` from 4.2.24 to 6.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/36b5f39d9372147f0e758f590e35ee2b2bc317dd\"\u003e\u003ccode\u003e36b5f39\u003c/code\u003e\u003c/a\u003e [6.0.x] Bumped version for 6.0 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/4f46d1f43345da90037aab1c238d81058b61515b\"\u003e\u003ccode\u003e4f46d1f\u003c/code\u003e\u003c/a\u003e [6.0.x] Updated man page for Django 6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/a9f5ca5c58df7b662ad23ba9a39619c41a7e39ff\"\u003e\u003ccode\u003ea9f5ca5\u003c/code\u003e\u003c/a\u003e [6.0.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/35859\"\u003e#35859\u003c/a\u003e -- Clarified Tasks ref and topics docs regarding availabl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/45f9e0e969257c0938fec4b51b9b0264aa49bd25\"\u003e\u003ccode\u003e45f9e0e\u003c/code\u003e\u003c/a\u003e [6.0.x] Finalized release notes for Django 6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/ac44a55c80a918c30a4f5f03becd4cf01500bbb6\"\u003e\u003ccode\u003eac44a55\u003c/code\u003e\u003c/a\u003e [6.0.x] Made cosmetic edits to docs/releases/6.0.txt.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/00575b79312c719a6b37035067095e2d679bb5d7\"\u003e\u003ccode\u003e00575b7\u003c/code\u003e\u003c/a\u003e [6.0.x] Updated translations from Transifex.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/8414487569431f14e3da0c90185f03267a118160\"\u003e\u003ccode\u003e8414487\u003c/code\u003e\u003c/a\u003e [6.0.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/35444\"\u003e#35444\u003c/a\u003e -- Fixed typo in PostgreSQL StringAgg deprecation warning.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/1f8f36ee794aba06246f3a3e48a3fefadff019ea\"\u003e\u003ccode\u003e1f8f36e\u003c/code\u003e\u003c/a\u003e [6.0.x] Added CVE-2025-13372 and CVE-2025-64460 to security archive.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/224fc79c02366158be05beaaa18ad557b0c9096a\"\u003e\u003ccode\u003e224fc79\u003c/code\u003e\u003c/a\u003e [6.0.x] Added stub release notes for 5.2.10.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/1dbd07a608e495a0c229edaaf84d58d8976313b5\"\u003e\u003ccode\u003e1dbd07a\u003c/code\u003e\u003c/a\u003e [6.0.x] Fixed CVE-2025-64460 -- Corrected quadratic inner text accumulation i...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/4.2.24...6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2-binary` from 2.9.10 to 2.9.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2-binary's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix building when pg_config returns an empty string (:ticket:\u003ccode\u003e[#1599](https://github.com/psycopg/psycopg2/issues/1599)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eWheel package bundled with OpenSSL 1.1.1v.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.6\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\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 href=\"https://github.com/psycopg/psycopg2/commit/fd9ae8cad2bcfc3e7e9410e7b6f07cda8f4f05ec\"\u003e\u003ccode\u003efd9ae8c\u003c/code\u003e\u003c/a\u003e chore: bump to version 2.9.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d923840546942534f0956d9202f914fd9feac5fd\"\u003e\u003ccode\u003ed923840\u003c/code\u003e\u003c/a\u003e chore: update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d42dc7169d3cd93517e282e9ef5dc2a2b40650a2\"\u003e\u003ccode\u003ed42dc71\u003c/code\u003e\u003c/a\u003e Merge branch 'fix-1791'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4fde6560c32f06ad1304404c9f7f86148dcc4be0\"\u003e\u003ccode\u003e4fde656\u003c/code\u003e\u003c/a\u003e fix: avoid failed assert passing more arguments than placeholders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/8308c19d6af0d904b313997539ed33415990a74e\"\u003e\u003ccode\u003e8308c19\u003c/code\u003e\u003c/a\u003e fix: drop warning about the use of deprecated PyWeakref_GetObject function\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1a1eabf098a3374409bb2ab4b594777b900f396d\"\u003e\u003ccode\u003e1a1eabf\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/github-script from 7 to 8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/897af8b38beda851d7257dfc525129e37c0ec9e0\"\u003e\u003ccode\u003e897af8b\u003c/code\u003e\u003c/a\u003e build(deps): bump peter-evans/repository-dispatch from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ceefd305117113ca10e383a626e87ba0796f3638\"\u003e\u003ccode\u003eceefd30\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4dc585430cabe94cee96c5a9de0265d0f55370f1\"\u003e\u003ccode\u003e4dc5854\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1945788dcf6172bb1b9328ebc3587ccf0e6a659c\"\u003e\u003ccode\u003e1945788\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1802\"\u003e#1802\u003c/a\u003e from edgarrmondragon/cp314-wheels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.10...2.9.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `celery` from 5.5.3 to 5.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/celery/celery/releases\"\u003ecelery's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.6.0\u003c/h2\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003ch2\u003eKey Highlights\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.celeryq.dev/en/stable/history/whatsnew-5.6.html\"\u003eWhat's new in Celery 5.6\u003c/a\u003e for a complete overview or read the main highlights below.\u003c/p\u003e\n\u003ch3\u003ePython 3.9 Minimum Version\u003c/h3\u003e\n\u003cp\u003eCelery 5.6.0 drops support for Python 3.8 (EOL). The minimum required Python version is now 3.9. Users still on Python 3.8 must upgrade their Python version before upgrading to Celery 5.6.0.\u003c/p\u003e\n\u003cp\u003eAdditionally, this release includes initial support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eSQS: Reverted to \u003ccode\u003epycurl\u003c/code\u003e from \u003ccode\u003eurllib3\u003c/code\u003e\u003c/h3\u003e\n\u003cp\u003eThe switch from \u003ccode\u003epycurl\u003c/code\u003e to \u003ccode\u003eurllib3\u003c/code\u003e for the SQS transport (introduced in Celery 5.5.0 via Kombu) has been reverted due to critical issues affecting SQS users.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/auvipy\"\u003e\u003ccode\u003e@​auvipy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9620\"\u003ecelery/celery#9620\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eSecurity Fix: Broker Credential Leak Prevention\u003c/h3\u003e\n\u003cp\u003eFixed a security issue where broker URLs containing passwords were being logged in plaintext by the delayed delivery mechanism. Broker credentials are now properly sanitized in all log output.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/giancarloromeo\"\u003e\u003ccode\u003e@​giancarloromeo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9997\"\u003ecelery/celery#9997\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eMemory Leak Fixes\u003c/h3\u003e\n\u003cp\u003eTwo significant memory leaks have been fixed in this release:\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eException Handling Memory Leak\u003c/strong\u003e: Fixed a critical memory leak in task exception handling that was particularly severe on Python 3.11+ due to enhanced traceback data. The fix properly breaks reference cycles in tracebacks to allow garbage collection.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/jaiganeshs21\"\u003e\u003ccode\u003e@​jaiganeshs21\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9799\"\u003ecelery/celery#9799\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ePending Result Memory Leak\u003c/strong\u003e: Fixed a memory leak where \u003ccode\u003eAsyncResult\u003c/code\u003e subscriptions were not being cleaned up when results were forgotten.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/tsoos99dev\"\u003e\u003ccode\u003e@​tsoos99dev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9806\"\u003ecelery/celery#9806\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eETA Task Memory Limit\u003c/h3\u003e\n\u003cp\u003eNew configuration option \u003ccode\u003eworker_eta_task_limit\u003c/code\u003e to prevent out-of-memory crashes when workers fetch large numbers of ETA or countdown tasks. Previously, workers could exhaust available memory when the broker contained many scheduled tasks.\u003c/p\u003e\n\u003cp\u003eExample usage:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eapp.conf.worker_eta_task_limit = 1000\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/sashu2310\"\u003e\u003ccode\u003e@​sashu2310\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9853\"\u003ecelery/celery#9853\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eQueue Type Selection for Auto-created Queues\u003c/h3\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 href=\"https://github.com/celery/celery/blob/main/Changelog.rst\"\u003ecelery's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.6.0\u003c/h1\u003e\n\u003cp\u003e:release-date: 2025-11-30\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003cp\u003eKey Highlights\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nSee :ref:`whatsnew-5.6` for a complete overview or read the main highlights below.\n\u003ch2\u003ePython 3.9 Minimum Version\u003c/h2\u003e\n\u003cp\u003eCelery 5.6.0 drops support for Python 3.8 (EOL). The minimum required Python\nversion is now 3.9. Users still on Python 3.8 must upgrade their Python version\nbefore upgrading to Celery 5.6.0.\u003c/p\u003e\n\u003cp\u003eAdditionally, this release includes initial support for Python 3.14.\u003c/p\u003e\n\u003ch2\u003eSQS: Reverted to \u003ccode\u003epycurl\u003c/code\u003e from \u003ccode\u003eurllib3\u003c/code\u003e\u003c/h2\u003e\n\u003cp\u003eThe switch from \u003ccode\u003epycurl\u003c/code\u003e to \u003ccode\u003eurllib3\u003c/code\u003e for the SQS transport (introduced in\nCelery 5.5.0 via Kombu) has been reverted due to critical issues affecting SQS\nusers:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eProcessing throughput dropped from ~100 tasks/sec to ~3/sec in some environments\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUnknownOperationException\u003c/code\u003e errors causing container crash loops\u003c/li\u003e\n\u003cli\u003eSilent message processing failures with no error logs\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eUsers of the SQS transport must ensure \u003ccode\u003epycurl\u003c/code\u003e is installed. If you removed\n\u003ccode\u003epycurl\u003c/code\u003e after upgrading to Celery 5.5.0, you will need to reinstall it.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ccode\u003e@auvipy \u0026amp;lt;https://github.com/auvipy\u0026amp;gt;\u003c/code\u003e_ in\n\u003ccode\u003e[#9620](https://github.com/celery/celery/issues/9620) \u0026amp;lt;https://github.com/celery/celery/pull/9620\u0026amp;gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003ch2\u003eSecurity Fix: Broker Credential Leak Prevention\u003c/h2\u003e\n\u003cp\u003eFixed a security issue where broker URLs containing passwords were being logged\nin plaintext by the delayed delivery mechanism. Broker credentials are now\nproperly sanitized in all log output.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ccode\u003e@giancarloromeo \u0026amp;lt;https://github.com/giancarloromeo\u0026amp;gt;\u003c/code\u003e_ in\n\u003ccode\u003e[#9997](https://github.com/celery/celery/issues/9997) \u0026amp;lt;https://github.com/celery/celery/pull/9997\u0026amp;gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003cp\u003eMemory Leak Fixes\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\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 href=\"https://github.com/celery/celery/commit/cca11164860a1bee6ad8626c27a683b482f741eb\"\u003e\u003ccode\u003ecca1116\u003c/code\u003e\u003c/a\u003e Prepare for release: v5.6.0 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10010\"\u003e#10010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/1133f22181bb22223d39c0060973695c6af55643\"\u003e\u003ccode\u003e1133f22\u003c/code\u003e\u003c/a\u003e Bump mypy from 1.14.1 to 1.19.0 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10008\"\u003e#10008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/0932d2c06e001903b90638f7c40a14f5407c9801\"\u003e\u003ccode\u003e0932d2c\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10007\"\u003e#10007\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/b446910f18860531b089d6c39f974265cc24a589\"\u003e\u003ccode\u003eb446910\u003c/code\u003e\u003c/a\u003e Prepare for (pre) release: v5.6.0rc2 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10005\"\u003e#10005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/3f0f0fe7ea6a67a696d0a750644b552559ae368e\"\u003e\u003ccode\u003e3f0f0fe\u003c/code\u003e\u003c/a\u003e asynpool: Don't return from inside a finally block (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10000\"\u003e#10000\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/95d05527c0e1fff5c1a38877ba87592983a7f993\"\u003e\u003ccode\u003e95d0552\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10003\"\u003e#10003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/f32b92f0e481601e9cc9f1212a4feced3f48e1a0\"\u003e\u003ccode\u003ef32b92f\u003c/code\u003e\u003c/a\u003e Add Py39-314t to CI (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9999\"\u003e#9999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/63c1910221d9fb8c1931ff62c80c4c37232b2d58\"\u003e\u003ccode\u003e63c1910\u003c/code\u003e\u003c/a\u003e Don't fail task on timeout during cold shutdown (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9678\"\u003e#9678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/30649dbd41308fc8eef79b2aae179a908eaa7a51\"\u003e\u003ccode\u003e30649db\u003c/code\u003e\u003c/a\u003e Fix log leaking broker credentials (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9997\"\u003e#9997\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/929412e2d4d328e337be3f177ca99fff10ab9bdc\"\u003e\u003ccode\u003e929412e\u003c/code\u003e\u003c/a\u003e Remove Python 4.0 version condition for pytest dependencies (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9993\"\u003e#9993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/celery/celery/compare/v5.5.3...v5.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `hiredis` from 3.2.1 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/hiredis-py/releases\"\u003ehiredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.3.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e by \u003ca href=\"https://github.com/zweizeichen\"\u003e\u003ccode\u003e@​zweizeichen\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\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 href=\"https://github.com/redis/hiredis-py/commit/187d0f387afed58a955a42ea8c5467100871f98b\"\u003e\u003ccode\u003e187d0f3\u003c/code\u003e\u003c/a\u003e Version 3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/3efcf037edc5a9f7abfaedbd3f60b2a03feb4787\"\u003e\u003ccode\u003e3efcf03\u003c/code\u003e\u003c/a\u003e Add Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/215\"\u003e#215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/966cede2c0ca0a8ac4fe0786571e5c230f39c36e\"\u003e\u003ccode\u003e966cede\u003c/code\u003e\u003c/a\u003e Fix assertion in reader.c (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/212\"\u003e#212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/78def309e58126fdaacb66e6fd40df9c46494062\"\u003e\u003ccode\u003e78def30\u003c/code\u003e\u003c/a\u003e Bump version to 3.3.0-dev\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/redis/hiredis-py/compare/v3.2.1...v3.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `brotli` from 1.1.0 to 1.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/google/brotli/releases\"\u003ebrotli's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.0\u003c/h2\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\u003c/li\u003e\n\u003cli\u003eCLI: \u003ccode\u003ebrcat\u003c/code\u003e alias; allow decoding concatenated brotli streams\u003c/li\u003e\n\u003cli\u003ekt: pure Kotlin decoder\u003c/li\u003e\n\u003cli\u003ecgo: support \u0026quot;raw\u0026quot; dictionaries\u003c/li\u003e\n\u003cli\u003ebuild: Bazel modules\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: dropped \u003ccode\u003efinalize()\u003c/code\u003e for native entities\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: in \u003ccode\u003ecompress\u003c/code\u003e pass correct length to native encoder\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebuild: install man pages\u003c/li\u003e\n\u003cli\u003ebuild: updated / fixed / refined Bazel buildfiles\u003c/li\u003e\n\u003cli\u003eencoder: faster encoding\u003c/li\u003e\n\u003cli\u003ecgo: link via pkg-config\u003c/li\u003e\n\u003cli\u003epython: modernize extension / allow multi-phase module initialization\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edecoder / encoder: static tables use \u0026quot;small\u0026quot; model (allows 2GiB+ binaries)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.0 RC2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed (compared to RC1)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epick changes from Debian patch by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1349\"\u003egoogle/brotli#1349\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epick changes from Alpine patch by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1348\"\u003egoogle/brotli#1348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epick VCPKG patches by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1350\"\u003egoogle/brotli#1350\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix copy-paste in Java decoder by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1357\"\u003egoogle/brotli#1357\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.0 RC1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eIMPORTANT\u003c/strong\u003e: though this is a pre-release for v1.2.0, it is expected that some changes will be added before release; most notably concerning build files: patches applied by Alpine, Debian, Conan, VCPKG will be partially/fully integrated.\u003c/p\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\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 href=\"https://github.com/google/brotli/blob/master/CHANGELOG.md\"\u003ebrotli's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.2.0] - 2025-10-27\u003c/h2\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\u003c/li\u003e\n\u003cli\u003eCLI: \u003ccode\u003ebrcat\u003c/code\u003e alias; allow decoding concatenated brotli streams\u003c/li\u003e\n\u003cli\u003ekt: pure Kotlin decoder\u003c/li\u003e\n\u003cli\u003ecgo: support \u0026quot;raw\u0026quot; dictionaries\u003c/li\u003e\n\u003cli\u003ebuild: Bazel modules\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: dropped \u003ccode\u003efinalize()\u003c/code\u003e for native entities\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: in \u003ccode\u003ecompress\u003c/code\u003e pass correct length to native encoder\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebuild: install man pages\u003c/li\u003e\n\u003cli\u003ebuild: updated / fixed / refined Bazel buildfiles\u003c/li\u003e\n\u003cli\u003eencoder: faster encoding\u003c/li\u003e\n\u003cli\u003ecgo: link via pkg-config\u003c/li\u003e\n\u003cli\u003epython: modernize extension / allow multi-phase module initialization\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edecoder / encoder: static tables use \u0026quot;small\u0026quot; model (allows 2GiB+ binaries)\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 href=\"https://github.com/google/brotli/commit/028fb5a23661f123017c060daa546b55cf4bde29\"\u003e\u003ccode\u003e028fb5a\u003c/code\u003e\u003c/a\u003e release v1.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/390de5b472ec8c40a7b8e5029e47fd6493f7a755\"\u003e\u003ccode\u003e390de5b\u003c/code\u003e\u003c/a\u003e build and test csharp decoder\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/3499acbb7ac7818c1b929a8c9c5c5f8a634751da\"\u003e\u003ccode\u003e3499acb\u003c/code\u003e\u003c/a\u003e regenerate go/kt/js/ts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/8ca2312c61f1f5853be0708f9b1d6a6ad002d2a4\"\u003e\u003ccode\u003e8ca2312\u003c/code\u003e\u003c/a\u003e fix release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/ee771daf20bab6533cbc629407c50cff1c87d9f1\"\u003e\u003ccode\u003eee771da\u003c/code\u003e\u003c/a\u003e fix copy-paste in Java decoder\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/42aee3289154cb3e8db1c7a8ebfa639c857578b9\"\u003e\u003ccode\u003e42aee32\u003c/code\u003e\u003c/a\u003e try to fix release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/392c06bac05cc1d098ab105cbbda766f19853d92\"\u003e\u003ccode\u003e392c06b\u003c/code\u003e\u003c/a\u003e redesign release resource uploading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/1964cdb1b9e16a2a0c27fbd3b2a3bccb2c1a8294\"\u003e\u003ccode\u003e1964cdb\u003c/code\u003e\u003c/a\u003e ramp up all GH actions plugins\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/61605b1cb34ba84ae71c13b383d850a59cac85b2\"\u003e\u003ccode\u003e61605b1\u003c/code\u003e\u003c/a\u003e pick VCPKG patches\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/4b0f27b6f985b4301ad5cec4a31b9792ecf252bc\"\u003e\u003ccode\u003e4b0f27b\u003c/code\u003e\u003c/a\u003e pick changes from Alpine patch\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/google/brotli/compare/go/cbrotli/v1.1.0...v1.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-compressor` from 4.5.1 to 4.6.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-compressor/django-compressor/blob/develop/docs/changelog.txt\"\u003edjango-compressor's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003ev4.6 (2025-11-10)\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003eFull list of changes from v4.5.1 \u0026lt;https://github.com/django-compressor/django-compressor/compare/4.5.1...4.6\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed compatibility with latest BS4.\u003c/li\u003e\n\u003cli\u003eRemoved top pin for rcssmin and rjsmin dependencies.\u003c/li\u003e\n\u003cli\u003eAvoid compressing the same node concurrently in offline compression.\u003c/li\u003e\n\u003cli\u003eAvoid use of deprecated ast.Constant.s\u003c/li\u003e\n\u003cli\u003eOfficially support Django 6.0\u003c/li\u003e\n\u003cli\u003eOfficially support Django 5.2\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Django 5.0\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 3.9.\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 3.8.\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 href=\"https://github.com/django-compressor/django-compressor/commit/3ada994897cf982f97fc4c934be42eb1e0b71b9a\"\u003e\u003ccode\u003e3ada994\u003c/code\u003e\u003c/a\u003e Prepare 4.6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/1baa82a6cf6942eb12007217f26195a95df727e2\"\u003e\u003ccode\u003e1baa82a\u003c/code\u003e\u003c/a\u003e Remove CI testing for EOL Django 5.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/8706a52b740e7555abefc8fba1eaae1986ded1a5\"\u003e\u003ccode\u003e8706a52\u003c/code\u003e\u003c/a\u003e Add CI testing for Python 3.14 and Django 6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/7be9ce2cefedf59302207728e383fa7811232d59\"\u003e\u003ccode\u003e7be9ce2\u003c/code\u003e\u003c/a\u003e Bump brotli, lxml, and coverage test dependencies.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/d6fd8136febd1ba409b366c7471db8763522d91d\"\u003e\u003ccode\u003ed6fd813\u003c/code\u003e\u003c/a\u003e Remove test version pinning for rcssmin and rjsmin.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/2b46e7d1724109ebb5db49b76f008dc039f0a9db\"\u003e\u003ccode\u003e2b46e7d\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1307\"\u003e#1307\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/b97bb05836eb6a42d2746d43792e9d13f041b615\"\u003e\u003ccode\u003eb97bb05\u003c/code\u003e\u003c/a\u003e Disable bs4's multi valued attributes (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1296\"\u003e#1296\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/4e5433076300508e1c3648da3345ae606386eb3f\"\u003e\u003ccode\u003e4e54330\u003c/code\u003e\u003c/a\u003e Migrate packaging to pyproject.toml (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1313\"\u003e#1313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/872f8d52ce51957bccf4a91338d177c2ea4a3908\"\u003e\u003ccode\u003e872f8d5\u003c/code\u003e\u003c/a\u003e Remove version pinning for rcssmin and rjsmin (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1312\"\u003e#1312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/cc38666efb13c6e0b355cf273f56b783d7157e29\"\u003e\u003ccode\u003ecc38666\u003c/code\u003e\u003c/a\u003e Drop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1311\"\u003e#1311\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-compressor/django-compressor/compare/4.5.1...4.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `drf-yasg` from 1.21.10 to 1.21.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/axnsan12/drf-yasg/releases\"\u003edrf-yasg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.21.11\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/917\"\u003e#917\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/916\"\u003e#916\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/926\"\u003e#926\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/922\"\u003e#922\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/928\"\u003e#928\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/923\"\u003e#923\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/848\"\u003e#848\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/903\"\u003e#903\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 href=\"https://github.com/axnsan12/drf-yasg/blob/master/docs/changelog.rst\"\u003edrf-yasg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e#########\nChangelog\n#########\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.11\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (:pr:\u003ccode\u003e917\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (:pr:\u003ccode\u003e916\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (:pr:\u003ccode\u003e926\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (:pr:\u003ccode\u003e922\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (:pr:\u003ccode\u003e928\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (:pr:\u003ccode\u003e923\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (:pr:\u003ccode\u003e848\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (:pr:\u003ccode\u003e903\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.10\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix type hints when using postponed evaluation of annotations (PEP-563) (:pr:\u003ccode\u003e840\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update JSON \u0026amp; YAML renderers to not use a \u0026quot;.\u0026quot; in their format string (:pr:\u003ccode\u003e911\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix lint errors when comparing types with == instead of is (:pr:\u003ccode\u003e868\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update swagger-ui-dist to address CVE-2021-46708 (:pr:\u003ccode\u003e904\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.9\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Added support for zoneinfo object fields (:pr:\u003ccode\u003e908\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.8\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Python 3.11 and 3.12 support (:pr:\u003ccode\u003e891\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix pkg_resources version lookups for Python 3.9+ (:pr:\u003ccode\u003e891\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.7\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cem\u003eRelease date: Jul 20, 2023\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Added \u003ccode\u003edrf_yasg.inspectors.query.DrfAPICompatInspector\u003c/code\u003e (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Added \u003ccode\u003eDrfAPICompatInspector\u003c/code\u003e to serve as a replacement \u003ccode\u003eCoreAPICompatInspector\u003c/code\u003e (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow \u003ccode\u003eDEFAULT_SPEC_RENDERERS\u003c/code\u003e default renderers to be overriden in the settings (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fixed redoc source mapping (:pr:\u003ccode\u003e859\u003c/code\u003e)\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/f8cb2db70ca42fb709565f89fdd152b614dc865d\"\u003e\u003ccode\u003ef8cb2db\u003c/code\u003e\u003c/a\u003e Add version 1.21.11 details to the changelog (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/939\"\u003e#939\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/0c6d08d5ebc52e802e5e1acbabbadfe179d4087d\"\u003e\u003ccode\u003e0c6d08d\u003c/code\u003e\u003c/a\u003e Update the ruff lint rules (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/920\"\u003e#920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/055a74dc10128fd55a48f7f74f6b58ffcc48e83d\"\u003e\u003ccode\u003e055a74d\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 in the github-actions group (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/937\"\u003e#937\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/a8813ace8e39cc2c28a916053c74415e10db1425\"\u003e\u003ccode\u003ea8813ac\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 in the github-actions group (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/936\"\u003e#936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/9f4b44943ad930e23e979b80090102dfca1d588b\"\u003e\u003ccode\u003e9f4b449\u003c/code\u003e\u003c/a\u003e Restore the live demo and replace heroku with apprunner (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/935\"\u003e#935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/298325122e11aeba87e6c8f16604e45d870649e7\"\u003e\u003ccode\u003e2983251\u003c/code\u003e\u003c/a\u003e fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/a74689370c393432debbe6285b3afb3e462aee58\"\u003e\u003ccode\u003ea746893\u003c/code\u003e\u003c/a\u003e allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/916\"\u003e#916\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/e747ad6db413c2d20c3eab79739e22ffde5930c7\"\u003e\u003ccode\u003ee747ad6\u003c/code\u003e\u003c/a\u003e Fixes issue with filter parameters not appearing in Swagger after upgrading t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/ee3c871501dad5f0585c8c62ac0659fedab999a1\"\u003e\u003ccode\u003eee3c871\u003c/code\u003e\u003c/a\u003e update Python, Django, and DRF versions \u0026amp; packaging configuration (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/922\"\u003e#922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/be6eeedcbebcb45151a9d18018d880d1fcdcf143\"\u003e\u003ccode\u003ebe6eeed\u003c/code\u003e\u003c/a\u003e Remove usage of pkg_resources (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/928\"\u003e#928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/axnsan12/drf-yasg/compare/1.21.10...1.21.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jellyfish` from 1.2.0 to 1.2.1\n\nUpdates `markdown` from 3.9 to 3.10\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/releases\"\u003emarkdown's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.10.0\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\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 href=\"https://github.com/Python-Markdown/markdown/blob/master/docs/changelog.md\"\u003emarkdown's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003etitle: Changelog\ntoc_depth: 2\u003c/p\u003e\n\u003ch1\u003ePython-Markdown Changelog\u003c/h1\u003e\n\u003cp\u003eAll notable changes to this project will be documented in this file.\u003c/p\u003e\n\u003cp\u003eThe format is based on \u003ca href=\"https://keepachangelog.com/en/1.1.0/\"\u003eKeep a Changelog\u003c/a\u003e,\nand this project adheres to the\n\u003ca href=\"https://packaging.python.org/en/latest/specifications/version-specifiers/\"\u003ePython Version Specification\u003c/a\u003e.\nSee the \u003ca href=\"https://github.com/Python-Markdown/markdown/blob/master/docs/contributing.md\"\u003eContributing Guide\u003c/a\u003e for details.\u003c/p\u003e\n\u003ch2\u003e[Unreleased]\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure nested elements inside inline comments are properly unescaped (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1571\"\u003e#1571\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eMake the docs build successfully with mkdocstrings-python 2.0 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1575\"\u003e#1575\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.10.0] - 2025-11-03\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.9.0] - 2025-09-04\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFootnotes are now ordered by the occurrence of their references in the\ndocument. A new configuration option for the footnotes extension,\n\u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e, has been added to support restoring the previous\nbehavior of ordering footnotes by the occurrence of definitions (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1367\"\u003e#1367\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure inline processing iterates through elements in document order (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1546\"\u003e#1546\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix handling of incomplete HTML tags in code spans in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1547\"\u003e#1547\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.8.2] - 2025-06-19\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/22e89c1fc346f72218a10e392a0c3b4731912522\"\u003e\u003ccode\u003e22e89c1\u003c/code\u003e\u003c/a\u003e Bump version to 3.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/c138aea5139a6aceae05bb957e866d9ce7577b94\"\u003e\u003ccode\u003ec138aea\u003c/code\u003e\u003c/a\u003e + PY314 - PY39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/746f7f527b15f63845253e3b86947b806ef1b98f\"\u003e\u003ccode\u003e746f7f5\u003c/code\u003e\u003c/a\u003e cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/a5ee2b4aad05531898ab8fd726c7ece31ddadf8b\"\u003e\u003ccode\u003ea5ee2b4\u003c/code\u003e\u003c/a\u003e Revert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/5354daf618149f92580a1407c036115753c5df73\"\u003e\u003ccode\u003e5354daf\u003c/code\u003e\u003c/a\u003e Fix an HTML comment parsing case that can cause an infinite loop\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Python-Markdown/markdown/compare/3.9.0...3.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyyaml` from 6.0.2 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/yaml/pyyaml/releases\"\u003epyyaml's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14 and free-threading (experimental).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ehttps://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\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 href=\"https://github.com/yaml/pyyaml/blob/6.0.3/CHANGES\"\u003epyyaml's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e6.0.3 (2025-09-25)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/yaml/pyyaml/pull/864\"\u003eyaml/pyyaml#864\u003c/a\u003e -- Support for Python 3.14 and free-threading (experimental)\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 href=\"https://github.com/yaml/pyyaml/commit/49790e73684bebad1df05ef8d828fa12f685bffb\"\u003e\u003ccode\u003e49790e7\u003c/code\u003e\u003c/a\u003e Release 6.0.3 (\u003ca href=\"https://redirect.github.com/yaml/pyyaml/issues/889\"\u003e#889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xlsxwriter` from 3.2.5 to 3.2.9\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jmcnamara/XlsxWriter/blob/main/Changes\"\u003exlsxwriter's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.2.9 - September 16 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved the \u003ccode\u003epy.typed\u003c/code\u003e file since it was causing a lot of downstream CI\nfailures where consumers weren't handling the xlsxwriter types correctly or\ntaking them into account.\u003c/p\u003e\n\u003cp\u003eThe file will be re-added once the xlsxwriter typing is more comprehensive.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.2.8 - September 14 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003emypy\u003c/code\u003e implicit export error caused by the \u003ccode\u003eWorkbook()\u003c/code\u003e type\nannotations changes in v3.2.7 and v3.2.6.\u003c/p\u003e\n\u003cp\u003e:issue:\u003ccode\u003e1154\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.2.7 - September 13 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed typing issue in \u003ccode\u003eWorkbook()\u003c/code\u003e constructor.\u003c/p\u003e\n\u003cp\u003e:issue:\u003ccode\u003e1152\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.2.6 - September 12 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded an option to position custom data labels in the same way that the data\nlabels can be positioned for the entire series.\u003c/p\u003e\n\u003cp\u003e:feature:\u003ccode\u003e1147\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd border, fill, gradient and pattern formatting options for\nchart titles and also chart axis titles.\u003c/p\u003e\n\u003cp\u003e:feature:\u003ccode\u003e957\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd additional type annotations. This is an ongoing refactoring.\u003c/p\u003e\n\u003cp\u003e:feature:\u003ccode\u003e1123\u003c/code\u003e.\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 href=\"https://github.com/jmcnamara/XlsxWriter/commit/e943bee8c9cdf0661cfdb83d5497e0725390e41e\"\u003e\u003ccode\u003ee943bee\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/392bd9e6572785394c6553e2d4f7ae2bb80782f4\"\u003e\u003ccode\u003e392bd9e\u003c/code\u003e\u003c/a\u003e typing: remove py.typed file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/eb99afecdd0050209835f9f237d580dc53e42afa\"\u003e\u003ccode\u003eeb99afe\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/5ec29826d5e398bb5adebaabafbeb9d443a6ed8c\"\u003e\u003ccode\u003e5ec2982\u003c/code\u003e\u003c/a\u003e workbook: add explicit export for mypy compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/ca85cbb03a5898c9e7b66c78ac67a365e7f53002\"\u003e\u003ccode\u003eca85cbb\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/3710251aaaa9524ee302ec04608bfc1b577d4ba5\"\u003e\u003ccode\u003e3710251\u003c/code\u003e\u003c/a\u003e typing: add more supported types to Workbook() constructor\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/27db7a14672bfe1a18f29dfbab646aa0149a369b\"\u003e\u003ccode\u003e27db7a1\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/f05067654b42283557c3621e411b6fbadb7051b6\"\u003e\u003ccode\u003ef050676\u003c/code\u003e\u003c/a\u003e docs: add CI spell check\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/60f708cc1e10c0c66ae870be4f350f45a9d3ecc8\"\u003e\u003ccode\u003e60f708c\u003c/code\u003e\u003c/a\u003e chart: add axis title formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/53dc08e5d240310c88bbfce8d1a42330ae256535\"\u003e\u003ccode\u003e53dc08e\u003c/code\u003e\u003c/a\u003e chart: add chart title formatting options\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jmcnamara/XlsxWriter/compare/RELEASE_3.2.5...RELEASE_3.2.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xmltodict` from 0.15.1 to 1.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/martinblech/xmltodict/releases\"\u003exmltodict's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.0.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.1...v1.0.2\"\u003e1.0.2\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eallow DOCTYPE with disable_entities=True (default) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/25b61a41f580cfc211df07c5fbbf603bd8eb5a5f\"\u003e25b61a4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.0...v1.0.1\"\u003e1.0.1\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efail closed when entities disabled (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c986d2d37a93d45fcc059b09063d9d9c45a655ec\"\u003ec986d2d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003evalidate XML comments (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/3d4d2d3a4cd0f68d1211dba549010261fa87b969\"\u003e3d4d2d3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd SECURITY.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/64130233c8fea272a5f82f2f585e1593523ec1b1\"\u003e6413023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify behavior for empty lists (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2025b5cb5e64fc9c4d54b8644187a0a193bdd0ed\"\u003e2025b5c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify process_comments docs (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/6b464fce284a93dbb292f3d063c9f310a478a014\"\u003e6b464fc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify strip whitespace comment behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/b3e22032d21cc387d6cecf3930116e8fdc3151cf\"\u003eb3e2203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ecreate AGENTS.md for coding agents (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/0da66ee797ced7479312aecef92c6a25e235007c\"\u003e0da66ee\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace travis with actions badge (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2576b94c918fbd154489a95dbbb3feda8bd3cbd8\"\u003e2576b94\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate CONTRIBUTING.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/db3918057cf125af989a1263d52df8df5ef8c642\"\u003edb39180\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v0.15.1...v1.0.0\"\u003e1.0.0\u003c/a\u003e (2025-09-12)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emodernize for Python 3.9+; drop legacy compat paths\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add limited XML comment round-trip; unify \u003ccode\u003e_emit\u003c/code\u003e behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/e43537eee61c20ef50f0e4242eb9223de7a6aefd\"\u003ee43537e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add selective \u003ccode\u003eforce_cdata\u003c/code\u003e support (bool/tuple/callable) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/a497fedb7d6103d68af155543ac3337a73778b19\"\u003ea497fed\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/375\"\u003e#375\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003enamespaces:\u003c/strong\u003e attach \u003ccode\u003e[@xmlns](https://github.com/xmlns)\u003c/code\u003e to declaring element when process_namespaces=True (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/f0322e578184421693434902547f330f4f0a44c3\"\u003ef0322e5\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/163\"\u003e#163\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e avoid parent accumulation at item_depth; add regression tests (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/220240c5eb2d12b75adf26cc84ec9c803ce8bb2b\"\u003e220240c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e handle non-string \u003ccode\u003e#text\u003c/code\u003e with attributes; unify value conversion (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/927a025ae8a62cbb542d5caff38b29161a2096fa\"\u003e927a025\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/366\"\u003e#366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e skip empty lists to keep pretty/compact outputs consistent (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/ab4c86fed24dc8ef0e932a524edfb01c6453ecf6\"\u003eab4c86f\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/martinblech/xmltodict/blob/master/CHANGELOG.md\"\u003exmltodict's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.1...v1.0.2\"\u003e1.0.2\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eallow DOCTYPE with disable_entities=True (default) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/25b61a41f580cfc211df07c5fbbf603bd8eb5a5f\"\u003e25b61a4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.0...v1.0.1\"\u003e1.0.1\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efail closed when entities disabled (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c986d2d37a93d45fcc059b09063d9d9c45a655ec\"\u003ec986d2d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003evalidate XML comments (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/3d4d2d3a4cd0f68d1211dba549010261fa87b969\"\u003e3d4d2d3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd SECURITY.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/64130233c8fea272a5f82f2f585e1593523ec1b1\"\u003e6413023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify behavior for empty lists (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2025b5cb5e64fc9c4d54b8644187a0a193bdd0ed\"\u003e2025b5c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify process_comments docs (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/6b464fce284a93dbb292f3d063c9f310a478a014\"\u003e6b464fc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify strip whitespace comment behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/b3e22032d21cc387d6cecf3930116e8fdc3151cf\"\u003eb3e2203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ecreate AGENTS.md for coding agents (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/0da66ee797ced7479312aecef92c6a25e235007c\"\u003e0da66ee\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace travis with actions badge (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2576b94c918fbd154489a95dbbb3feda8bd3cbd8\"\u003e2576b94\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate CONTRIBUTING.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/db3918057cf125af989a1263d52df8df5ef8c642\"\u003edb39180\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v0.15.1...v1.0.0\"\u003e1.0.0\u003c/a\u003e (2025-09-12)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emodernize for Python 3.9+; drop legacy compat paths\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add limited XML comment round-trip; unify \u003ccode\u003e_emit\u003c/code\u003e behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/e43537eee61c20ef50f0e4242eb9223de7a6aefd\"\u003ee43537e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add selective \u003ccode\u003eforce_cdata\u003c/code\u003e support (bool/tuple/callable) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/a497fedb7d6103d68af155543ac3337a73778b19\"\u003ea497fed\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/375\"\u003e#375\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003enamespaces:\u003c/strong\u003e attach \u003ccode\u003e[@xmlns](https://github.com/xmlns)\u003c/code\u003e to declaring element when process_namespaces=True (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/f0322e578184421693434902547f330f4f0a44c3\"\u003ef0322e5\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/163\"\u003e#163\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e avoid parent accumulation at item_depth; add regression tests (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/220240c5eb2d12b75adf26cc84ec9c803ce8bb2b\"\u003e220240c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e handle non-string \u003ccode\u003e#text\u003c/code\u003e with attributes; unify value conversion (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/927a025ae8a62cbb542d5caff38b29161a2096fa\"\u003e927a025\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/366\"\u003e#366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e skip empty lists to keep pretty/compact outputs consistent (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/ab4c86fed24dc8ef0e932a524edfb01c6453ecf6\"\u003eab4c86f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eReverts\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove initial Release Drafter config (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c0b74ed58f933bffd160c60a58620f672710ff7c\"\u003ec0b74ed\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 href=\"https://github.com/martinblech/xmltodict/commit/d079849136b031c471ec96a168ad7859ed5994ff\"\u003e\u003ccode\u003ed079849\u003c/code\u003e\u003c/a\u003e chore(master): release 1.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/25b61a41f580cfc211df07c5fbbf603bd8eb5a5f\"\u003e\u003ccode\u003e25b61a4\u003c/code\u003e\u003c/a\u003e fix: allow DOCTYPE with disable_entities=True (default)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/a2a9ab7e0692a62f64d97ff12553d0d53368c854\"\u003e\u003ccode\u003ea2a9ab7\u003c/code\u003e\u003c/a\u003e ci(publish): allow uploading release assets\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/656e6af9543e640fda7e96d6bdd6e693756687be\"\u003e\u003ccode\u003e656e6af\u003c/code\u003e\u003c/a\u003e chore(master): release 1.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c986d2d37a93d45fcc059b09063d9d9c45a655ec\"\u003e\u003ccode\u003ec986d2d\u003c/code\u003e\u003c/a\u003e fix: fail closed when entities disabled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/3d4d2d3a4cd0f68d1211dba549010261fa87b969\"\u003e\u003ccode\u003e3d4d2d3\u003c/code\u003e\u003c/a\u003e fix: validate XML comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/b4a5f2a3f04aff68384486e957632c8438396fd6\"\u003e\u003ccode\u003eb4a5f2a\u003c/code\u003e\u003c/a\u003e refactor: remove jython-specific parsing branches\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/6b464fce284a93dbb292f3d063c9f310a478a014\"\u003e\u003ccode\u003e6b464fc\u003c/code\u003e\u003c/a\u003e docs: clarify process_comments docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/34daa304d443e49113d195294d99c6f58ce4714c\"\u003e\u003ccode\u003e34daa30\u003c/code\u003e\u003c/a\u003e refactor: remove unused helper functions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2025b5cb5e64fc9c4d54b8644187a0a193bdd0ed\"\u003e\u003ccode\u003e2025b5c\u003c/code\u003e\u003c/a\u003e docs: clarify behavior for empty lists\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/martinblech/xmltodict/compare/v0.15.1...v1.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xmlschema` from 4.1.0 to 4.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sissaschool/xmlschema/releases\"\u003exmlschema's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.2.0 (2025-10-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd arguments validation for schemas and validation methods (by validation contexts)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSchemaSettings\u003c/code\u003e dataclass for storing read-only settings for schema instances\nand for managing package default settings\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eblock\u003c/em\u003e argument to \u003ccode\u003eXMLResource\u003c/code\u003e class (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/464\"\u003e#464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_SCHEMA_SOURCES\u003c/em\u003e package limit (\u003ccode\u003e1000\u003c/code\u003e, applied to \u003ccode\u003eXsdGlobals\u003c/code\u003e global maps instances)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_XML_ELEMENTS\u003c/em\u003e package limit (\u003ccode\u003e1,000,000\u003c/code\u003e, applied to non-lazy \u003ccode\u003eXMLResource\u003c/code\u003e instances)\u003c/li\u003e\n\u003cli\u003eReduce \u003cem\u003eMAX_XML_DEPTH\u003c/em\u003e limit to 1000 and apply it to all \u003ccode\u003eXMLResource\u003c/code\u003e instances\u003c/li\u003e\n\u003cli\u003eFix for substitute match in case of unexpected child (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\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 href=\"https://github.com/sissaschool/xmlschema/blob/master/CHANGELOG.rst\"\u003exmlschema's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ccode\u003ev4.2.0\u003c/code\u003e_ (2025-10-14)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd arguments validation for schemas and validation methods (by validation contexts)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSchemaSettings\u003c/code\u003e dataclass for storing read-only settings for schema instances\nand for managing package default settings\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eblock\u003c/em\u003e argument to \u003ccode\u003eXMLResource\u003c/code\u003e class (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/464\"\u003e#464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_SCHEMA_SOURCES\u003c/em\u003e package limit (\u003ccode\u003e1000\u003c/code\u003e, applied to \u003ccode\u003eXsdGlobals\u003c/code\u003e global maps instances)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_XML_ELEMENTS\u003c/em\u003e package limit (\u003ccode\u003e1,000,000\u003c/code\u003e, applied to non-lazy \u003ccode\u003eXMLResource\u003c/code\u003e instances)\u003c/li\u003e\n\u003cli\u003eReduce \u003cem\u003eMAX_XML_DEPTH\u003c/em\u003e limit to 1000 and apply it to all \u003ccode\u003eXMLResource\u003c/code\u003e instances\u003c/li\u003e\n\u003cli\u003eFix for substitute match in case of unexpected child (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\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 href=\"https://github.com/sissaschool/xmlschema/commit/2783030fcdcd5307563822906862a9e7088931b2\"\u003e\u003ccode\u003e2783030\u003c/code\u003e\u003c/a\u003e Bump minor release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/7c77a12f0fe16c8da0256a0f13281a03e4a0f717\"\u003e\u003ccode\u003e7c77a12\u003c/code\u003e\u003c/a\u003e Include publiccode.yml validation workflow for CI and README changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/04c19d54d4578f34a0c04d6cc82daa8d3ef9d90c\"\u003e\u003ccode\u003e04c19d5\u003c/code\u003e\u003c/a\u003e Fix XsdGroup.match_element (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/dd4f279e56b8a5ce89f78a6c88337f5032af0b2f\"\u003e\u003ccode\u003edd4f279\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/463\"\u003e#463\u003c/a\u003e from publiccode-pr-bot/chore/add-publiccode-parser-ac...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/1bd7aa6eebf4947e7ae76e47a2f706b58fed22cd\"\u003e\u003ccode\u003e1bd7aa6\u003c/code\u003e\u003c/a\u003e Update GitHub workflow for CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/76b0f67e900777166bcd3773cc109efae933682d\"\u003e\u003ccode\u003e76b0f67\u003c/code\u003e\u003c/a\u003e Patch mypy tests with protocols\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/28727bb0af89f129d59772550c6998164c37aeff\"\u003e\u003ccode\u003e28727bb\u003c/code\u003e\u003c/a\u003e Update docs and release info\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/e4131eaf6bc1a223292f3f19e78573a4317d131a\"\u003e\u003ccode\u003ee4131ea\u003c/code\u003e\u003c/a\u003e Add from_settings() class method to schemas\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/0aea8debef13b62156e7297bdc54198057ea3611\"\u003e\u003ccode\u003e0aea8de\u003c/code\u003e\u003c/a\u003e Rewrite validation contexts as normal classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/d443d7ba0e3de8fad6d6df8f314b12735af4bac3\"\u003e\u003ccode\u003ed443d7b\u003c/code\u003e\u003c/a\u003e Full validation of context arguments\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sissaschool/xmlschema/compare/v4.1.0...v4.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lark` from 1.2.2 to 1.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lark-parser/lark/releases\"\u003elark's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.3.1 - Bugfix + source build now contains complete project data\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix: Restore support for custom input, alongside text and TextSlice by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1562\"\u003elark-parser/lark#1562\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep sdist in sync with git (include all files in source build, including docs, tests and examples) by \u003ca href=\"https://github.com/chanicpanic\"\u003e\u003ccode\u003e@​chanicpanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1561\"\u003elark-parser/lark#1561\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/lark-parser/lark/compare/1.3.0...1.3.1\"\u003ehttps://github.com/lark-parser/lark/compare/1.3.0...1.3.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e1.3.0 - Introduces text-slices, Earley fix, and various small improvements\u003c/h2\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLark can now parse in sections of strings, using \u003ccode\u003eTextSlice\u003c/code\u003e, as a faster alternative to creating a \u0026quot;copy-slice\u0026quot; with \u003ccode\u003es[i:j]\u003c/code\u003e. \u003ca href=\"https://lark-parser.readthedocs.io/en/latest/classes.html#lark.utils.TextSlice\"\u003eLearn more\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded support to \u003ccode\u003ematch\u003c/code\u003e on Tree instances\u003c/li\u003e\n\u003cli\u003eWhen serializing a Lark instance, added the option to include the grammar object (before compilation).\u003c/li\u003e\n\u003cli\u003eAdded convenience method \u003ccode\u003eTree.find_token()\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix of an edge case in Earley related to representation of ambiguity.\u003c/li\u003e\n\u003cli\u003eBugfixes in the standalone parser related to imports\u003c/li\u003e\n\u003cli\u003eBugfix in indenter - now dedents always contain line information\u003c/li\u003e\n\u003cli\u003eVarious small bugfixes (see PR list below)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFull list of PRs\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDocs: Rephrase v_args() documentation to underline it only applies to Transformer classes by \u003ca href=\"https://github.com/skepppy\"\u003e\u003ccode\u003e@​skepppy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1458\"\u003elark-parser/lark#1458\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTiny refactor for PR \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1451\"\u003e#1451\u003c/a\u003e by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1459\"\u003elark-parser/lark#1459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEarley: share nodes created by the scanner with the completer by \u003ca href=\"https://github.com/chanicpanic\"\u003e\u003ccode\u003e@​chanicpanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1451\"\u003elark-parser/lark#1451\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter error in Lark.parse when using on_error when parser!=lalr (issue \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1311\"\u003e#1311\u003c/a\u003e) by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1460\"\u003elark-parser/lark#1460\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eSymbol.__eq__\u003c/code\u003e to return false when comparing with None by \u003ca href=\"https://github.com/weaversam8\"\u003e\u003ccode\u003e@​weaversam8\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1481\"\u003elark-parser/lark#1481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMention internal/external transformers in the documentation by \u003ca href=\"https://github.com/odanoburu\"\u003e\u003ccode\u003e@​odanoburu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1486\"\u003elark-parser/lark#1486\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Tree.find_token() method by \u003ca href=\"https://github.com/makukha\"\u003e\u003ccode\u003e@​makukha\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1467\"\u003elark-parser/lark#1467\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eType \u003ccode\u003eTerminal.__init__\u003c/code\u003e by \u003ca href=\"https://github.com/Liam-DeVoe\"\u003e\u003ccode\u003e@​Liam-DeVoe\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1503\"\u003elark-parser/lark#1503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd guidance on handling comments in languages with significant indentation by \u003ca href=\"https://github.com/nchammas\"\u003e\u003ccode\u003e@​nchammas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1502\"\u003elark-parser/lark#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Small fix for PR 1507 by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1508\"\u003elark-parser/lark#1508\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd note on binding power of numeric quantifiers by \u003ca href=\"https://github.com/414owen\"\u003e\u003ccode\u003e@​414owen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1507\"\u003elark-parser/lark#1507\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrap functools.partial in staticmethod() to add compatibility with Python 3.14 by \u003ca href=\"https://github.com/hrnciar\"\u003e\u003ccode\u003e@​hrnciar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1483\"\u003elark-parser/lark#1483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix generic type of Transformer_InPlaceRecursive by \u003ca href=\"https://github.com/lbhm\"\u003e\u003ccode\u003e@​lbhm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1518\"\u003elark-parser/lark#1518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded TextSlice; Lark can now parse/lex a text-slice by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1452\"\u003elark-parser/lark#1452\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport match on tree by \u003ca href=\"https://github.com/colmmurphyxyz\"\u003e\u003ccode\u003e@​colmmurphyxyz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1521\"\u003elark-parser/lark#1521\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: Updated link of DSL article to a new version by \u003ca href=\"https://github.com/erezs...\n\n_Description has been truncated_","html_url":"https://github.com/chrislkl/seed/pull/10","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrislkl%2Fseed/issues/10","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/10/packages"},{"uuid":"3752379755","node_id":"PR_kwDOAYRY2s66EV9Z","number":5157,"state":"closed","title":"deps: bump the prod-deps group across 1 directory with 34 updates","user":"dependabot[bot]","labels":["Maintenance"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-01-05T05:21:28.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-22T05:25:15.000Z","updated_at":"2026-01-05T05:21:29.000Z","time_to_close":1209373,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps: bump","group_name":"prod-deps","update_count":34,"packages":[{"name":"django","old_version":"4.2.26","new_version":"6.0","repository_url":"https://github.com/django/django"},{"name":"psycopg2-binary","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"celery","old_version":"5.5.3","new_version":"5.6.0","repository_url":"https://github.com/celery/celery"},{"name":"hiredis","old_version":"3.2.1","new_version":"3.3.0","repository_url":"https://github.com/redis/hiredis-py"},{"name":"brotli","old_version":"1.1.0","new_version":"1.2.0","repository_url":"https://github.com/google/brotli"},{"name":"django-compressor","old_version":"4.5.1","new_version":"4.6.0","repository_url":"https://github.com/django-compressor/django-compressor"},{"name":"drf-yasg","old_version":"1.21.10","new_version":"1.21.11","repository_url":"https://github.com/axnsan12/drf-yasg"},{"name":"jellyfish","old_version":"1.2.0","new_version":"1.2.1"},{"name":"markdown","old_version":"3.9","new_version":"3.10","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"xlsxwriter","old_version":"3.2.8","new_version":"3.2.9","repository_url":"https://github.com/jmcnamara/XlsxWriter"},{"name":"xmlschema","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/sissaschool/xmlschema"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"simple-salesforce","old_version":"1.12.8","new_version":"1.12.9","repository_url":"https://github.com/simple-salesforce/simple-salesforce"},{"name":"shapely","old_version":"2.0.7","new_version":"2.1.2","repository_url":"https://github.com/shapely/shapely"},{"name":"django-treebeard","old_version":"4.7.1","new_version":"4.8.0","repository_url":"https://github.com/django-treebeard/django-treebeard"},{"name":"django-two-factor-auth","old_version":"1.17.0","new_version":"1.18.1"},{"name":"importlib-metadata","old_version":"8.7.0","new_version":"8.7.1","repository_url":"https://github.com/python/importlib_metadata"},{"name":"boto3","old_version":"1.40.30","new_version":"1.42.14","repository_url":"https://github.com/boto/boto3"},{"name":"django-ses","old_version":"4.4.0","new_version":"4.5.0","repository_url":"https://github.com/django-ses/django-ses"},{"name":"uwsgi","old_version":"2.0.30","new_version":"2.0.31"},{"name":"coverage","old_version":"7.10.6","new_version":"7.13.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"coveralls","old_version":"4.0.1","new_version":"4.0.2","repository_url":"https://github.com/TheKevJames/coveralls-python"},{"name":"tox","old_version":"4.30.2","new_version":"4.32.0","repository_url":"https://github.com/tox-dev/tox"},{"name":"psutil","old_version":"7.0.0","new_version":"7.1.3","repository_url":"https://github.com/giampaolo/psutil"},{"name":"faker","old_version":"37.6.0","new_version":"39.0.0","repository_url":"https://github.com/joke2k/faker"},{"name":"vcrpy","old_version":"7.0.0","new_version":"8.1.0","repository_url":"https://github.com/kevin1024/vcrpy"},{"name":"pytest","old_version":"8.4.2","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pre-commit","old_version":"4.3.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"sphinx","old_version":"7.4.7","new_version":"9.0.4","repository_url":"https://github.com/sphinx-doc/sphinx"},{"name":"sphinxcontrib-spelling","old_version":"8.0.0","new_version":"8.0.2","repository_url":"https://github.com/sphinx-contrib/spelling"},{"name":"docutils","old_version":"0.21.2","new_version":"0.22.4","repository_url":"https://github.com/rtfd/recommonmark"},{"name":"hypothesis","old_version":"6.138.16","new_version":"6.148.7","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"django-debug-toolbar","old_version":"6.0.0","new_version":"6.1.0","repository_url":"https://github.com/django-commons/django-debug-toolbar"}],"path":null,"ecosystem":"pip"},"body":"Bumps the prod-deps group with 34 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [django](https://github.com/django/django) | `4.2.26` | `6.0` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [celery](https://github.com/celery/celery) | `5.5.3` | `5.6.0` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.2.1` | `3.3.0` |\n| [brotli](https://github.com/google/brotli) | `1.1.0` | `1.2.0` |\n| [django-compressor](https://github.com/django-compressor/django-compressor) | `4.5.1` | `4.6.0` |\n| [drf-yasg](https://github.com/axnsan12/drf-yasg) | `1.21.10` | `1.21.11` |\n| [jellyfish](https://jellyfish.jpt.sh/) | `1.2.0` | `1.2.1` |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.9` | `3.10` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [xlsxwriter](https://github.com/jmcnamara/XlsxWriter) | `3.2.8` | `3.2.9` |\n| [xmlschema](https://github.com/sissaschool/xmlschema) | `4.1.0` | `4.2.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [simple-salesforce](https://github.com/simple-salesforce/simple-salesforce) | `1.12.8` | `1.12.9` |\n| [shapely](https://github.com/shapely/shapely) | `2.0.7` | `2.1.2` |\n| [django-treebeard](https://github.com/django-treebeard/django-treebeard) | `4.7.1` | `4.8.0` |\n| [django-two-factor-auth[phonenumbers]](https://github.com/jazzband/django-two-factor-auth) | `1.17.0` | `1.18.1` |\n| [importlib-metadata](https://github.com/python/importlib_metadata) | `8.7.0` | `8.7.1` |\n| [boto3](https://github.com/boto/boto3) | `1.40.30` | `1.42.14` |\n| [django-ses](https://github.com/django-ses/django-ses) | `4.4.0` | `4.5.0` |\n| [uwsgi](https://uwsgi-docs.readthedocs.io/en/latest/) | `2.0.30` | `2.0.31` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.13.0` |\n| [coveralls](https://github.com/TheKevJames/coveralls-python) | `4.0.1` | `4.0.2` |\n| [tox](https://github.com/tox-dev/tox) | `4.30.2` | `4.32.0` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.1.3` |\n| [faker](https://github.com/joke2k/faker) | `37.6.0` | `39.0.0` |\n| [vcrpy](https://github.com/kevin1024/vcrpy) | `7.0.0` | `8.1.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.2` | `9.0.2` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.3.0` | `4.5.1` |\n| [sphinx](https://github.com/sphinx-doc/sphinx) | `7.4.7` | `9.0.4` |\n| [sphinxcontrib-spelling](https://github.com/sphinx-contrib/spelling) | `8.0.0` | `8.0.2` |\n| [docutils](https://github.com/rtfd/recommonmark) | `0.21.2` | `0.22.4` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.138.16` | `6.148.7` |\n| [django-debug-toolbar](https://github.com/django-commons/django-debug-toolbar) | `6.0.0` | `6.1.0` |\n\n\nUpdates `django` from 4.2.26 to 6.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/36b5f39d9372147f0e758f590e35ee2b2bc317dd\"\u003e\u003ccode\u003e36b5f39\u003c/code\u003e\u003c/a\u003e [6.0.x] Bumped version for 6.0 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/4f46d1f43345da90037aab1c238d81058b61515b\"\u003e\u003ccode\u003e4f46d1f\u003c/code\u003e\u003c/a\u003e [6.0.x] Updated man page for Django 6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/a9f5ca5c58df7b662ad23ba9a39619c41a7e39ff\"\u003e\u003ccode\u003ea9f5ca5\u003c/code\u003e\u003c/a\u003e [6.0.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/35859\"\u003e#35859\u003c/a\u003e -- Clarified Tasks ref and topics docs regarding availabl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/45f9e0e969257c0938fec4b51b9b0264aa49bd25\"\u003e\u003ccode\u003e45f9e0e\u003c/code\u003e\u003c/a\u003e [6.0.x] Finalized release notes for Django 6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/ac44a55c80a918c30a4f5f03becd4cf01500bbb6\"\u003e\u003ccode\u003eac44a55\u003c/code\u003e\u003c/a\u003e [6.0.x] Made cosmetic edits to docs/releases/6.0.txt.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/00575b79312c719a6b37035067095e2d679bb5d7\"\u003e\u003ccode\u003e00575b7\u003c/code\u003e\u003c/a\u003e [6.0.x] Updated translations from Transifex.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/8414487569431f14e3da0c90185f03267a118160\"\u003e\u003ccode\u003e8414487\u003c/code\u003e\u003c/a\u003e [6.0.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/35444\"\u003e#35444\u003c/a\u003e -- Fixed typo in PostgreSQL StringAgg deprecation warning.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/1f8f36ee794aba06246f3a3e48a3fefadff019ea\"\u003e\u003ccode\u003e1f8f36e\u003c/code\u003e\u003c/a\u003e [6.0.x] Added CVE-2025-13372 and CVE-2025-64460 to security archive.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/224fc79c02366158be05beaaa18ad557b0c9096a\"\u003e\u003ccode\u003e224fc79\u003c/code\u003e\u003c/a\u003e [6.0.x] Added stub release notes for 5.2.10.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/1dbd07a608e495a0c229edaaf84d58d8976313b5\"\u003e\u003ccode\u003e1dbd07a\u003c/code\u003e\u003c/a\u003e [6.0.x] Fixed CVE-2025-64460 -- Corrected quadratic inner text accumulation i...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/4.2.26...6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2-binary` from 2.9.10 to 2.9.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2-binary's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix building when pg_config returns an empty string (:ticket:\u003ccode\u003e[#1599](https://github.com/psycopg/psycopg2/issues/1599)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eWheel package bundled with OpenSSL 1.1.1v.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.6\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\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 href=\"https://github.com/psycopg/psycopg2/commit/fd9ae8cad2bcfc3e7e9410e7b6f07cda8f4f05ec\"\u003e\u003ccode\u003efd9ae8c\u003c/code\u003e\u003c/a\u003e chore: bump to version 2.9.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d923840546942534f0956d9202f914fd9feac5fd\"\u003e\u003ccode\u003ed923840\u003c/code\u003e\u003c/a\u003e chore: update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d42dc7169d3cd93517e282e9ef5dc2a2b40650a2\"\u003e\u003ccode\u003ed42dc71\u003c/code\u003e\u003c/a\u003e Merge branch 'fix-1791'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4fde6560c32f06ad1304404c9f7f86148dcc4be0\"\u003e\u003ccode\u003e4fde656\u003c/code\u003e\u003c/a\u003e fix: avoid failed assert passing more arguments than placeholders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/8308c19d6af0d904b313997539ed33415990a74e\"\u003e\u003ccode\u003e8308c19\u003c/code\u003e\u003c/a\u003e fix: drop warning about the use of deprecated PyWeakref_GetObject function\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1a1eabf098a3374409bb2ab4b594777b900f396d\"\u003e\u003ccode\u003e1a1eabf\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/github-script from 7 to 8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/897af8b38beda851d7257dfc525129e37c0ec9e0\"\u003e\u003ccode\u003e897af8b\u003c/code\u003e\u003c/a\u003e build(deps): bump peter-evans/repository-dispatch from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ceefd305117113ca10e383a626e87ba0796f3638\"\u003e\u003ccode\u003eceefd30\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4dc585430cabe94cee96c5a9de0265d0f55370f1\"\u003e\u003ccode\u003e4dc5854\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1945788dcf6172bb1b9328ebc3587ccf0e6a659c\"\u003e\u003ccode\u003e1945788\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1802\"\u003e#1802\u003c/a\u003e from edgarrmondragon/cp314-wheels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.10...2.9.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `celery` from 5.5.3 to 5.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/celery/celery/releases\"\u003ecelery's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.6.0\u003c/h2\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003ch2\u003eKey Highlights\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.celeryq.dev/en/stable/history/whatsnew-5.6.html\"\u003eWhat's new in Celery 5.6\u003c/a\u003e for a complete overview or read the main highlights below.\u003c/p\u003e\n\u003ch3\u003ePython 3.9 Minimum Version\u003c/h3\u003e\n\u003cp\u003eCelery 5.6.0 drops support for Python 3.8 (EOL). The minimum required Python version is now 3.9. Users still on Python 3.8 must upgrade their Python version before upgrading to Celery 5.6.0.\u003c/p\u003e\n\u003cp\u003eAdditionally, this release includes initial support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eSQS: Reverted to \u003ccode\u003epycurl\u003c/code\u003e from \u003ccode\u003eurllib3\u003c/code\u003e\u003c/h3\u003e\n\u003cp\u003eThe switch from \u003ccode\u003epycurl\u003c/code\u003e to \u003ccode\u003eurllib3\u003c/code\u003e for the SQS transport (introduced in Celery 5.5.0 via Kombu) has been reverted due to critical issues affecting SQS users.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/auvipy\"\u003e\u003ccode\u003e@​auvipy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9620\"\u003ecelery/celery#9620\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eSecurity Fix: Broker Credential Leak Prevention\u003c/h3\u003e\n\u003cp\u003eFixed a security issue where broker URLs containing passwords were being logged in plaintext by the delayed delivery mechanism. Broker credentials are now properly sanitized in all log output.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/giancarloromeo\"\u003e\u003ccode\u003e@​giancarloromeo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9997\"\u003ecelery/celery#9997\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eMemory Leak Fixes\u003c/h3\u003e\n\u003cp\u003eTwo significant memory leaks have been fixed in this release:\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eException Handling Memory Leak\u003c/strong\u003e: Fixed a critical memory leak in task exception handling that was particularly severe on Python 3.11+ due to enhanced traceback data. The fix properly breaks reference cycles in tracebacks to allow garbage collection.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/jaiganeshs21\"\u003e\u003ccode\u003e@​jaiganeshs21\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9799\"\u003ecelery/celery#9799\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ePending Result Memory Leak\u003c/strong\u003e: Fixed a memory leak where \u003ccode\u003eAsyncResult\u003c/code\u003e subscriptions were not being cleaned up when results were forgotten.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/tsoos99dev\"\u003e\u003ccode\u003e@​tsoos99dev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9806\"\u003ecelery/celery#9806\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eETA Task Memory Limit\u003c/h3\u003e\n\u003cp\u003eNew configuration option \u003ccode\u003eworker_eta_task_limit\u003c/code\u003e to prevent out-of-memory crashes when workers fetch large numbers of ETA or countdown tasks. Previously, workers could exhaust available memory when the broker contained many scheduled tasks.\u003c/p\u003e\n\u003cp\u003eExample usage:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eapp.conf.worker_eta_task_limit = 1000\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/sashu2310\"\u003e\u003ccode\u003e@​sashu2310\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9853\"\u003ecelery/celery#9853\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eQueue Type Selection for Auto-created Queues\u003c/h3\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 href=\"https://github.com/celery/celery/blob/main/Changelog.rst\"\u003ecelery's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.6.0\u003c/h1\u003e\n\u003cp\u003e:release-date: 2025-11-30\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003cp\u003eKey Highlights\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nSee :ref:`whatsnew-5.6` for a complete overview or read the main highlights below.\n\u003ch2\u003ePython 3.9 Minimum Version\u003c/h2\u003e\n\u003cp\u003eCelery 5.6.0 drops support for Python 3.8 (EOL). The minimum required Python\nversion is now 3.9. Users still on Python 3.8 must upgrade their Python version\nbefore upgrading to Celery 5.6.0.\u003c/p\u003e\n\u003cp\u003eAdditionally, this release includes initial support for Python 3.14.\u003c/p\u003e\n\u003ch2\u003eSQS: Reverted to \u003ccode\u003epycurl\u003c/code\u003e from \u003ccode\u003eurllib3\u003c/code\u003e\u003c/h2\u003e\n\u003cp\u003eThe switch from \u003ccode\u003epycurl\u003c/code\u003e to \u003ccode\u003eurllib3\u003c/code\u003e for the SQS transport (introduced in\nCelery 5.5.0 via Kombu) has been reverted due to critical issues affecting SQS\nusers:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eProcessing throughput dropped from ~100 tasks/sec to ~3/sec in some environments\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUnknownOperationException\u003c/code\u003e errors causing container crash loops\u003c/li\u003e\n\u003cli\u003eSilent message processing failures with no error logs\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eUsers of the SQS transport must ensure \u003ccode\u003epycurl\u003c/code\u003e is installed. If you removed\n\u003ccode\u003epycurl\u003c/code\u003e after upgrading to Celery 5.5.0, you will need to reinstall it.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ccode\u003e@auvipy \u0026amp;lt;https://github.com/auvipy\u0026amp;gt;\u003c/code\u003e_ in\n\u003ccode\u003e[#9620](https://github.com/celery/celery/issues/9620) \u0026amp;lt;https://github.com/celery/celery/pull/9620\u0026amp;gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003ch2\u003eSecurity Fix: Broker Credential Leak Prevention\u003c/h2\u003e\n\u003cp\u003eFixed a security issue where broker URLs containing passwords were being logged\nin plaintext by the delayed delivery mechanism. Broker credentials are now\nproperly sanitized in all log output.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ccode\u003e@giancarloromeo \u0026amp;lt;https://github.com/giancarloromeo\u0026amp;gt;\u003c/code\u003e_ in\n\u003ccode\u003e[#9997](https://github.com/celery/celery/issues/9997) \u0026amp;lt;https://github.com/celery/celery/pull/9997\u0026amp;gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003cp\u003eMemory Leak Fixes\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\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 href=\"https://github.com/celery/celery/commit/cca11164860a1bee6ad8626c27a683b482f741eb\"\u003e\u003ccode\u003ecca1116\u003c/code\u003e\u003c/a\u003e Prepare for release: v5.6.0 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10010\"\u003e#10010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/1133f22181bb22223d39c0060973695c6af55643\"\u003e\u003ccode\u003e1133f22\u003c/code\u003e\u003c/a\u003e Bump mypy from 1.14.1 to 1.19.0 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10008\"\u003e#10008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/0932d2c06e001903b90638f7c40a14f5407c9801\"\u003e\u003ccode\u003e0932d2c\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10007\"\u003e#10007\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/b446910f18860531b089d6c39f974265cc24a589\"\u003e\u003ccode\u003eb446910\u003c/code\u003e\u003c/a\u003e Prepare for (pre) release: v5.6.0rc2 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10005\"\u003e#10005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/3f0f0fe7ea6a67a696d0a750644b552559ae368e\"\u003e\u003ccode\u003e3f0f0fe\u003c/code\u003e\u003c/a\u003e asynpool: Don't return from inside a finally block (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10000\"\u003e#10000\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/95d05527c0e1fff5c1a38877ba87592983a7f993\"\u003e\u003ccode\u003e95d0552\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10003\"\u003e#10003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/f32b92f0e481601e9cc9f1212a4feced3f48e1a0\"\u003e\u003ccode\u003ef32b92f\u003c/code\u003e\u003c/a\u003e Add Py39-314t to CI (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9999\"\u003e#9999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/63c1910221d9fb8c1931ff62c80c4c37232b2d58\"\u003e\u003ccode\u003e63c1910\u003c/code\u003e\u003c/a\u003e Don't fail task on timeout during cold shutdown (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9678\"\u003e#9678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/30649dbd41308fc8eef79b2aae179a908eaa7a51\"\u003e\u003ccode\u003e30649db\u003c/code\u003e\u003c/a\u003e Fix log leaking broker credentials (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9997\"\u003e#9997\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/929412e2d4d328e337be3f177ca99fff10ab9bdc\"\u003e\u003ccode\u003e929412e\u003c/code\u003e\u003c/a\u003e Remove Python 4.0 version condition for pytest dependencies (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9993\"\u003e#9993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/celery/celery/compare/v5.5.3...v5.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `hiredis` from 3.2.1 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/hiredis-py/releases\"\u003ehiredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.3.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e by \u003ca href=\"https://github.com/zweizeichen\"\u003e\u003ccode\u003e@​zweizeichen\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\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 href=\"https://github.com/redis/hiredis-py/commit/187d0f387afed58a955a42ea8c5467100871f98b\"\u003e\u003ccode\u003e187d0f3\u003c/code\u003e\u003c/a\u003e Version 3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/3efcf037edc5a9f7abfaedbd3f60b2a03feb4787\"\u003e\u003ccode\u003e3efcf03\u003c/code\u003e\u003c/a\u003e Add Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/215\"\u003e#215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/966cede2c0ca0a8ac4fe0786571e5c230f39c36e\"\u003e\u003ccode\u003e966cede\u003c/code\u003e\u003c/a\u003e Fix assertion in reader.c (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/212\"\u003e#212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/78def309e58126fdaacb66e6fd40df9c46494062\"\u003e\u003ccode\u003e78def30\u003c/code\u003e\u003c/a\u003e Bump version to 3.3.0-dev\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/redis/hiredis-py/compare/v3.2.1...v3.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `brotli` from 1.1.0 to 1.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/google/brotli/releases\"\u003ebrotli's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.0\u003c/h2\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\u003c/li\u003e\n\u003cli\u003eCLI: \u003ccode\u003ebrcat\u003c/code\u003e alias; allow decoding concatenated brotli streams\u003c/li\u003e\n\u003cli\u003ekt: pure Kotlin decoder\u003c/li\u003e\n\u003cli\u003ecgo: support \u0026quot;raw\u0026quot; dictionaries\u003c/li\u003e\n\u003cli\u003ebuild: Bazel modules\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: dropped \u003ccode\u003efinalize()\u003c/code\u003e for native entities\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: in \u003ccode\u003ecompress\u003c/code\u003e pass correct length to native encoder\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebuild: install man pages\u003c/li\u003e\n\u003cli\u003ebuild: updated / fixed / refined Bazel buildfiles\u003c/li\u003e\n\u003cli\u003eencoder: faster encoding\u003c/li\u003e\n\u003cli\u003ecgo: link via pkg-config\u003c/li\u003e\n\u003cli\u003epython: modernize extension / allow multi-phase module initialization\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edecoder / encoder: static tables use \u0026quot;small\u0026quot; model (allows 2GiB+ binaries)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.0 RC2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed (compared to RC1)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epick changes from Debian patch by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1349\"\u003egoogle/brotli#1349\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epick changes from Alpine patch by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1348\"\u003egoogle/brotli#1348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epick VCPKG patches by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1350\"\u003egoogle/brotli#1350\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix copy-paste in Java decoder by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1357\"\u003egoogle/brotli#1357\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.0 RC1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eIMPORTANT\u003c/strong\u003e: though this is a pre-release for v1.2.0, it is expected that some changes will be added before release; most notably concerning build files: patches applied by Alpine, Debian, Conan, VCPKG will be partially/fully integrated.\u003c/p\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\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 href=\"https://github.com/google/brotli/blob/master/CHANGELOG.md\"\u003ebrotli's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.2.0] - 2025-10-27\u003c/h2\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\u003c/li\u003e\n\u003cli\u003eCLI: \u003ccode\u003ebrcat\u003c/code\u003e alias; allow decoding concatenated brotli streams\u003c/li\u003e\n\u003cli\u003ekt: pure Kotlin decoder\u003c/li\u003e\n\u003cli\u003ecgo: support \u0026quot;raw\u0026quot; dictionaries\u003c/li\u003e\n\u003cli\u003ebuild: Bazel modules\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: dropped \u003ccode\u003efinalize()\u003c/code\u003e for native entities\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: in \u003ccode\u003ecompress\u003c/code\u003e pass correct length to native encoder\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebuild: install man pages\u003c/li\u003e\n\u003cli\u003ebuild: updated / fixed / refined Bazel buildfiles\u003c/li\u003e\n\u003cli\u003eencoder: faster encoding\u003c/li\u003e\n\u003cli\u003ecgo: link via pkg-config\u003c/li\u003e\n\u003cli\u003epython: modernize extension / allow multi-phase module initialization\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edecoder / encoder: static tables use \u0026quot;small\u0026quot; model (allows 2GiB+ binaries)\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 href=\"https://github.com/google/brotli/commit/028fb5a23661f123017c060daa546b55cf4bde29\"\u003e\u003ccode\u003e028fb5a\u003c/code\u003e\u003c/a\u003e release v1.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/390de5b472ec8c40a7b8e5029e47fd6493f7a755\"\u003e\u003ccode\u003e390de5b\u003c/code\u003e\u003c/a\u003e build and test csharp decoder\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/3499acbb7ac7818c1b929a8c9c5c5f8a634751da\"\u003e\u003ccode\u003e3499acb\u003c/code\u003e\u003c/a\u003e regenerate go/kt/js/ts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/8ca2312c61f1f5853be0708f9b1d6a6ad002d2a4\"\u003e\u003ccode\u003e8ca2312\u003c/code\u003e\u003c/a\u003e fix release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/ee771daf20bab6533cbc629407c50cff1c87d9f1\"\u003e\u003ccode\u003eee771da\u003c/code\u003e\u003c/a\u003e fix copy-paste in Java decoder\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/42aee3289154cb3e8db1c7a8ebfa639c857578b9\"\u003e\u003ccode\u003e42aee32\u003c/code\u003e\u003c/a\u003e try to fix release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/392c06bac05cc1d098ab105cbbda766f19853d92\"\u003e\u003ccode\u003e392c06b\u003c/code\u003e\u003c/a\u003e redesign release resource uploading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/1964cdb1b9e16a2a0c27fbd3b2a3bccb2c1a8294\"\u003e\u003ccode\u003e1964cdb\u003c/code\u003e\u003c/a\u003e ramp up all GH actions plugins\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/61605b1cb34ba84ae71c13b383d850a59cac85b2\"\u003e\u003ccode\u003e61605b1\u003c/code\u003e\u003c/a\u003e pick VCPKG patches\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/4b0f27b6f985b4301ad5cec4a31b9792ecf252bc\"\u003e\u003ccode\u003e4b0f27b\u003c/code\u003e\u003c/a\u003e pick changes from Alpine patch\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/google/brotli/compare/go/cbrotli/v1.1.0...v1.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-compressor` from 4.5.1 to 4.6.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-compressor/django-compressor/blob/develop/docs/changelog.txt\"\u003edjango-compressor's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003ev4.6 (2025-11-10)\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003eFull list of changes from v4.5.1 \u0026lt;https://github.com/django-compressor/django-compressor/compare/4.5.1...4.6\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed compatibility with latest BS4.\u003c/li\u003e\n\u003cli\u003eRemoved top pin for rcssmin and rjsmin dependencies.\u003c/li\u003e\n\u003cli\u003eAvoid compressing the same node concurrently in offline compression.\u003c/li\u003e\n\u003cli\u003eAvoid use of deprecated ast.Constant.s\u003c/li\u003e\n\u003cli\u003eOfficially support Django 6.0\u003c/li\u003e\n\u003cli\u003eOfficially support Django 5.2\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Django 5.0\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 3.9.\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 3.8.\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 href=\"https://github.com/django-compressor/django-compressor/commit/3ada994897cf982f97fc4c934be42eb1e0b71b9a\"\u003e\u003ccode\u003e3ada994\u003c/code\u003e\u003c/a\u003e Prepare 4.6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/1baa82a6cf6942eb12007217f26195a95df727e2\"\u003e\u003ccode\u003e1baa82a\u003c/code\u003e\u003c/a\u003e Remove CI testing for EOL Django 5.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/8706a52b740e7555abefc8fba1eaae1986ded1a5\"\u003e\u003ccode\u003e8706a52\u003c/code\u003e\u003c/a\u003e Add CI testing for Python 3.14 and Django 6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/7be9ce2cefedf59302207728e383fa7811232d59\"\u003e\u003ccode\u003e7be9ce2\u003c/code\u003e\u003c/a\u003e Bump brotli, lxml, and coverage test dependencies.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/d6fd8136febd1ba409b366c7471db8763522d91d\"\u003e\u003ccode\u003ed6fd813\u003c/code\u003e\u003c/a\u003e Remove test version pinning for rcssmin and rjsmin.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/2b46e7d1724109ebb5db49b76f008dc039f0a9db\"\u003e\u003ccode\u003e2b46e7d\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1307\"\u003e#1307\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/b97bb05836eb6a42d2746d43792e9d13f041b615\"\u003e\u003ccode\u003eb97bb05\u003c/code\u003e\u003c/a\u003e Disable bs4's multi valued attributes (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1296\"\u003e#1296\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/4e5433076300508e1c3648da3345ae606386eb3f\"\u003e\u003ccode\u003e4e54330\u003c/code\u003e\u003c/a\u003e Migrate packaging to pyproject.toml (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1313\"\u003e#1313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/872f8d52ce51957bccf4a91338d177c2ea4a3908\"\u003e\u003ccode\u003e872f8d5\u003c/code\u003e\u003c/a\u003e Remove version pinning for rcssmin and rjsmin (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1312\"\u003e#1312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/cc38666efb13c6e0b355cf273f56b783d7157e29\"\u003e\u003ccode\u003ecc38666\u003c/code\u003e\u003c/a\u003e Drop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1311\"\u003e#1311\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-compressor/django-compressor/compare/4.5.1...4.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `drf-yasg` from 1.21.10 to 1.21.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/axnsan12/drf-yasg/releases\"\u003edrf-yasg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.21.11\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/917\"\u003e#917\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/916\"\u003e#916\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/926\"\u003e#926\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/922\"\u003e#922\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/928\"\u003e#928\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/923\"\u003e#923\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/848\"\u003e#848\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/903\"\u003e#903\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 href=\"https://github.com/axnsan12/drf-yasg/blob/master/docs/changelog.rst\"\u003edrf-yasg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e#########\nChangelog\n#########\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.11\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (:pr:\u003ccode\u003e917\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (:pr:\u003ccode\u003e916\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (:pr:\u003ccode\u003e926\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (:pr:\u003ccode\u003e922\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (:pr:\u003ccode\u003e928\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (:pr:\u003ccode\u003e923\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (:pr:\u003ccode\u003e848\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (:pr:\u003ccode\u003e903\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.10\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix type hints when using postponed evaluation of annotations (PEP-563) (:pr:\u003ccode\u003e840\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update JSON \u0026amp; YAML renderers to not use a \u0026quot;.\u0026quot; in their format string (:pr:\u003ccode\u003e911\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix lint errors when comparing types with == instead of is (:pr:\u003ccode\u003e868\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update swagger-ui-dist to address CVE-2021-46708 (:pr:\u003ccode\u003e904\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.9\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Added support for zoneinfo object fields (:pr:\u003ccode\u003e908\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.8\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Python 3.11 and 3.12 support (:pr:\u003ccode\u003e891\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix pkg_resources version lookups for Python 3.9+ (:pr:\u003ccode\u003e891\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.7\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cem\u003eRelease date: Jul 20, 2023\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Added \u003ccode\u003edrf_yasg.inspectors.query.DrfAPICompatInspector\u003c/code\u003e (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Added \u003ccode\u003eDrfAPICompatInspector\u003c/code\u003e to serve as a replacement \u003ccode\u003eCoreAPICompatInspector\u003c/code\u003e (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow \u003ccode\u003eDEFAULT_SPEC_RENDERERS\u003c/code\u003e default renderers to be overriden in the settings (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fixed redoc source mapping (:pr:\u003ccode\u003e859\u003c/code\u003e)\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/f8cb2db70ca42fb709565f89fdd152b614dc865d\"\u003e\u003ccode\u003ef8cb2db\u003c/code\u003e\u003c/a\u003e Add version 1.21.11 details to the changelog (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/939\"\u003e#939\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/0c6d08d5ebc52e802e5e1acbabbadfe179d4087d\"\u003e\u003ccode\u003e0c6d08d\u003c/code\u003e\u003c/a\u003e Update the ruff lint rules (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/920\"\u003e#920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/055a74dc10128fd55a48f7f74f6b58ffcc48e83d\"\u003e\u003ccode\u003e055a74d\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 in the github-actions group (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/937\"\u003e#937\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/a8813ace8e39cc2c28a916053c74415e10db1425\"\u003e\u003ccode\u003ea8813ac\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 in the github-actions group (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/936\"\u003e#936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/9f4b44943ad930e23e979b80090102dfca1d588b\"\u003e\u003ccode\u003e9f4b449\u003c/code\u003e\u003c/a\u003e Restore the live demo and replace heroku with apprunner (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/935\"\u003e#935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/298325122e11aeba87e6c8f16604e45d870649e7\"\u003e\u003ccode\u003e2983251\u003c/code\u003e\u003c/a\u003e fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/a74689370c393432debbe6285b3afb3e462aee58\"\u003e\u003ccode\u003ea746893\u003c/code\u003e\u003c/a\u003e allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/916\"\u003e#916\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/e747ad6db413c2d20c3eab79739e22ffde5930c7\"\u003e\u003ccode\u003ee747ad6\u003c/code\u003e\u003c/a\u003e Fixes issue with filter parameters not appearing in Swagger after upgrading t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/ee3c871501dad5f0585c8c62ac0659fedab999a1\"\u003e\u003ccode\u003eee3c871\u003c/code\u003e\u003c/a\u003e update Python, Django, and DRF versions \u0026amp; packaging configuration (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/922\"\u003e#922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/be6eeedcbebcb45151a9d18018d880d1fcdcf143\"\u003e\u003ccode\u003ebe6eeed\u003c/code\u003e\u003c/a\u003e Remove usage of pkg_resources (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/928\"\u003e#928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/axnsan12/drf-yasg/compare/1.21.10...1.21.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jellyfish` from 1.2.0 to 1.2.1\n\nUpdates `markdown` from 3.9 to 3.10\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/releases\"\u003emarkdown's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.10.0\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\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 href=\"https://github.com/Python-Markdown/markdown/blob/master/docs/changelog.md\"\u003emarkdown's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003etitle: Changelog\ntoc_depth: 2\u003c/p\u003e\n\u003ch1\u003ePython-Markdown Changelog\u003c/h1\u003e\n\u003cp\u003eAll notable changes to this project will be documented in this file.\u003c/p\u003e\n\u003cp\u003eThe format is based on \u003ca href=\"https://keepachangelog.com/en/1.1.0/\"\u003eKeep a Changelog\u003c/a\u003e,\nand this project adheres to the\n\u003ca href=\"https://packaging.python.org/en/latest/specifications/version-specifiers/\"\u003ePython Version Specification\u003c/a\u003e.\nSee the \u003ca href=\"https://github.com/Python-Markdown/markdown/blob/master/docs/contributing.md\"\u003eContributing Guide\u003c/a\u003e for details.\u003c/p\u003e\n\u003ch2\u003e[Unreleased]\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure nested elements inside inline comments are properly unescaped (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1571\"\u003e#1571\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eMake the docs build successfully with mkdocstrings-python 2.0 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1575\"\u003e#1575\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.10.0] - 2025-11-03\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.9.0] - 2025-09-04\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFootnotes are now ordered by the occurrence of their references in the\ndocument. A new configuration option for the footnotes extension,\n\u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e, has been added to support restoring the previous\nbehavior of ordering footnotes by the occurrence of definitions (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1367\"\u003e#1367\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure inline processing iterates through elements in document order (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1546\"\u003e#1546\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix handling of incomplete HTML tags in code spans in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1547\"\u003e#1547\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.8.2] - 2025-06-19\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/22e89c1fc346f72218a10e392a0c3b4731912522\"\u003e\u003ccode\u003e22e89c1\u003c/code\u003e\u003c/a\u003e Bump version to 3.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/c138aea5139a6aceae05bb957e866d9ce7577b94\"\u003e\u003ccode\u003ec138aea\u003c/code\u003e\u003c/a\u003e + PY314 - PY39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/746f7f527b15f63845253e3b86947b806ef1b98f\"\u003e\u003ccode\u003e746f7f5\u003c/code\u003e\u003c/a\u003e cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/a5ee2b4aad05531898ab8fd726c7ece31ddadf8b\"\u003e\u003ccode\u003ea5ee2b4\u003c/code\u003e\u003c/a\u003e Revert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/5354daf618149f92580a1407c036115753c5df73\"\u003e\u003ccode\u003e5354daf\u003c/code\u003e\u003c/a\u003e Fix an HTML comment parsing case that can cause an infinite loop\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Python-Markdown/markdown/compare/3.9.0...3.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyyaml` from 6.0.2 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/yaml/pyyaml/releases\"\u003epyyaml's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14 and free-threading (experimental).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ehttps://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\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 href=\"https://github.com/yaml/pyyaml/blob/6.0.3/CHANGES\"\u003epyyaml's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e6.0.3 (2025-09-25)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/yaml/pyyaml/pull/864\"\u003eyaml/pyyaml#864\u003c/a\u003e -- Support for Python 3.14 and free-threading (experimental)\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 href=\"https://github.com/yaml/pyyaml/commit/49790e73684bebad1df05ef8d828fa12f685bffb\"\u003e\u003ccode\u003e49790e7\u003c/code\u003e\u003c/a\u003e Release 6.0.3 (\u003ca href=\"https://redirect.github.com/yaml/pyyaml/issues/889\"\u003e#889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xlsxwriter` from 3.2.8 to 3.2.9\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jmcnamara/XlsxWriter/blob/main/Changes\"\u003exlsxwriter's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.2.9 - September 16 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved the \u003ccode\u003epy.typed\u003c/code\u003e file since it was causing a lot of downstream CI\nfailures where consumers weren't handling the xlsxwriter types correctly or\ntaking them into account.\u003c/p\u003e\n\u003cp\u003eThe file will be re-added once the xlsxwriter typing is more comprehensive.\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 href=\"https://github.com/jmcnamara/XlsxWriter/commit/e943bee8c9cdf0661cfdb83d5497e0725390e41e\"\u003e\u003ccode\u003ee943bee\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/392bd9e6572785394c6553e2d4f7ae2bb80782f4\"\u003e\u003ccode\u003e392bd9e\u003c/code\u003e\u003c/a\u003e typing: remove py.typed file\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/jmcnamara/XlsxWriter/compare/RELEASE_3.2.8...RELEASE_3.2.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xmlschema` from 4.1.0 to 4.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sissaschool/xmlschema/releases\"\u003exmlschema's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.2.0 (2025-10-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd arguments validation for schemas and validation methods (by validation contexts)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSchemaSettings\u003c/code\u003e dataclass for storing read-only settings for schema instances\nand for managing package default settings\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eblock\u003c/em\u003e argument to \u003ccode\u003eXMLResource\u003c/code\u003e class (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/464\"\u003e#464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_SCHEMA_SOURCES\u003c/em\u003e package limit (\u003ccode\u003e1000\u003c/code\u003e, applied to \u003ccode\u003eXsdGlobals\u003c/code\u003e global maps instances)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_XML_ELEMENTS\u003c/em\u003e package limit (\u003ccode\u003e1,000,000\u003c/code\u003e, applied to non-lazy \u003ccode\u003eXMLResource\u003c/code\u003e instances)\u003c/li\u003e\n\u003cli\u003eReduce \u003cem\u003eMAX_XML_DEPTH\u003c/em\u003e limit to 1000 and apply it to all \u003ccode\u003eXMLResource\u003c/code\u003e instances\u003c/li\u003e\n\u003cli\u003eFix for substitute match in case of unexpected child (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\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 href=\"https://github.com/sissaschool/xmlschema/blob/master/CHANGELOG.rst\"\u003exmlschema's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ccode\u003ev4.2.0\u003c/code\u003e_ (2025-10-14)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd arguments validation for schemas and validation methods (by validation contexts)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSchemaSettings\u003c/code\u003e dataclass for storing read-only settings for schema instances\nand for managing package default settings\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eblock\u003c/em\u003e argument to \u003ccode\u003eXMLResource\u003c/code\u003e class (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/464\"\u003e#464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_SCHEMA_SOURCES\u003c/em\u003e package limit (\u003ccode\u003e1000\u003c/code\u003e, applied to \u003ccode\u003eXsdGlobals\u003c/code\u003e global maps instances)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_XML_ELEMENTS\u003c/em\u003e package limit (\u003ccode\u003e1,000,000\u003c/code\u003e, applied to non-lazy \u003ccode\u003eXMLResource\u003c/code\u003e instances)\u003c/li\u003e\n\u003cli\u003eReduce \u003cem\u003eMAX_XML_DEPTH\u003c/em\u003e limit to 1000 and apply it to all \u003ccode\u003eXMLResource\u003c/code\u003e instances\u003c/li\u003e\n\u003cli\u003eFix for substitute match in case of unexpected child (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\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 href=\"https://github.com/sissaschool/xmlschema/commit/2783030fcdcd5307563822906862a9e7088931b2\"\u003e\u003ccode\u003e2783030\u003c/code\u003e\u003c/a\u003e Bump minor release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/7c77a12f0fe16c8da0256a0f13281a03e4a0f717\"\u003e\u003ccode\u003e7c77a12\u003c/code\u003e\u003c/a\u003e Include publiccode.yml validation workflow for CI and README changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/04c19d54d4578f34a0c04d6cc82daa8d3ef9d90c\"\u003e\u003ccode\u003e04c19d5\u003c/code\u003e\u003c/a\u003e Fix XsdGroup.match_element (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/dd4f279e56b8a5ce89f78a6c88337f5032af0b2f\"\u003e\u003ccode\u003edd4f279\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/463\"\u003e#463\u003c/a\u003e from publiccode-pr-bot/chore/add-publiccode-parser-ac...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/1bd7aa6eebf4947e7ae76e47a2f706b58fed22cd\"\u003e\u003ccode\u003e1bd7aa6\u003c/code\u003e\u003c/a\u003e Update GitHub workflow for CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/76b0f67e900777166bcd3773cc109efae933682d\"\u003e\u003ccode\u003e76b0f67\u003c/code\u003e\u003c/a\u003e Patch mypy tests with protocols\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/28727bb0af89f129d59772550c6998164c37aeff\"\u003e\u003ccode\u003e28727bb\u003c/code\u003e\u003c/a\u003e Update docs and release info\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/e4131eaf6bc1a223292f3f19e78573a4317d131a\"\u003e\u003ccode\u003ee4131ea\u003c/code\u003e\u003c/a\u003e Add from_settings() class method to schemas\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/0aea8debef13b62156e7297bdc54198057ea3611\"\u003e\u003ccode\u003e0aea8de\u003c/code\u003e\u003c/a\u003e Rewrite validation contexts as normal classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/d443d7ba0e3de8fad6d6df8f314b12735af4bac3\"\u003e\u003ccode\u003ed443d7b\u003c/code\u003e\u003c/a\u003e Full validation of context arguments\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sissaschool/xmlschema/compare/v4.1.0...v4.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lark` from 1.2.2 to 1.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lark-parser/lark/releases\"\u003elark's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.3.1 - Bugfix + source build now contains complete project data\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix: Restore support for custom input, alongside text and TextSlice by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1562\"\u003elark-parser/lark#1562\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep sdist in sync with git (include all files in source build, including docs, tests and examples) by \u003ca href=\"https://github.com/chanicpanic\"\u003e\u003ccode\u003e@​chanicpanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1561\"\u003elark-parser/lark#1561\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/lark-parser/lark/compare/1.3.0...1.3.1\"\u003ehttps://github.com/lark-parser/lark/compare/1.3.0...1.3.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e1.3.0 - Introduces text-slices, Earley fix, and various small improvements\u003c/h2\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLark can now parse in sections of strings, using \u003ccode\u003eTextSlice\u003c/code\u003e, as a faster alternative to creating a \u0026quot;copy-slice\u0026quot; with \u003ccode\u003es[i:j]\u003c/code\u003e. \u003ca href=\"https://lark-parser.readthedocs.io/en/latest/classes.html#lark.utils.TextSlice\"\u003eLearn more\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded support to \u003ccode\u003ematch\u003c/code\u003e on Tree instances\u003c/li\u003e\n\u003cli\u003eWhen serializing a Lark instance, added the option to include the grammar object (before compilation).\u003c/li\u003e\n\u003cli\u003eAdded convenience method \u003ccode\u003eTree.find_token()\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix of an edge case in Earley related to representation of ambiguity.\u003c/li\u003e\n\u003cli\u003eBugfixes in the standalone parser related to imports\u003c/li\u003e\n\u003cli\u003eBugfix in indenter - now dedents always contain line information\u003c/li\u003e\n\u003cli\u003eVarious small bugfixes (see PR list below)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFull list of PRs\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDocs: Rephrase v_args() documentation to underline it only applies to Transformer classes by \u003ca href=\"https://github.com/skepppy\"\u003e\u003ccode\u003e@​skepppy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1458\"\u003elark-parser/lark#1458\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTiny refactor for PR \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1451\"\u003e#1451\u003c/a\u003e by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1459\"\u003elark-parser/lark#1459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEarley: share nodes created by the scanner with the completer by \u003ca href=\"https://github.com/chanicpanic\"\u003e\u003ccode\u003e@​chanicpanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1451\"\u003elark-parser/lark#1451\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter error in Lark.parse when using on_error when parser!=lalr (issue \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1311\"\u003e#1311\u003c/a\u003e) by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1460\"\u003elark-parser/lark#1460\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eSymbol.__eq__\u003c/code\u003e to return false when comparing with None by \u003ca href=\"https://github.com/weaversam8\"\u003e\u003ccode\u003e@​weaversam8\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1481\"\u003elark-parser/lark#1481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMention internal/external transformers in the documentation by \u003ca href=\"https://github.com/odanoburu\"\u003e\u003ccode\u003e@​odanoburu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1486\"\u003elark-parser/lark#1486\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Tree.find_token() method by \u003ca href=\"https://github.com/makukha\"\u003e\u003ccode\u003e@​makukha\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1467\"\u003elark-parser/lark#1467\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eType \u003ccode\u003eTerminal.__init__\u003c/code\u003e by \u003ca href=\"https://github.com/Liam-DeVoe\"\u003e\u003ccode\u003e@​Liam-DeVoe\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1503\"\u003elark-parser/lark#1503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd guidance on handling comments in languages with significant indentation by \u003ca href=\"https://github.com/nchammas\"\u003e\u003ccode\u003e@​nchammas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1502\"\u003elark-parser/lark#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Small fix for PR 1507 by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1508\"\u003elark-parser/lark#1508\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd note on binding power of numeric quantifiers by \u003ca href=\"https://github.com/414owen\"\u003e\u003ccode\u003e@​414owen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1507\"\u003elark-parser/lark#1507\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrap functools.partial in staticmethod() to add compatibility with Python 3.14 by \u003ca href=\"https://github.com/hrnciar\"\u003e\u003ccode\u003e@​hrnciar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1483\"\u003elark-parser/lark#1483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix generic type of Transformer_InPlaceRecursive by \u003ca href=\"https://github.com/lbhm\"\u003e\u003ccode\u003e@​lbhm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1518\"\u003elark-parser/lark#1518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded TextSlice; Lark can now parse/lex a text-slice by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1452\"\u003elark-parser/lark#1452\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport match on tree by \u003ca href=\"https://github.com/colmmurphyxyz\"\u003e\u003ccode\u003e@​colmmurphyxyz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1521\"\u003elark-parser/lark#1521\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: Updated link of DSL article to a new version by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1529\"\u003elark-parser/lark#1529\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebetter error messages for shift/reduct conflicts by \u003ca href=\"https://github.com/skogsbaer\"\u003e\u003ccode\u003e@​skogsbaer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1531\"\u003elark-parser/lark#1531\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSerialize Lark.grammar (fixes issue \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1472\"\u003e#1472\u003c/a\u003e) by \u003ca href=\"https://github.com/NasalDaemon\"\u003e\u003ccode\u003e@​NasalDaemon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1506\"\u003elark-parser/lark#1506\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes for PR \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1506\"\u003e#1506\u003c/a\u003e, which adds the option to cache the grammar definition by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1540\"\u003elark-parser/lark#1540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix in indenter - now always creating dedents with line information by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1547\"\u003elark-parser/lark#1547\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix: issue when unpickling in the standalone parser, due to lingering Token instances by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1553\"\u003elark-parser/lark#1553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInclude missing import in standalone parser by \u003ca href=\"https://github.com/pdeibert\"\u003e\u003ccode\u003e@​pdeibert\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1541\"\u003elark-parser/lark#1541\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVersion bump (1.3.0) by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1554\"\u003elark-parser/lark#1554\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=\"https://github.com/skepppy\"\u003e\u003ccode\u003e@​skepppy\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1458\"\u003elark-parser/lark#1458\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 href=\"https://github.com/lark-parser/lark/commit/f79772cd4c6d2076b5dc01f399dbb816cc484f77\"\u003e\u003ccode\u003ef79772c\u003c/code\u003e\u003c/a\u003e Version bump (1.3.1)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/b64e9f42c93e9c05c17fac694ae5cbd18c041a2b\"\u003e\u003ccode\u003eb64e9f4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1561\"\u003e#1561\u003c/a\u003e from chanicpanic/sdist-git\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/ad0ea5f14ee4afbaf617cc088e1b8fe2fcff08fc\"\u003e\u003ccode\u003ead0ea5f\u003c/code\u003e\u003c/a\u003e Update MANIFEST.in\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/1f6f03c10540d4646c1a70b1da16a90592d7ec58\"\u003e\u003ccode\u003e1f6f03c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1562\"\u003e#1562\u003c/a\u003e from lark-parser/issue1560\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/7c365de586325620a20f2753b36ffa313c1d9b45\"\u003e\u003ccode\u003e7c365de\u003c/code\u003e\u003c/a\u003e Added custom input test (based on code from examples)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/19bbbee5d79845123f7f07ab716ec88185e2fa9d\"\u003e\u003ccode\u003e19bbbee\u003c/code\u003e\u003c/a\u003e Bugfix: Restore support for custom input, alongside text and TextSlice (Issue...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/dbcb60e888c5c8a3656c9f0c1ef0f928bb7c5ad6\"\u003e\u003ccode\u003edbcb60e\u003c/code\u003e\u003c/a\u003e Keep sdist in sync with git\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/e332c2df2f7d400460a5f1204d9bc36b49b25635\"\u003e\u003ccode\u003ee332c2d\u003c/code\u003e\u003c/a\u003e Version bump (1.3.0)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/aa5666c30e255257b0c36ef93c80d800f84a04ca\"\u003e\u003ccode\u003eaa5666c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1541\"\u003e#1541\u003c/a\u003e from pdeibert/master\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/41934d390dd7661a82df5ed28bd75655fe797cf7\"\u003e\u003ccode\u003e41934d3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1553\"\u003e#1553\u003c/a\u003e from lark-parser/issue1552\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lark-parser/lark/compare/1.2.2...1.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `simple-salesforce` from 1.12.8 to 1.12.9\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/simple-salesforce/simple-salesforce/releases\"\u003esimple-salesforce's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.12.9\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: missing key 'name' in exception message by \u003ca href=\"https://github.com/hofrob\"\u003e\u003ccode\u003e@​hofrob\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simple-salesforce/simple-salesforce/pull/795\"\u003esimple-salesforce/simple-salesforce#795\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=\"https://github.com/hofrob\"\u003e\u003ccode\u003e@​hofrob\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/simple-salesforce/simple-salesforce/pull/795\"\u003esimple-salesforce/simple-salesforce#795\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/simple-salesforce/simple-salesforce/compare/v1.12.8...v1.12.9\"\u003ehttps://github.com/simple-salesforce/simple-salesforce/compare/v1.12.8...v1.12.9\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 href=\"https://github.com/simple-salesforce/simple-salesforce/blob/master/CHANGES\"\u003esimple-salesforce's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev1.12.9\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/simple-salesforce/simple-salesforce/issues/795\"\u003e#795\u003c/a\u003e Fix key 'name' in exception message\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 href=\"https://github.com/simple-salesforce/simple-salesforce/commit/fc7410a1603a6a2f4df2dc407b9f3f5313cb696e\"\u003e\u003ccode\u003efc7410a\u003c/code\u003e\u003c/a\u003e chore: Bump release version (\u003ca href=\"https://redirect.github.com/simple-salesforce/simple-salesforce/issues/796\"\u003e#796\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simple-salesforce/simple-salesforce/commit/e9c256377abe6b7b6455e69ba9bd8b7d76d566de\"\u003e\u003ccode\u003ee9c2563\u003c/code\u003e\u003c/a\u003e fix: missing key 'name' in exception message (\u003ca href=\"https://redirect.github.com/simple-salesforce/simple-salesforce/issues/795\"\u003e#795\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/simple-salesforce/simple-salesforce/compare/v1.12.8...v1.12.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `shapely` from 2.0.7 to 2.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/shapely/shapely/releases\"\u003eshapely's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.1.2\u003c/h2\u003e\n\u003cp\u003eWheels are available for Python 3.14 (and still include GEOS 3.13.1).\u003c/p\u003e\n\u003ch2\u003e2.1.1\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix performance degradation calling shapely functions (caused by deprecation of certain positional arguments) (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2283\"\u003e#2283\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix crash caused by \u003ccode\u003efrom_ragged_array()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2291\"\u003e#2291\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix compilation error building with recent LLVM toolchain (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2293\"\u003e#2293\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFor a full changelog , see \u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-1\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.1.0\u003c/h2\u003e\n\u003cp\u003eShapely 2.1.0 is a feature release with various new functions, improvements and bug fixes. Highlights include initial support for geometries with M or ZM values, functionality for coverage validation and simplification, and a set of new top-level functions.\u003c/p\u003e\n\u003cp\u003eShapely supports Python \u0026gt;= 3.10, and binary wheels on PyPI include GEOS 3.13.1 and are now also provided for musllinux (Alpine) x86_64 platforms.\u003c/p\u003e\n\u003cp\u003eFor a full changelog, see \u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.1.0rc1\u003c/h2\u003e\n\u003cp\u003eShapely version 2.1.0 is a major release featuring various new functions, improvements and bug fixes. This is a first release candidate.\u003c/p\u003e\n\u003cp\u003eFor a full changelog, see \u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0-unreleased\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0-unreleased\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 href=\"https://github.com/shapely/shapely/blob/main/CHANGES.txt\"\u003eshapely's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.1.2 (2025-09-24)\u003c/h2\u003e\n\u003cp\u003eWheels are available for Python 3.14 (and still include GEOS 3.13.1).\u003c/p\u003e\n\u003ch2\u003e2.1.1 (2025-05-19)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix performance degradation calling shapely functions (caused by deprecation\nof certain positional arguments) (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2283\"\u003e#2283\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix crash caused by \u003ccode\u003efrom_ragged_array()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2291\"\u003e#2291\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix compilation error building with recent LLVM toolchain (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2293\"\u003e#2293\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.0 (2025-04-03)\u003c/h2\u003e\n\u003cp\u003eShapely 2.1.0 is a feature release with various new functions,\nimprovements and bug fixes. Highlights include initial support for geometries\nwith M or ZM values, functionality for coverage validation and\nsimplification, and a set of new top-level functions.\u003c/p\u003e\n\u003cp\u003eShapely supports Python \u0026gt;= 3.10, and binary wheels on PyPI include GEOS 3.13.1\nand are now also provided for musllinux (Alpine) x86_64 platforms.\u003c/p\u003e\n\u003cp\u003eFor a full changelog, see\n\u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/5fb639d1056888d135fe56bfaf750c9648addeec\"\u003e\u003ccode\u003e5fb639d\u003c/code\u003e\u003c/a\u003e RLS: 2.1.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/70509a1bee5ebd6637cda98b5c9d83707c341888\"\u003e\u003ccode\u003e70509a1\u003c/code\u003e\u003c/a\u003e DOC/RLS: indicate Python 3.14 support in pyproject.toml and release notes for...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/5c572b622027f6917c75afd728f201a144fb597d\"\u003e\u003ccode\u003e5c572b6\u003c/code\u003e\u003c/a\u003e CI: add testing with GEOS 3.14 and Python 3.14 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2330\"\u003e#2330\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/a9093336b1ea77559d44148a7f1ed92ab3bc2999\"\u003e\u003ccode\u003ea909333\u003c/code\u003e\u003c/a\u003e Bump pypa/cibuildwheel from 3.1.3 to 3.2.0 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2328\"\u003e#2328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/2086d4428e29da17bafc684acbfb04bb537ce573\"\u003e\u003ccode\u003e2086d44\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2326\"\u003e#2326\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/50c1cf30be0e37081991b6d5a5dc3531cfbe35da\"\u003e\u003ccode\u003e50c1cf3\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4 to 5 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2321\"\u003e#2321\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/39490ab685a42a2c189f2ce7a45b7d07053e8e8f\"\u003e\u003ccode\u003e39490ab\u003c/code\u003e\u003c/a\u003e TST: update test_coverage_union_overlapping_inputs for upstream GEOS change (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/5ef437c898b54f723ad0e4a8b6b513b9cc5d68a2\"\u003e\u003ccode\u003e5ef437c\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2320\"\u003e#2320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/7b5ff3d24b7889d35f96ee3ae9ec26250b3d6147\"\u003e\u003ccode\u003e7b5ff3d\u003c/code\u003e\u003c/a\u003e BLD: add Python 3.14 wheels [Bump pypa/cibuildwheel from 3.0.1 to 3.1.3] (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2316\"\u003e#2316\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/480dbb14f47b685e95c03654983405185c15babd\"\u003e\u003ccode\u003e480dbb1\u003c/code\u003e\u003c/a\u003e TST: update frechet_distance densi...\n\n_Description has been truncated_","html_url":"https://github.com/SEED-platform/seed/pull/5157","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/SEED-platform%2Fseed/issues/5157","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/5157/packages"},{"uuid":"3745060325","node_id":"PR_kwDOPdzh-c65si3F","number":106,"state":"closed","title":"Bump the python group across 1 directory with 33 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-01-05T22:28:50.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-18T22:24:05.000Z","updated_at":"2026-01-05T22:28:51.000Z","time_to_close":1555485,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python","update_count":33,"packages":[{"name":"rcssmin","old_version":"1.1.2","new_version":"1.2.2","repository_url":"https://github.com/ndparker/rcssmin"},{"name":"whitenoise","old_version":"6.9.0","new_version":"6.11.0","repository_url":"https://github.com/evansd/whitenoise"},{"name":"hiredis","old_version":"3.2.1","new_version":"3.3.0","repository_url":"https://github.com/redis/hiredis-py"},{"name":"celery","old_version":"5.5.3","new_version":"5.6.0","repository_url":"https://github.com/celery/celery"},{"name":"django-allauth","old_version":"65.10.0","new_version":"65.13.1"},{"name":"django-crispy-forms","old_version":"2.4","new_version":"2.5","repository_url":"https://github.com/django-crispy-forms/django-crispy-forms"},{"name":"django-compressor","old_version":"4.5.1","new_version":"4.6.0","repository_url":"https://github.com/django-compressor/django-compressor"},{"name":"uwsgi","old_version":"2.0.30","new_version":"2.0.31"},{"name":"easy-thumbnails","old_version":"2.10","new_version":"2.10.1"},{"name":"django-cms","old_version":"5.0.2","new_version":"5.0.5","repository_url":"https://github.com/django-cms/django-cms"},{"name":"djangocms-versioning","old_version":"2.4.0","new_version":"2.5.0","repository_url":"https://github.com/django-cms/djangocms-versioning"},{"name":"django-entangled","old_version":"0.6.3","new_version":"0.7","repository_url":"https://github.com/jrief/django-entangled"},{"name":"djangocms-text","old_version":"0.9.2","new_version":"0.9.3","repository_url":"https://github.com/django-cms/djangocms-text"},{"name":"djangocms-frontend","old_version":"2.1.4","new_version":"2.2.0","repository_url":"https://github.com/django-cms/djangocms-frontend"},{"name":"djangocms-attributes-field","old_version":"4.1.1","new_version":"4.1.2","repository_url":"https://github.com/django-cms/djangocms-attributes-field"},{"name":"svglib","old_version":"1.5.1","new_version":"1.6.0","repository_url":"https://github.com/deeplook/svglib"},{"name":"reportlab","old_version":"4.4.3","new_version":"4.4.6"},{"name":"django-filer","old_version":"3.3.1","new_version":"3.4.1","repository_url":"https://github.com/django-cms/django-filer"},{"name":"pip-tools","old_version":"7.5.0","new_version":"7.5.2","repository_url":"https://github.com/jazzband/pip-tools"},{"name":"djangocms-snippet","old_version":"5.0.1","new_version":"5.0.2","repository_url":"https://github.com/django-cms/djangocms-snippet"},{"name":"djangocms-form-builder","old_version":"0.3.2","new_version":"0.4.0","repository_url":"https://github.com/fsbraun/djangocms-form-builder"},{"name":"psycopg","old_version":"3.2.9","new_version":"3.3.2"},{"name":"werkzeug","old_version":"3.1.3","new_version":"3.1.4"},{"name":"watchfiles","old_version":"1.1.0","new_version":"1.1.1","repository_url":"https://github.com/samuelcolvin/watchfiles"},{"name":"mypy","old_version":"1.17.1","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"django-stubs","old_version":"5.2.2","new_version":"5.2.8"},{"name":"pytest-sugar","old_version":"1.0.0","new_version":"1.1.1","repository_url":"https://github.com/Teemu/pytest-sugar"},{"name":"ruff","old_version":"0.12.8","new_version":"0.14.10","repository_url":"https://github.com/astral-sh/ruff"},{"name":"coverage","old_version":"7.10.3","new_version":"7.13.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"pre-commit","old_version":"4.3.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"factory-boy","old_version":"3.3.2","new_version":"3.3.3","repository_url":"https://github.com/FactoryBoy/factory_boy"},{"name":"django-debug-toolbar","old_version":"6.0.0","new_version":"6.1.0","repository_url":"https://github.com/django-commons/django-debug-toolbar"},{"name":"django-coverage-plugin","old_version":"3.1.1","new_version":"3.2.0","repository_url":"https://github.com/nedbat/django_coverage_plugin"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python group with 33 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [rcssmin](https://github.com/ndparker/rcssmin) | `1.1.2` | `1.2.2` |\n| [whitenoise](https://github.com/evansd/whitenoise) | `6.9.0` | `6.11.0` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.2.1` | `3.3.0` |\n| [celery](https://github.com/celery/celery) | `5.5.3` | `5.6.0` |\n| [django-allauth[mfa]](https://github.com/sponsors/pennersr) | `65.10.0` | `65.13.1` |\n| [django-crispy-forms](https://github.com/django-crispy-forms/django-crispy-forms) | `2.4` | `2.5` |\n| [django-compressor](https://github.com/django-compressor/django-compressor) | `4.5.1` | `4.6.0` |\n| [uwsgi](https://uwsgi-docs.readthedocs.io/en/latest/) | `2.0.30` | `2.0.31` |\n| [easy-thumbnails[svg]](https://github.com/SmileyChris/easy-thumbnails) | `2.10` | `2.10.1` |\n| [django-cms](https://github.com/django-cms/django-cms) | `5.0.2` | `5.0.5` |\n| [djangocms-versioning](https://github.com/django-cms/djangocms-versioning) | `2.4.0` | `2.5.0` |\n| [django-entangled](https://github.com/jrief/django-entangled) | `0.6.3` | `0.7` |\n| [djangocms-text](https://github.com/django-cms/djangocms-text) | `0.9.2` | `0.9.3` |\n| [djangocms-frontend](https://github.com/django-cms/djangocms-frontend) | `2.1.4` | `2.2.0` |\n| [djangocms-attributes-field](https://github.com/django-cms/djangocms-attributes-field) | `4.1.1` | `4.1.2` |\n| [svglib](https://github.com/deeplook/svglib) | `1.5.1` | `1.6.0` |\n| [reportlab](https://www.reportlab.com/) | `4.4.3` | `4.4.6` |\n| [django-filer](https://github.com/django-cms/django-filer) | `3.3.1` | `3.4.1` |\n| [pip-tools](https://github.com/jazzband/pip-tools) | `7.5.0` | `7.5.2` |\n| [djangocms-snippet](https://github.com/django-cms/djangocms-snippet) | `5.0.1` | `5.0.2` |\n| [djangocms-form-builder](https://github.com/fsbraun/djangocms-form-builder) | `0.3.2` | `0.4.0` |\n| [psycopg[c]](https://github.com/psycopg/psycopg) | `3.2.9` | `3.3.2` |\n| [werkzeug[watchdog]](https://github.com/pallets/werkzeug) | `3.1.3` | `3.1.4` |\n| [watchfiles](https://github.com/samuelcolvin/watchfiles) | `1.1.0` | `1.1.1` |\n| [mypy](https://github.com/python/mypy) | `1.17.1` | `1.19.1` |\n| [django-stubs[compatible-mypy]](https://github.com/sponsors/typeddjango) | `5.2.2` | `5.2.8` |\n| [pytest-sugar](https://github.com/Teemu/pytest-sugar) | `1.0.0` | `1.1.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.12.8` | `0.14.10` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.3` | `7.13.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.3.0` | `4.5.1` |\n| [factory-boy](https://github.com/FactoryBoy/factory_boy) | `3.3.2` | `3.3.3` |\n| [django-debug-toolbar](https://github.com/django-commons/django-debug-toolbar) | `6.0.0` | `6.1.0` |\n| [django-coverage-plugin](https://github.com/nedbat/django_coverage_plugin) | `3.1.1` | `3.2.0` |\n\n\nUpdates `rcssmin` from 1.1.2 to 1.2.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ndparker/rcssmin/blob/master/CHANGES\"\u003ercssmin's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eChanges with version 1.2.2\u003c/p\u003e\n\u003cp\u003e*) Update benchmarks\u003c/p\u003e\n\u003cp\u003e*) Add support for Python 3.14\u003c/p\u003e\n\u003cp\u003e*) Update project boilerplate\u003c/p\u003e\n\u003cp\u003eChanges with version 1.2.1\u003c/p\u003e\n\u003cp\u003e*) Change doc theme to \u0026quot;furo\u0026quot;\u003c/p\u003e\n\u003cp\u003e*) Remove build dependency pinning (resolves \u003ca href=\"https://redirect.github.com/ndparker/rcssmin/issues/18\"\u003e#18\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e*) Update project boilerplate\u003c/p\u003e\n\u003cp\u003eChanges with version 1.2.0\u003c/p\u003e\n\u003cp\u003e*) Add support for nesting selector (\u0026amp;)\u003c/p\u003e\n\u003cp\u003e*) Update project boilerplate\u003c/p\u003e\n\u003cp\u003eChanges with version 1.1.3\u003c/p\u003e\n\u003cp\u003e*) Add support for Python 3.13\u003c/p\u003e\n\u003cp\u003e*) Update project boilerplate\u003c/p\u003e\n\u003cp\u003eChanges with version 1.1.2\u003c/p\u003e\n\u003cp\u003e*) Add support for Python 3.12\u003c/p\u003e\n\u003cp\u003e*) Add musllinux wheels\u003c/p\u003e\n\u003cp\u003e*) Update project boilerplate\u003c/p\u003e\n\u003cp\u003eChanges with version 1.1.1\u003c/p\u003e\n\u003cp\u003e*) Add support for Python 3.11\u003c/p\u003e\n\u003cp\u003e*) Update project boilerplate\u003c/p\u003e\n\u003cp\u003eChanges with version 1.1.0\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 href=\"https://github.com/ndparker/rcssmin/commit/b4cac4d1ffd665aa3b8d2f9e0e09529578a67193\"\u003e\u003ccode\u003eb4cac4d\u003c/code\u003e\u003c/a\u003e Bump version to 1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/db3f06eefa05860bbe1e8fa373e0249cb6adedbb\"\u003e\u003ccode\u003edb3f06e\u003c/code\u003e\u003c/a\u003e Update benchmarks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/77816d3cf9e2f3dc03c00e1f8526e471dffdc3fe\"\u003e\u003ccode\u003e77816d3\u003c/code\u003e\u003c/a\u003e Add Python 3.14 support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/ecac7747c1a68781cf1b524ea54db44aae7c7bd2\"\u003e\u003ccode\u003eecac774\u003c/code\u003e\u003c/a\u003e Project boilerplate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/5bac716410f460f75e243961f482b1895e487b6b\"\u003e\u003ccode\u003e5bac716\u003c/code\u003e\u003c/a\u003e Bump version to 1.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/8d4312f864efa55d36742a728adffebfd27a6aa3\"\u003e\u003ccode\u003e8d4312f\u003c/code\u003e\u003c/a\u003e Hello 2025\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/41d1e1f7ae6242a80854509d7181f8a91278722b\"\u003e\u003ccode\u003e41d1e1f\u003c/code\u003e\u003c/a\u003e Update dependencies, change sphinx theme\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/5396f5ec399b2ac57293657fb87ca888f3ecda8e\"\u003e\u003ccode\u003e5396f5e\u003c/code\u003e\u003c/a\u003e Bump version to 1.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/81da21987bfe614153711217f1b50bc0fa5f4c55\"\u003e\u003ccode\u003e81da219\u003c/code\u003e\u003c/a\u003e Update benchmarks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/1f9ff6d2d89f03108ccf53332352e328ee010b82\"\u003e\u003ccode\u003e1f9ff6d\u003c/code\u003e\u003c/a\u003e Add support for nesting selector (\u0026amp;)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ndparker/rcssmin/compare/1.1.2...1.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `whitenoise` from 6.9.0 to 6.11.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/evansd/whitenoise/blob/main/docs/changelog.rst\"\u003ewhitenoise's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.11.0 (2025-09-18)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Django 6.0.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.10.0 (2025-09-09)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14.\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 href=\"https://github.com/evansd/whitenoise/commit/c9c06e9382b92fc959ffdfc3e2ec63057de82561\"\u003e\u003ccode\u003ec9c06e9\u003c/code\u003e\u003c/a\u003e Version 6.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/051c4e997a07fd3ae5e9f3ec092080102ab89d93\"\u003e\u003ccode\u003e051c4e9\u003c/code\u003e\u003c/a\u003e Support Django 6.0 (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/665\"\u003e#665\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/c903cc13394895cbb3926e48c7acecf364efcd26\"\u003e\u003ccode\u003ec903cc1\u003c/code\u003e\u003c/a\u003e Version 6.10.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/a81bcb0ae2dd0c5884ebadb762f46827ecb54d0f\"\u003e\u003ccode\u003ea81bcb0\u003c/code\u003e\u003c/a\u003e docs(django): use the stable version in URLs (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/626\"\u003e#626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/67b4f32b12a9700b6dcc30ced8e9ad23bf39baa1\"\u003e\u003ccode\u003e67b4f32\u003c/code\u003e\u003c/a\u003e Support Python 3.14 (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/664\"\u003e#664\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/da8d333d165be1bdd9e7decbb3a293b5e55ff608\"\u003e\u003ccode\u003eda8d333\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/663\"\u003e#663\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/800072482c0652f81864ae78c26539d3dfc765b2\"\u003e\u003ccode\u003e8000724\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/662\"\u003e#662\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/8fb339f0eaee9219b1e02a840b5fd2227cf2fbbf\"\u003e\u003ccode\u003e8fb339f\u003c/code\u003e\u003c/a\u003e Upgrade dependencies (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/661\"\u003e#661\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/adf64ddfa5329d622cbc4740aec49b7baf0df792\"\u003e\u003ccode\u003eadf64dd\u003c/code\u003e\u003c/a\u003e Use uvx to run tox on GitHub Actions (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/660\"\u003e#660\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/ad6eb204640ff69498f8fc60bd9eb876ee5771b8\"\u003e\u003ccode\u003ead6eb20\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/659\"\u003e#659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/evansd/whitenoise/compare/6.9.0...6.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `hiredis` from 3.2.1 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/hiredis-py/releases\"\u003ehiredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.3.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e by \u003ca href=\"https://github.com/zweizeichen\"\u003e\u003ccode\u003e@​zweizeichen\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\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 href=\"https://github.com/redis/hiredis-py/commit/187d0f387afed58a955a42ea8c5467100871f98b\"\u003e\u003ccode\u003e187d0f3\u003c/code\u003e\u003c/a\u003e Version 3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/3efcf037edc5a9f7abfaedbd3f60b2a03feb4787\"\u003e\u003ccode\u003e3efcf03\u003c/code\u003e\u003c/a\u003e Add Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/215\"\u003e#215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/966cede2c0ca0a8ac4fe0786571e5c230f39c36e\"\u003e\u003ccode\u003e966cede\u003c/code\u003e\u003c/a\u003e Fix assertion in reader.c (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/212\"\u003e#212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/78def309e58126fdaacb66e6fd40df9c46494062\"\u003e\u003ccode\u003e78def30\u003c/code\u003e\u003c/a\u003e Bump version to 3.3.0-dev\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/redis/hiredis-py/compare/v3.2.1...v3.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `celery` from 5.5.3 to 5.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/celery/celery/releases\"\u003ecelery's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.6.0\u003c/h2\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003ch2\u003eKey Highlights\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.celeryq.dev/en/stable/history/whatsnew-5.6.html\"\u003eWhat's new in Celery 5.6\u003c/a\u003e for a complete overview or read the main highlights below.\u003c/p\u003e\n\u003ch3\u003ePython 3.9 Minimum Version\u003c/h3\u003e\n\u003cp\u003eCelery 5.6.0 drops support for Python 3.8 (EOL). The minimum required Python version is now 3.9. Users still on Python 3.8 must upgrade their Python version before upgrading to Celery 5.6.0.\u003c/p\u003e\n\u003cp\u003eAdditionally, this release includes initial support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eSQS: Reverted to \u003ccode\u003epycurl\u003c/code\u003e from \u003ccode\u003eurllib3\u003c/code\u003e\u003c/h3\u003e\n\u003cp\u003eThe switch from \u003ccode\u003epycurl\u003c/code\u003e to \u003ccode\u003eurllib3\u003c/code\u003e for the SQS transport (introduced in Celery 5.5.0 via Kombu) has been reverted due to critical issues affecting SQS users.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/auvipy\"\u003e\u003ccode\u003e@​auvipy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9620\"\u003ecelery/celery#9620\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eSecurity Fix: Broker Credential Leak Prevention\u003c/h3\u003e\n\u003cp\u003eFixed a security issue where broker URLs containing passwords were being logged in plaintext by the delayed delivery mechanism. Broker credentials are now properly sanitized in all log output.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/giancarloromeo\"\u003e\u003ccode\u003e@​giancarloromeo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9997\"\u003ecelery/celery#9997\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eMemory Leak Fixes\u003c/h3\u003e\n\u003cp\u003eTwo significant memory leaks have been fixed in this release:\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eException Handling Memory Leak\u003c/strong\u003e: Fixed a critical memory leak in task exception handling that was particularly severe on Python 3.11+ due to enhanced traceback data. The fix properly breaks reference cycles in tracebacks to allow garbage collection.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/jaiganeshs21\"\u003e\u003ccode\u003e@​jaiganeshs21\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9799\"\u003ecelery/celery#9799\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ePending Result Memory Leak\u003c/strong\u003e: Fixed a memory leak where \u003ccode\u003eAsyncResult\u003c/code\u003e subscriptions were not being cleaned up when results were forgotten.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/tsoos99dev\"\u003e\u003ccode\u003e@​tsoos99dev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9806\"\u003ecelery/celery#9806\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eETA Task Memory Limit\u003c/h3\u003e\n\u003cp\u003eNew configuration option \u003ccode\u003eworker_eta_task_limit\u003c/code\u003e to prevent out-of-memory crashes when workers fetch large numbers of ETA or countdown tasks. Previously, workers could exhaust available memory when the broker contained many scheduled tasks.\u003c/p\u003e\n\u003cp\u003eExample usage:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eapp.conf.worker_eta_task_limit = 1000\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/sashu2310\"\u003e\u003ccode\u003e@​sashu2310\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9853\"\u003ecelery/celery#9853\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eQueue Type Selection for Auto-created Queues\u003c/h3\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 href=\"https://github.com/celery/celery/blob/main/Changelog.rst\"\u003ecelery's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.6.0\u003c/h1\u003e\n\u003cp\u003e:release-date: 2025-11-30\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003cp\u003eKey Highlights\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nSee :ref:`whatsnew-5.6` for a complete overview or read the main highlights below.\n\u003ch2\u003ePython 3.9 Minimum Version\u003c/h2\u003e\n\u003cp\u003eCelery 5.6.0 drops support for Python 3.8 (EOL). The minimum required Python\nversion is now 3.9. Users still on Python 3.8 must upgrade their Python version\nbefore upgrading to Celery 5.6.0.\u003c/p\u003e\n\u003cp\u003eAdditionally, this release includes initial support for Python 3.14.\u003c/p\u003e\n\u003ch2\u003eSQS: Reverted to \u003ccode\u003epycurl\u003c/code\u003e from \u003ccode\u003eurllib3\u003c/code\u003e\u003c/h2\u003e\n\u003cp\u003eThe switch from \u003ccode\u003epycurl\u003c/code\u003e to \u003ccode\u003eurllib3\u003c/code\u003e for the SQS transport (introduced in\nCelery 5.5.0 via Kombu) has been reverted due to critical issues affecting SQS\nusers:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eProcessing throughput dropped from ~100 tasks/sec to ~3/sec in some environments\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUnknownOperationException\u003c/code\u003e errors causing container crash loops\u003c/li\u003e\n\u003cli\u003eSilent message processing failures with no error logs\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eUsers of the SQS transport must ensure \u003ccode\u003epycurl\u003c/code\u003e is installed. If you removed\n\u003ccode\u003epycurl\u003c/code\u003e after upgrading to Celery 5.5.0, you will need to reinstall it.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ccode\u003e@auvipy \u0026amp;lt;https://github.com/auvipy\u0026amp;gt;\u003c/code\u003e_ in\n\u003ccode\u003e[#9620](https://github.com/celery/celery/issues/9620) \u0026amp;lt;https://github.com/celery/celery/pull/9620\u0026amp;gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003ch2\u003eSecurity Fix: Broker Credential Leak Prevention\u003c/h2\u003e\n\u003cp\u003eFixed a security issue where broker URLs containing passwords were being logged\nin plaintext by the delayed delivery mechanism. Broker credentials are now\nproperly sanitized in all log output.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ccode\u003e@giancarloromeo \u0026amp;lt;https://github.com/giancarloromeo\u0026amp;gt;\u003c/code\u003e_ in\n\u003ccode\u003e[#9997](https://github.com/celery/celery/issues/9997) \u0026amp;lt;https://github.com/celery/celery/pull/9997\u0026amp;gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003cp\u003eMemory Leak Fixes\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\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 href=\"https://github.com/celery/celery/commit/cca11164860a1bee6ad8626c27a683b482f741eb\"\u003e\u003ccode\u003ecca1116\u003c/code\u003e\u003c/a\u003e Prepare for release: v5.6.0 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10010\"\u003e#10010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/1133f22181bb22223d39c0060973695c6af55643\"\u003e\u003ccode\u003e1133f22\u003c/code\u003e\u003c/a\u003e Bump mypy from 1.14.1 to 1.19.0 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10008\"\u003e#10008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/0932d2c06e001903b90638f7c40a14f5407c9801\"\u003e\u003ccode\u003e0932d2c\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10007\"\u003e#10007\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/b446910f18860531b089d6c39f974265cc24a589\"\u003e\u003ccode\u003eb446910\u003c/code\u003e\u003c/a\u003e Prepare for (pre) release: v5.6.0rc2 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10005\"\u003e#10005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/3f0f0fe7ea6a67a696d0a750644b552559ae368e\"\u003e\u003ccode\u003e3f0f0fe\u003c/code\u003e\u003c/a\u003e asynpool: Don't return from inside a finally block (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10000\"\u003e#10000\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/95d05527c0e1fff5c1a38877ba87592983a7f993\"\u003e\u003ccode\u003e95d0552\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10003\"\u003e#10003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/f32b92f0e481601e9cc9f1212a4feced3f48e1a0\"\u003e\u003ccode\u003ef32b92f\u003c/code\u003e\u003c/a\u003e Add Py39-314t to CI (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9999\"\u003e#9999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/63c1910221d9fb8c1931ff62c80c4c37232b2d58\"\u003e\u003ccode\u003e63c1910\u003c/code\u003e\u003c/a\u003e Don't fail task on timeout during cold shutdown (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9678\"\u003e#9678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/30649dbd41308fc8eef79b2aae179a908eaa7a51\"\u003e\u003ccode\u003e30649db\u003c/code\u003e\u003c/a\u003e Fix log leaking broker credentials (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9997\"\u003e#9997\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/929412e2d4d328e337be3f177ca99fff10ab9bdc\"\u003e\u003ccode\u003e929412e\u003c/code\u003e\u003c/a\u003e Remove Python 4.0 version condition for pytest dependencies (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9993\"\u003e#9993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/celery/celery/compare/v5.5.3...v5.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-allauth[mfa]` from 65.10.0 to 65.13.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sponsors/pennersr/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-crispy-forms` from 2.4 to 2.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/releases\"\u003edjango-crispy-forms's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eConfirmed support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eConfirmed support for Django 6.0.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8.\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 href=\"https://github.com/django-crispy-forms/django-crispy-forms/blob/main/CHANGELOG.md\"\u003edjango-crispy-forms's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.5 (2025-11-06)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eConfirmed support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eConfirmed support for Django 6.0.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8.\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 href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/65fa8ae065638da101851807937bb89ae1b5687e\"\u003e\u003ccode\u003e65fa8ae\u003c/code\u003e\u003c/a\u003e 2.5 Release. (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1424\"\u003e#1424\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/ca4ca14da2aeac3ce934b83861f1b2a558b736fd\"\u003e\u003ccode\u003eca4ca14\u003c/code\u003e\u003c/a\u003e PEP 639 licenses  (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1413\"\u003e#1413\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/aaabe68c0d5a2eee98101ff661b2c5cab28a0777\"\u003e\u003ccode\u003eaaabe68\u003c/code\u003e\u003c/a\u003e Updated pre-commit hook versions.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/125dd1632a460b4dd7b1c8ab0738863d0470c2cb\"\u003e\u003ccode\u003e125dd16\u003c/code\u003e\u003c/a\u003e Pyupgrade 3.9+\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/1f9c8ecc24a3159c86219403ae26e7d0c67e15b7\"\u003e\u003ccode\u003e1f9c8ec\u003c/code\u003e\u003c/a\u003e Confirmed support for Python 3.14, Django. Drop support for Python 3.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/93cb8c8e817870e19a6c426a3e5716ae748a6535\"\u003e\u003ccode\u003e93cb8c8\u003c/code\u003e\u003c/a\u003e Correct names in special thanks section (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1421\"\u003e#1421\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/e327548f80a531bba5ac1049b73108a0681eebf4\"\u003e\u003ccode\u003ee327548\u003c/code\u003e\u003c/a\u003e Added security policy. (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1419\"\u003e#1419\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/64813429d54b39c10d7bb7ad2db4ab0e0e2c418f\"\u003e\u003ccode\u003e6481342\u003c/code\u003e\u003c/a\u003e Enabled GitHub code of conduct (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1416\"\u003e#1416\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/dabd719113c8e7e43fa8d5e254bfa938d169e6e8\"\u003e\u003ccode\u003edabd719\u003c/code\u003e\u003c/a\u003e Add Project Logo. (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1415\"\u003e#1415\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/compare/2.4...2.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-compressor` from 4.5.1 to 4.6.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-compressor/django-compressor/blob/develop/docs/changelog.txt\"\u003edjango-compressor's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003ev4.6 (2025-11-10)\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003eFull list of changes from v4.5.1 \u0026lt;https://github.com/django-compressor/django-compressor/compare/4.5.1...4.6\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed compatibility with latest BS4.\u003c/li\u003e\n\u003cli\u003eRemoved top pin for rcssmin and rjsmin dependencies.\u003c/li\u003e\n\u003cli\u003eAvoid compressing the same node concurrently in offline compression.\u003c/li\u003e\n\u003cli\u003eAvoid use of deprecated ast.Constant.s\u003c/li\u003e\n\u003cli\u003eOfficially support Django 6.0\u003c/li\u003e\n\u003cli\u003eOfficially support Django 5.2\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Django 5.0\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 3.9.\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 3.8.\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 href=\"https://github.com/django-compressor/django-compressor/commit/3ada994897cf982f97fc4c934be42eb1e0b71b9a\"\u003e\u003ccode\u003e3ada994\u003c/code\u003e\u003c/a\u003e Prepare 4.6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/1baa82a6cf6942eb12007217f26195a95df727e2\"\u003e\u003ccode\u003e1baa82a\u003c/code\u003e\u003c/a\u003e Remove CI testing for EOL Django 5.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/8706a52b740e7555abefc8fba1eaae1986ded1a5\"\u003e\u003ccode\u003e8706a52\u003c/code\u003e\u003c/a\u003e Add CI testing for Python 3.14 and Django 6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/7be9ce2cefedf59302207728e383fa7811232d59\"\u003e\u003ccode\u003e7be9ce2\u003c/code\u003e\u003c/a\u003e Bump brotli, lxml, and coverage test dependencies.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/d6fd8136febd1ba409b366c7471db8763522d91d\"\u003e\u003ccode\u003ed6fd813\u003c/code\u003e\u003c/a\u003e Remove test version pinning for rcssmin and rjsmin.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/2b46e7d1724109ebb5db49b76f008dc039f0a9db\"\u003e\u003ccode\u003e2b46e7d\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1307\"\u003e#1307\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/b97bb05836eb6a42d2746d43792e9d13f041b615\"\u003e\u003ccode\u003eb97bb05\u003c/code\u003e\u003c/a\u003e Disable bs4's multi valued attributes (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1296\"\u003e#1296\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/4e5433076300508e1c3648da3345ae606386eb3f\"\u003e\u003ccode\u003e4e54330\u003c/code\u003e\u003c/a\u003e Migrate packaging to pyproject.toml (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1313\"\u003e#1313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/872f8d52ce51957bccf4a91338d177c2ea4a3908\"\u003e\u003ccode\u003e872f8d5\u003c/code\u003e\u003c/a\u003e Remove version pinning for rcssmin and rjsmin (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1312\"\u003e#1312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/cc38666efb13c6e0b355cf273f56b783d7157e29\"\u003e\u003ccode\u003ecc38666\u003c/code\u003e\u003c/a\u003e Drop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1311\"\u003e#1311\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-compressor/django-compressor/compare/4.5.1...4.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uwsgi` from 2.0.30 to 2.0.31\n\nUpdates `easy-thumbnails[svg]` from 2.10 to 2.10.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/blob/master/CHANGES.rst\"\u003eeasy-thumbnails[svg]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.10.1 (2025-08-17)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Django-5.2.\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 href=\"https://github.com/SmileyChris/easy-thumbnails/commit/208f672ab53e3c7596c966b5282e64ed9747a3e4\"\u003e\u003ccode\u003e208f672\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/SmileyChris/easy-thumbnails/issues/664\"\u003e#664\u003c/a\u003e from SmileyChris/jrief-patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/318a2847391bb0e3fdc0a17a52af49a5851b53c9\"\u003e\u003ccode\u003e318a284\u003c/code\u003e\u003c/a\u003e Update CHANGES.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/0989a40226197b78bfa47939e44017bedea564fa\"\u003e\u003ccode\u003e0989a40\u003c/code\u003e\u003c/a\u003e version 2.10.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/3b86790c40788ebf9ce0cb66f529d745abe715b5\"\u003e\u003ccode\u003e3b86790\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/SmileyChris/easy-thumbnails/issues/663\"\u003e#663\u003c/a\u003e from tomkins/django-5.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/221679530109e5f92b2ad4d3e25f759d6dd90ced\"\u003e\u003ccode\u003e2216795\u003c/code\u003e\u003c/a\u003e Drop support for Django 5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/2cf9af0d7dc341ccaaabc79500033584aae88fbb\"\u003e\u003ccode\u003e2cf9af0\u003c/code\u003e\u003c/a\u003e Add support for Django 5.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/4957daa823a8ee17a90859281c2d93b06930e6fa\"\u003e\u003ccode\u003e4957daa\u003c/code\u003e\u003c/a\u003e Drop py38 from Django 4.2 testing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/21759697b0b5b600e6ebd5cce336a7d25f94099b\"\u003e\u003ccode\u003e2175969\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/SmileyChris/easy-thumbnails/issues/654\"\u003e#654\u003c/a\u003e from ArcaniteSolutions/fix-remote-storages-location-l...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/26351108ed706721492e606fe4ff51179d8a4844\"\u003e\u003ccode\u003e2635110\u003c/code\u003e\u003c/a\u003e check storage has location before fixing path\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/9d6fe6632ba4f175e9f4ad61eb4b3457b8124711\"\u003e\u003ccode\u003e9d6fe66\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/SmileyChris/easy-thumbnails/issues/650\"\u003e#650\u003c/a\u003e from benkonrath/python-3.13\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/compare/2.10.0...2.10.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-cms` from 5.0.2 to 5.0.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-cms/django-cms/releases\"\u003edjango-cms's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.0.5\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Searching pages for language-specific content failed due to wrong serach queryset (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8355\"\u003e#8355\u003c/a\u003e) by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8358\"\u003edjango-cms/django-cms#8358\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Fix default value for edit_fields parameter to avoid AttributeError by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8381\"\u003edjango-cms/django-cms#8381\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: avoid escaping (= stringify) None-values in PageAttribute template tag by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8384\"\u003edjango-cms/django-cms#8384\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Copying x-language lead to unique constraint violation (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8366\"\u003e#8366\u003c/a\u003e) by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8386\"\u003edjango-cms/django-cms#8386\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Ensure edit endpoint language selection when admin is not using i18n_patterns (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8367\"\u003e#8367\u003c/a\u003e) by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8390\"\u003edjango-cms/django-cms#8390\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Build release 5.0.5 by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8391\"\u003edjango-cms/django-cms#8391\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-cms/django-cms/compare/5.0.4...5.0.5\"\u003ehttps://github.com/django-cms/django-cms/compare/5.0.4...5.0.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Wrong placeholders rendered when using apphooks with own placeholders (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8343\"\u003e#8343\u003c/a\u003e) by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8348\"\u003edjango-cms/django-cms#8348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Prepare release 5.0.4 by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8352\"\u003edjango-cms/django-cms#8352\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-cms/django-cms/compare/5.0.3...5.0.4\"\u003ehttps://github.com/django-cms/django-cms/compare/5.0.3...5.0.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: Django 6 compatibility (July 2025) by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8302\"\u003edjango-cms/django-cms#8302\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: Add documentation for toolbar get_object and set_object methods by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8314\"\u003edjango-cms/django-cms#8314\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Respect individual placeholder checks if they can be changed (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8317\"\u003e#8317\u003c/a\u003e) by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8318\"\u003edjango-cms/django-cms#8318\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Cut children from inactive menu nodes when level is less or equal to 0 (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8322\"\u003e#8322\u003c/a\u003e) by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8324\"\u003edjango-cms/django-cms#8324\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: copy lang management command - include PageUrl (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/7548\"\u003e#7548\u003c/a\u003e) by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8335\"\u003edjango-cms/django-cms#8335\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Optimize placeholder and plugin utilities by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8337\"\u003edjango-cms/django-cms#8337\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Migration 0033 failed when empty placeholder objects were not present in the db by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8339\"\u003edjango-cms/django-cms#8339\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Build 5.0.3 release by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8341\"\u003edjango-cms/django-cms#8341\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-cms/django-cms/compare/5.0.2...5.0.3\"\u003ehttps://github.com/django-cms/django-cms/compare/5.0.2...5.0.3\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 href=\"https://github.com/django-cms/django-cms/blob/5.0.5/CHANGELOG.rst\"\u003edjango-cms's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.0.5 (2025-11-12)\u003c/h1\u003e\n\u003ch2\u003eBug Fixes:\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePin language of toolbar update to the request language\u003c/li\u003e\n\u003cli\u003eEnsure edit endpoint language selection when admin is not using i18n_patterns (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8367\"\u003e#8367\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8390\"\u003e#8390\u003c/a\u003e) (9e00f694e) -- Fabian Braun\u003c/li\u003e\n\u003cli\u003eCopying x-language lead to unique constraint violation (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8366\"\u003e#8366\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8386\"\u003e#8386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid escaping (= stringify) None-values in PageAttribute-TemplateTag (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8375\"\u003e#8375\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8384\"\u003e#8384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSet default value for edit_fields parameter to avoid AttributeError (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8381\"\u003e#8381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLink syntax in welcome.html\u003c/li\u003e\n\u003cli\u003eSearching pages for language-specific content failed due to wrong search queryset (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8355\"\u003e#8355\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8358\"\u003e#8358\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eStatistics:\u003c/h2\u003e\n\u003cp\u003eThis release includes 5 pull requests, and was created with the help of the following contributors (in alphabetical order):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFabian Braun (7 pull requests)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWith the review help of the following contributors:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVinit Kumar\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to all contributors for their efforts!\u003c/p\u003e\n\u003ch1\u003e5.0.4 (2025-10-03)\u003c/h1\u003e\n\u003ch2\u003eBug Fixes:\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWrong placeholders rendered when using apphooks with own placeholders (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8343\"\u003e#8343\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8348\"\u003e#8348\u003c/a\u003e) (775392390) -- Fabian Braun\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eStatistics:\u003c/h2\u003e\n\u003cp\u003eThis release includes 1 pull request, and was created with the help of the following contributors (in alphabetical order):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFabian Braun (1 pull request)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWith the review help of the following contributors:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVinit Kumar\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to all contributors for their efforts!\u003c/p\u003e\n\u003ch1\u003e5.0.3 (2025-09-17)\u003c/h1\u003e\n\u003cp\u003eBug Fixes:\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 href=\"https://github.com/django-cms/django-cms/commit/6e970e6c4894ecd1459fedc6f2c00617a923a740\"\u003e\u003ccode\u003e6e970e6\u003c/code\u003e\u003c/a\u003e chore: Build release 5.0.5 (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8391\"\u003e#8391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/9e00f694ee0afe637521177a139d69a02d752f7f\"\u003e\u003ccode\u003e9e00f69\u003c/code\u003e\u003c/a\u003e fix: Ensure edit endpoint language selection when admin is not using i18n_pat...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/e6d0f76703afd154b2319a0b9e3b50e9330805bf\"\u003e\u003ccode\u003ee6d0f76\u003c/code\u003e\u003c/a\u003e fix: Copying x-language lead to unique constraint violation (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8366\"\u003e#8366\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8386\"\u003e#8386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/3990cfb37913e72d55780c3886445b4e75bdea78\"\u003e\u003ccode\u003e3990cfb\u003c/code\u003e\u003c/a\u003e Fix: avoid escaping (= stringify) None-values in PageAttribute-TemplateTag (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/80a19fdf550fab528cdc1c2634076de22e9497ad\"\u003e\u003ccode\u003e80a19fd\u003c/code\u003e\u003c/a\u003e fix: Fix default value for edit_fields parameter to avoid AttributeError (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8381\"\u003e#8381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/6f63ebf05e12c86512b8b084b615b1011c581708\"\u003e\u003ccode\u003e6f63ebf\u003c/code\u003e\u003c/a\u003e fix: link syntax in welcome.html\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/1ff46f7e1c3284eae9749497a76656afc8f8c302\"\u003e\u003ccode\u003e1ff46f7\u003c/code\u003e\u003c/a\u003e fix: Searching pages for language-specific content failed due to wrong serach...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/ed3a004b62ee69f099b0f647dd33778ba0b0d1fb\"\u003e\u003ccode\u003eed3a004\u003c/code\u003e\u003c/a\u003e chore: Prepare release 5.0.4 (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8352\"\u003e#8352\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/775392390eea0ffcdeccb0d21306d6e34fb859df\"\u003e\u003ccode\u003e7753923\u003c/code\u003e\u003c/a\u003e fix: Wrong placeholders rendered when using apphooks with own placeholders (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/cb8bdcecf623e125ea789a0551279a3dc0152deb\"\u003e\u003ccode\u003ecb8bdce\u003c/code\u003e\u003c/a\u003e chore: Build 5.0.3 release (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8341\"\u003e#8341\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-cms/django-cms/compare/5.0.2...5.0.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `djangocms-versioning` from 2.4.0 to 2.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-cms/djangocms-versioning/releases\"\u003edjangocms-versioning's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.5.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Fix typo in permission name by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/476\"\u003edjango-cms/djangocms-versioning#476\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Remove unnecessary \u003ccode\u003e_original_manager\u003c/code\u003e usage from toolbar by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/477\"\u003edjango-cms/djangocms-versioning#477\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/checkout from 4 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/482\"\u003edjango-cms/djangocms-versioning#482\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/cache from 4.2.3 to 4.2.4 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/481\"\u003edjango-cms/djangocms-versioning#481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/cache from 4.2.4 to 4.3.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/485\"\u003edjango-cms/djangocms-versioning#485\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/setup-python from 5 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/484\"\u003edjango-cms/djangocms-versioning#484\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump github/codeql-action from 3 to 4 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/487\"\u003edjango-cms/djangocms-versioning#487\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Respect site-specific language configurations by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/480\"\u003edjango-cms/djangocms-versioning#480\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Respect permissions for indicator menus and version locking by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/493\"\u003edjango-cms/djangocms-versioning#493\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Modernize JS build, remove jQuery bundle by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/492\"\u003edjango-cms/djangocms-versioning#492\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eModernize Python and Django support: Drop Python 3.9, add Python 3.14 and Django 6.0 by \u003ca href=\"https://github.com/vinitkumar\"\u003e\u003ccode\u003e@​vinitkumar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/489\"\u003edjango-cms/djangocms-versioning#489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/setup-node from 4 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/494\"\u003edjango-cms/djangocms-versioning#494\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump astral-sh/setup-uv from 5 to 7 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/495\"\u003edjango-cms/djangocms-versioning#495\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Update locales by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/497\"\u003edjango-cms/djangocms-versioning#497\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdates for file djangocms_versioning/locale/en/LC_MESSAGES/django.po in de by \u003ca href=\"https://github.com/transifex-integration\"\u003e\u003ccode\u003e@​transifex-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/496\"\u003edjango-cms/djangocms-versioning#496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[BUG FIX] Language menu is showing despite only one language configured by \u003ca href=\"https://github.com/va-lang\"\u003e\u003ccode\u003e@​va-lang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/491\"\u003edjango-cms/djangocms-versioning#491\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=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/476\"\u003edjango-cms/djangocms-versioning#476\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vinitkumar\"\u003e\u003ccode\u003e@​vinitkumar\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/489\"\u003edjango-cms/djangocms-versioning#489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/va-lang\"\u003e\u003ccode\u003e@​va-lang\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/491\"\u003edjango-cms/djangocms-versioning#491\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-cms/djangocms-versioning/compare/2.4.0...2.5.0\"\u003ehttps://github.com/django-cms/djangocms-versioning/compare/2.4.0...2.5.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 href=\"https://github.com/django-cms/djangocms-versioning/blob/master/CHANGELOG.rst\"\u003edjangocms-versioning's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.5.0 (2025-11-14)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efeat: Language menu allows creating new translations from preview mode by \u003ca href=\"https://github.com/va-lang\"\u003e\u003ccode\u003e@​va-lang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/491\"\u003edjango-cms/djangocms-versioning#491\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Modernize Python and Django support: Drop Python 3.9, add Python 3.14 and Django 6.0 by \u003ca href=\"https://github.com/vinitkumar\"\u003e\u003ccode\u003e@​vinitkumar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/489\"\u003edjango-cms/djangocms-versioning#489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Updates for file djangocms_versioning/locale/en/LC_MESSAGES/django.po in de by \u003ca href=\"https://github.com/transifex-integration\"\u003e\u003ccode\u003e@​transifex-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/496\"\u003edjango-cms/djangocms-versioning#496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Swap django-fsm with django-fsm-2\u003c/li\u003e\n\u003cli\u003efix: Typo in permission name by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/476\"\u003edjango-cms/djangocms-versioning#476\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Remove unnecessary \u003ccode\u003e_original_manager\u003c/code\u003e usage from toolbar by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/477\"\u003edjango-cms/djangocms-versioning#477\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Respect site-specific language configurations by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/480\"\u003edjango-cms/djangocms-versioning#480\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Respect permissions for indicator menus and version locking by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/493\"\u003edjango-cms/djangocms-versioning#493\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eNew Contributors\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/476\"\u003edjango-cms/djangocms-versioning#476\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vinitkumar\"\u003e\u003ccode\u003e@​vinitkumar\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/489\"\u003edjango-cms/djangocms-versioning#489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/va-lang\"\u003e\u003ccode\u003e@​va-lang\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/491\"\u003edjango-cms/djangocms-versioning#491\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 href=\"https://github.com/django-cms/djangocms-versioning/commit/da78ec1adc34f37ccfe9780a30c858b89f7637fe\"\u003e\u003ccode\u003eda78ec1\u003c/code\u003e\u003c/a\u003e chore: Prepare release 2.5.0 (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/issues/500\"\u003e#500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-versioning/commit/08df487169f44e7710f18155a9d5d02d32531e4c\"\u003e\u003ccode\u003e08df487\u003c/code\u003e\u003c/a\u003e chore: Simplified requirements_dev.txt file for tests (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/issues/499\"\u003e#499\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-versioning/commit/e2e5e8d3ab1ee07b4f1dd2c7518441f6e6038c21\"\u003e\u003ccode\u003ee2e5e8d\u003c/code\u003e\u003c/a\u003e [BUG FIX] Language menu is showing despite only one language configured (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/issues/491\"\u003e#491\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-versioning/commit/d90268d6ee31dd7f9e80df804ab9ad5a2df68c2b\"\u003e\u003ccode\u003ed90268d\u003c/code\u003e\u003c/a\u003e Translate django.po in de (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/issues/496\"\u003e#496\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-versioning/commit/bc3cbc10ff12106836da1a1ee51c8283b9d726cc\"\u003e\u003ccode\u003ebc3cbc1\u003c/code\u003e\u003c/a\u003e chore: Update locales (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/issues/497\"\u003e#497\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-versioning/commit/d111df897067a31fe8dca7b88773ae0ca9fba397\"\u003e\u003ccode\u003ed111df8\u003c/code\u003e\u003c/a\u003e build(deps): bump astral-sh/setup-uv from 5 to 7 (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/issues/495\"\u003e#495\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-versioning/commit/dc24f2604420f46c1203aa8a06a9dc948eceadd3\"\u003e\u003ccode\u003edc24f26\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-node from 4 to 6 (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/issues/494\"\u003e#494\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-versioning/commit/a0db3dea7aaf838376be6809fe9870ad7eee3205\"\u003e\u003ccode\u003ea0db3de\u003c/code\u003e\u003c/a\u003e Modernize Python and Django support: Drop Python 3.9, add Python 3.14 and Dja...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-versioning/commit/27abc23b5157a3cb6d18cfb2bdaaa61eb24a284d\"\u003e\u003ccode\u003e27abc23\u003c/code\u003e\u003c/a\u003e chore: Modernize JS build, remove jQuery bundle (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/issues/492\"\u003e#492\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-versioning/commit/29b3955871676bf69bd59154ff8125378ecca287\"\u003e\u003ccode\u003e29b3955\u003c/code\u003e\u003c/a\u003e fix: Respect permissions for indicator menus and version locking (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/issues/493\"\u003e#493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-cms/djangocms-versioning/compare/2.4.0...2.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-entangled` from 0.6.3 to 0.7\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jrief/django-entangled/blob/master/CHANGELOG.md\"\u003edjango-entangled's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.7\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Django 5.2.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.13.\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 href=\"https://github.com/jrief/django-entangled/commit/734bd8f8b316663a1f31d4fa7e9248a955baea21\"\u003e\u003ccode\u003e734bd8f\u003c/code\u003e\u003c/a\u003e Bump to version 0.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jrief/django-entangled/commit/fcad6c824be14d052456df759e23bc4b44646d3e\"\u003e\u003ccode\u003efcad6c8\u003c/code\u003e\u003c/a\u003e Add support for Django-5.2 and Python 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jrief/django-entangled/commit/a89b615cafcdbb939d71fb34dc30253d2dcf5c00\"\u003e\u003ccode\u003ea89b615\u003c/code\u003e\u003c/a\u003e Propagate django-formset\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/jrief/django-entangled/compare/0.6.3...0.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `djangocms-text` from 0.9.2 to 0.9.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-cms/djangocms-text/releases\"\u003edjangocms-text's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.9.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Fixed issues for non-CMS installations and added test coverage for non-CMS installations by \u003ca href=\"https://github.com/Grosskopf\"\u003e\u003ccode\u003e@​Grosskopf\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/119\"\u003edjango-cms/djangocms-text#119\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Respect plugin language for link field by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/113\"\u003edjango-cms/djangocms-text#113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/114\"\u003edjango-cms/djangocms-text#114\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/checkout from 4 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/115\"\u003edjango-cms/djangocms-text#115\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=\"https://github.com/Grosskopf\"\u003e\u003ccode\u003e@​Grosskopf\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/119\"\u003edjango-cms/djangocms-text#119\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-cms/djangocms-text/compare/0.9.2...0.9.3\"\u003ehttps://github.com/django-cms/djangocms-text/compare/0.9.2...0.9.3\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 href=\"https://github.com/django-cms/djangocms-text/blob/main/CHANGELOG.rst\"\u003edjangocms-text's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e0.9.3 (22-08-2025)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix: Fixed issues for non-CMS installations and added test coverage for non-CMS installations by \u003ca href=\"https://github.com/Grosskopf\"\u003e\u003ccode\u003e@​Grosskopf\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/119\"\u003edjango-cms/djangocms-text#119\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Respect plugin language for link field by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/113\"\u003edjango-cms/djangocms-text#113\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/Grosskopf\"\u003e\u003ccode\u003e@​Grosskopf\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/119\"\u003edjango-cms/djangocms-text#119\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 href=\"https://github.com/django-cms/djangocms-text/commit/23c8c5b276547459db18fad7bd2b45bf978c2d4b\"\u003e\u003ccode\u003e23c8c5b\u003c/code\u003e\u003c/a\u003e chore: Prepare release 0.9.3 (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/issues/120\"\u003e#120\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-text/commit/070dc3bff81b6aaad57b34bbbdce905a9a753fef\"\u003e\u003ccode\u003e070dc3b\u003c/code\u003e\u003c/a\u003e fix: Fixed issues for non-CMS installations and added test coverage for non-C...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-text/commit/d23c7830b72afd3d143bbd54dc5c3e25c7a844a7\"\u003e\u003ccode\u003ed23c783\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/issues/115\"\u003e#115\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-text/commit/4c78ee95ac529d9444a0c0342c41fe06c5edf9c1\"\u003e\u003ccode\u003e4c78ee9\u003c/code\u003e\u003c/a\u003e Merge branch 'main' of github.com:django-cms/djangocms-text\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-text/commit/d13df72a07522f1e1f84a50a4448a3ecde4bef65\"\u003e\u003ccode\u003ed13df72\u003c/code\u003e\u003c/a\u003e feat: node 24\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-text/commit/cf7b3b82f92999bb9297b213844696374f524937\"\u003e\u003ccode\u003ecf7b3b8\u003c/code\u003e\u003c/a\u003e ci: pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/issues/114\"\u003e#114\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-text/commit/5fa6205a5910b34334bdb14744f59b62a275a09e\"\u003e\u003ccode\u003e5fa6205\u003c/code\u003e\u003c/a\u003e Update comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-text/commit/79568c6b98a6e4adda9f84b84aa016254db60481\"\u003e\u003ccode\u003e79568c6\u003c/code\u003e\u003c/a\u003e fix: Respect plugin language for link field (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/issues/113\"\u003e#113\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/django-cms/djangocms-text/compare/0.9.2...0.9.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `djangocms-frontend` from 2.1.4 to 2.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-cms/djangocms-frontend/releases\"\u003edjangocms-frontend's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.2.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eci:(deps): bump actions/cache from 4.2.3 to 4.2.4 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-frontend/pull/297\"\u003edjango-cms/djangocms-frontend#297\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Only partially functional preview removed, CSS and JS refactor by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-frontend/pull/301\"\u003edjango-cms/djangocms-frontend#301\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Button group too condensed when using djangocms-admin-style by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-frontend/pull/303\"\u003edjango-cms/djangocms-frontend#303\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-cms/djangocms-frontend/compare/2.1.4...2.2.0\"\u003ehttps://github.com/django-cms/djangocms-frontend/compare/2.1.4...2.2.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 href=\"https://github.com/django-cms/djangocms-frontend/blob/main/CHANGELOG.rst\"\u003edjangocms-frontend's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.2.0 (2025-08-16)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efeat: Refactored CSS for faster and more reliable loading by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Removed link and button preview\u003c/li\u003e\n\u003cli\u003efix: Some UI Components were not discovered by the \u003ccode\u003e{% plugin %}\u003c/code\u003e template tag in django CMS 5\u003c/li\u003e\n\u003cli\u003efix: Restored Python 3.9 compatibility\u003c/li\u003e\n\u003cli\u003echore: Update node version\u003c/li\u003e\n\u003cli\u003echore: Remove bootstrap dependency\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 href=\"https://github.com/django-cms/djangocms-frontend/commit/6ec69a0c7fa36165e9bc3d5cfa333d60422985bf\"\u003e\u003ccode\u003e6ec69a0\u003c/code\u003e\u003c/a\u003e fix: Button group too condensed when using djangocms-admin-style (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-frontend/issues/303\"\u003e#303\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/662b357e8ad4642f18a73874eceac899a26ede66\"\u003e\u003ccode\u003e662b357\u003c/code\u003e\u003c/a\u003e fix: Docs references \u003ccode\u003efrontend_tags\u003c/code\u003e instead of \u003ccode\u003efrontend\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/5135e527beb741446f626e4c0c116f2e146c7667\"\u003e\u003ccode\u003e5135e52\u003c/code\u003e\u003c/a\u003e chore: Update LICENSE\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/b84bab7439442345ea8db89145a1079e4ba871bf\"\u003e\u003ccode\u003eb84bab7\u003c/code\u003e\u003c/a\u003e feat: Only partially functional preview removed, CSS and JS refactor (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-frontend/issues/301\"\u003e#301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/554418c1d4642279bef6e601ae2297ff5d634ba0\"\u003e\u003ccode\u003e554418c\u003c/code\u003e\u003c/a\u003e ci:(deps): bump actions/cache from 4.2.3 to 4.2.4 (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-frontend/issues/297\"\u003e#297\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/53a958051b6f475a3df3e48131956db0eed72d5e\"\u003e\u003ccode\u003e53a9580\u003c/code\u003e\u003c/a\u003e fix: typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/5f8829b6e5adbdf4689cc3747756e7ff4ae86dc1\"\u003e\u003ccode\u003e5f8829b\u003c/code\u003e\u003c/a\u003e Merge branch 'main' of github.com:django-cms/djangocms-frontend\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/b3a0eb6afc484c63520a2166dccff47ca0ec653e\"\u003e\u003ccode\u003eb3a0eb6\u003c/code\u003e\u003c/a\u003e fix: Python 3.9 support for plugin_tag.py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/4d3a3cf60485a9d17292a24db7654b75c19a1be9\"\u003e\u003ccode\u003e4d3a3cf\u003c/code\u003e\u003c/a\u003e fix test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/453e4c29d928076a3bf8c9e52b5a2f1f2e692231\"\u003e\u003ccode\u003e453e4c2\u003c/code\u003e\u003c/a\u003e chore: add test for py 3.9\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-cms/djangocms-frontend/compare/2.1.4...2.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `djangocms-attributes-field` from 4.1.1 to 4.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-cms/djangocms-attributes-field/releases\"\u003edjangocms-attributes-field's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.1.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Add min-height to attributes pair buttons by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-attributes-field/pull/62\"\u003edjango-cms/djangocms-attributes-field#62\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-cms/djangocms-attributes-field/compare/4.1.1...4.1.2\"\u003ehttps://github.com/django-cms/djangocms-attributes-field/compare/4.1.1...4.1.2\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 href=\"https://github.com/django-cms/djangocms-attributes-field/blob/master/CHANGELOG.rst\"\u003edjangocms-attributes-field's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.1.2 (2025-11.02)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix: Add min-height to add link for unstyled Django admin\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 href=\"https://github.com/django-cms/djangocms-attributes-field/commit/9adbde46e3c1bd52fd297cbbf9475e4da01cbba4\"\u003e\u003ccode\u003e9adbde4\u003c/code\u003e\u003c/a\u003e fix: Add min-height to attributes pair buttons (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-attributes-field/issues/62\"\u003e#62\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/django-cms/djangocms-attributes-field/compare/4.1.1...4.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `svglib` from 1.5.1 to 1.6.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/deeplook/svglib/blob/main/CHANGELOG.rst\"\u003esvglib's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.6.0 (2025-09-25)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplace setup.py with pyproject.toml, rework GitHub workflows (\u003ca href=\"https://redirect.github.com/deeplook/svglib/issues/405\"\u003e#405\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003cli\u003eModernize codebase, added type annotations, expanded docstrings, etc.\u003c/li\u003e\n\u003cli\u003eAdd a Makefile.\u003c/li\u003e\n\u003cli\u003eAdd publishing workflows.\u003c/li\u003e\n\u003cli\u003eRemove dunder constants and use importlib.metadata to get the version number.\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 href=\"https://github.com/deeplook/svglib/commit/1dce6584fb40de115479da10880dbf3b75cda955\"\u003e\u003ccode\u003e1dce658\u003c/code\u003e\u003c/a\u003e Expanded many docstrings, sanitized pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deeplook/svglib/commit/4c69f45919b181b98ebeb2614f84797217efd759\"\u003e\u003ccode\u003e4c69f45\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/deeplook/svglib/issues/412\"\u003e#412\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deeplook/svglib/commit/35a69b9af1eafbec5e4ff8eb759de7a506c4a83f\"\u003e\u003ccode\u003e35a69b9\u003c/code\u003e\u003c/a\u003e Fix format complaints\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deeplook/svglib/commit/d7eec2d2deef3a6ec5993854e0af679d4bd866f0\"\u003e\u003ccode\u003ed7eec2d\u003c/code\u003e\u003c/a\u003e Add workflow to publish on pypi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deeplook/svglib/commit/7bbbd33be99a75da97b4179935eec2dfdb64f9c0\"\u003e\u003ccode\u003e7bbbd33\u003c/code\u003e\u003c/a\u003e Fix underlines for publishing workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deeplook/svglib/commit/5bb73b8dea39a0058f6427b06ad246b09771057f\"\u003e\u003ccode\u003e5bb73b8\u003c/code\u003e\u003c/a\u003e Add workflow to publish on test.pypi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deeplook/svglib/commit/8eb422db6ec7ebeb22b69a14c3fff328c4b292ad\"\u003e\u003ccode\u003e8eb422d\u003c/code\u003e\u003c/a\u003e Fix PIL-related warning (\u003ca href=\"https://redirect.github.com/deeplook/svglib/issues/411\"\u003e#411\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deeplook/svglib/commit/3237aa1e75d1d0e924afddd4386f7f0015cfac79\"\u003e\u003ccode\u003e3237aa1\u003c/code\u003e\u003c/a\u003e Add type-checking (\u003ca href=\"https://redirect.github.com/deeplook/svglib/issues/410\"\u003e#410\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deeplook/svglib/commit/7eb6c774e73297c116f3c870c4ec4a448e7363a2\"\u003e\u003ccode\u003e7eb6c77\u003c/code\u003e\u003c/a\u003e Modernize code (\u003ca href=\"https://redirect.github.com/deeplook/svglib/issues/408\"\u003e#408\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deeplook/svglib/commit/7e9e92df52cefd5db9c73d142b9133944fd5067e\"\u003e\u003ccode\u003e7e9e92d\u003c/code\u003e\u003c/a\u003e Mention minimum supported Python version is 3.9\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/deeplook/svglib/compare/v1.5.1...v1.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `reportlab` from 4.4.3 to 4.4.6\n\nUpdates `django-filer` from 3.3.1 to 3.4.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-cms/django-filer/releases\"\u003edjango-filer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.4.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: add bundles to distribution by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1557\"\u003edjango-cms/django-filer#1557\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-cms/django-filer/compare/3.4.0...3.4.1\"\u003ehttps://github.com/django-cms/django-filer/compare/3.4.0...3.4.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.4.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: preserve \u0026quot;limit search to folder\u0026quot; state in pagination links \u003ca href=\"https://redirect.github.com/django-cms/django-filer/issues/1553\"\u003e#1553\u003c/a\u003e by \u003ca href=\"https://github.com/benzkji\"\u003e\u003ccode\u003e@​benzkji\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1555\"\u003edjango-cms/django-filer#1555\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Bundle js files, remove jQuery, and static ...\n\n_Description has been truncated_","html_url":"https://github.com/maxnoelp2/coolify-template/pull/106","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/maxnoelp2%2Fcoolify-template/issues/106","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/106/packages"},{"uuid":"3697921715","node_id":"PR_kwDODRkoPc63PaIn","number":1792,"state":"open","title":"Bump the production-dependencies group with 20 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-12-05T08:13:24.000Z","updated_at":"2025-12-19T12:30:53.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"production-dependencies","update_count":20,"packages":[{"name":"flask","old_version":"3.1.1","new_version":"3.1.2","repository_url":"https://github.com/pallets/flask"},{"name":"google-cloud-datastore","old_version":"2.20.2","new_version":"2.21.0","repository_url":"https://github.com/googleapis/python-datastore"},{"name":"grpcio","old_version":"1.71.0","new_version":"1.76.0","repository_url":"https://github.com/grpc/grpc"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"structlog","old_version":"25.2.0","new_version":"25.5.0","repository_url":"https://github.com/hynek/structlog"},{"name":"boto3","old_version":"1.37.23","new_version":"1.42.3","repository_url":"https://github.com/boto/boto3"},{"name":"humanize","old_version":"4.12.2","new_version":"4.14.0","repository_url":"https://github.com/python-humanize/humanize"},{"name":"marshmallow","old_version":"3.26.1","new_version":"4.1.0","repository_url":"https://github.com/marshmallow-code/marshmallow"},{"name":"google-cloud-storage","old_version":"3.1.0","new_version":"3.6.0","repository_url":"https://github.com/googleapis/python-storage"},{"name":"redis","old_version":"6.4.0","new_version":"7.1.0","repository_url":"https://github.com/redis/redis-py"},{"name":"flask-compress","old_version":"1.17","new_version":"1.23","repository_url":"https://github.com/colour-science/flask-compress"},{"name":"uwsgi","old_version":"2.0.28","new_version":"2.0.31"},{"name":"email-validator","old_version":"2.2.0","new_version":"2.3.0","repository_url":"https://github.com/JoshData/python-email-validator"},{"name":"google-cloud-pubsub","old_version":"2.29.0","new_version":"2.33.0","repository_url":"https://github.com/googleapis/python-pubsub"},{"name":"google-cloud-tasks","old_version":"2.19.2","new_version":"2.20.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"simplejson","old_version":"3.20.1","new_version":"3.20.2","repository_url":"https://github.com/simplejson/simplejson"},{"name":"markupsafe","old_version":"3.0.2","new_version":"3.0.3","repository_url":"https://github.com/pallets/markupsafe"},{"name":"cachetools","old_version":"5.5.2","new_version":"6.2.2","repository_url":"https://github.com/tkem/cachetools"},{"name":"gevent","old_version":"24.11.1","new_version":"25.9.1","repository_url":"https://github.com/gevent/gevent"}],"path":null,"ecosystem":"pip"},"body":"Bumps the production-dependencies group with 20 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [flask](https://github.com/pallets/flask) | `3.1.1` | `3.1.2` |\n| [google-cloud-datastore](https://github.com/googleapis/python-datastore) | `2.20.2` | `2.21.0` |\n| [grpcio](https://github.com/grpc/grpc) | `1.71.0` | `1.76.0` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [structlog](https://github.com/hynek/structlog) | `25.2.0` | `25.5.0` |\n| [boto3](https://github.com/boto/boto3) | `1.37.23` | `1.42.3` |\n| [humanize](https://github.com/python-humanize/humanize) | `4.12.2` | `4.14.0` |\n| [marshmallow](https://github.com/marshmallow-code/marshmallow) | `3.26.1` | `4.1.0` |\n| [google-cloud-storage](https://github.com/googleapis/python-storage) | `3.1.0` | `3.6.0` |\n| [redis](https://github.com/redis/redis-py) | `6.4.0` | `7.1.0` |\n| [flask-compress](https://github.com/colour-science/flask-compress) | `1.17` | `1.23` |\n| [uwsgi](https://uwsgi-docs.readthedocs.io/en/latest/) | `2.0.28` | `2.0.31` |\n| [email-validator](https://github.com/JoshData/python-email-validator) | `2.2.0` | `2.3.0` |\n| [google-cloud-pubsub](https://github.com/googleapis/python-pubsub) | `2.29.0` | `2.33.0` |\n| [google-cloud-tasks](https://github.com/googleapis/google-cloud-python) | `2.19.2` | `2.20.0` |\n| [simplejson](https://github.com/simplejson/simplejson) | `3.20.1` | `3.20.2` |\n| [markupsafe](https://github.com/pallets/markupsafe) | `3.0.2` | `3.0.3` |\n| [cachetools](https://github.com/tkem/cachetools) | `5.5.2` | `6.2.2` |\n| [gevent](https://github.com/gevent/gevent) | `24.11.1` | `25.9.1` |\n\nUpdates `flask` from 3.1.1 to 3.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/flask/releases\"\u003eflask's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.1.2\u003c/h2\u003e\n\u003cp\u003eThis is the Flask 3.1.2 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/Flask/3.1.2/\"\u003ehttps://pypi.org/project/Flask/3.1.2/\u003c/a\u003e\nChanges: \u003ca href=\"https://flask.palletsprojects.com/page/changes/#version-3-1-2\"\u003ehttps://flask.palletsprojects.com/page/changes/#version-3-1-2\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/flask/milestone/38?closed=1\"\u003ehttps://github.com/pallets/flask/milestone/38?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003estream_with_context\u003c/code\u003e does not fail inside async views. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5774\"\u003e#5774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen using \u003ccode\u003efollow_redirects\u003c/code\u003e in the test client, the final state of \u003ccode\u003esession\u003c/code\u003e is correct. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5786\"\u003e#5786\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelax type hint for passing bytes IO to \u003ccode\u003esend_file\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5776\"\u003e#5776\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 href=\"https://github.com/pallets/flask/blob/main/CHANGES.rst\"\u003eflask's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.1.2\u003c/h2\u003e\n\u003cp\u003eReleased 2025-08-19\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003estream_with_context\u003c/code\u003e does not fail inside async views. :issue:\u003ccode\u003e5774\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eWhen using \u003ccode\u003efollow_redirects\u003c/code\u003e in the test client, the final state\nof \u003ccode\u003esession\u003c/code\u003e is correct. :issue:\u003ccode\u003e5786\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRelax type hint for passing bytes IO to \u003ccode\u003esend_file\u003c/code\u003e. :issue:\u003ccode\u003e5776\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 href=\"https://github.com/pallets/flask/commit/2c1b30d0503cfb064f1cb252e6614a06915a362a\"\u003e\u003ccode\u003e2c1b30d\u003c/code\u003e\u003c/a\u003e release version 3.1.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/1292419ddfc6a14fc7f85b5ed7efcc2d215f1ad3\"\u003e\u003ccode\u003e1292419\u003c/code\u003e\u003c/a\u003e Update GitHub Actions workflow for artifact handling (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5795\"\u003e#5795\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/4dd52ca9c768c9b6d04180f0547d6f4b6e34f211\"\u003e\u003ccode\u003e4dd52ca\u003c/code\u003e\u003c/a\u003e Update GitHub Actions workflow for artifact handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/55c62556571ee46a94da174643b50ece06edead4\"\u003e\u003ccode\u003e55c6255\u003c/code\u003e\u003c/a\u003e update dev dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/d8259eb11900285af9b80b0fa47f841174c054e3\"\u003e\u003ccode\u003ed8259eb\u003c/code\u003e\u003c/a\u003e use Jinja name consistently\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/38b4c1e19b50494cfcdc9332899e09b7fed34979\"\u003e\u003ccode\u003e38b4c1e\u003c/code\u003e\u003c/a\u003e refactor stream_with_context for async views (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5799\"\u003e#5799\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/9822a0351574790cb66c652fcc396ad7aa2b09d8\"\u003e\u003ccode\u003e9822a03\u003c/code\u003e\u003c/a\u003e refactor stream_with_context for async views\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/49b7e7bc8fb69d605719991d1c0a99fcee689053\"\u003e\u003ccode\u003e49b7e7b\u003c/code\u003e\u003c/a\u003e security docs for TRUSTED_HOSTS (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5798\"\u003e#5798\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/b228ca3d87745b746d904a2108429617a814ffda\"\u003e\u003ccode\u003eb228ca3\u003c/code\u003e\u003c/a\u003e security docs for TRUSTED_HOSTS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/ff64079a516c269f171ababf3d92b86886a62ffd\"\u003e\u003ccode\u003eff64079\u003c/code\u003e\u003c/a\u003e update flask-talisman link\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/flask/compare/3.1.1...3.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-datastore` from 2.20.2 to 2.21.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-datastore/releases\"\u003egoogle-cloud-datastore's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.21.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-datastore/compare/v2.20.2...v2.21.0\"\u003e2.21.0\u003c/a\u003e (2025-04-10)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd REST Interceptors which support reading metadata (\u003ca href=\"https://github.com/googleapis/python-datastore/commit/7be9c4c594af2c2414e394b8bfe62574b58ef337\"\u003e7be9c4c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for opt-in debug logging (\u003ca href=\"https://github.com/googleapis/python-datastore/commit/7be9c4c594af2c2414e394b8bfe62574b58ef337\"\u003e7be9c4c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow protobuf 6.x (\u003ca href=\"https://redirect.github.com/googleapis/python-datastore/issues/598\"\u003e#598\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-datastore/commit/7c1171bf657f7cf4d1404e19611f6c874a8998ca\"\u003e7c1171b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBackwards-compatibility for previous meaning format (\u003ca href=\"https://redirect.github.com/googleapis/python-datastore/issues/603\"\u003e#603\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-datastore/commit/ed92e8e54a9e0f44302efee89a30a322d0a73636\"\u003eed92e8e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix typing issue with gRPC metadata when key ends in -bin (\u003ca href=\"https://github.com/googleapis/python-datastore/commit/7be9c4c594af2c2414e394b8bfe62574b58ef337\"\u003e7be9c4c\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 href=\"https://github.com/googleapis/python-datastore/blob/main/CHANGELOG.md\"\u003egoogle-cloud-datastore's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-datastore/compare/v2.20.2...v2.21.0\"\u003e2.21.0\u003c/a\u003e (2025-04-10)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd REST Interceptors which support reading metadata (\u003ca href=\"https://github.com/googleapis/python-datastore/commit/7be9c4c594af2c2414e394b8bfe62574b58ef337\"\u003e7be9c4c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for opt-in debug logging (\u003ca href=\"https://github.com/googleapis/python-datastore/commit/7be9c4c594af2c2414e394b8bfe62574b58ef337\"\u003e7be9c4c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow protobuf 6.x (\u003ca href=\"https://redirect.github.com/googleapis/python-datastore/issues/598\"\u003e#598\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-datastore/commit/7c1171bf657f7cf4d1404e19611f6c874a8998ca\"\u003e7c1171b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBackwards-compatibility for previous meaning format (\u003ca href=\"https://redirect.github.com/googleapis/python-datastore/issues/603\"\u003e#603\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-datastore/commit/ed92e8e54a9e0f44302efee89a30a322d0a73636\"\u003eed92e8e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix typing issue with gRPC metadata when key ends in -bin (\u003ca href=\"https://github.com/googleapis/python-datastore/commit/7be9c4c594af2c2414e394b8bfe62574b58ef337\"\u003e7be9c4c\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 href=\"https://github.com/googleapis/python-datastore/commit/1dafc68d897ec771fc3921124e1619c4fb6b34bf\"\u003e\u003ccode\u003e1dafc68\u003c/code\u003e\u003c/a\u003e chore(main): release 2.21.0 (\u003ca href=\"https://redirect.github.com/googleapis/python-datastore/issues/595\"\u003e#595\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-datastore/commit/d3919110b49e7389ad3f4e8bbb55b104417457fa\"\u003e\u003ccode\u003ed391911\u003c/code\u003e\u003c/a\u003e chore(python): remove CONTRIBUTING.rst from templates (\u003ca href=\"https://redirect.github.com/googleapis/python-datastore/issues/605\"\u003e#605\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-datastore/commit/16b9c737abfda1f98a871b4080528ac8f61f9abc\"\u003e\u003ccode\u003e16b9c73\u003c/code\u003e\u003c/a\u003e chore(python): fix incorrect import statement in README (\u003ca href=\"https://redirect.github.com/googleapis/python-datastore/issues/604\"\u003e#604\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-datastore/commit/ed92e8e54a9e0f44302efee89a30a322d0a73636\"\u003e\u003ccode\u003eed92e8e\u003c/code\u003e\u003c/a\u003e fix: backwards-compatibility for previous meaning format (\u003ca href=\"https://redirect.github.com/googleapis/python-datastore/issues/603\"\u003e#603\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-datastore/commit/a7df08060de6d729ef125efa12126dc32ea85006\"\u003e\u003ccode\u003ea7df080\u003c/code\u003e\u003c/a\u003e chore: Update gapic-generator-python to 1.23.6 (\u003ca href=\"https://redirect.github.com/googleapis/python-datastore/issues/602\"\u003e#602\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-datastore/commit/7c1171bf657f7cf4d1404e19611f6c874a8998ca\"\u003e\u003ccode\u003e7c1171b\u003c/code\u003e\u003c/a\u003e fix: Allow protobuf 6.x (\u003ca href=\"https://redirect.github.com/googleapis/python-datastore/issues/598\"\u003e#598\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-datastore/commit/7be9c4c594af2c2414e394b8bfe62574b58ef337\"\u003e\u003ccode\u003e7be9c4c\u003c/code\u003e\u003c/a\u003e chore: Update gapic-generator-python to v1.23.2 (\u003ca href=\"https://redirect.github.com/googleapis/python-datastore/issues/569\"\u003e#569\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-datastore/commit/9f83d17c132168118a2e169c975662d76540d6ff\"\u003e\u003ccode\u003e9f83d17\u003c/code\u003e\u003c/a\u003e chore(python): conditionally load credentials in .kokoro/build.sh (\u003ca href=\"https://redirect.github.com/googleapis/python-datastore/issues/594\"\u003e#594\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-datastore/commit/14a0f96c8f7c558a38fec4ef92c0810ea6096646\"\u003e\u003ccode\u003e14a0f96\u003c/code\u003e\u003c/a\u003e chore: update protoplus for python 3.13 (\u003ca href=\"https://redirect.github.com/googleapis/python-datastore/issues/579\"\u003e#579\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-datastore/commit/59bf5f91110e37327e783ea425f17db7dafeb260\"\u003e\u003ccode\u003e59bf5f9\u003c/code\u003e\u003c/a\u003e chore(python): Update the python version in docs presubmit to use 3.10 (\u003ca href=\"https://redirect.github.com/googleapis/python-datastore/issues/584\"\u003e#584\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/googleapis/python-datastore/compare/v2.20.2...v2.21.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `grpcio` from 1.71.0 to 1.76.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/grpc/grpc/releases\"\u003egrpcio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v1.76.0\u003c/h2\u003e\n\u003cp\u003eThis is release 1.76.0 (\u003ca href=\"https://github.com/grpc/grpc/blob/master/doc/g_stands_for.md\"\u003egenuine\u003c/a\u003e) of gRPC Core.\u003c/p\u003e\n\u003cp\u003eFor gRPC documentation, see \u003ca href=\"https://grpc.io/\"\u003egrpc.io\u003c/a\u003e. For previous releases, see \u003ca href=\"https://github.com/grpc/grpc/releases\"\u003eReleases\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis release contains refinements, improvements, and bug fixes, with highlights listed below.\u003c/p\u003e\n\u003ch2\u003eCore\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePrioritize system CA over bundled CA. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/40583\"\u003e#40583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[event_engine] Introduce a event_engine_poller_for_python experiment. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/40243\"\u003e#40243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[metrics] add grpc.lb.backend_service label. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/40486\"\u003e#40486\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eC#\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[csharp tools] \u003ca href=\"https://redirect.github.com/grpc/grpc/issues/39374\"\u003e#39374\u003c/a\u003e Grpc.Tools can't process file Suffix name with Upper character. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/40072\"\u003e#40072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePython\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[Python] gRPC AsyncIO: Improve CompletionQueue polling performance. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/39993\"\u003e#39993\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease v1.76.0-pre1\u003c/h2\u003e\n\u003cp\u003eThis is a prerelease of gRPC Core 1.76.0 (genuine).\u003c/p\u003e\n\u003cp\u003eFor gRPC documentation, see \u003ca href=\"https://grpc.io/\"\u003egrpc.io\u003c/a\u003e. For previous releases, see \u003ca href=\"https://github.com/grpc/grpc/releases\"\u003eReleases\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis prerelease contains refinements, improvements, and bug fixes.\u003c/p\u003e\n\u003ch2\u003eRelease v1.75.1\u003c/h2\u003e\n\u003cp\u003eThis is release gRPC Core 1.75.1 (gemini).\u003c/p\u003e\n\u003cp\u003eFor gRPC documentation, see \u003ca href=\"https://grpc.io/\"\u003egrpc.io\u003c/a\u003e. For previous releases, see \u003ca href=\"https://github.com/grpc/grpc/releases\"\u003eReleases\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis release contains refinements, improvements, and bug fixes.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003ePython\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRelease grpcio wheels with Python 3.14 support (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40403\"\u003e#40403\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAsyncio: fixes grpc shutdown race condition occurring during python interpreter finalizations. (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40447\"\u003e#40447\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eThis also addresses previously reported issues with empty error message on Python interpreter exit (\u003ccode\u003eError in sys.excepthook:\u003c/code\u003e/\u003ccode\u003eOriginal exception was:\u003c/code\u003e empty): \u003ca href=\"https://redirect.github.com/grpc/grpc/issues/36655\"\u003e#36655\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/grpc/grpc/issues/38679\"\u003e#38679\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/grpc/grpc/issues/33342\"\u003e#33342\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003ePython 3.14: preserve current behavior when using grpc.aio async methods outside of a running event loop. (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40750\"\u003e#40750\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eNote: using async methods outside of a running event loop is \u003ca href=\"https://docs.python.org/3.14/library/asyncio-policy.html#asyncio-policies\"\u003ediscouraged\u003c/a\u003e by Python, and \u003cstrong\u003ewill be deprecated in future gRPC releases\u003c/strong\u003e. Please use the \u003ca href=\"https://docs.python.org/3.14/library/asyncio-runner.html#asyncio.run\"\u003easyncio.run()\u003c/a\u003e function (or \u003ca href=\"https://docs.python.org/3.14/library/asyncio-runner.html#asyncio.Runner\"\u003easyncio.Runner\u003c/a\u003e for custom loop factories). For interactive mode, use dedicated \u003ca href=\"https://docs.python.org/3/library/asyncio.html#asyncio-cli\"\u003easyncio REPL\u003c/a\u003e: \u003ccode\u003epython -m asyncio\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/grpc/grpc/compare/v1.75.0...v1.75.1\"\u003ehttps://github.com/grpc/grpc/compare/v1.75.0...v1.75.1\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/f5ffb68d8a2fd603dff16287e90a4ac571e1fec6\"\u003e\u003ccode\u003ef5ffb68\u003c/code\u003e\u003c/a\u003e [Release] Bump version to 1.76.0 (on v1.76.x branch) (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40925\"\u003e#40925\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/ffd83794b3804739c0789096155833e302ac1270\"\u003e\u003ccode\u003effd8379\u003c/code\u003e\u003c/a\u003e [Release] Bump version to 1.76.0-pre1 (on v1.76.x branch) (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40798\"\u003e#40798\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/835d394034060002262ab4e404e552ac0393a1a1\"\u003e\u003ccode\u003e835d394\u003c/code\u003e\u003c/a\u003e [Release] Bump core version to 51.0.0 for upcoming release (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40784\"\u003e#40784\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/de6ce7f32b1bf254d2b4c04e8872b63284632fd3\"\u003e\u003ccode\u003ede6ce7f\u003c/code\u003e\u003c/a\u003e [PH2] Add files for goaway support (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40786\"\u003e#40786\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/f7dd7f4b4186049d104aa2c88ad4432f58c19ede\"\u003e\u003ccode\u003ef7dd7f4\u003c/code\u003e\u003c/a\u003e [PH2][Trivial][CleanUp]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/2d40a376c7ea72602fa7bc62606324b1ff14c44f\"\u003e\u003ccode\u003e2d40a37\u003c/code\u003e\u003c/a\u003e [PH2][ChannelZ][ZTrace][Skeleton]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/83acb278bef565d8d46d6e19582eaacc86f737a3\"\u003e\u003ccode\u003e83acb27\u003c/code\u003e\u003c/a\u003e [build] Add Missing Dependencies for reflection_proto in Preparation for Enab...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/abfe8a29d31a8ab9ff6cdda11cdfa2813cb59632\"\u003e\u003ccode\u003eabfe8a2\u003c/code\u003e\u003c/a\u003e [PH2] Stream list represents streams open for reads.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/c65d8de800aaa907b45cee54ebcd29d5b556d3ca\"\u003e\u003ccode\u003ec65d8de\u003c/code\u003e\u003c/a\u003e [PH2][Expt] Fix the experiment expiry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/755d025f16d20641155e89ecc46777e94e9e172d\"\u003e\u003ccode\u003e755d025\u003c/code\u003e\u003c/a\u003e Fix latent_see_test flakiness\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/grpc/grpc/compare/v1.71.0...v1.76.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyyaml` from 6.0.2 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/yaml/pyyaml/releases\"\u003epyyaml's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14 and free-threading (experimental).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ehttps://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\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 href=\"https://github.com/yaml/pyyaml/blob/6.0.3/CHANGES\"\u003epyyaml's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e6.0.3 (2025-09-25)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/yaml/pyyaml/pull/864\"\u003eyaml/pyyaml#864\u003c/a\u003e -- Support for Python 3.14 and free-threading (experimental)\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 href=\"https://github.com/yaml/pyyaml/commit/49790e73684bebad1df05ef8d828fa12f685bffb\"\u003e\u003ccode\u003e49790e7\u003c/code\u003e\u003c/a\u003e Release 6.0.3 (\u003ca href=\"https://redirect.github.com/yaml/pyyaml/issues/889\"\u003e#889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.4 to 2.32.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.32.5\u003c/h2\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\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 href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\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 href=\"https://github.com/psf/requests/commit/b25c87d7cb8d6a18a37fa12442b5f883f9e41741\"\u003e\u003ccode\u003eb25c87d\u003c/code\u003e\u003c/a\u003e v2.32.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/131e506079d97606e4214cc4d87b780ac478de7a\"\u003e\u003ccode\u003e131e506\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psf/requests/issues/7010\"\u003e#7010\u003c/a\u003e from psf/dependabot/github_actions/actions/checkout-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b336cb2bc616a63a93c6470c558fc1f576b77f90\"\u003e\u003ccode\u003eb336cb2\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4.2.0 to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/46e939b5525d9c72b677340985582b04b128478a\"\u003e\u003ccode\u003e46e939b\u003c/code\u003e\u003c/a\u003e Update publish workflow to use \u003ccode\u003eartifact-id\u003c/code\u003e instead of \u003ccode\u003ename\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/4b9c546aa3f35fca6ca24945376fe7462bb007c4\"\u003e\u003ccode\u003e4b9c546\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psf/requests/issues/6999\"\u003e#6999\u003c/a\u003e from psf/dependabot/github_actions/step-security/har...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/7618dbef01d333f23ba4b9c4d97397b06dd89cb6\"\u003e\u003ccode\u003e7618dbe\u003c/code\u003e\u003c/a\u003e Bump step-security/harden-runner from 2.12.0 to 2.13.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2edca11103c1c27dd8b572dab544b7f48cf3b446\"\u003e\u003ccode\u003e2edca11\u003c/code\u003e\u003c/a\u003e Add support for Python 3.14 and drop support for Python 3.8 (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6993\"\u003e#6993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/fec96cd5976ad763e45bac9a033d62cca1877a00\"\u003e\u003ccode\u003efec96cd\u003c/code\u003e\u003c/a\u003e Update Makefile rules (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6996\"\u003e#6996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d58d8aa2f45c3575268d6d5250745ef69f9cf8b7\"\u003e\u003ccode\u003ed58d8aa\u003c/code\u003e\u003c/a\u003e docs: clarify timeout parameter uses seconds in Session.request (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6994\"\u003e#6994\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/91a3eabd3dcc4d7f36dd8249e4777a90ef9b4305\"\u003e\u003ccode\u003e91a3eab\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 3.28.5 to 3.29.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.4...v2.32.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `structlog` from 25.2.0 to 25.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/hynek/structlog/releases\"\u003estructlog's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.5.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cp\u003eHuge release! There's plenty of important little bug fixes and new features, but the headliner is definitely the improved ergonomics of \u003ccode\u003estructlog.dev.ConsoleRenderer\u003c/code\u003e. We have finally accepted that local development has different priorities than production and made it both mutable (with automatic re-configuration) and also easily retrievable (\u003ccode\u003ecr = ConsoleRenderer.get_active()\u003c/code\u003e). This allows you, for example, to disable Rich exception formatting as easily as \u003ccode\u003estructlog.dev.ConsoleRenderer.get_active().exception_formatter = structlog.dev.plain_traceback\u003c/code\u003e. Please check out the \u003ca href=\"https://www.structlog.org/en/stable/console-output.html\"\u003eupdated docs\u003c/a\u003e!\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eFull changelog below!\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eSpecial Thanks\u003c/h2\u003e\n\u003cp\u003eThis release would not be possible without my generous sponsors! Thank you to all of you making sustainable maintenance possible! If \u003cem\u003eyou\u003c/em\u003e would like to join them, go to \u003ca href=\"https://github.com/sponsors/hynek\"\u003ehttps://github.com/sponsors/hynek\u003c/a\u003e and check out the sweet perks!\u003c/p\u003e\n\u003ch3\u003eAbove and Beyond\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://www.variomedia.de/\"\u003eVariomedia AG\u003c/a\u003e (@\u003ca href=\"https://github.com/variomedia\"\u003evariomedia\u003c/a\u003e), \u003ca href=\"https://www.tidelift.com/\"\u003eTidelift\u003c/a\u003e (@\u003ca href=\"https://github.com/tidelift\"\u003etidelift\u003c/a\u003e), \u003ca href=\"https://www.thanks.dev\"\u003ethanks.dev\u003c/a\u003e (@\u003ca href=\"https://github.com/thnxdev\"\u003ethnxdev\u003c/a\u003e), \u003ca href=\"https://privacy-solutions.org\"\u003ePrivacy Solutions GmbH\u003c/a\u003e (@\u003ca href=\"https://github.com/privacy-solutions\"\u003eprivacy-solutions\u003c/a\u003e), \u003ca href=\"https://quesma.com/\"\u003eQuesma\u003c/a\u003e (\u003ca href=\"https://github.com/QuesmaOrg\"\u003e\u003ccode\u003e@​QuesmaOrg\u003c/code\u003e\u003c/a\u003e), \u003ca href=\"http://filepreviews.io/\"\u003eFilePreviews\u003c/a\u003e (@\u003ca href=\"https://github.com/filepreviews\"\u003efilepreviews\u003c/a\u003e), \u003ca href=\"https://www.lambdatest.com\"\u003eLambdaTest\u003c/a\u003e (@\u003ca href=\"https://github.com/LambdaTest-Inc\"\u003eLambdaTest-Inc\u003c/a\u003e), \u003ca href=\"https://doist.com/\"\u003eDoist\u003c/a\u003e (@\u003ca href=\"https://github.com/Doist\"\u003eDoist\u003c/a\u003e), Daniel Fortunov (@\u003ca href=\"https://github.com/asqui\"\u003easqui\u003c/a\u003e), and Kevin P. Fleming (@\u003ca href=\"https://github.com/kpfleming\"\u003ekpfleming\u003c/a\u003e).\u003c/p\u003e\n\u003ch3\u003eMaintenance Sustainers\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://buttondown.com\"\u003eButtondown\u003c/a\u003e (@\u003ca href=\"https://github.com/buttondown\"\u003ebuttondown\u003c/a\u003e), Jeff McCarrell (@\u003ca href=\"https://github.com/jmccarrell\"\u003ejmccarrell\u003c/a\u003e), \u003ca href=\"https://christopher.xyz\"\u003eChristopher Dignam\u003c/a\u003e (@\u003ca href=\"https://github.com/chdsbd\"\u003echdsbd\u003c/a\u003e), Magnus Watn (@\u003ca href=\"https://github.com/magnuswatn\"\u003emagnuswatn\u003c/a\u003e), \u003ca href=\"https://cra.mr\"\u003eDavid Cramer\u003c/a\u003e (@\u003ca href=\"https://github.com/dcramer\"\u003edcramer\u003c/a\u003e), Jesse Snyder (@\u003ca href=\"https://github.com/jessesnyder\"\u003ejessesnyder\u003c/a\u003e), \u003ca href=\"https://rivolaks.com\"\u003eRivo Laks\u003c/a\u003e (@\u003ca href=\"https://github.com/rivol\"\u003erivol\u003c/a\u003e), \u003ca href=\"https://polar.sh\"\u003ePolar\u003c/a\u003e (@\u003ca href=\"https://github.com/polarsource\"\u003epolarsource\u003c/a\u003e), \u003ca href=\"https://www.miketheman.net\"\u003eMike Fiedler\u003c/a\u003e (@\u003ca href=\"https://github.com/miketheman\"\u003emiketheman\u003c/a\u003e), Duncan Hill (@\u003ca href=\"https://github.com/cricalix\"\u003ecricalix\u003c/a\u003e), Colin Marquardt (@\u003ca href=\"https://github.com/cmarqu\"\u003ecmarqu\u003c/a\u003e), \u003ca href=\"https://blog.journeythatcounts.nl\"\u003ePieter Swinkels\u003c/a\u003e (@\u003ca href=\"https://github.com/swinkels\"\u003eswinkels\u003c/a\u003e), Nick Libertini (@\u003ca href=\"https://github.com/libertininick\"\u003elibertininick\u003c/a\u003e), \u003ca href=\"https://bmdphd.info/\"\u003eBrian M. Dennis\u003c/a\u003e (@\u003ca href=\"https://github.com/crossjam\"\u003ecrossjam\u003c/a\u003e), Celebrity News AG (@\u003ca href=\"https://github.com/celebritynewsag\"\u003ecelebritynewsag\u003c/a\u003e), \u003ca href=\"https://westervelt.com\"\u003eThe Westervelt Company\u003c/a\u003e (@\u003ca href=\"https://github.com/westerveltco\"\u003ewesterveltco\u003c/a\u003e), \u003ca href=\"https://slafs.net\"\u003eSławomir Ehlert\u003c/a\u003e (@\u003ca href=\"https://github.com/slafs\"\u003eslafs\u003c/a\u003e), Mostafa Khalil (@\u003ca href=\"https://github.com/khadrawy\"\u003ekhadrawy\u003c/a\u003e), \u003ca href=\"https://fmularczyk.pl\"\u003eFilip Mularczyk\u003c/a\u003e (@\u003ca href=\"https://github.com/mukiblejlok\"\u003emukiblejlok\u003c/a\u003e), Thomas Klinger (@\u003ca href=\"https://github.com/thmsklngr\"\u003ethmsklngr\u003c/a\u003e), \u003ca href=\"https://poehlmann.io\"\u003eAndreas Poehlmann\u003c/a\u003e (@\u003ca href=\"https://github.com/ap--\"\u003eap--\u003c/a\u003e), \u003ca href=\"https://atbigelow.com\"\u003eAugust Trapper Bigelow\u003c/a\u003e (@\u003ca href=\"https://github.com/atbigelow\"\u003eatbigelow\u003c/a\u003e), \u003ca href=\"https://noumenal.es/\"\u003eCarlton Gibson\u003c/a\u003e (@\u003ca href=\"https://github.com/carltongibson\"\u003ecarltongibson\u003c/a\u003e), \u003ca href=\"https://roboflow.com\"\u003eRoboflow\u003c/a\u003e (@\u003ca href=\"https://github.com/roboflow\"\u003eroboflow\u003c/a\u003e), and Jeff McCarrell (@\u003ca href=\"https://github.com/jmccarrell\"\u003ejmccarrell\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003eFull Changelog\u003c/h2\u003e\n\u003ch3\u003eDeprecated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003estructlog.dev.ConsoleRenderer()\u003c/code\u003e's \u003cem\u003epad_event\u003c/em\u003e argument has been renamed to \u003cem\u003epad_event_to\u003c/em\u003e to differentiate it from the boolean \u003cem\u003epad_level\u003c/em\u003e argument. \u003cem\u003epad_event\u003c/em\u003e is now deprecated.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003estructlog.dev.ConsoleRenderer.get_active()\u003c/code\u003e that returns the currently active \u003ccode\u003estructlog.dev.ConsoleRenderer()\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/hynek/structlog/pull/749\"\u003e#749\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003estructlog.dev.ConsoleRenderer()\u003c/code\u003e now supports setting the \u003ccode\u003eexception_formatter\u003c/code\u003e attribute.\u003c/p\u003e\n\u003cp\u003eYou can now disable the pretty-printing of exceptions by setting it to \u003ccode\u003estructlog.dev.plain_traceback\u003c/code\u003e:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecr = structlog.dev.ConsoleRenderer.get_active()\ncr.exception_formatter = structlog.dev.plain_traceback\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eSame goes for \u003cem\u003esort_keys\u003c/em\u003e, \u003cem\u003ecolumns\u003c/em\u003e, \u003cem\u003ecolors\u003c/em\u003e, \u003cem\u003eforce_colors\u003c/em\u003e, \u003cem\u003elevel_styles\u003c/em\u003e, \u003cem\u003epad_event_to\u003c/em\u003e, \u003cem\u003eevent_key\u003c/em\u003e, \u003cem\u003etimestamp_key\u003c/em\u003e, and \u003cem\u003erepr_native_str\u003c/em\u003e.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/hynek/structlog/pull/749\"\u003e#749\u003c/a\u003e \u003ca href=\"https://redirect.github.com/hynek/structlog/pull/756\"\u003e#756\u003c/a\u003e \u003ca href=\"https://redirect.github.com/hynek/structlog/pull/757\"\u003e#757\u003c/a\u003e \u003ca href=\"https://redirect.github.com/hynek/structlog/pull/759\"\u003e#759\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003estructlog.dev.ConsoleRenderer.get_default_column_styles()\u003c/code\u003e for reuse the default column styles. \u003ca href=\"https://redirect.github.com/hynek/structlog/pull/741\"\u003e#741\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003estructlog.testing.capture_logs()\u003c/code\u003e now optionally accepts \u003cem\u003eprocessors\u003c/em\u003e to apply before capture. \u003ca href=\"https://redirect.github.com/hynek/structlog/pull/728\"\u003e#728\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 href=\"https://github.com/hynek/structlog/blob/main/CHANGELOG.md\"\u003estructlog's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/hynek/structlog/compare/25.4.0...25.5.0\"\u003e25.5.0\u003c/a\u003e - 2025-10-27\u003c/h2\u003e\n\u003ch3\u003eDeprecated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003estructlog.dev.ConsoleRenderer()\u003c/code\u003e's \u003cem\u003epad_event\u003c/em\u003e argument has been renamed to \u003cem\u003epad_event_to\u003c/em\u003e to differentiate it from the boolean \u003cem\u003epad_level\u003c/em\u003e argument.\n\u003cem\u003epad_event\u003c/em\u003e is now deprecated.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003estructlog.dev.ConsoleRenderer.get_active()\u003c/code\u003e that returns the currently active \u003ccode\u003estructlog.dev.ConsoleRenderer()\u003c/code\u003e.\n\u003ca href=\"https://redirect.github.com/hynek/structlog/pull/749\"\u003e#749\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003estructlog.dev.ConsoleRenderer()\u003c/code\u003e now supports setting the \u003ccode\u003eexception_formatter\u003c/code\u003e attribute.\u003c/p\u003e\n\u003cp\u003eYou can now disable the pretty-printing of exceptions by setting it to \u003ccode\u003estructlog.dev.plain_traceback\u003c/code\u003e:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecr = structlog.dev.ConsoleRenderer.get_active()\ncr.exception_formatter = structlog.dev.plain_traceback\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eSame goes for \u003cem\u003esort_keys\u003c/em\u003e, \u003cem\u003ecolumns\u003c/em\u003e, \u003cem\u003ecolors\u003c/em\u003e, \u003cem\u003eforce_colors\u003c/em\u003e, \u003cem\u003elevel_styles\u003c/em\u003e, \u003cem\u003epad_event_to\u003c/em\u003e, \u003cem\u003eevent_key\u003c/em\u003e, \u003cem\u003etimestamp_key\u003c/em\u003e, and \u003cem\u003erepr_native_str\u003c/em\u003e.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/hynek/structlog/pull/749\"\u003e#749\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/hynek/structlog/pull/756\"\u003e#756\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/hynek/structlog/pull/757\"\u003e#757\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/hynek/structlog/pull/759\"\u003e#759\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003estructlog.dev.ConsoleRenderer.get_default_column_styles()\u003c/code\u003e for reuse the default column styles.\n\u003ca href=\"https://redirect.github.com/hynek/structlog/pull/741\"\u003e#741\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003estructlog.testing.capture_logs()\u003c/code\u003e now optionally accepts \u003cem\u003eprocessors\u003c/em\u003e to apply before capture.\n\u003ca href=\"https://redirect.github.com/hynek/structlog/pull/728\"\u003e#728\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003estructlog.dev.RichTracebackFormatter\u003c/code\u003e now exposes the upstream \u003cem\u003ecode_width\u003c/em\u003e parameter.\nDefault \u003cem\u003ewidth\u003c/em\u003e is now \u003ccode\u003eNone\u003c/code\u003e for full terminal width.\nFull terminal width is now handled by Rich itself, bringing support for reflow and \u003ccode\u003eCOLUMN\u003c/code\u003e environment variable.\nPassing \u003ccode\u003e-1\u003c/code\u003e for \u003cem\u003ewidth\u003c/em\u003e is now deprecated and automatically replaced by \u003ccode\u003eNone\u003c/code\u003e.\n\u003ca href=\"https://redirect.github.com/hynek/structlog/pull/717\"\u003e#717\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eNative loggers now allow the passing of a dictionary for dictionary-based interpolation \u003ccode\u003elog.info(\u0026quot;hello %(name)s!\u0026quot;, {\u0026quot;name\u0026quot;: \u0026quot;world\u0026quot;})\u003c/code\u003e.\n\u003ca href=\"https://redirect.github.com/hynek/structlog/pull/748\"\u003e#748\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eOn Python 3.11+, \u003ccode\u003estructlog.processors.CallsiteParameterAdder\u003c/code\u003e now supports \u003ccode\u003eCallsiteParameter.QUAL_NAME\u003c/code\u003e that adds the qualified name of the callsite, including scope and class names.\nThis is only available for \u003cem\u003estructlog\u003c/em\u003e-originated events since the standard library has no equivalent.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003estructlog.stdlib.LoggerFactory\u003c/code\u003e now supports the \u003cem\u003estacklevel\u003c/em\u003e parameter.\n\u003ca href=\"https://redirect.github.com/hynek/structlog/pull/763\"\u003e#763\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\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/structlog/commit/c0ef9e09e7a536cae65e33c1ac1c8b4e6a6f7511\"\u003e\u003ccode\u003ec0ef9e0\u003c/code\u003e\u003c/a\u003e Prepare 25.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/structlog/commit/9cb662fe32046f92f08346c58089a2dcba7cb4bf\"\u003e\u003ccode\u003e9cb662f\u003c/code\u003e\u003c/a\u003e docs: nit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/structlog/commit/5400612735ad07bbe8ee9f2279f3040aa2e69ca4\"\u003e\u003ccode\u003e5400612\u003c/code\u003e\u003c/a\u003e docs/stdlib: add warning about ProcessorFormatter\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/structlog/commit/1c2c19aa19c8f30330b76465b7a0d9993b9e8360\"\u003e\u003ccode\u003e1c2c19a\u003c/code\u003e\u003c/a\u003e Try validating pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/structlog/commit/aca10f23dd12bd9e14cfe712f1ce66c9cb5f4400\"\u003e\u003ccode\u003eaca10f2\u003c/code\u003e\u003c/a\u003e Drop pretend dependency (\u003ca href=\"https://redirect.github.com/hynek/structlog/issues/766\"\u003e#766\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/structlog/commit/3800d401db2c682c7c83b2d3eec38d81c9791f4d\"\u003e\u003ccode\u003e3800d40\u003c/code\u003e\u003c/a\u003e docs: use native\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/structlog/commit/ecaa15ac6b166ebca9f2b4f5cfdb4c4ec138a602\"\u003e\u003ccode\u003eecaa15a\u003c/code\u003e\u003c/a\u003e stdlib: add support for stacklevel (\u003ca href=\"https://redirect.github.com/hynek/structlog/issues/763\"\u003e#763\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/structlog/commit/7f7a221aed6bbff3c13cefd7effe14cc4f0cfc24\"\u003e\u003ccode\u003e7f7a221\u003c/code\u003e\u003c/a\u003e update dev (\u003ca href=\"https://redirect.github.com/hynek/structlog/issues/765\"\u003e#765\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/structlog/commit/5acfc85e3c3fa821dc65b55a226900d40dc0831c\"\u003e\u003ccode\u003e5acfc85\u003c/code\u003e\u003c/a\u003e docs: 5% bigger still\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/structlog/commit/c102862e3f30de84c898c4501418dede15056c6d\"\u003e\u003ccode\u003ec102862\u003c/code\u003e\u003c/a\u003e docs: bigger font\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/hynek/structlog/compare/25.2.0...25.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `boto3` from 1.37.23 to 1.42.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/347117552e90ab6fc8a3e6a459f0a00ec0ca0a48\"\u003e\u003ccode\u003e3471175\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.3'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/2e3d1258ad9cb30f38d3c54b1b5e847b83a2d13b\"\u003e\u003ccode\u003e2e3d125\u003c/code\u003e\u003c/a\u003e Bumping version to 1.42.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/04ebd3cbea961c39ea1fea5edfd24442d299eb1d\"\u003e\u003ccode\u003e04ebd3c\u003c/code\u003e\u003c/a\u003e Add changelog entries from botocore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/cc95ab6caa73634e01a03c82f310d002a5f3e71d\"\u003e\u003ccode\u003ecc95ab6\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.2'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/743b8e411a11015a0a0ee584cd0f3b947687a666\"\u003e\u003ccode\u003e743b8e4\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.2' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/8f7ba800ea3e2c252b2d9ed4abd4f00309a79511\"\u003e\u003ccode\u003e8f7ba80\u003c/code\u003e\u003c/a\u003e Bumping version to 1.42.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/119aff9051ef423ee2fbf963bd6640d66c5ee86a\"\u003e\u003ccode\u003e119aff9\u003c/code\u003e\u003c/a\u003e Add changelog entries from botocore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/65b24a41d1a03edb6fcdbff65ca14a3b11bcd962\"\u003e\u003ccode\u003e65b24a4\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.1'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/71a06cf0c53ed1d6819e37669fb800949aee398e\"\u003e\u003ccode\u003e71a06cf\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.1' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/5991e64f13b81bbc1b88c549bafc633708ecc17f\"\u003e\u003ccode\u003e5991e64\u003c/code\u003e\u003c/a\u003e Bumping version to 1.42.1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boto/boto3/compare/1.37.23...1.42.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `humanize` from 4.12.2 to 4.14.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-humanize/humanize/releases\"\u003ehumanize's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.14.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Uzbek language (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/264\"\u003e#264\u003c/a\u003e) \u003ca href=\"https://github.com/sSimuSs\"\u003e\u003ccode\u003e@​sSimuSs\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/268\"\u003e#268\u003c/a\u003e) \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.13.0\u003c/h2\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimise \u003ccode\u003enaturalsize\u003c/code\u003e algorithm by using \u003ccode\u003emath.log\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/253\"\u003e#253\u003c/a\u003e) \u003ca href=\"https://github.com/Zaczero\"\u003e\u003ccode\u003e@​Zaczero\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eprecisedelta\u003c/code\u003e rounding (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/254\"\u003e#254\u003c/a\u003e) \u003ca href=\"https://github.com/dangillet\"\u003e\u003ccode\u003e@​dangillet\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.12.3\u003c/h2\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression in \u003ccode\u003enaturalsize\u003c/code\u003e for \u003ccode\u003efloat\u003c/code\u003e and \u003ccode\u003estr\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/250\"\u003e#250\u003c/a\u003e) \u003ca href=\"https://github.com/loicleyendecker\"\u003e\u003ccode\u003e@​loicleyendecker\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprovements for French translation (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/248\"\u003e#248\u003c/a\u003e) \u003ca href=\"https://github.com/merwok\"\u003e\u003ccode\u003e@​merwok\u003c/code\u003e\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 href=\"https://github.com/python-humanize/humanize/commit/fedf432b5bd7751b3417447b647e43aa2ac7507d\"\u003e\u003ccode\u003efedf432\u003c/code\u003e\u003c/a\u003e Add Uzbek language (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-humanize/humanize/commit/bbc0398e8c1cf062d3fa4a79d1dc9f58aa26da26\"\u003e\u003ccode\u003ebbc0398\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/269\"\u003e#269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-humanize/humanize/commit/c8810e2d559e633cc48bc180d1bfe6364d04c169\"\u003e\u003ccode\u003ec8810e2\u003c/code\u003e\u003c/a\u003e Drop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/268\"\u003e#268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-humanize/humanize/commit/c16587b7ba97dcd763a79ccb88b9a01bfddbdfc3\"\u003e\u003ccode\u003ec16587b\u003c/code\u003e\u003c/a\u003e Update github-actions (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/267\"\u003e#267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-humanize/humanize/commit/947a6b13f0e44eda81c10d8403d3c2ccab01a1b2\"\u003e\u003ccode\u003e947a6b1\u003c/code\u003e\u003c/a\u003e Update dependency mypy to v1.18.2 (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/266\"\u003e#266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-humanize/humanize/commit/41903865abf4244c38b6340b0217611d9b86db1c\"\u003e\u003ccode\u003e4190386\u003c/code\u003e\u003c/a\u003e Update dependency mkdocstrings to v0.30.1 (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/265\"\u003e#265\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-humanize/humanize/commit/0e027051034b7dcb4eb65aded290cf56a89d8aa9\"\u003e\u003ccode\u003e0e02705\u003c/code\u003e\u003c/a\u003e Update config (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/262\"\u003e#262\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-humanize/humanize/commit/288a7a7c1dbfd1c977add3c54a7c9283039a6c71\"\u003e\u003ccode\u003e288a7a7\u003c/code\u003e\u003c/a\u003e Test free-threaded Python 3.13t and 3.14t (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/261\"\u003e#261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-humanize/humanize/commit/0f5d2948d674a88a611f8e341c0df520767b1b80\"\u003e\u003ccode\u003e0f5d294\u003c/code\u003e\u003c/a\u003e Precisedelta rounding (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/254\"\u003e#254\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-humanize/humanize/commit/58d10b43175a22eb9ece2c6f3dcff6b6b681e2df\"\u003e\u003ccode\u003e58d10b4\u003c/code\u003e\u003c/a\u003e Update docs/requirements.txt (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/260\"\u003e#260\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-humanize/humanize/compare/4.12.2...4.14.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `marshmallow` from 3.26.1 to 4.1.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/marshmallow-code/marshmallow/blob/dev/CHANGELOG.rst\"\u003emarshmallow's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e4.1.0 (2025-11-01)\n++++++++++++++++++\u003c/p\u003e\n\u003cp\u003eOther changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e__len__\u003c/code\u003e implementation to \u003ccode\u003emissing\u003c/code\u003e so that it can be used with\n\u003ccode\u003evalidate.Length \u0026lt;marshmallow.validate.Length\u0026gt;\u003c/code\u003e (:pr:\u003ccode\u003e2861\u003c/code\u003e).\nThanks :user:\u003ccode\u003eagentgodzilla\u003c/code\u003e for the PR.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.9 (:pr:\u003ccode\u003e2363\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eTest against Python 3.14.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e4.0.1 (2025-08-28)\n++++++++++++++++++\u003c/p\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix wildcard import of \u003ccode\u003efrom marshmallow import *\u003c/code\u003e (:pr:\u003ccode\u003e2823\u003c/code\u003e).\nThanks :user:\u003ccode\u003eFlorian-Laport\u003c/code\u003e for the PR.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e4.0.0 (2025-04-16)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003eSee :ref:\u003ccode\u003eupgrading_4_0\u003c/code\u003e for a guide on updating your code.\u003c/p\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eTyping: Add types to all \u003ccode\u003eField \u0026lt;marshmallow.fields.Field\u0026gt;\u003c/code\u003e constructor kwargs (:issue:\u003ccode\u003e2285\u003c/code\u003e).\nThanks :user:\u003ccode\u003enavignaw\u003c/code\u003e for the suggestion.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eDateTime \u0026lt;marshmallow.fields.DateTime\u0026gt;\u003c/code\u003e, \u003ccode\u003eDate \u0026lt;marshmallow.fields.Date\u0026gt;\u003c/code\u003e, \u003ccode\u003eTime \u0026lt;marshmallow.fields.Time\u0026gt;\u003c/code\u003e,\n\u003ccode\u003eTimeDelta \u0026lt;marshmallow.fields.TimeDelta\u0026gt;\u003c/code\u003e, and \u003ccode\u003eEnum \u0026lt;marshmallow.fields.Enum\u0026gt;\u003c/code\u003e\naccept their internal value types as valid input (:issue:\u003ccode\u003e1415\u003c/code\u003e).\nThanks :user:\u003ccode\u003ebitdancer\u003c/code\u003e for the suggestion.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@validates \u0026lt;marshmallow.validates\u0026gt;\u003c/code\u003e accepts multiple field names (:issue:\u003ccode\u003e1960\u003c/code\u003e).\n\u003cem\u003eBackwards-incompatible\u003c/em\u003e: Decorated methods now receive \u003ccode\u003edata_key\u003c/code\u003e as a keyword argument.\nThanks :user:\u003ccode\u003edpriskorn\u003c/code\u003e for the suggestion and :user:\u003ccode\u003edharani7998\u003c/code\u003e for the PR.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eOther changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eTyping: \u003ccode\u003eField \u0026lt;marshmallow.fields.Field\u0026gt;\u003c/code\u003e is now a generic type with a type argument for the internal value type.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emarshmallow.fields.UUID\u003c/code\u003e no longer subclasses \u003ccode\u003emarshmallow.fields.String\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emarshmallow.Schema.load\u003c/code\u003e no longer silently fails to call schema validators when a generator is passed (:issue:\u003ccode\u003e1898\u003c/code\u003e).\nThe typing of \u003ccode\u003edata\u003c/code\u003e is also updated to be more accurate.\nThanks :user:\u003ccode\u003eziplokk1\u003c/code\u003e for reporting.\u003c/li\u003e\n\u003cli\u003e\u003cem\u003eBackwards-incompatible\u003c/em\u003e: Use \u003ccode\u003edatetime.date.fromisoformat\u003c/code\u003e, \u003ccode\u003edatetime.time.fromisoformat\u003c/code\u003e, and \u003ccode\u003edatetime.datetime.fromisoformat\u003c/code\u003e from the standard library to deserialize dates, times and datetimes (:pr:\u003ccode\u003e2078\u003c/code\u003e).\nAs a consequence of this change:\n\u003cul\u003e\n\u003cli\u003eTime with time offsets are now supported.\u003c/li\u003e\n\u003cli\u003eYYYY-MM-DD is now accepted as a datetime and deserialized as naive 00:00 AM.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efrom_iso_date\u003c/code\u003e, \u003ccode\u003efrom_iso_time\u003c/code\u003e and \u003ccode\u003efrom_iso_datetime\u003c/code\u003e are removed from \u003ccode\u003emarshmallow.utils\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\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 href=\"https://github.com/marshmallow-code/marshmallow/commit/441213d310d1a6a2b47ef99c04ea9db65aee33ae\"\u003e\u003ccode\u003e441213d\u003c/code\u003e\u003c/a\u003e Bump version and update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/2b84b56e9a80d07b65d74811673e8e5cf46cd0f1\"\u003e\u003ccode\u003e2b84b56\u003c/code\u003e\u003c/a\u003e (fix) missing constant with len validation (\u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2861\"\u003e#2861\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/fc8726244820b9f08fb7d02e007ed8d378a46c7b\"\u003e\u003ccode\u003efc87262\u003c/code\u003e\u003c/a\u003e Test against Python 3.14 (\u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2864\"\u003e#2864\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/2a5e2e1fd43ee0df6320edcbd2567e1dcc2da819\"\u003e\u003ccode\u003e2a5e2e1\u003c/code\u003e\u003c/a\u003e Update CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/d861be73bc3c70e727ee729dbe7669d6a2d4c284\"\u003e\u003ccode\u003ed861be7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2863\"\u003e#2863\u003c/a\u003e from marshmallow-code/drop_python_39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/22288b64532252ef2929c109e0c2ce7f9afe5edd\"\u003e\u003ccode\u003e22288b6\u003c/code\u003e\u003c/a\u003e Fix ruff issues\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/1d8fd278b1a617bc4a01912f5660c4ab7374e662\"\u003e\u003ccode\u003e1d8fd27\u003c/code\u003e\u003c/a\u003e Drop Python 3.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/966caf9ba106f70ca72974bbd9ee6d44d522ce7d\"\u003e\u003ccode\u003e966caf9\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/feb22442d07a9f8e23920a7845da117b468c7868\"\u003e\u003ccode\u003efeb2244\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2857\"\u003e#2857\u003c/a\u003e from marshmallow-code/disable_RUF043\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/23ee36370f26f3144be395040cf7cdf6ffc86f37\"\u003e\u003ccode\u003e23ee363\u003c/code\u003e\u003c/a\u003e Disable RUF043 in tests: allow metacharacters in match patterns\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/marshmallow-code/marshmallow/compare/3.26.1...4.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-storage` from 3.1.0 to 3.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-storage/releases\"\u003egoogle-cloud-storage's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.6.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-storage/compare/v3.5.0...v3.6.0\"\u003e3.6.0\u003c/a\u003e (2025-11-17)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for partial list buckets (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1606\"\u003e#1606\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/92fc2b00429415b9fbe7cba0167778eee60449e2\"\u003e92fc2b0\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMake return_partial_success and unreachable fields public for list Bucket (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1601\"\u003e#1601\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/323cddd5d439e04e12614106eab1928fd4008c0b\"\u003e323cddd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ezb-experimental:\u003c/strong\u003e Add async write object stream (\u003ca href=\"https://github.com/googleapis/python-storage/commit/5ab81032268e875f82a66431d666fe61c9eb394b\"\u003e5ab8103\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ezb-experimental:\u003c/strong\u003e Add async write object stream (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1612\"\u003e#1612\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/5ab81032268e875f82a66431d666fe61c9eb394b\"\u003e5ab8103\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDont pass credentials to StorageClient (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1608\"\u003e#1608\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/195d644c4d4feec98e9a9cd9fad67fc774c50dc8\"\u003e195d644\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev3.5.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-storage/compare/v3.4.1...v3.5.0\"\u003e3.5.0\u003c/a\u003e (2025-11-05)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure that Python in FIPS mode can fetch MD5 implementation (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1522\"\u003e#1522\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/961536c7bf3652a824c207754317030526b9dd28\"\u003e961536c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProvide option to update \u003ccode\u003euser_agent\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1596\"\u003e#1596\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/02f1451aaa8dacd10a862e97abb62ae48249b9b4\"\u003e02f1451\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate credentials_file argument (\u003ca href=\"https://github.com/googleapis/python-storage/commit/74415a2a120e9bfa42f4f5fc8bd2f8e0d4cf5d18\"\u003e74415a2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFlaky system tests for resumable_media (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1592\"\u003e#1592\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/7fee3dd3390cfb5475a39d8f8272ea825dbda449\"\u003e7fee3dd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003edownload_ranges\u003c/code\u003e compatible with \u003ccode\u003easyncio.create_task(..)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1591\"\u003e#1591\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/faf8b83b1f0ac378f8f6f47ce33dc23a866090c9\"\u003efaf8b83\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003edownload_ranges\u003c/code\u003e compatible with \u003ccode\u003easyncio.create_task(..)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1591\"\u003e#1591\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/faf8b83b1f0ac378f8f6f47ce33dc23a866090c9\"\u003efaf8b83\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRedact sensitive data from OTEL traces and fix env var parsing (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1553\"\u003e#1553\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/a38ca1977694def98f65ae7239e300a987bbd262\"\u003ea38ca19\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRedact sensitive data from OTEL traces and fix env var parsing (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1553\"\u003e#1553\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/a38ca1977694def98f65ae7239e300a987bbd262\"\u003ea38ca19\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse separate header object for each upload in Transfer Manager MPU (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1595\"\u003e#1595\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/0d867bd4f405d2dbeca1edfc8072080c5a96c1cd\"\u003e0d867bd\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev3.4.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-storage/compare/v3.4.0...v3.4.1\"\u003e3.4.1\u003c/a\u003e (2025-10-08)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixes \u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1561\"\u003e#1561\u003c/a\u003e by adding an option to specify the entire object checksum for resumable uploads via the \u003ccode\u003eupload_from_string\u003c/code\u003e, \u003ccode\u003eupload_from_file\u003c/code\u003e, and \u003ccode\u003eupload_from_filename\u003c/code\u003e methods (\u003ca href=\"https://github.com/googleapis/python-storage/commit/acb918e20f7092e13d72fc63fe4ae2560bfecd40\"\u003eacb918e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev3.4.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-storage/compare/v3.3.1...v3.4.0\"\u003e3.4.0\u003c/a\u003e (2025-09-15)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\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 href=\"https://github.com/googleapis/python-storage/blob/main/CHANGELOG.md\"\u003egoogle-cloud-storage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-storage/compare/v3.5.0...v3.6.0\"\u003e3.6.0\u003c/a\u003e (2025-11-17)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for partial list buckets (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1606\"\u003e#1606\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/92fc2b00429415b9fbe7cba0167778eee60449e2\"\u003e92fc2b0\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMake return_partial_success and unreachable fields public for list Bucket (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1601\"\u003e#1601\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/323cddd5d439e04e12614106eab1928fd4008c0b\"\u003e323cddd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ezb-experimental:\u003c/strong\u003e Add async write object stream (\u003ca href=\"https://github.com/googleapis/python-storage/commit/5ab81032268e875f82a66431d666fe61c9eb394b\"\u003e5ab8103\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ezb-experimental:\u003c/strong\u003e Add async write object stream (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1612\"\u003e#1612\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/5ab81032268e875f82a66431d666fe61c9eb394b\"\u003e5ab8103\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDont pass credentials to StorageClient (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1608\"\u003e#1608\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/195d644c4d4feec98e9a9cd9fad67fc774c50dc8\"\u003e195d644\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-storage/compare/v3.4.1...v3.5.0\"\u003e3.5.0\u003c/a\u003e (2025-11-05)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eexperimental:\u003c/strong\u003e Add base resumption strategy for bidi streams (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1594\"\u003e#1594\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/5fb85ea544dcc9ed9dca65957c872c3811f02b87\"\u003e5fb85ea\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eexperimental:\u003c/strong\u003e Add checksum for bidi reads operation (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1566\"\u003e#1566\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/93ce515d60f0ac77ab83680ba2b4d6a9f57e75d0\"\u003e93ce515\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eexperimental:\u003c/strong\u003e Add read resumption strategy (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1599\"\u003e#1599\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/5d5e895e173075da557b58614fecc84086aaf9cb\"\u003e5d5e895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eexperimental:\u003c/strong\u003e Handle BidiReadObjectRedirectedError for bidi reads (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1600\"\u003e#1600\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/71b0f8a368a61bed9bd793a059f980562061223e\"\u003e71b0f8a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIndicate that md5 is used as a CRC (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1522\"\u003e#1522\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/961536c7bf3652a824c207754317030526b9dd28\"\u003e961536c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProvide option to update user_agent (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1596\"\u003e#1596\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/02f1451aaa8dacd10a862e97abb62ae48249b9b4\"\u003e02f1451\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate credentials_file argument (\u003ca href=\"https://github.com/googleapis/python-storage/commit/74415a2a120e9bfa42f4f5fc8bd2f8e0d4cf5d18\"\u003e74415a2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFlaky system tests for resumable_media (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1592\"\u003e#1592\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/7fee3dd3390cfb5475a39d8f8272ea825dbda449\"\u003e7fee3dd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003edownload_ranges\u003c/code\u003e compatible with \u003ccode\u003easyncio.create_task(..)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1591\"\u003e#1591\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/faf8b83b1f0ac378f8f6f47ce33dc23a866090c9\"\u003efaf8b83\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003edownload_ranges\u003c/code\u003e compatible with \u003ccode\u003easyncio.create_task(..)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1591\"\u003e#1591\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/faf8b83b1f0ac378f8f6f47ce33dc23a866090c9\"\u003efaf8b83\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRedact sensitive data from OTEL traces and fix env var parsing (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1553\"\u003e#1553\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/a38ca1977694def98f65ae7239e300a987bbd262\"\u003ea38ca19\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRedact sensitive data from OTEL traces and fix env var parsing (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1553\"\u003e#1553\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/a38ca1977694def98f65ae7239e300a987bbd262\"\u003ea38ca19\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse separate header object for each upload in Transfer Manager MPU (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1595\"\u003e#1595\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/0d867bd4f405d2dbeca1edfc8072080c5a96c1cd\"\u003e0d867bd\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-storage/compare/v3.4.0...v3.5.0\"\u003e3.4.1\u003c/a\u003e (2025-10-08)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixes \u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1561\"\u003e#1561\u003c/a\u003e by adding an option to specify the entire object checksum for resumable uploads via the \u003ccode\u003eupload_from_string\u003c/code\u003e, \u003ccode\u003eupload_from_file\u003c/code\u003e, and \u003ccode\u003eupload_from_filename\u003c/code\u003e methods (\u003ca href=\"https://github.com/googleapis/python-storage/commit/acb918e20f7092e13d72fc63fe4ae2560bfecd40\"\u003eacb918e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-storage/compare/v3.3.1...v3.4.0\"\u003e3.4.0\u003c/a\u003e (2025-09-15)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eexperimental:\u003c/strong\u003e Add async grpc client (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1537\"\u003e#1537\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/ac57b8d819a49aef0ed0cb5bb630bf11012f43e3\"\u003eac57b8d\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 href=\"https://github.com/googleapis/python-storage/commit/0b70a288d238ef192952f5d9024395e17f74abcf\"\u003e\u003ccode\u003e0b70a28\u003c/code\u003e\u003c/a\u003e chore(main): release 3.6.0 (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1603\"\u003e#1603\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-storage/commit/5ab81032268e875f82a66431d666fe61c9eb394b\"\u003e\u003ccode\u003e5ab8103\u003c/code\u003e\u003c/a\u003e feat(zb-experimental): add async write object stream (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1612\"\u003e#1612\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-storage/commit/92fc2b00429415b9fbe7cba0167778eee60449e2\"\u003e\u003ccode\u003e92fc2b0\u003c/code\u003e\u003c/a\u003e feat: add support for partial list buckets (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1606\"\u003e#1606\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-storage/commit/195d644c4d4feec98e9a9cd9fad67fc774c50dc8\"\u003e\u003ccode\u003e195d644\u003c/code\u003e\u003c/a\u003e fix: dont pass credentials to StorageClient (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1608\"\u003e#1608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-storage/commit/323cddd5d439e04e12614106eab1928fd4008c0b\"\u003e\u003ccode\u003e323cddd\u003c/code\u003e\u003c/a\u003e feat: make return_partial_success and unreachable fields public for list Buck...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-storage/commit/c2cd474d96ce39016ae00c59672f3ad42490c764\"\u003e\u003ccode\u003ec2cd474\u003c/code\u003e\u003c/a\u003e chore(main): release 3.5.0 (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1568\"\u003e#1568\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-storage/commit/71b0f8a368a61bed9bd793a059f980562061223e\"\u003e\u003ccode\u003e71b0f8a\u003c/code\u003e\u003c/a\u003e feat(experimental): Handle BidiReadObjectRedirectedError for bidi reads (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1600\"\u003e#1600\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-storage/commit/5d5e895e173075da557b58614fecc84086aaf9cb\"\u003e\u003ccode\u003e5d5e895\u003c/code\u003e\u003c/a\u003e feat(experimental): Add read resumption strategy (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1599\"\u003e#1599\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-storage/commit/5fb85ea544dcc9ed9dca65957c872c3811f02b87\"\u003e\u003ccode\u003e5fb85ea\u003c/code\u003e\u003c/a\u003e feat(experimental): Add base resumption strategy for bidi streams (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1594\"\u003e#1594\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-storage/commit/0d867bd4f405d2dbeca1edfc8072080c5a96c1cd\"\u003e\u003ccode\u003e0d867bd\u003c/code\u003e\u003c/a\u003e fix: Use separate header object for each upload in Transfer Manager MPU (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1595\"\u003e#1595\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/python-storage/compare/v3.1.0...v3.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `redis` from 6.4.0 to 7.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/redis-py/releases\"\u003eredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.1.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e🚀 New Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdding MSETEX command support. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3823\"\u003e#3823\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdding CLAIM option to XREADGROUP command + unit tests (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3825\"\u003e#3825\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eApply routing and response aggregation policies in OSS Cluster mode (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3834\"\u003e#3834\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧪 Experimental Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdding support for CAS/CAD commands. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3837\"\u003e#3837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdding support for HYBRID search. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3813\"\u003e#3813\u003c/a\u003e \u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3843\"\u003e#3843\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🔥 Breaking changes (in experimental features)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplace default health check and failure detector with custom (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3822\"\u003e#3822\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd **options to parse functions for sentinel (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3831\"\u003e#3831\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eGenerating unique command cache key (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3765\"\u003e#3765\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdding Redis 8.4 RC1 image to test matrix. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3820\"\u003e#3820\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove Python 3.9 support. Add Python 3.14 support. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3814\"\u003e#3814\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSync readme with 7.0.1 and update lib version to latest stable released version - 7.0.1 (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3821\"\u003e#3821\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump rojopolis/spellcheck-github-actions from 0.52.0 to 0.53.0 (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3827\"\u003e#3827\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump actions/upload-artifact from 4 to 5 (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3828\"\u003e#3828\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump github/codeql-action from 3 to 4 (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3829\"\u003e#3829\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixing flaky tests (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3833\"\u003e#3833\u003c/a\u003e \u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3838\"\u003e#3838\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate 8.4 RC image tag to 8.4-RC1-pre.2 for pipeline test matrix (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3832\"\u003e#3832\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd missing f-string when returning an error. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3841\"\u003e#3841\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdding latest 8.4 image to test matrix. Updating the Hybrid VSIM query format to be in sync with spec after srv issue was fixed. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3843\"\u003e#3843\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand cluster READ_COMMANDS with additional read-only commands and reorganize the list of commands by category (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3845\"\u003e#3845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate Type Hints for List Command Parameters from str to KeyT (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3848\"\u003e#3848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanging log level to be debug for failed maintenance notification enablement when enabled='auto' (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3851\"\u003e#3851\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded custom event handler section (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3853\"\u003e#3853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanging current version to 8.4 as it is already GA (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3854\"\u003e#3854\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\n\u003ca href=\"https://github.com/ShubhamKaudewar\"\u003e\u003ccode\u003e@​ShubhamKaudewar\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/matthewwiese\"\u003e\u003ccode\u003e@​matthewwiese\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/peperon\"\u003e\u003ccode\u003e@​peperon\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/vladvildanov\"\u003e\u003ccode\u003e@​vladvildanov\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/petyaslavova\"\u003e\u003ccode\u003e@​petyaslavova\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e7.0.1\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003cp\u003eThis release adds small fixes related to documentation.\u003c/p\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd 'multi_database' section to documentation index (313d93f)\u003c/li\u003e\n\u003cli\u003eRevised multi-database client documentation(78df745)\u003c/li\u003e\n\u003cli\u003eAdding info about Multi-database client in README.md (3f7a55e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/...\n\n_Description has been truncated_","html_url":"https://github.com/ONSdigital/eq-questionnaire-runner/pull/1792","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ONSdigital%2Feq-questionnaire-runner/issues/1792","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1792/packages"},{"uuid":"3683686609","node_id":"PR_kwDOPdzh-c62fUYZ","number":92,"state":"closed","title":"Bump the python group across 1 directory with 35 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-12-03T22:24:00.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-02T02:08:35.000Z","updated_at":"2025-12-03T22:24:02.000Z","time_to_close":159325,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python","update_count":35,"packages":[{"name":"rcssmin","old_version":"1.1.2","new_version":"1.2.2","repository_url":"https://github.com/ndparker/rcssmin"},{"name":"whitenoise","old_version":"6.9.0","new_version":"6.11.0","repository_url":"https://github.com/evansd/whitenoise"},{"name":"hiredis","old_version":"3.2.1","new_version":"3.3.0","repository_url":"https://github.com/redis/hiredis-py"},{"name":"celery","old_version":"5.5.3","new_version":"5.6.0","repository_url":"https://github.com/celery/celery"},{"name":"django","old_version":"5.1.11","new_version":"5.2.8","repository_url":"https://github.com/django/django"},{"name":"django-allauth","old_version":"65.10.0","new_version":"65.13.1"},{"name":"django-crispy-forms","old_version":"2.4","new_version":"2.5","repository_url":"https://github.com/django-crispy-forms/django-crispy-forms"},{"name":"django-compressor","old_version":"4.5.1","new_version":"4.6.0","repository_url":"https://github.com/django-compressor/django-compressor"},{"name":"uwsgi","old_version":"2.0.30","new_version":"2.0.31"},{"name":"easy-thumbnails","old_version":"2.10","new_version":"2.10.1"},{"name":"django-cms","old_version":"5.0.2","new_version":"5.0.5","repository_url":"https://github.com/django-cms/django-cms"},{"name":"djangocms-versioning","old_version":"2.4.0","new_version":"2.5.0","repository_url":"https://github.com/django-cms/djangocms-versioning"},{"name":"django-entangled","old_version":"0.6.3","new_version":"0.7","repository_url":"https://github.com/jrief/django-entangled"},{"name":"djangocms-text","old_version":"0.9.2","new_version":"0.9.3","repository_url":"https://github.com/django-cms/djangocms-text"},{"name":"djangocms-frontend","old_version":"2.1.4","new_version":"2.2.0","repository_url":"https://github.com/django-cms/djangocms-frontend"},{"name":"djangocms-attributes-field","old_version":"4.1.1","new_version":"4.1.2","repository_url":"https://github.com/django-cms/djangocms-attributes-field"},{"name":"svglib","old_version":"1.5.1","new_version":"1.6.0","repository_url":"https://github.com/deeplook/svglib"},{"name":"reportlab","old_version":"4.4.3","new_version":"4.4.5"},{"name":"django-filer","old_version":"3.3.1","new_version":"3.4.1","repository_url":"https://github.com/django-cms/django-filer"},{"name":"pip-tools","old_version":"7.5.0","new_version":"7.5.2","repository_url":"https://github.com/jazzband/pip-tools"},{"name":"djangocms-snippet","old_version":"5.0.1","new_version":"5.0.2","repository_url":"https://github.com/django-cms/djangocms-snippet"},{"name":"djangocms-form-builder","old_version":"0.3.2","new_version":"0.4.0","repository_url":"https://github.com/fsbraun/djangocms-form-builder"},{"name":"psycopg","old_version":"3.2.9","new_version":"3.3.0"},{"name":"django-anymail","old_version":"13.0.1","new_version":"13.1"},{"name":"werkzeug","old_version":"3.1.3","new_version":"3.1.4"},{"name":"watchfiles","old_version":"1.1.0","new_version":"1.1.1","repository_url":"https://github.com/samuelcolvin/watchfiles"},{"name":"mypy","old_version":"1.17.1","new_version":"1.19.0","repository_url":"https://github.com/python/mypy"},{"name":"django-stubs","old_version":"5.2.2","new_version":"5.2.8"},{"name":"pytest-sugar","old_version":"1.0.0","new_version":"1.1.1","repository_url":"https://github.com/Teemu/pytest-sugar"},{"name":"ruff","old_version":"0.12.8","new_version":"0.14.7","repository_url":"https://github.com/astral-sh/ruff"},{"name":"coverage","old_version":"7.10.3","new_version":"7.12.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"pre-commit","old_version":"4.3.0","new_version":"4.5.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"factory-boy","old_version":"3.3.2","new_version":"3.3.3","repository_url":"https://github.com/FactoryBoy/factory_boy"},{"name":"django-debug-toolbar","old_version":"6.0.0","new_version":"6.1.0","repository_url":"https://github.com/django-commons/django-debug-toolbar"},{"name":"django-coverage-plugin","old_version":"3.1.1","new_version":"3.2.0","repository_url":"https://github.com/nedbat/django_coverage_plugin"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python group with 35 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [rcssmin](https://github.com/ndparker/rcssmin) | `1.1.2` | `1.2.2` |\n| [whitenoise](https://github.com/evansd/whitenoise) | `6.9.0` | `6.11.0` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.2.1` | `3.3.0` |\n| [celery](https://github.com/celery/celery) | `5.5.3` | `5.6.0` |\n| [django](https://github.com/django/django) | `5.1.11` | `5.2.8` |\n| [django-allauth[mfa]](https://github.com/sponsors/pennersr) | `65.10.0` | `65.13.1` |\n| [django-crispy-forms](https://github.com/django-crispy-forms/django-crispy-forms) | `2.4` | `2.5` |\n| [django-compressor](https://github.com/django-compressor/django-compressor) | `4.5.1` | `4.6.0` |\n| [uwsgi](https://uwsgi-docs.readthedocs.io/en/latest/) | `2.0.30` | `2.0.31` |\n| [easy-thumbnails[svg]](https://github.com/SmileyChris/easy-thumbnails) | `2.10` | `2.10.1` |\n| [django-cms](https://github.com/django-cms/django-cms) | `5.0.2` | `5.0.5` |\n| [djangocms-versioning](https://github.com/django-cms/djangocms-versioning) | `2.4.0` | `2.5.0` |\n| [django-entangled](https://github.com/jrief/django-entangled) | `0.6.3` | `0.7` |\n| [djangocms-text](https://github.com/django-cms/djangocms-text) | `0.9.2` | `0.9.3` |\n| [djangocms-frontend](https://github.com/django-cms/djangocms-frontend) | `2.1.4` | `2.2.0` |\n| [djangocms-attributes-field](https://github.com/django-cms/djangocms-attributes-field) | `4.1.1` | `4.1.2` |\n| [svglib](https://github.com/deeplook/svglib) | `1.5.1` | `1.6.0` |\n| [reportlab](https://www.reportlab.com/) | `4.4.3` | `4.4.5` |\n| [django-filer](https://github.com/django-cms/django-filer) | `3.3.1` | `3.4.1` |\n| [pip-tools](https://github.com/jazzband/pip-tools) | `7.5.0` | `7.5.2` |\n| [djangocms-snippet](https://github.com/django-cms/djangocms-snippet) | `5.0.1` | `5.0.2` |\n| [djangocms-form-builder](https://github.com/fsbraun/djangocms-form-builder) | `0.3.2` | `0.4.0` |\n| [psycopg[c]](https://github.com/psycopg/psycopg) | `3.2.9` | `3.3.0` |\n| [django-anymail[mailgun]](https://github.com/anymail/django-anymail) | `13.0.1` | `13.1` |\n| [werkzeug[watchdog]](https://github.com/pallets/werkzeug) | `3.1.3` | `3.1.4` |\n| [watchfiles](https://github.com/samuelcolvin/watchfiles) | `1.1.0` | `1.1.1` |\n| [mypy](https://github.com/python/mypy) | `1.17.1` | `1.19.0` |\n| [django-stubs[compatible-mypy]](https://github.com/sponsors/typeddjango) | `5.2.2` | `5.2.8` |\n| [pytest-sugar](https://github.com/Teemu/pytest-sugar) | `1.0.0` | `1.1.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.12.8` | `0.14.7` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.3` | `7.12.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.3.0` | `4.5.0` |\n| [factory-boy](https://github.com/FactoryBoy/factory_boy) | `3.3.2` | `3.3.3` |\n| [django-debug-toolbar](https://github.com/django-commons/django-debug-toolbar) | `6.0.0` | `6.1.0` |\n| [django-coverage-plugin](https://github.com/nedbat/django_coverage_plugin) | `3.1.1` | `3.2.0` |\n\n\nUpdates `rcssmin` from 1.1.2 to 1.2.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ndparker/rcssmin/blob/master/CHANGES\"\u003ercssmin's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eChanges with version 1.2.2\u003c/p\u003e\n\u003cp\u003e*) Update benchmarks\u003c/p\u003e\n\u003cp\u003e*) Add support for Python 3.14\u003c/p\u003e\n\u003cp\u003e*) Update project boilerplate\u003c/p\u003e\n\u003cp\u003eChanges with version 1.2.1\u003c/p\u003e\n\u003cp\u003e*) Change doc theme to \u0026quot;furo\u0026quot;\u003c/p\u003e\n\u003cp\u003e*) Remove build dependency pinning (resolves \u003ca href=\"https://redirect.github.com/ndparker/rcssmin/issues/18\"\u003e#18\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e*) Update project boilerplate\u003c/p\u003e\n\u003cp\u003eChanges with version 1.2.0\u003c/p\u003e\n\u003cp\u003e*) Add support for nesting selector (\u0026amp;)\u003c/p\u003e\n\u003cp\u003e*) Update project boilerplate\u003c/p\u003e\n\u003cp\u003eChanges with version 1.1.3\u003c/p\u003e\n\u003cp\u003e*) Add support for Python 3.13\u003c/p\u003e\n\u003cp\u003e*) Update project boilerplate\u003c/p\u003e\n\u003cp\u003eChanges with version 1.1.2\u003c/p\u003e\n\u003cp\u003e*) Add support for Python 3.12\u003c/p\u003e\n\u003cp\u003e*) Add musllinux wheels\u003c/p\u003e\n\u003cp\u003e*) Update project boilerplate\u003c/p\u003e\n\u003cp\u003eChanges with version 1.1.1\u003c/p\u003e\n\u003cp\u003e*) Add support for Python 3.11\u003c/p\u003e\n\u003cp\u003e*) Update project boilerplate\u003c/p\u003e\n\u003cp\u003eChanges with version 1.1.0\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 href=\"https://github.com/ndparker/rcssmin/commit/b4cac4d1ffd665aa3b8d2f9e0e09529578a67193\"\u003e\u003ccode\u003eb4cac4d\u003c/code\u003e\u003c/a\u003e Bump version to 1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/db3f06eefa05860bbe1e8fa373e0249cb6adedbb\"\u003e\u003ccode\u003edb3f06e\u003c/code\u003e\u003c/a\u003e Update benchmarks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/77816d3cf9e2f3dc03c00e1f8526e471dffdc3fe\"\u003e\u003ccode\u003e77816d3\u003c/code\u003e\u003c/a\u003e Add Python 3.14 support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/ecac7747c1a68781cf1b524ea54db44aae7c7bd2\"\u003e\u003ccode\u003eecac774\u003c/code\u003e\u003c/a\u003e Project boilerplate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/5bac716410f460f75e243961f482b1895e487b6b\"\u003e\u003ccode\u003e5bac716\u003c/code\u003e\u003c/a\u003e Bump version to 1.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/8d4312f864efa55d36742a728adffebfd27a6aa3\"\u003e\u003ccode\u003e8d4312f\u003c/code\u003e\u003c/a\u003e Hello 2025\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/41d1e1f7ae6242a80854509d7181f8a91278722b\"\u003e\u003ccode\u003e41d1e1f\u003c/code\u003e\u003c/a\u003e Update dependencies, change sphinx theme\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/5396f5ec399b2ac57293657fb87ca888f3ecda8e\"\u003e\u003ccode\u003e5396f5e\u003c/code\u003e\u003c/a\u003e Bump version to 1.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/81da21987bfe614153711217f1b50bc0fa5f4c55\"\u003e\u003ccode\u003e81da219\u003c/code\u003e\u003c/a\u003e Update benchmarks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/1f9ff6d2d89f03108ccf53332352e328ee010b82\"\u003e\u003ccode\u003e1f9ff6d\u003c/code\u003e\u003c/a\u003e Add support for nesting selector (\u0026amp;)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ndparker/rcssmin/compare/1.1.2...1.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `whitenoise` from 6.9.0 to 6.11.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/evansd/whitenoise/blob/main/docs/changelog.rst\"\u003ewhitenoise's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.11.0 (2025-09-18)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Django 6.0.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.10.0 (2025-09-09)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14.\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 href=\"https://github.com/evansd/whitenoise/commit/c9c06e9382b92fc959ffdfc3e2ec63057de82561\"\u003e\u003ccode\u003ec9c06e9\u003c/code\u003e\u003c/a\u003e Version 6.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/051c4e997a07fd3ae5e9f3ec092080102ab89d93\"\u003e\u003ccode\u003e051c4e9\u003c/code\u003e\u003c/a\u003e Support Django 6.0 (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/665\"\u003e#665\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/c903cc13394895cbb3926e48c7acecf364efcd26\"\u003e\u003ccode\u003ec903cc1\u003c/code\u003e\u003c/a\u003e Version 6.10.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/a81bcb0ae2dd0c5884ebadb762f46827ecb54d0f\"\u003e\u003ccode\u003ea81bcb0\u003c/code\u003e\u003c/a\u003e docs(django): use the stable version in URLs (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/626\"\u003e#626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/67b4f32b12a9700b6dcc30ced8e9ad23bf39baa1\"\u003e\u003ccode\u003e67b4f32\u003c/code\u003e\u003c/a\u003e Support Python 3.14 (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/664\"\u003e#664\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/da8d333d165be1bdd9e7decbb3a293b5e55ff608\"\u003e\u003ccode\u003eda8d333\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/663\"\u003e#663\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/800072482c0652f81864ae78c26539d3dfc765b2\"\u003e\u003ccode\u003e8000724\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/662\"\u003e#662\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/8fb339f0eaee9219b1e02a840b5fd2227cf2fbbf\"\u003e\u003ccode\u003e8fb339f\u003c/code\u003e\u003c/a\u003e Upgrade dependencies (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/661\"\u003e#661\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/adf64ddfa5329d622cbc4740aec49b7baf0df792\"\u003e\u003ccode\u003eadf64dd\u003c/code\u003e\u003c/a\u003e Use uvx to run tox on GitHub Actions (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/660\"\u003e#660\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/ad6eb204640ff69498f8fc60bd9eb876ee5771b8\"\u003e\u003ccode\u003ead6eb20\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/659\"\u003e#659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/evansd/whitenoise/compare/6.9.0...6.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `hiredis` from 3.2.1 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/hiredis-py/releases\"\u003ehiredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.3.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e by \u003ca href=\"https://github.com/zweizeichen\"\u003e\u003ccode\u003e@​zweizeichen\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\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 href=\"https://github.com/redis/hiredis-py/commit/187d0f387afed58a955a42ea8c5467100871f98b\"\u003e\u003ccode\u003e187d0f3\u003c/code\u003e\u003c/a\u003e Version 3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/3efcf037edc5a9f7abfaedbd3f60b2a03feb4787\"\u003e\u003ccode\u003e3efcf03\u003c/code\u003e\u003c/a\u003e Add Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/215\"\u003e#215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/966cede2c0ca0a8ac4fe0786571e5c230f39c36e\"\u003e\u003ccode\u003e966cede\u003c/code\u003e\u003c/a\u003e Fix assertion in reader.c (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/212\"\u003e#212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/78def309e58126fdaacb66e6fd40df9c46494062\"\u003e\u003ccode\u003e78def30\u003c/code\u003e\u003c/a\u003e Bump version to 3.3.0-dev\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/redis/hiredis-py/compare/v3.2.1...v3.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `celery` from 5.5.3 to 5.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/celery/celery/releases\"\u003ecelery's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.6.0\u003c/h2\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003ch2\u003eKey Highlights\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.celeryq.dev/en/stable/history/whatsnew-5.6.html\"\u003eWhat's new in Celery 5.6\u003c/a\u003e for a complete overview or read the main highlights below.\u003c/p\u003e\n\u003ch3\u003ePython 3.9 Minimum Version\u003c/h3\u003e\n\u003cp\u003eCelery 5.6.0 drops support for Python 3.8 (EOL). The minimum required Python version is now 3.9. Users still on Python 3.8 must upgrade their Python version before upgrading to Celery 5.6.0.\u003c/p\u003e\n\u003cp\u003eAdditionally, this release includes initial support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eSQS: Reverted to \u003ccode\u003epycurl\u003c/code\u003e from \u003ccode\u003eurllib3\u003c/code\u003e\u003c/h3\u003e\n\u003cp\u003eThe switch from \u003ccode\u003epycurl\u003c/code\u003e to \u003ccode\u003eurllib3\u003c/code\u003e for the SQS transport (introduced in Celery 5.5.0 via Kombu) has been reverted due to critical issues affecting SQS users.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/auvipy\"\u003e\u003ccode\u003e@​auvipy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9620\"\u003ecelery/celery#9620\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eSecurity Fix: Broker Credential Leak Prevention\u003c/h3\u003e\n\u003cp\u003eFixed a security issue where broker URLs containing passwords were being logged in plaintext by the delayed delivery mechanism. Broker credentials are now properly sanitized in all log output.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/giancarloromeo\"\u003e\u003ccode\u003e@​giancarloromeo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9997\"\u003ecelery/celery#9997\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eMemory Leak Fixes\u003c/h3\u003e\n\u003cp\u003eTwo significant memory leaks have been fixed in this release:\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eException Handling Memory Leak\u003c/strong\u003e: Fixed a critical memory leak in task exception handling that was particularly severe on Python 3.11+ due to enhanced traceback data. The fix properly breaks reference cycles in tracebacks to allow garbage collection.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/jaiganeshs21\"\u003e\u003ccode\u003e@​jaiganeshs21\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9799\"\u003ecelery/celery#9799\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ePending Result Memory Leak\u003c/strong\u003e: Fixed a memory leak where \u003ccode\u003eAsyncResult\u003c/code\u003e subscriptions were not being cleaned up when results were forgotten.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/tsoos99dev\"\u003e\u003ccode\u003e@​tsoos99dev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9806\"\u003ecelery/celery#9806\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eETA Task Memory Limit\u003c/h3\u003e\n\u003cp\u003eNew configuration option \u003ccode\u003eworker_eta_task_limit\u003c/code\u003e to prevent out-of-memory crashes when workers fetch large numbers of ETA or countdown tasks. Previously, workers could exhaust available memory when the broker contained many scheduled tasks.\u003c/p\u003e\n\u003cp\u003eExample usage:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eapp.conf.worker_eta_task_limit = 1000\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/sashu2310\"\u003e\u003ccode\u003e@​sashu2310\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9853\"\u003ecelery/celery#9853\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eQueue Type Selection for Auto-created Queues\u003c/h3\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 href=\"https://github.com/celery/celery/blob/main/Changelog.rst\"\u003ecelery's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.6.0\u003c/h1\u003e\n\u003cp\u003e:release-date: 2025-11-30\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003cp\u003eKey Highlights\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nSee :ref:`whatsnew-5.6` for a complete overview or read the main highlights below.\n\u003ch2\u003ePython 3.9 Minimum Version\u003c/h2\u003e\n\u003cp\u003eCelery 5.6.0 drops support for Python 3.8 (EOL). The minimum required Python\nversion is now 3.9. Users still on Python 3.8 must upgrade their Python version\nbefore upgrading to Celery 5.6.0.\u003c/p\u003e\n\u003cp\u003eAdditionally, this release includes initial support for Python 3.14.\u003c/p\u003e\n\u003ch2\u003eSQS: Reverted to \u003ccode\u003epycurl\u003c/code\u003e from \u003ccode\u003eurllib3\u003c/code\u003e\u003c/h2\u003e\n\u003cp\u003eThe switch from \u003ccode\u003epycurl\u003c/code\u003e to \u003ccode\u003eurllib3\u003c/code\u003e for the SQS transport (introduced in\nCelery 5.5.0 via Kombu) has been reverted due to critical issues affecting SQS\nusers:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eProcessing throughput dropped from ~100 tasks/sec to ~3/sec in some environments\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUnknownOperationException\u003c/code\u003e errors causing container crash loops\u003c/li\u003e\n\u003cli\u003eSilent message processing failures with no error logs\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eUsers of the SQS transport must ensure \u003ccode\u003epycurl\u003c/code\u003e is installed. If you removed\n\u003ccode\u003epycurl\u003c/code\u003e after upgrading to Celery 5.5.0, you will need to reinstall it.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ccode\u003e@auvipy \u0026amp;lt;https://github.com/auvipy\u0026amp;gt;\u003c/code\u003e_ in\n\u003ccode\u003e[#9620](https://github.com/celery/celery/issues/9620) \u0026amp;lt;https://github.com/celery/celery/pull/9620\u0026amp;gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003ch2\u003eSecurity Fix: Broker Credential Leak Prevention\u003c/h2\u003e\n\u003cp\u003eFixed a security issue where broker URLs containing passwords were being logged\nin plaintext by the delayed delivery mechanism. Broker credentials are now\nproperly sanitized in all log output.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ccode\u003e@giancarloromeo \u0026amp;lt;https://github.com/giancarloromeo\u0026amp;gt;\u003c/code\u003e_ in\n\u003ccode\u003e[#9997](https://github.com/celery/celery/issues/9997) \u0026amp;lt;https://github.com/celery/celery/pull/9997\u0026amp;gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003cp\u003eMemory Leak Fixes\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\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 href=\"https://github.com/celery/celery/commit/cca11164860a1bee6ad8626c27a683b482f741eb\"\u003e\u003ccode\u003ecca1116\u003c/code\u003e\u003c/a\u003e Prepare for release: v5.6.0 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10010\"\u003e#10010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/1133f22181bb22223d39c0060973695c6af55643\"\u003e\u003ccode\u003e1133f22\u003c/code\u003e\u003c/a\u003e Bump mypy from 1.14.1 to 1.19.0 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10008\"\u003e#10008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/0932d2c06e001903b90638f7c40a14f5407c9801\"\u003e\u003ccode\u003e0932d2c\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10007\"\u003e#10007\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/b446910f18860531b089d6c39f974265cc24a589\"\u003e\u003ccode\u003eb446910\u003c/code\u003e\u003c/a\u003e Prepare for (pre) release: v5.6.0rc2 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10005\"\u003e#10005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/3f0f0fe7ea6a67a696d0a750644b552559ae368e\"\u003e\u003ccode\u003e3f0f0fe\u003c/code\u003e\u003c/a\u003e asynpool: Don't return from inside a finally block (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10000\"\u003e#10000\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/95d05527c0e1fff5c1a38877ba87592983a7f993\"\u003e\u003ccode\u003e95d0552\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10003\"\u003e#10003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/f32b92f0e481601e9cc9f1212a4feced3f48e1a0\"\u003e\u003ccode\u003ef32b92f\u003c/code\u003e\u003c/a\u003e Add Py39-314t to CI (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9999\"\u003e#9999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/63c1910221d9fb8c1931ff62c80c4c37232b2d58\"\u003e\u003ccode\u003e63c1910\u003c/code\u003e\u003c/a\u003e Don't fail task on timeout during cold shutdown (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9678\"\u003e#9678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/30649dbd41308fc8eef79b2aae179a908eaa7a51\"\u003e\u003ccode\u003e30649db\u003c/code\u003e\u003c/a\u003e Fix log leaking broker credentials (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9997\"\u003e#9997\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/929412e2d4d328e337be3f177ca99fff10ab9bdc\"\u003e\u003ccode\u003e929412e\u003c/code\u003e\u003c/a\u003e Remove Python 4.0 version condition for pytest dependencies (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9993\"\u003e#9993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/celery/celery/compare/v5.5.3...v5.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django` from 5.1.11 to 5.2.8\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/47fe39af56ecd0ad73b9c7562511015e96b91b80\"\u003e\u003ccode\u003e47fe39a\u003c/code\u003e\u003c/a\u003e [5.2.x] Bumped version for 5.2.8 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/ac9fcf6eb2c909f4150c5287808f49170ce1f9e2\"\u003e\u003ccode\u003eac9fcf6\u003c/code\u003e\u003c/a\u003e [5.2.x] Refs CVE-2025-64459 -- Avoided propagating invalid arguments to Q on ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/6703f364d767e949c5b0e4016433ef75063b4f9b\"\u003e\u003ccode\u003e6703f36\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2025-64459 -- Prevented SQL injections in Q/QuerySet via th...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/4f5d904b63751dea9ffc3b0e046404a7fa5881ac\"\u003e\u003ccode\u003e4f5d904\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2025-64458 -- Mitigated potential DoS in HttpResponseRedire...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/cbdf128cb316bccf9ca3b3b4966e57bd050bfc8a\"\u003e\u003ccode\u003ecbdf128\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36704\"\u003e#36704\u003c/a\u003e -- Fixed system check error for proxy model with a compo...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/6775888470317a6d69121779b489bb2dc7350318\"\u003e\u003ccode\u003e6775888\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36696\"\u003e#36696\u003c/a\u003e -- Fixed NameError when inspecting functions with deferr...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/d5dfffaae52b9dcb4857d42b1e2902290a5c5e3c\"\u003e\u003ccode\u003ed5dfffa\u003c/code\u003e\u003c/a\u003e [5.2.x] Added stub release notes and release date for 5.2.8, 5.1.14, and 4.2.26.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/368f955c371cab5db18e9e239d10560cf15f5ea4\"\u003e\u003ccode\u003e368f955\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36681\"\u003e#36681\u003c/a\u003e -- Removed English pluralization bias from example in do...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/71267c97db211f1d7f1b8b794ceb2167a7619a4d\"\u003e\u003ccode\u003e71267c9\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/35095\"\u003e#35095\u003c/a\u003e -- Clarified Swiss number formatting in docs/topics/i18n...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/9b37bd5fe73b0d614ad8e503071d6f7bf2bdf6b2\"\u003e\u003ccode\u003e9b37bd5\u003c/code\u003e\u003c/a\u003e [5.2.x] Made RemoteTestResultTest.test_pickle_errors_detection() compatible w...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/5.1.11...5.2.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-allauth[mfa]` from 65.10.0 to 65.13.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sponsors/pennersr/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-crispy-forms` from 2.4 to 2.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/releases\"\u003edjango-crispy-forms's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eConfirmed support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eConfirmed support for Django 6.0.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8.\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 href=\"https://github.com/django-crispy-forms/django-crispy-forms/blob/main/CHANGELOG.md\"\u003edjango-crispy-forms's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.5 (2025-11-06)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eConfirmed support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eConfirmed support for Django 6.0.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8.\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 href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/65fa8ae065638da101851807937bb89ae1b5687e\"\u003e\u003ccode\u003e65fa8ae\u003c/code\u003e\u003c/a\u003e 2.5 Release. (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1424\"\u003e#1424\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/ca4ca14da2aeac3ce934b83861f1b2a558b736fd\"\u003e\u003ccode\u003eca4ca14\u003c/code\u003e\u003c/a\u003e PEP 639 licenses  (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1413\"\u003e#1413\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/aaabe68c0d5a2eee98101ff661b2c5cab28a0777\"\u003e\u003ccode\u003eaaabe68\u003c/code\u003e\u003c/a\u003e Updated pre-commit hook versions.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/125dd1632a460b4dd7b1c8ab0738863d0470c2cb\"\u003e\u003ccode\u003e125dd16\u003c/code\u003e\u003c/a\u003e Pyupgrade 3.9+\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/1f9c8ecc24a3159c86219403ae26e7d0c67e15b7\"\u003e\u003ccode\u003e1f9c8ec\u003c/code\u003e\u003c/a\u003e Confirmed support for Python 3.14, Django. Drop support for Python 3.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/93cb8c8e817870e19a6c426a3e5716ae748a6535\"\u003e\u003ccode\u003e93cb8c8\u003c/code\u003e\u003c/a\u003e Correct names in special thanks section (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1421\"\u003e#1421\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/e327548f80a531bba5ac1049b73108a0681eebf4\"\u003e\u003ccode\u003ee327548\u003c/code\u003e\u003c/a\u003e Added security policy. (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1419\"\u003e#1419\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/64813429d54b39c10d7bb7ad2db4ab0e0e2c418f\"\u003e\u003ccode\u003e6481342\u003c/code\u003e\u003c/a\u003e Enabled GitHub code of conduct (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1416\"\u003e#1416\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/dabd719113c8e7e43fa8d5e254bfa938d169e6e8\"\u003e\u003ccode\u003edabd719\u003c/code\u003e\u003c/a\u003e Add Project Logo. (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1415\"\u003e#1415\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/compare/2.4...2.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-compressor` from 4.5.1 to 4.6.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-compressor/django-compressor/blob/develop/docs/changelog.txt\"\u003edjango-compressor's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003ev4.6 (2025-11-10)\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003eFull list of changes from v4.5.1 \u0026lt;https://github.com/django-compressor/django-compressor/compare/4.5.1...4.6\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed compatibility with latest BS4.\u003c/li\u003e\n\u003cli\u003eRemoved top pin for rcssmin and rjsmin dependencies.\u003c/li\u003e\n\u003cli\u003eAvoid compressing the same node concurrently in offline compression.\u003c/li\u003e\n\u003cli\u003eAvoid use of deprecated ast.Constant.s\u003c/li\u003e\n\u003cli\u003eOfficially support Django 6.0\u003c/li\u003e\n\u003cli\u003eOfficially support Django 5.2\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Django 5.0\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 3.9.\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 3.8.\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 href=\"https://github.com/django-compressor/django-compressor/commit/3ada994897cf982f97fc4c934be42eb1e0b71b9a\"\u003e\u003ccode\u003e3ada994\u003c/code\u003e\u003c/a\u003e Prepare 4.6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/1baa82a6cf6942eb12007217f26195a95df727e2\"\u003e\u003ccode\u003e1baa82a\u003c/code\u003e\u003c/a\u003e Remove CI testing for EOL Django 5.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/8706a52b740e7555abefc8fba1eaae1986ded1a5\"\u003e\u003ccode\u003e8706a52\u003c/code\u003e\u003c/a\u003e Add CI testing for Python 3.14 and Django 6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/7be9ce2cefedf59302207728e383fa7811232d59\"\u003e\u003ccode\u003e7be9ce2\u003c/code\u003e\u003c/a\u003e Bump brotli, lxml, and coverage test dependencies.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/d6fd8136febd1ba409b366c7471db8763522d91d\"\u003e\u003ccode\u003ed6fd813\u003c/code\u003e\u003c/a\u003e Remove test version pinning for rcssmin and rjsmin.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/2b46e7d1724109ebb5db49b76f008dc039f0a9db\"\u003e\u003ccode\u003e2b46e7d\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1307\"\u003e#1307\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/b97bb05836eb6a42d2746d43792e9d13f041b615\"\u003e\u003ccode\u003eb97bb05\u003c/code\u003e\u003c/a\u003e Disable bs4's multi valued attributes (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1296\"\u003e#1296\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/4e5433076300508e1c3648da3345ae606386eb3f\"\u003e\u003ccode\u003e4e54330\u003c/code\u003e\u003c/a\u003e Migrate packaging to pyproject.toml (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1313\"\u003e#1313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/872f8d52ce51957bccf4a91338d177c2ea4a3908\"\u003e\u003ccode\u003e872f8d5\u003c/code\u003e\u003c/a\u003e Remove version pinning for rcssmin and rjsmin (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1312\"\u003e#1312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/cc38666efb13c6e0b355cf273f56b783d7157e29\"\u003e\u003ccode\u003ecc38666\u003c/code\u003e\u003c/a\u003e Drop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1311\"\u003e#1311\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-compressor/django-compressor/compare/4.5.1...4.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uwsgi` from 2.0.30 to 2.0.31\n\nUpdates `easy-thumbnails[svg]` from 2.10 to 2.10.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/blob/master/CHANGES.rst\"\u003eeasy-thumbnails[svg]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.10.1 (2025-08-17)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Django-5.2.\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 href=\"https://github.com/SmileyChris/easy-thumbnails/commit/208f672ab53e3c7596c966b5282e64ed9747a3e4\"\u003e\u003ccode\u003e208f672\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/SmileyChris/easy-thumbnails/issues/664\"\u003e#664\u003c/a\u003e from SmileyChris/jrief-patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/318a2847391bb0e3fdc0a17a52af49a5851b53c9\"\u003e\u003ccode\u003e318a284\u003c/code\u003e\u003c/a\u003e Update CHANGES.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/0989a40226197b78bfa47939e44017bedea564fa\"\u003e\u003ccode\u003e0989a40\u003c/code\u003e\u003c/a\u003e version 2.10.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/3b86790c40788ebf9ce0cb66f529d745abe715b5\"\u003e\u003ccode\u003e3b86790\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/SmileyChris/easy-thumbnails/issues/663\"\u003e#663\u003c/a\u003e from tomkins/django-5.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/221679530109e5f92b2ad4d3e25f759d6dd90ced\"\u003e\u003ccode\u003e2216795\u003c/code\u003e\u003c/a\u003e Drop support for Django 5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/2cf9af0d7dc341ccaaabc79500033584aae88fbb\"\u003e\u003ccode\u003e2cf9af0\u003c/code\u003e\u003c/a\u003e Add support for Django 5.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/4957daa823a8ee17a90859281c2d93b06930e6fa\"\u003e\u003ccode\u003e4957daa\u003c/code\u003e\u003c/a\u003e Drop py38 from Django 4.2 testing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/21759697b0b5b600e6ebd5cce336a7d25f94099b\"\u003e\u003ccode\u003e2175969\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/SmileyChris/easy-thumbnails/issues/654\"\u003e#654\u003c/a\u003e from ArcaniteSolutions/fix-remote-storages-location-l...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/26351108ed706721492e606fe4ff51179d8a4844\"\u003e\u003ccode\u003e2635110\u003c/code\u003e\u003c/a\u003e check storage has location before fixing path\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/9d6fe6632ba4f175e9f4ad61eb4b3457b8124711\"\u003e\u003ccode\u003e9d6fe66\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/SmileyChris/easy-thumbnails/issues/650\"\u003e#650\u003c/a\u003e from benkonrath/python-3.13\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/compare/2.10.0...2.10.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-cms` from 5.0.2 to 5.0.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-cms/django-cms/releases\"\u003edjango-cms's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.0.5\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Searching pages for language-specific content failed due to wrong serach queryset (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8355\"\u003e#8355\u003c/a\u003e) by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8358\"\u003edjango-cms/django-cms#8358\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Fix default value for edit_fields parameter to avoid AttributeError by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8381\"\u003edjango-cms/django-cms#8381\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: avoid escaping (= stringify) None-values in PageAttribute template tag by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8384\"\u003edjango-cms/django-cms#8384\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Copying x-language lead to unique constraint violation (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8366\"\u003e#8366\u003c/a\u003e) by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8386\"\u003edjango-cms/django-cms#8386\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Ensure edit endpoint language selection when admin is not using i18n_patterns (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8367\"\u003e#8367\u003c/a\u003e) by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8390\"\u003edjango-cms/django-cms#8390\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Build release 5.0.5 by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8391\"\u003edjango-cms/django-cms#8391\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-cms/django-cms/compare/5.0.4...5.0.5\"\u003ehttps://github.com/django-cms/django-cms/compare/5.0.4...5.0.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Wrong placeholders rendered when using apphooks with own placeholders (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8343\"\u003e#8343\u003c/a\u003e) by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8348\"\u003edjango-cms/django-cms#8348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Prepare release 5.0.4 by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8352\"\u003edjango-cms/django-cms#8352\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-cms/django-cms/compare/5.0.3...5.0.4\"\u003ehttps://github.com/django-cms/django-cms/compare/5.0.3...5.0.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: Django 6 compatibility (July 2025) by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8302\"\u003edjango-cms/django-cms#8302\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: Add documentation for toolbar get_object and set_object methods by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8314\"\u003edjango-cms/django-cms#8314\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Respect individual placeholder checks if they can be changed (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8317\"\u003e#8317\u003c/a\u003e) by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8318\"\u003edjango-cms/django-cms#8318\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Cut children from inactive menu nodes when level is less or equal to 0 (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8322\"\u003e#8322\u003c/a\u003e) by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8324\"\u003edjango-cms/django-cms#8324\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: copy lang management command - include PageUrl (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/7548\"\u003e#7548\u003c/a\u003e) by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8335\"\u003edjango-cms/django-cms#8335\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Optimize placeholder and plugin utilities by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8337\"\u003edjango-cms/django-cms#8337\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Migration 0033 failed when empty placeholder objects were not present in the db by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8339\"\u003edjango-cms/django-cms#8339\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Build 5.0.3 release by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8341\"\u003edjango-cms/django-cms#8341\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-cms/django-cms/compare/5.0.2...5.0.3\"\u003ehttps://github.com/django-cms/django-cms/compare/5.0.2...5.0.3\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 href=\"https://github.com/django-cms/django-cms/blob/5.0.5/CHANGELOG.rst\"\u003edjango-cms's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.0.5 (2025-11-12)\u003c/h1\u003e\n\u003ch2\u003eBug Fixes:\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePin language of toolbar update to the request language\u003c/li\u003e\n\u003cli\u003eEnsure edit endpoint language selection when admin is not using i18n_patterns (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8367\"\u003e#8367\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8390\"\u003e#8390\u003c/a\u003e) (9e00f694e) -- Fabian Braun\u003c/li\u003e\n\u003cli\u003eCopying x-language lead to unique constraint violation (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8366\"\u003e#8366\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8386\"\u003e#8386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid escaping (= stringify) None-values in PageAttribute-TemplateTag (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8375\"\u003e#8375\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8384\"\u003e#8384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSet default value for edit_fields parameter to avoid AttributeError (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8381\"\u003e#8381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLink syntax in welcome.html\u003c/li\u003e\n\u003cli\u003eSearching pages for language-specific content failed due to wrong search queryset (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8355\"\u003e#8355\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8358\"\u003e#8358\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eStatistics:\u003c/h2\u003e\n\u003cp\u003eThis release includes 5 pull requests, and was created with the help of the following contributors (in alphabetical order):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFabian Braun (7 pull requests)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWith the review help of the following contributors:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVinit Kumar\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to all contributors for their efforts!\u003c/p\u003e\n\u003ch1\u003e5.0.4 (2025-10-03)\u003c/h1\u003e\n\u003ch2\u003eBug Fixes:\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWrong placeholders rendered when using apphooks with own placeholders (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8343\"\u003e#8343\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8348\"\u003e#8348\u003c/a\u003e) (775392390) -- Fabian Braun\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eStatistics:\u003c/h2\u003e\n\u003cp\u003eThis release includes 1 pull request, and was created with the help of the following contributors (in alphabetical order):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFabian Braun (1 pull request)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWith the review help of the following contributors:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVinit Kumar\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to all contributors for their efforts!\u003c/p\u003e\n\u003ch1\u003e5.0.3 (2025-09-17)\u003c/h1\u003e\n\u003cp\u003eBug Fixes:\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 href=\"https://github.com/django-cms/django-cms/commit/6e970e6c4894ecd1459fedc6f2c00617a923a740\"\u003e\u003ccode\u003e6e970e6\u003c/code\u003e\u003c/a\u003e chore: Build release 5.0.5 (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8391\"\u003e#8391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/9e00f694ee0afe637521177a139d69a02d752f7f\"\u003e\u003ccode\u003e9e00f69\u003c/code\u003e\u003c/a\u003e fix: Ensure edit endpoint language selection when admin is not using i18n_pat...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/e6d0f76703afd154b2319a0b9e3b50e9330805bf\"\u003e\u003ccode\u003ee6d0f76\u003c/code\u003e\u003c/a\u003e fix: Copying x-language lead to unique constraint violation (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8366\"\u003e#8366\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8386\"\u003e#8386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/3990cfb37913e72d55780c3886445b4e75bdea78\"\u003e\u003ccode\u003e3990cfb\u003c/code\u003e\u003c/a\u003e Fix: avoid escaping (= stringify) None-values in PageAttribute-TemplateTag (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/80a19fdf550fab528cdc1c2634076de22e9497ad\"\u003e\u003ccode\u003e80a19fd\u003c/code\u003e\u003c/a\u003e fix: Fix default value for edit_fields parameter to avoid AttributeError (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8381\"\u003e#8381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/6f63ebf05e12c86512b8b084b615b1011c581708\"\u003e\u003ccode\u003e6f63ebf\u003c/code\u003e\u003c/a\u003e fix: link syntax in welcome.html\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/1ff46f7e1c3284eae9749497a76656afc8f8c302\"\u003e\u003ccode\u003e1ff46f7\u003c/code\u003e\u003c/a\u003e fix: Searching pages for language-specific content failed due to wrong serach...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/ed3a004b62ee69f099b0f647dd33778ba0b0d1fb\"\u003e\u003ccode\u003eed3a004\u003c/code\u003e\u003c/a\u003e chore: Prepare release 5.0.4 (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8352\"\u003e#8352\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/775392390eea0ffcdeccb0d21306d6e34fb859df\"\u003e\u003ccode\u003e7753923\u003c/code\u003e\u003c/a\u003e fix: Wrong placeholders rendered when using apphooks with own placeholders (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/cb8bdcecf623e125ea789a0551279a3dc0152deb\"\u003e\u003ccode\u003ecb8bdce\u003c/code\u003e\u003c/a\u003e chore: Build 5.0.3 release (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8341\"\u003e#8341\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-cms/django-cms/compare/5.0.2...5.0.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `djangocms-versioning` from 2.4.0 to 2.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-cms/djangocms-versioning/releases\"\u003edjangocms-versioning's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.5.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Fix typo in permission name by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/476\"\u003edjango-cms/djangocms-versioning#476\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Remove unnecessary \u003ccode\u003e_original_manager\u003c/code\u003e usage from toolbar by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/477\"\u003edjango-cms/djangocms-versioning#477\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/checkout from 4 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/482\"\u003edjango-cms/djangocms-versioning#482\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/cache from 4.2.3 to 4.2.4 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/481\"\u003edjango-cms/djangocms-versioning#481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/cache from 4.2.4 to 4.3.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/485\"\u003edjango-cms/djangocms-versioning#485\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/setup-python from 5 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/484\"\u003edjango-cms/djangocms-versioning#484\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump github/codeql-action from 3 to 4 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/487\"\u003edjango-cms/djangocms-versioning#487\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Respect site-specific language configurations by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/480\"\u003edjango-cms/djangocms-versioning#480\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Respect permissions for indicator menus and version locking by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/493\"\u003edjango-cms/djangocms-versioning#493\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Modernize JS build, remove jQuery bundle by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/492\"\u003edjango-cms/djangocms-versioning#492\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eModernize Python and Django support: Drop Python 3.9, add Python 3.14 and Django 6.0 by \u003ca href=\"https://github.com/vinitkumar\"\u003e\u003ccode\u003e@​vinitkumar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/489\"\u003edjango-cms/djangocms-versioning#489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/setup-node from 4 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/494\"\u003edjango-cms/djangocms-versioning#494\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump astral-sh/setup-uv from 5 to 7 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/495\"\u003edjango-cms/djangocms-versioning#495\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Update locales by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/497\"\u003edjango-cms/djangocms-versioning#497\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdates for file djangocms_versioning/locale/en/LC_MESSAGES/django.po in de by \u003ca href=\"https://github.com/transifex-integration\"\u003e\u003ccode\u003e@​transifex-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/496\"\u003edjango-cms/djangocms-versioning#496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[BUG FIX] Language menu is showing despite only one language configured by \u003ca href=\"https://github.com/va-lang\"\u003e\u003ccode\u003e@​va-lang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/491\"\u003edjango-cms/djangocms-versioning#491\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=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/476\"\u003edjango-cms/djangocms-versioning#476\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vinitkumar\"\u003e\u003ccode\u003e@​vinitkumar\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/489\"\u003edjango-cms/djangocms-versioning#489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/va-lang\"\u003e\u003ccode\u003e@​va-lang\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/491\"\u003edjango-cms/djangocms-versioning#491\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-cms/djangocms-versioning/compare/2.4.0...2.5.0\"\u003ehttps://github.com/django-cms/djangocms-versioning/compare/2.4.0...2.5.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 href=\"https://github.com/django-cms/djangocms-versioning/blob/master/CHANGELOG.rst\"\u003edjangocms-versioning's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.5.0 (2025-11-14)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efeat: Language menu allows creating new translations from preview mode by \u003ca href=\"https://github.com/va-lang\"\u003e\u003ccode\u003e@​va-lang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/491\"\u003edjango-cms/djangocms-versioning#491\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Modernize Python and Django support: Drop Python 3.9, add Python 3.14 and Django 6.0 by \u003ca href=\"https://github.com/vinitkumar\"\u003e\u003ccode\u003e@​vinitkumar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/489\"\u003edjango-cms/djangocms-versioning#489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Updates for file djangocms_versioning/locale/en/LC_MESSAGES/django.po in de by \u003ca href=\"https://github.com/transifex-integration\"\u003e\u003ccode\u003e@​transifex-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/496\"\u003edjango-cms/djangocms-versioning#496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Swap django-fsm with django-fsm-2\u003c/li\u003e\n\u003cli\u003efix: Typo in permission name by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/476\"\u003edjango-cms/djangocms-versioning#476\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Remove unnecessary \u003ccode\u003e_original_manager\u003c/code\u003e usage from toolbar by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/477\"\u003edjango-cms/djangocms-versioning#477\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Respect site-specific language configurations by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/480\"\u003edjango-cms/djangocms-versioning#480\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Respect permissions for indicator menus and version locking by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/493\"\u003edjango-cms/djangocms-versioning#493\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eNew Contributors\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/476\"\u003edjango-cms/djangocms-versioning#476\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vinitkumar\"\u003e\u003ccode\u003e@​vinitkumar\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/489\"\u003edjango-cms/djangocms-versioning#489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/va-lang\"\u003e\u003ccode\u003e@​va-lang\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/491\"\u003edjango-cms/djangocms-versioning#491\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 href=\"https://github.com/django-cms/djangocms-versioning/commit/da78ec1adc34f37ccfe9780a30c858b89f7637fe\"\u003e\u003ccode\u003eda78ec1\u003c/code\u003e\u003c/a\u003e chore: Prepare release 2.5.0 (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/issues/500\"\u003e#500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-versioning/commit/08df487169f44e7710f18155a9d5d02d32531e4c\"\u003e\u003ccode\u003e08df487\u003c/code\u003e\u003c/a\u003e chore: Simplified requirements_dev.txt file for tests (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/issues/499\"\u003e#499\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-versioning/commit/e2e5e8d3ab1ee07b4f1dd2c7518441f6e6038c21\"\u003e\u003ccode\u003ee2e5e8d\u003c/code\u003e\u003c/a\u003e [BUG FIX] Language menu is showing despite only one language configured (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/issues/491\"\u003e#491\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-versioning/commit/d90268d6ee31dd7f9e80df804ab9ad5a2df68c2b\"\u003e\u003ccode\u003ed90268d\u003c/code\u003e\u003c/a\u003e Translate django.po in de (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/issues/496\"\u003e#496\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-versioning/commit/bc3cbc10ff12106836da1a1ee51c8283b9d726cc\"\u003e\u003ccode\u003ebc3cbc1\u003c/code\u003e\u003c/a\u003e chore: Update locales (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/issues/497\"\u003e#497\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-versioning/commit/d111df897067a31fe8dca7b88773ae0ca9fba397\"\u003e\u003ccode\u003ed111df8\u003c/code\u003e\u003c/a\u003e build(deps): bump astral-sh/setup-uv from 5 to 7 (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/issues/495\"\u003e#495\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-versioning/commit/dc24f2604420f46c1203aa8a06a9dc948eceadd3\"\u003e\u003ccode\u003edc24f26\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-node from 4 to 6 (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/issues/494\"\u003e#494\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-versioning/commit/a0db3dea7aaf838376be6809fe9870ad7eee3205\"\u003e\u003ccode\u003ea0db3de\u003c/code\u003e\u003c/a\u003e Modernize Python and Django support: Drop Python 3.9, add Python 3.14 and Dja...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-versioning/commit/27abc23b5157a3cb6d18cfb2bdaaa61eb24a284d\"\u003e\u003ccode\u003e27abc23\u003c/code\u003e\u003c/a\u003e chore: Modernize JS build, remove jQuery bundle (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/issues/492\"\u003e#492\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-versioning/commit/29b3955871676bf69bd59154ff8125378ecca287\"\u003e\u003ccode\u003e29b3955\u003c/code\u003e\u003c/a\u003e fix: Respect permissions for indicator menus and version locking (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/issues/493\"\u003e#493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-cms/djangocms-versioning/compare/2.4.0...2.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-entangled` from 0.6.3 to 0.7\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jrief/django-entangled/blob/master/CHANGELOG.md\"\u003edjango-entangled's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.7\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Django 5.2.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.13.\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 href=\"https://github.com/jrief/django-entangled/commit/734bd8f8b316663a1f31d4fa7e9248a955baea21\"\u003e\u003ccode\u003e734bd8f\u003c/code\u003e\u003c/a\u003e Bump to version 0.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jrief/django-entangled/commit/fcad6c824be14d052456df759e23bc4b44646d3e\"\u003e\u003ccode\u003efcad6c8\u003c/code\u003e\u003c/a\u003e Add support for Django-5.2 and Python 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jrief/django-entangled/commit/a89b615cafcdbb939d71fb34dc30253d2dcf5c00\"\u003e\u003ccode\u003ea89b615\u003c/code\u003e\u003c/a\u003e Propagate django-formset\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/jrief/django-entangled/compare/0.6.3...0.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `djangocms-text` from 0.9.2 to 0.9.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-cms/djangocms-text/releases\"\u003edjangocms-text's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.9.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Fixed issues for non-CMS installations and added test coverage for non-CMS installations by \u003ca href=\"https://github.com/Grosskopf\"\u003e\u003ccode\u003e@​Grosskopf\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/119\"\u003edjango-cms/djangocms-text#119\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Respect plugin language for link field by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/113\"\u003edjango-cms/djangocms-text#113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/114\"\u003edjango-cms/djangocms-text#114\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/checkout from 4 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/115\"\u003edjango-cms/djangocms-text#115\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=\"https://github.com/Grosskopf\"\u003e\u003ccode\u003e@​Grosskopf\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/119\"\u003edjango-cms/djangocms-text#119\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-cms/djangocms-text/compare/0.9.2...0.9.3\"\u003ehttps://github.com/django-cms/djangocms-text/compare/0.9.2...0.9.3\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 href=\"https://github.com/django-cms/djangocms-text/blob/main/CHANGELOG.rst\"\u003edjangocms-text's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e0.9.3 (22-08-2025)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix: Fixed issues for non-CMS installations and added test coverage for non-CMS installations by \u003ca href=\"https://github.com/Grosskopf\"\u003e\u003ccode\u003e@​Grosskopf\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/119\"\u003edjango-cms/djangocms-text#119\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Respect plugin language for link field by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/113\"\u003edjango-cms/djangocms-text#113\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/Grosskopf\"\u003e\u003ccode\u003e@​Grosskopf\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/119\"\u003edjango-cms/djangocms-text#119\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 href=\"https://github.com/django-cms/djangocms-text/commit/23c8c5b276547459db18fad7bd2b45bf978c2d4b\"\u003e\u003ccode\u003e23c8c5b\u003c/code\u003e\u003c/a\u003e chore: Prepare release 0.9.3 (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/issues/120\"\u003e#120\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-text/commit/070dc3bff81b6aaad57b34bbbdce905a9a753fef\"\u003e\u003ccode\u003e070dc3b\u003c/code\u003e\u003c/a\u003e fix: Fixed issues for non-CMS installations and added test coverage for non-C...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-text/commit/d23c7830b72afd3d143bbd54dc5c3e25c7a844a7\"\u003e\u003ccode\u003ed23c783\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/issues/115\"\u003e#115\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-text/commit/4c78ee95ac529d9444a0c0342c41fe06c5edf9c1\"\u003e\u003ccode\u003e4c78ee9\u003c/code\u003e\u003c/a\u003e Merge branch 'main' of github.com:django-cms/djangocms-text\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-text/commit/d13df72a07522f1e1f84a50a4448a3ecde4bef65\"\u003e\u003ccode\u003ed13df72\u003c/code\u003e\u003c/a\u003e feat: node 24\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-text/commit/cf7b3b82f92999bb9297b213844696374f524937\"\u003e\u003ccode\u003ecf7b3b8\u003c/code\u003e\u003c/a\u003e ci: pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/issues/114\"\u003e#114\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-text/commit/5fa6205a5910b34334bdb14744f59b62a275a09e\"\u003e\u003ccode\u003e5fa6205\u003c/code\u003e\u003c/a\u003e Update comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-text/commit/79568c6b98a6e4adda9f84b84aa016254db60481\"\u003e\u003ccode\u003e79568c6\u003c/code\u003e\u003c/a\u003e fix: Respect plugin language for link field (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/issues/113\"\u003e#113\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/django-cms/djangocms-text/compare/0.9.2...0.9.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `djangocms-frontend` from 2.1.4 to 2.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-cms/djangocms-frontend/releases\"\u003edjangocms-frontend's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.2.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eci:(deps): bump actions/cache from 4.2.3 to 4.2.4 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-frontend/pull/297\"\u003edjango-cms/djangocms-frontend#297\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Only partially functional preview removed, CSS and JS refactor by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-frontend/pull/301\"\u003edjango-cms/djangocms-frontend#301\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Button group too condensed when using djangocms-admin-style by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-frontend/pull/303\"\u003edjango-cms/djangocms-frontend#303\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-cms/djangocms-frontend/compare/2.1.4...2.2.0\"\u003ehttps://github.com/django-cms/djangocms-frontend/compare/2.1.4...2.2.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 href=\"https://github.com/django-cms/djangocms-frontend/blob/main/CHANGELOG.rst\"\u003edjangocms-frontend's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.2.0 (2025-08-16)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efeat: Refactored CSS for faster and more reliable loading by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Removed link and button preview\u003c/li\u003e\n\u003cli\u003efix: Some UI Components were not discovered by the \u003ccode\u003e{% plugin %}\u003c/code\u003e template tag in django CMS 5\u003c/li\u003e\n\u003cli\u003efix: Restored Python 3.9 compatibility\u003c/li\u003e\n\u003cli\u003echore: Update node version\u003c/li\u003e\n\u003cli\u003echore: Remove bootstrap dependency\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 href=\"https://github.com/django-cms/djangocms-frontend/commit/6ec69a0c7fa36165e9bc3d5cfa333d60422985bf\"\u003e\u003ccode\u003e6ec69a0\u003c/code\u003e\u003c/a\u003e fix: Button group too condensed when using djangocms-admin-style (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-frontend/issues/303\"\u003e#303\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/662b357e8ad4642f18a73874eceac899a26ede66\"\u003e\u003ccode\u003e662b357\u003c/code\u003e\u003c/a\u003e fix: Docs references \u003ccode\u003efrontend_tags\u003c/code\u003e instead of \u003ccode\u003efrontend\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/5135e527beb741446f626e4c0c116f2e146c7667\"\u003e\u003ccode\u003e5135e52\u003c/code\u003e\u003c/a\u003e chore: Update LICENSE\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/b84bab7439442345ea8db89145a1079e4ba871bf\"\u003e\u003ccode\u003eb84bab7\u003c/code\u003e\u003c/a\u003e feat: Only partially functional preview removed, CSS and JS refactor (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-frontend/issues/301\"\u003e#301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/554418c1d4642279bef6e601ae2297ff5d634ba0\"\u003e\u003ccode\u003e554418c\u003c/code\u003e\u003c/a\u003e ci:(deps): bump actions/cache from 4.2.3 to 4.2.4 (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-frontend/issues/297\"\u003e#297\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/53a958051b6f475a3df3e48131956db0eed72d5e\"\u003e\u003ccode\u003e53a9580\u003c/code\u003e\u003c/a\u003e fix: typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/5f8829b6e5adbdf4689cc3747756e7ff4ae86dc1\"\u003e\u003ccode\u003e5f8829b\u003c/code\u003e\u003c/a\u003e Merge branch 'main' of github.com:django-cms/djangocms-frontend\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/b3a0eb6afc484c63520a2166dccff47ca0ec653e\"\u003e\u003ccode\u003eb3a0eb6\u003c/code\u003e\u003c/a\u003e fix: Python 3.9 support for plugin_tag.py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/4d3a3cf60485a9d17292a24db7654b75c19a1be9\"\u003e\u003ccode\u003e4d3a3cf\u003c/code\u003e\u003c/a\u003e fix test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/453e4c29d928076a3bf8c9e52b5a2f1f2e692231\"\u003e\u003ccode\u003e453e4c2\u003c/code\u003e\u003c/a\u003e chore: add test for py 3.9\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-cms/djangocms-frontend/compare/2.1.4...2.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `djangocms-attributes-field` from 4.1.1 to 4.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-cms/djangocms-attributes-field/releases\"\u003edjangocms-attributes-field's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.1.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Add min-height to attributes pair buttons by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-attributes-field/pull/62\"\u003edjango-cms/djangocms-attributes-field#62\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-cms/djangocms-attributes-field/compare/4.1.1...4.1.2\"\u003ehttps://github.com/django-cms/djangocms-attributes-field/compare/4.1.1...4.1.2\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 href=\"https://github.com/django-cms/djangocms-attributes-field/blob/master/CHANGELOG.rst\"\u003edjangocms-attributes-field's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.1.2 (2025-11.02)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix: Add min-height to add link for unstyled Django admin\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 href=\"https://github.com/django-cms/djangocms-attributes-field/commit/9adbde46e3c1bd52fd297cbbf9475e4da01cbba4\"\u003e\u003ccode\u003e9adbde4\u003c/code\u003e\u003c/a\u003e fix: Add min-height to attributes pair buttons (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-attributes-field/issues/62\"\u003e#62\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/django-cms/djangocms-attributes-field/compare/4.1.1...4.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `svglib` from 1.5.1 to 1.6.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/deeplook/svglib/blob/main/CHANGELOG.rst\"\u003esvglib's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.6.0 (2025-09-25)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplace setup.py with pyproject.toml, rework GitHub workflows (\u003ca href=\"https://redirect.github.com/deeplook/svglib/issues/405\"\u003e#405\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003cli\u003eModernize codebase, added type annotations, expanded docstrings, etc.\u003c/li\u003e\n\u003cli\u003eAdd a Makefile.\u003c/li\u003e\n\u003cli\u003eAdd publishing workflows.\u003c/li\u003e\n\u003cli\u003eRemove dunder constants and use importlib.metadata to get the version number.\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 href=\"https://github.com/deeplook/svglib/commit/1dce6584fb40de115479da10880dbf3b75cda955\"\u003e\u003ccode\u003e1dce658\u003c/code\u003e\u003c/a\u003e Expanded many docstrings, sanitized pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deeplook/svglib/commit/4c69f45919b181b98ebeb2614f84797217efd759\"\u003e\u003ccode\u003e4c69f45\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/deeplook/svglib/issues/412\"\u003e#412\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deeplook/svglib/commit/35a69b9af1eafbec5e4ff8eb759de7a506c4a83f\"\u003e...\n\n_Description has been truncated_","html_url":"https://github.com/maxnoelp2/coolify-template/pull/92","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/maxnoelp2%2Fcoolify-template/issues/92","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/92/packages"},{"uuid":"3683659389","node_id":"PR_kwDOPfcqS862fOIL","number":91,"state":"closed","title":"Bump the python group across 1 directory with 35 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-12-03T21:26:13.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-02T02:01:52.000Z","updated_at":"2025-12-03T21:26:15.000Z","time_to_close":156261,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python","update_count":35,"packages":[{"name":"rcssmin","old_version":"1.1.2","new_version":"1.2.2","repository_url":"https://github.com/ndparker/rcssmin"},{"name":"whitenoise","old_version":"6.9.0","new_version":"6.11.0","repository_url":"https://github.com/evansd/whitenoise"},{"name":"hiredis","old_version":"3.2.1","new_version":"3.3.0","repository_url":"https://github.com/redis/hiredis-py"},{"name":"celery","old_version":"5.5.3","new_version":"5.6.0","repository_url":"https://github.com/celery/celery"},{"name":"django","old_version":"5.1.11","new_version":"5.2.8","repository_url":"https://github.com/django/django"},{"name":"django-allauth","old_version":"65.10.0","new_version":"65.13.1"},{"name":"django-crispy-forms","old_version":"2.4","new_version":"2.5","repository_url":"https://github.com/django-crispy-forms/django-crispy-forms"},{"name":"django-compressor","old_version":"4.5.1","new_version":"4.6.0","repository_url":"https://github.com/django-compressor/django-compressor"},{"name":"uwsgi","old_version":"2.0.30","new_version":"2.0.31"},{"name":"easy-thumbnails","old_version":"2.10","new_version":"2.10.1"},{"name":"django-cms","old_version":"5.0.2","new_version":"5.0.5","repository_url":"https://github.com/django-cms/django-cms"},{"name":"djangocms-versioning","old_version":"2.4.0","new_version":"2.5.0","repository_url":"https://github.com/django-cms/djangocms-versioning"},{"name":"django-entangled","old_version":"0.6.3","new_version":"0.7","repository_url":"https://github.com/jrief/django-entangled"},{"name":"djangocms-text","old_version":"0.9.2","new_version":"0.9.3","repository_url":"https://github.com/django-cms/djangocms-text"},{"name":"djangocms-frontend","old_version":"2.1.4","new_version":"2.2.0","repository_url":"https://github.com/django-cms/djangocms-frontend"},{"name":"djangocms-attributes-field","old_version":"4.1.1","new_version":"4.1.2","repository_url":"https://github.com/django-cms/djangocms-attributes-field"},{"name":"svglib","old_version":"1.5.1","new_version":"1.6.0","repository_url":"https://github.com/deeplook/svglib"},{"name":"reportlab","old_version":"4.4.3","new_version":"4.4.5"},{"name":"django-filer","old_version":"3.3.1","new_version":"3.4.1","repository_url":"https://github.com/django-cms/django-filer"},{"name":"pip-tools","old_version":"7.5.0","new_version":"7.5.2","repository_url":"https://github.com/jazzband/pip-tools"},{"name":"djangocms-snippet","old_version":"5.0.1","new_version":"5.0.2","repository_url":"https://github.com/django-cms/djangocms-snippet"},{"name":"djangocms-form-builder","old_version":"0.3.2","new_version":"0.4.0","repository_url":"https://github.com/fsbraun/djangocms-form-builder"},{"name":"psycopg","old_version":"3.2.9","new_version":"3.3.0"},{"name":"django-anymail","old_version":"13.0.1","new_version":"13.1"},{"name":"werkzeug","old_version":"3.1.3","new_version":"3.1.4"},{"name":"watchfiles","old_version":"1.1.0","new_version":"1.1.1","repository_url":"https://github.com/samuelcolvin/watchfiles"},{"name":"mypy","old_version":"1.17.1","new_version":"1.19.0","repository_url":"https://github.com/python/mypy"},{"name":"django-stubs","old_version":"5.2.2","new_version":"5.2.8"},{"name":"pytest-sugar","old_version":"1.0.0","new_version":"1.1.1","repository_url":"https://github.com/Teemu/pytest-sugar"},{"name":"ruff","old_version":"0.12.8","new_version":"0.14.7","repository_url":"https://github.com/astral-sh/ruff"},{"name":"coverage","old_version":"7.10.3","new_version":"7.12.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"pre-commit","old_version":"4.3.0","new_version":"4.5.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"factory-boy","old_version":"3.3.2","new_version":"3.3.3","repository_url":"https://github.com/FactoryBoy/factory_boy"},{"name":"django-debug-toolbar","old_version":"6.0.0","new_version":"6.1.0","repository_url":"https://github.com/django-commons/django-debug-toolbar"},{"name":"django-coverage-plugin","old_version":"3.1.1","new_version":"3.2.0","repository_url":"https://github.com/nedbat/django_coverage_plugin"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python group with 35 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [rcssmin](https://github.com/ndparker/rcssmin) | `1.1.2` | `1.2.2` |\n| [whitenoise](https://github.com/evansd/whitenoise) | `6.9.0` | `6.11.0` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.2.1` | `3.3.0` |\n| [celery](https://github.com/celery/celery) | `5.5.3` | `5.6.0` |\n| [django](https://github.com/django/django) | `5.1.11` | `5.2.8` |\n| [django-allauth[mfa]](https://github.com/sponsors/pennersr) | `65.10.0` | `65.13.1` |\n| [django-crispy-forms](https://github.com/django-crispy-forms/django-crispy-forms) | `2.4` | `2.5` |\n| [django-compressor](https://github.com/django-compressor/django-compressor) | `4.5.1` | `4.6.0` |\n| [uwsgi](https://uwsgi-docs.readthedocs.io/en/latest/) | `2.0.30` | `2.0.31` |\n| [easy-thumbnails[svg]](https://github.com/SmileyChris/easy-thumbnails) | `2.10` | `2.10.1` |\n| [django-cms](https://github.com/django-cms/django-cms) | `5.0.2` | `5.0.5` |\n| [djangocms-versioning](https://github.com/django-cms/djangocms-versioning) | `2.4.0` | `2.5.0` |\n| [django-entangled](https://github.com/jrief/django-entangled) | `0.6.3` | `0.7` |\n| [djangocms-text](https://github.com/django-cms/djangocms-text) | `0.9.2` | `0.9.3` |\n| [djangocms-frontend](https://github.com/django-cms/djangocms-frontend) | `2.1.4` | `2.2.0` |\n| [djangocms-attributes-field](https://github.com/django-cms/djangocms-attributes-field) | `4.1.1` | `4.1.2` |\n| [svglib](https://github.com/deeplook/svglib) | `1.5.1` | `1.6.0` |\n| [reportlab](https://www.reportlab.com/) | `4.4.3` | `4.4.5` |\n| [django-filer](https://github.com/django-cms/django-filer) | `3.3.1` | `3.4.1` |\n| [pip-tools](https://github.com/jazzband/pip-tools) | `7.5.0` | `7.5.2` |\n| [djangocms-snippet](https://github.com/django-cms/djangocms-snippet) | `5.0.1` | `5.0.2` |\n| [djangocms-form-builder](https://github.com/fsbraun/djangocms-form-builder) | `0.3.2` | `0.4.0` |\n| [psycopg[c]](https://github.com/psycopg/psycopg) | `3.2.9` | `3.3.0` |\n| [django-anymail[mailgun]](https://github.com/anymail/django-anymail) | `13.0.1` | `13.1` |\n| [werkzeug[watchdog]](https://github.com/pallets/werkzeug) | `3.1.3` | `3.1.4` |\n| [watchfiles](https://github.com/samuelcolvin/watchfiles) | `1.1.0` | `1.1.1` |\n| [mypy](https://github.com/python/mypy) | `1.17.1` | `1.19.0` |\n| [django-stubs[compatible-mypy]](https://github.com/sponsors/typeddjango) | `5.2.2` | `5.2.8` |\n| [pytest-sugar](https://github.com/Teemu/pytest-sugar) | `1.0.0` | `1.1.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.12.8` | `0.14.7` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.3` | `7.12.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.3.0` | `4.5.0` |\n| [factory-boy](https://github.com/FactoryBoy/factory_boy) | `3.3.2` | `3.3.3` |\n| [django-debug-toolbar](https://github.com/django-commons/django-debug-toolbar) | `6.0.0` | `6.1.0` |\n| [django-coverage-plugin](https://github.com/nedbat/django_coverage_plugin) | `3.1.1` | `3.2.0` |\n\n\nUpdates `rcssmin` from 1.1.2 to 1.2.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ndparker/rcssmin/blob/master/CHANGES\"\u003ercssmin's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eChanges with version 1.2.2\u003c/p\u003e\n\u003cp\u003e*) Update benchmarks\u003c/p\u003e\n\u003cp\u003e*) Add support for Python 3.14\u003c/p\u003e\n\u003cp\u003e*) Update project boilerplate\u003c/p\u003e\n\u003cp\u003eChanges with version 1.2.1\u003c/p\u003e\n\u003cp\u003e*) Change doc theme to \u0026quot;furo\u0026quot;\u003c/p\u003e\n\u003cp\u003e*) Remove build dependency pinning (resolves \u003ca href=\"https://redirect.github.com/ndparker/rcssmin/issues/18\"\u003e#18\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e*) Update project boilerplate\u003c/p\u003e\n\u003cp\u003eChanges with version 1.2.0\u003c/p\u003e\n\u003cp\u003e*) Add support for nesting selector (\u0026amp;)\u003c/p\u003e\n\u003cp\u003e*) Update project boilerplate\u003c/p\u003e\n\u003cp\u003eChanges with version 1.1.3\u003c/p\u003e\n\u003cp\u003e*) Add support for Python 3.13\u003c/p\u003e\n\u003cp\u003e*) Update project boilerplate\u003c/p\u003e\n\u003cp\u003eChanges with version 1.1.2\u003c/p\u003e\n\u003cp\u003e*) Add support for Python 3.12\u003c/p\u003e\n\u003cp\u003e*) Add musllinux wheels\u003c/p\u003e\n\u003cp\u003e*) Update project boilerplate\u003c/p\u003e\n\u003cp\u003eChanges with version 1.1.1\u003c/p\u003e\n\u003cp\u003e*) Add support for Python 3.11\u003c/p\u003e\n\u003cp\u003e*) Update project boilerplate\u003c/p\u003e\n\u003cp\u003eChanges with version 1.1.0\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 href=\"https://github.com/ndparker/rcssmin/commit/b4cac4d1ffd665aa3b8d2f9e0e09529578a67193\"\u003e\u003ccode\u003eb4cac4d\u003c/code\u003e\u003c/a\u003e Bump version to 1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/db3f06eefa05860bbe1e8fa373e0249cb6adedbb\"\u003e\u003ccode\u003edb3f06e\u003c/code\u003e\u003c/a\u003e Update benchmarks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/77816d3cf9e2f3dc03c00e1f8526e471dffdc3fe\"\u003e\u003ccode\u003e77816d3\u003c/code\u003e\u003c/a\u003e Add Python 3.14 support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/ecac7747c1a68781cf1b524ea54db44aae7c7bd2\"\u003e\u003ccode\u003eecac774\u003c/code\u003e\u003c/a\u003e Project boilerplate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/5bac716410f460f75e243961f482b1895e487b6b\"\u003e\u003ccode\u003e5bac716\u003c/code\u003e\u003c/a\u003e Bump version to 1.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/8d4312f864efa55d36742a728adffebfd27a6aa3\"\u003e\u003ccode\u003e8d4312f\u003c/code\u003e\u003c/a\u003e Hello 2025\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/41d1e1f7ae6242a80854509d7181f8a91278722b\"\u003e\u003ccode\u003e41d1e1f\u003c/code\u003e\u003c/a\u003e Update dependencies, change sphinx theme\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/5396f5ec399b2ac57293657fb87ca888f3ecda8e\"\u003e\u003ccode\u003e5396f5e\u003c/code\u003e\u003c/a\u003e Bump version to 1.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/81da21987bfe614153711217f1b50bc0fa5f4c55\"\u003e\u003ccode\u003e81da219\u003c/code\u003e\u003c/a\u003e Update benchmarks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/1f9ff6d2d89f03108ccf53332352e328ee010b82\"\u003e\u003ccode\u003e1f9ff6d\u003c/code\u003e\u003c/a\u003e Add support for nesting selector (\u0026amp;)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ndparker/rcssmin/compare/1.1.2...1.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `whitenoise` from 6.9.0 to 6.11.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/evansd/whitenoise/blob/main/docs/changelog.rst\"\u003ewhitenoise's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.11.0 (2025-09-18)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Django 6.0.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.10.0 (2025-09-09)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14.\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 href=\"https://github.com/evansd/whitenoise/commit/c9c06e9382b92fc959ffdfc3e2ec63057de82561\"\u003e\u003ccode\u003ec9c06e9\u003c/code\u003e\u003c/a\u003e Version 6.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/051c4e997a07fd3ae5e9f3ec092080102ab89d93\"\u003e\u003ccode\u003e051c4e9\u003c/code\u003e\u003c/a\u003e Support Django 6.0 (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/665\"\u003e#665\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/c903cc13394895cbb3926e48c7acecf364efcd26\"\u003e\u003ccode\u003ec903cc1\u003c/code\u003e\u003c/a\u003e Version 6.10.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/a81bcb0ae2dd0c5884ebadb762f46827ecb54d0f\"\u003e\u003ccode\u003ea81bcb0\u003c/code\u003e\u003c/a\u003e docs(django): use the stable version in URLs (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/626\"\u003e#626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/67b4f32b12a9700b6dcc30ced8e9ad23bf39baa1\"\u003e\u003ccode\u003e67b4f32\u003c/code\u003e\u003c/a\u003e Support Python 3.14 (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/664\"\u003e#664\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/da8d333d165be1bdd9e7decbb3a293b5e55ff608\"\u003e\u003ccode\u003eda8d333\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/663\"\u003e#663\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/800072482c0652f81864ae78c26539d3dfc765b2\"\u003e\u003ccode\u003e8000724\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/662\"\u003e#662\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/8fb339f0eaee9219b1e02a840b5fd2227cf2fbbf\"\u003e\u003ccode\u003e8fb339f\u003c/code\u003e\u003c/a\u003e Upgrade dependencies (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/661\"\u003e#661\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/adf64ddfa5329d622cbc4740aec49b7baf0df792\"\u003e\u003ccode\u003eadf64dd\u003c/code\u003e\u003c/a\u003e Use uvx to run tox on GitHub Actions (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/660\"\u003e#660\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/ad6eb204640ff69498f8fc60bd9eb876ee5771b8\"\u003e\u003ccode\u003ead6eb20\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/659\"\u003e#659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/evansd/whitenoise/compare/6.9.0...6.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `hiredis` from 3.2.1 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/hiredis-py/releases\"\u003ehiredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.3.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e by \u003ca href=\"https://github.com/zweizeichen\"\u003e\u003ccode\u003e@​zweizeichen\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\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 href=\"https://github.com/redis/hiredis-py/commit/187d0f387afed58a955a42ea8c5467100871f98b\"\u003e\u003ccode\u003e187d0f3\u003c/code\u003e\u003c/a\u003e Version 3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/3efcf037edc5a9f7abfaedbd3f60b2a03feb4787\"\u003e\u003ccode\u003e3efcf03\u003c/code\u003e\u003c/a\u003e Add Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/215\"\u003e#215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/966cede2c0ca0a8ac4fe0786571e5c230f39c36e\"\u003e\u003ccode\u003e966cede\u003c/code\u003e\u003c/a\u003e Fix assertion in reader.c (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/212\"\u003e#212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/78def309e58126fdaacb66e6fd40df9c46494062\"\u003e\u003ccode\u003e78def30\u003c/code\u003e\u003c/a\u003e Bump version to 3.3.0-dev\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/redis/hiredis-py/compare/v3.2.1...v3.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `celery` from 5.5.3 to 5.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/celery/celery/releases\"\u003ecelery's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.6.0\u003c/h2\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003ch2\u003eKey Highlights\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.celeryq.dev/en/stable/history/whatsnew-5.6.html\"\u003eWhat's new in Celery 5.6\u003c/a\u003e for a complete overview or read the main highlights below.\u003c/p\u003e\n\u003ch3\u003ePython 3.9 Minimum Version\u003c/h3\u003e\n\u003cp\u003eCelery 5.6.0 drops support for Python 3.8 (EOL). The minimum required Python version is now 3.9. Users still on Python 3.8 must upgrade their Python version before upgrading to Celery 5.6.0.\u003c/p\u003e\n\u003cp\u003eAdditionally, this release includes initial support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eSQS: Reverted to \u003ccode\u003epycurl\u003c/code\u003e from \u003ccode\u003eurllib3\u003c/code\u003e\u003c/h3\u003e\n\u003cp\u003eThe switch from \u003ccode\u003epycurl\u003c/code\u003e to \u003ccode\u003eurllib3\u003c/code\u003e for the SQS transport (introduced in Celery 5.5.0 via Kombu) has been reverted due to critical issues affecting SQS users.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/auvipy\"\u003e\u003ccode\u003e@​auvipy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9620\"\u003ecelery/celery#9620\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eSecurity Fix: Broker Credential Leak Prevention\u003c/h3\u003e\n\u003cp\u003eFixed a security issue where broker URLs containing passwords were being logged in plaintext by the delayed delivery mechanism. Broker credentials are now properly sanitized in all log output.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/giancarloromeo\"\u003e\u003ccode\u003e@​giancarloromeo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9997\"\u003ecelery/celery#9997\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eMemory Leak Fixes\u003c/h3\u003e\n\u003cp\u003eTwo significant memory leaks have been fixed in this release:\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eException Handling Memory Leak\u003c/strong\u003e: Fixed a critical memory leak in task exception handling that was particularly severe on Python 3.11+ due to enhanced traceback data. The fix properly breaks reference cycles in tracebacks to allow garbage collection.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/jaiganeshs21\"\u003e\u003ccode\u003e@​jaiganeshs21\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9799\"\u003ecelery/celery#9799\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ePending Result Memory Leak\u003c/strong\u003e: Fixed a memory leak where \u003ccode\u003eAsyncResult\u003c/code\u003e subscriptions were not being cleaned up when results were forgotten.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/tsoos99dev\"\u003e\u003ccode\u003e@​tsoos99dev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9806\"\u003ecelery/celery#9806\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eETA Task Memory Limit\u003c/h3\u003e\n\u003cp\u003eNew configuration option \u003ccode\u003eworker_eta_task_limit\u003c/code\u003e to prevent out-of-memory crashes when workers fetch large numbers of ETA or countdown tasks. Previously, workers could exhaust available memory when the broker contained many scheduled tasks.\u003c/p\u003e\n\u003cp\u003eExample usage:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eapp.conf.worker_eta_task_limit = 1000\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/sashu2310\"\u003e\u003ccode\u003e@​sashu2310\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9853\"\u003ecelery/celery#9853\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eQueue Type Selection for Auto-created Queues\u003c/h3\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 href=\"https://github.com/celery/celery/blob/main/Changelog.rst\"\u003ecelery's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.6.0\u003c/h1\u003e\n\u003cp\u003e:release-date: 2025-11-30\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003cp\u003eKey Highlights\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nSee :ref:`whatsnew-5.6` for a complete overview or read the main highlights below.\n\u003ch2\u003ePython 3.9 Minimum Version\u003c/h2\u003e\n\u003cp\u003eCelery 5.6.0 drops support for Python 3.8 (EOL). The minimum required Python\nversion is now 3.9. Users still on Python 3.8 must upgrade their Python version\nbefore upgrading to Celery 5.6.0.\u003c/p\u003e\n\u003cp\u003eAdditionally, this release includes initial support for Python 3.14.\u003c/p\u003e\n\u003ch2\u003eSQS: Reverted to \u003ccode\u003epycurl\u003c/code\u003e from \u003ccode\u003eurllib3\u003c/code\u003e\u003c/h2\u003e\n\u003cp\u003eThe switch from \u003ccode\u003epycurl\u003c/code\u003e to \u003ccode\u003eurllib3\u003c/code\u003e for the SQS transport (introduced in\nCelery 5.5.0 via Kombu) has been reverted due to critical issues affecting SQS\nusers:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eProcessing throughput dropped from ~100 tasks/sec to ~3/sec in some environments\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUnknownOperationException\u003c/code\u003e errors causing container crash loops\u003c/li\u003e\n\u003cli\u003eSilent message processing failures with no error logs\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eUsers of the SQS transport must ensure \u003ccode\u003epycurl\u003c/code\u003e is installed. If you removed\n\u003ccode\u003epycurl\u003c/code\u003e after upgrading to Celery 5.5.0, you will need to reinstall it.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ccode\u003e@auvipy \u0026amp;lt;https://github.com/auvipy\u0026amp;gt;\u003c/code\u003e_ in\n\u003ccode\u003e[#9620](https://github.com/celery/celery/issues/9620) \u0026amp;lt;https://github.com/celery/celery/pull/9620\u0026amp;gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003ch2\u003eSecurity Fix: Broker Credential Leak Prevention\u003c/h2\u003e\n\u003cp\u003eFixed a security issue where broker URLs containing passwords were being logged\nin plaintext by the delayed delivery mechanism. Broker credentials are now\nproperly sanitized in all log output.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ccode\u003e@giancarloromeo \u0026amp;lt;https://github.com/giancarloromeo\u0026amp;gt;\u003c/code\u003e_ in\n\u003ccode\u003e[#9997](https://github.com/celery/celery/issues/9997) \u0026amp;lt;https://github.com/celery/celery/pull/9997\u0026amp;gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003cp\u003eMemory Leak Fixes\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\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 href=\"https://github.com/celery/celery/commit/cca11164860a1bee6ad8626c27a683b482f741eb\"\u003e\u003ccode\u003ecca1116\u003c/code\u003e\u003c/a\u003e Prepare for release: v5.6.0 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10010\"\u003e#10010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/1133f22181bb22223d39c0060973695c6af55643\"\u003e\u003ccode\u003e1133f22\u003c/code\u003e\u003c/a\u003e Bump mypy from 1.14.1 to 1.19.0 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10008\"\u003e#10008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/0932d2c06e001903b90638f7c40a14f5407c9801\"\u003e\u003ccode\u003e0932d2c\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10007\"\u003e#10007\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/b446910f18860531b089d6c39f974265cc24a589\"\u003e\u003ccode\u003eb446910\u003c/code\u003e\u003c/a\u003e Prepare for (pre) release: v5.6.0rc2 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10005\"\u003e#10005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/3f0f0fe7ea6a67a696d0a750644b552559ae368e\"\u003e\u003ccode\u003e3f0f0fe\u003c/code\u003e\u003c/a\u003e asynpool: Don't return from inside a finally block (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10000\"\u003e#10000\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/95d05527c0e1fff5c1a38877ba87592983a7f993\"\u003e\u003ccode\u003e95d0552\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10003\"\u003e#10003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/f32b92f0e481601e9cc9f1212a4feced3f48e1a0\"\u003e\u003ccode\u003ef32b92f\u003c/code\u003e\u003c/a\u003e Add Py39-314t to CI (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9999\"\u003e#9999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/63c1910221d9fb8c1931ff62c80c4c37232b2d58\"\u003e\u003ccode\u003e63c1910\u003c/code\u003e\u003c/a\u003e Don't fail task on timeout during cold shutdown (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9678\"\u003e#9678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/30649dbd41308fc8eef79b2aae179a908eaa7a51\"\u003e\u003ccode\u003e30649db\u003c/code\u003e\u003c/a\u003e Fix log leaking broker credentials (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9997\"\u003e#9997\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/929412e2d4d328e337be3f177ca99fff10ab9bdc\"\u003e\u003ccode\u003e929412e\u003c/code\u003e\u003c/a\u003e Remove Python 4.0 version condition for pytest dependencies (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9993\"\u003e#9993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/celery/celery/compare/v5.5.3...v5.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django` from 5.1.11 to 5.2.8\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/47fe39af56ecd0ad73b9c7562511015e96b91b80\"\u003e\u003ccode\u003e47fe39a\u003c/code\u003e\u003c/a\u003e [5.2.x] Bumped version for 5.2.8 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/ac9fcf6eb2c909f4150c5287808f49170ce1f9e2\"\u003e\u003ccode\u003eac9fcf6\u003c/code\u003e\u003c/a\u003e [5.2.x] Refs CVE-2025-64459 -- Avoided propagating invalid arguments to Q on ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/6703f364d767e949c5b0e4016433ef75063b4f9b\"\u003e\u003ccode\u003e6703f36\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2025-64459 -- Prevented SQL injections in Q/QuerySet via th...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/4f5d904b63751dea9ffc3b0e046404a7fa5881ac\"\u003e\u003ccode\u003e4f5d904\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2025-64458 -- Mitigated potential DoS in HttpResponseRedire...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/cbdf128cb316bccf9ca3b3b4966e57bd050bfc8a\"\u003e\u003ccode\u003ecbdf128\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36704\"\u003e#36704\u003c/a\u003e -- Fixed system check error for proxy model with a compo...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/6775888470317a6d69121779b489bb2dc7350318\"\u003e\u003ccode\u003e6775888\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36696\"\u003e#36696\u003c/a\u003e -- Fixed NameError when inspecting functions with deferr...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/d5dfffaae52b9dcb4857d42b1e2902290a5c5e3c\"\u003e\u003ccode\u003ed5dfffa\u003c/code\u003e\u003c/a\u003e [5.2.x] Added stub release notes and release date for 5.2.8, 5.1.14, and 4.2.26.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/368f955c371cab5db18e9e239d10560cf15f5ea4\"\u003e\u003ccode\u003e368f955\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36681\"\u003e#36681\u003c/a\u003e -- Removed English pluralization bias from example in do...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/71267c97db211f1d7f1b8b794ceb2167a7619a4d\"\u003e\u003ccode\u003e71267c9\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/35095\"\u003e#35095\u003c/a\u003e -- Clarified Swiss number formatting in docs/topics/i18n...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/9b37bd5fe73b0d614ad8e503071d6f7bf2bdf6b2\"\u003e\u003ccode\u003e9b37bd5\u003c/code\u003e\u003c/a\u003e [5.2.x] Made RemoteTestResultTest.test_pickle_errors_detection() compatible w...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/5.1.11...5.2.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-allauth[mfa]` from 65.10.0 to 65.13.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sponsors/pennersr/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-crispy-forms` from 2.4 to 2.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/releases\"\u003edjango-crispy-forms's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eConfirmed support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eConfirmed support for Django 6.0.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8.\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 href=\"https://github.com/django-crispy-forms/django-crispy-forms/blob/main/CHANGELOG.md\"\u003edjango-crispy-forms's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.5 (2025-11-06)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eConfirmed support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eConfirmed support for Django 6.0.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8.\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 href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/65fa8ae065638da101851807937bb89ae1b5687e\"\u003e\u003ccode\u003e65fa8ae\u003c/code\u003e\u003c/a\u003e 2.5 Release. (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1424\"\u003e#1424\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/ca4ca14da2aeac3ce934b83861f1b2a558b736fd\"\u003e\u003ccode\u003eca4ca14\u003c/code\u003e\u003c/a\u003e PEP 639 licenses  (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1413\"\u003e#1413\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/aaabe68c0d5a2eee98101ff661b2c5cab28a0777\"\u003e\u003ccode\u003eaaabe68\u003c/code\u003e\u003c/a\u003e Updated pre-commit hook versions.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/125dd1632a460b4dd7b1c8ab0738863d0470c2cb\"\u003e\u003ccode\u003e125dd16\u003c/code\u003e\u003c/a\u003e Pyupgrade 3.9+\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/1f9c8ecc24a3159c86219403ae26e7d0c67e15b7\"\u003e\u003ccode\u003e1f9c8ec\u003c/code\u003e\u003c/a\u003e Confirmed support for Python 3.14, Django. Drop support for Python 3.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/93cb8c8e817870e19a6c426a3e5716ae748a6535\"\u003e\u003ccode\u003e93cb8c8\u003c/code\u003e\u003c/a\u003e Correct names in special thanks section (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1421\"\u003e#1421\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/e327548f80a531bba5ac1049b73108a0681eebf4\"\u003e\u003ccode\u003ee327548\u003c/code\u003e\u003c/a\u003e Added security policy. (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1419\"\u003e#1419\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/64813429d54b39c10d7bb7ad2db4ab0e0e2c418f\"\u003e\u003ccode\u003e6481342\u003c/code\u003e\u003c/a\u003e Enabled GitHub code of conduct (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1416\"\u003e#1416\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/dabd719113c8e7e43fa8d5e254bfa938d169e6e8\"\u003e\u003ccode\u003edabd719\u003c/code\u003e\u003c/a\u003e Add Project Logo. (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1415\"\u003e#1415\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/compare/2.4...2.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-compressor` from 4.5.1 to 4.6.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-compressor/django-compressor/blob/develop/docs/changelog.txt\"\u003edjango-compressor's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003ev4.6 (2025-11-10)\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003eFull list of changes from v4.5.1 \u0026lt;https://github.com/django-compressor/django-compressor/compare/4.5.1...4.6\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed compatibility with latest BS4.\u003c/li\u003e\n\u003cli\u003eRemoved top pin for rcssmin and rjsmin dependencies.\u003c/li\u003e\n\u003cli\u003eAvoid compressing the same node concurrently in offline compression.\u003c/li\u003e\n\u003cli\u003eAvoid use of deprecated ast.Constant.s\u003c/li\u003e\n\u003cli\u003eOfficially support Django 6.0\u003c/li\u003e\n\u003cli\u003eOfficially support Django 5.2\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Django 5.0\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 3.9.\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 3.8.\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 href=\"https://github.com/django-compressor/django-compressor/commit/3ada994897cf982f97fc4c934be42eb1e0b71b9a\"\u003e\u003ccode\u003e3ada994\u003c/code\u003e\u003c/a\u003e Prepare 4.6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/1baa82a6cf6942eb12007217f26195a95df727e2\"\u003e\u003ccode\u003e1baa82a\u003c/code\u003e\u003c/a\u003e Remove CI testing for EOL Django 5.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/8706a52b740e7555abefc8fba1eaae1986ded1a5\"\u003e\u003ccode\u003e8706a52\u003c/code\u003e\u003c/a\u003e Add CI testing for Python 3.14 and Django 6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/7be9ce2cefedf59302207728e383fa7811232d59\"\u003e\u003ccode\u003e7be9ce2\u003c/code\u003e\u003c/a\u003e Bump brotli, lxml, and coverage test dependencies.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/d6fd8136febd1ba409b366c7471db8763522d91d\"\u003e\u003ccode\u003ed6fd813\u003c/code\u003e\u003c/a\u003e Remove test version pinning for rcssmin and rjsmin.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/2b46e7d1724109ebb5db49b76f008dc039f0a9db\"\u003e\u003ccode\u003e2b46e7d\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1307\"\u003e#1307\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/b97bb05836eb6a42d2746d43792e9d13f041b615\"\u003e\u003ccode\u003eb97bb05\u003c/code\u003e\u003c/a\u003e Disable bs4's multi valued attributes (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1296\"\u003e#1296\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/4e5433076300508e1c3648da3345ae606386eb3f\"\u003e\u003ccode\u003e4e54330\u003c/code\u003e\u003c/a\u003e Migrate packaging to pyproject.toml (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1313\"\u003e#1313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/872f8d52ce51957bccf4a91338d177c2ea4a3908\"\u003e\u003ccode\u003e872f8d5\u003c/code\u003e\u003c/a\u003e Remove version pinning for rcssmin and rjsmin (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1312\"\u003e#1312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/cc38666efb13c6e0b355cf273f56b783d7157e29\"\u003e\u003ccode\u003ecc38666\u003c/code\u003e\u003c/a\u003e Drop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1311\"\u003e#1311\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-compressor/django-compressor/compare/4.5.1...4.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uwsgi` from 2.0.30 to 2.0.31\n\nUpdates `easy-thumbnails[svg]` from 2.10 to 2.10.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/blob/master/CHANGES.rst\"\u003eeasy-thumbnails[svg]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.10.1 (2025-08-17)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Django-5.2.\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 href=\"https://github.com/SmileyChris/easy-thumbnails/commit/208f672ab53e3c7596c966b5282e64ed9747a3e4\"\u003e\u003ccode\u003e208f672\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/SmileyChris/easy-thumbnails/issues/664\"\u003e#664\u003c/a\u003e from SmileyChris/jrief-patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/318a2847391bb0e3fdc0a17a52af49a5851b53c9\"\u003e\u003ccode\u003e318a284\u003c/code\u003e\u003c/a\u003e Update CHANGES.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/0989a40226197b78bfa47939e44017bedea564fa\"\u003e\u003ccode\u003e0989a40\u003c/code\u003e\u003c/a\u003e version 2.10.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/3b86790c40788ebf9ce0cb66f529d745abe715b5\"\u003e\u003ccode\u003e3b86790\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/SmileyChris/easy-thumbnails/issues/663\"\u003e#663\u003c/a\u003e from tomkins/django-5.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/221679530109e5f92b2ad4d3e25f759d6dd90ced\"\u003e\u003ccode\u003e2216795\u003c/code\u003e\u003c/a\u003e Drop support for Django 5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/2cf9af0d7dc341ccaaabc79500033584aae88fbb\"\u003e\u003ccode\u003e2cf9af0\u003c/code\u003e\u003c/a\u003e Add support for Django 5.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/4957daa823a8ee17a90859281c2d93b06930e6fa\"\u003e\u003ccode\u003e4957daa\u003c/code\u003e\u003c/a\u003e Drop py38 from Django 4.2 testing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/21759697b0b5b600e6ebd5cce336a7d25f94099b\"\u003e\u003ccode\u003e2175969\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/SmileyChris/easy-thumbnails/issues/654\"\u003e#654\u003c/a\u003e from ArcaniteSolutions/fix-remote-storages-location-l...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/26351108ed706721492e606fe4ff51179d8a4844\"\u003e\u003ccode\u003e2635110\u003c/code\u003e\u003c/a\u003e check storage has location before fixing path\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/9d6fe6632ba4f175e9f4ad61eb4b3457b8124711\"\u003e\u003ccode\u003e9d6fe66\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/SmileyChris/easy-thumbnails/issues/650\"\u003e#650\u003c/a\u003e from benkonrath/python-3.13\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/compare/2.10.0...2.10.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-cms` from 5.0.2 to 5.0.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-cms/django-cms/releases\"\u003edjango-cms's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.0.5\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Searching pages for language-specific content failed due to wrong serach queryset (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8355\"\u003e#8355\u003c/a\u003e) by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8358\"\u003edjango-cms/django-cms#8358\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Fix default value for edit_fields parameter to avoid AttributeError by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8381\"\u003edjango-cms/django-cms#8381\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: avoid escaping (= stringify) None-values in PageAttribute template tag by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8384\"\u003edjango-cms/django-cms#8384\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Copying x-language lead to unique constraint violation (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8366\"\u003e#8366\u003c/a\u003e) by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8386\"\u003edjango-cms/django-cms#8386\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Ensure edit endpoint language selection when admin is not using i18n_patterns (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8367\"\u003e#8367\u003c/a\u003e) by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8390\"\u003edjango-cms/django-cms#8390\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Build release 5.0.5 by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8391\"\u003edjango-cms/django-cms#8391\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-cms/django-cms/compare/5.0.4...5.0.5\"\u003ehttps://github.com/django-cms/django-cms/compare/5.0.4...5.0.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Wrong placeholders rendered when using apphooks with own placeholders (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8343\"\u003e#8343\u003c/a\u003e) by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8348\"\u003edjango-cms/django-cms#8348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Prepare release 5.0.4 by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8352\"\u003edjango-cms/django-cms#8352\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-cms/django-cms/compare/5.0.3...5.0.4\"\u003ehttps://github.com/django-cms/django-cms/compare/5.0.3...5.0.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: Django 6 compatibility (July 2025) by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8302\"\u003edjango-cms/django-cms#8302\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: Add documentation for toolbar get_object and set_object methods by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8314\"\u003edjango-cms/django-cms#8314\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Respect individual placeholder checks if they can be changed (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8317\"\u003e#8317\u003c/a\u003e) by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8318\"\u003edjango-cms/django-cms#8318\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Cut children from inactive menu nodes when level is less or equal to 0 (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8322\"\u003e#8322\u003c/a\u003e) by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8324\"\u003edjango-cms/django-cms#8324\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: copy lang management command - include PageUrl (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/7548\"\u003e#7548\u003c/a\u003e) by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8335\"\u003edjango-cms/django-cms#8335\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Optimize placeholder and plugin utilities by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8337\"\u003edjango-cms/django-cms#8337\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Migration 0033 failed when empty placeholder objects were not present in the db by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8339\"\u003edjango-cms/django-cms#8339\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Build 5.0.3 release by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8341\"\u003edjango-cms/django-cms#8341\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-cms/django-cms/compare/5.0.2...5.0.3\"\u003ehttps://github.com/django-cms/django-cms/compare/5.0.2...5.0.3\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 href=\"https://github.com/django-cms/django-cms/blob/5.0.5/CHANGELOG.rst\"\u003edjango-cms's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.0.5 (2025-11-12)\u003c/h1\u003e\n\u003ch2\u003eBug Fixes:\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePin language of toolbar update to the request language\u003c/li\u003e\n\u003cli\u003eEnsure edit endpoint language selection when admin is not using i18n_patterns (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8367\"\u003e#8367\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8390\"\u003e#8390\u003c/a\u003e) (9e00f694e) -- Fabian Braun\u003c/li\u003e\n\u003cli\u003eCopying x-language lead to unique constraint violation (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8366\"\u003e#8366\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8386\"\u003e#8386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid escaping (= stringify) None-values in PageAttribute-TemplateTag (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8375\"\u003e#8375\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8384\"\u003e#8384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSet default value for edit_fields parameter to avoid AttributeError (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8381\"\u003e#8381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLink syntax in welcome.html\u003c/li\u003e\n\u003cli\u003eSearching pages for language-specific content failed due to wrong search queryset (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8355\"\u003e#8355\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8358\"\u003e#8358\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eStatistics:\u003c/h2\u003e\n\u003cp\u003eThis release includes 5 pull requests, and was created with the help of the following contributors (in alphabetical order):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFabian Braun (7 pull requests)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWith the review help of the following contributors:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVinit Kumar\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to all contributors for their efforts!\u003c/p\u003e\n\u003ch1\u003e5.0.4 (2025-10-03)\u003c/h1\u003e\n\u003ch2\u003eBug Fixes:\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWrong placeholders rendered when using apphooks with own placeholders (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8343\"\u003e#8343\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8348\"\u003e#8348\u003c/a\u003e) (775392390) -- Fabian Braun\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eStatistics:\u003c/h2\u003e\n\u003cp\u003eThis release includes 1 pull request, and was created with the help of the following contributors (in alphabetical order):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFabian Braun (1 pull request)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWith the review help of the following contributors:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVinit Kumar\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to all contributors for their efforts!\u003c/p\u003e\n\u003ch1\u003e5.0.3 (2025-09-17)\u003c/h1\u003e\n\u003cp\u003eBug Fixes:\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 href=\"https://github.com/django-cms/django-cms/commit/6e970e6c4894ecd1459fedc6f2c00617a923a740\"\u003e\u003ccode\u003e6e970e6\u003c/code\u003e\u003c/a\u003e chore: Build release 5.0.5 (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8391\"\u003e#8391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/9e00f694ee0afe637521177a139d69a02d752f7f\"\u003e\u003ccode\u003e9e00f69\u003c/code\u003e\u003c/a\u003e fix: Ensure edit endpoint language selection when admin is not using i18n_pat...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/e6d0f76703afd154b2319a0b9e3b50e9330805bf\"\u003e\u003ccode\u003ee6d0f76\u003c/code\u003e\u003c/a\u003e fix: Copying x-language lead to unique constraint violation (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8366\"\u003e#8366\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8386\"\u003e#8386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/3990cfb37913e72d55780c3886445b4e75bdea78\"\u003e\u003ccode\u003e3990cfb\u003c/code\u003e\u003c/a\u003e Fix: avoid escaping (= stringify) None-values in PageAttribute-TemplateTag (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/80a19fdf550fab528cdc1c2634076de22e9497ad\"\u003e\u003ccode\u003e80a19fd\u003c/code\u003e\u003c/a\u003e fix: Fix default value for edit_fields parameter to avoid AttributeError (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8381\"\u003e#8381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/6f63ebf05e12c86512b8b084b615b1011c581708\"\u003e\u003ccode\u003e6f63ebf\u003c/code\u003e\u003c/a\u003e fix: link syntax in welcome.html\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/1ff46f7e1c3284eae9749497a76656afc8f8c302\"\u003e\u003ccode\u003e1ff46f7\u003c/code\u003e\u003c/a\u003e fix: Searching pages for language-specific content failed due to wrong serach...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/ed3a004b62ee69f099b0f647dd33778ba0b0d1fb\"\u003e\u003ccode\u003eed3a004\u003c/code\u003e\u003c/a\u003e chore: Prepare release 5.0.4 (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8352\"\u003e#8352\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/775392390eea0ffcdeccb0d21306d6e34fb859df\"\u003e\u003ccode\u003e7753923\u003c/code\u003e\u003c/a\u003e fix: Wrong placeholders rendered when using apphooks with own placeholders (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/cb8bdcecf623e125ea789a0551279a3dc0152deb\"\u003e\u003ccode\u003ecb8bdce\u003c/code\u003e\u003c/a\u003e chore: Build 5.0.3 release (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8341\"\u003e#8341\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-cms/django-cms/compare/5.0.2...5.0.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `djangocms-versioning` from 2.4.0 to 2.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-cms/djangocms-versioning/releases\"\u003edjangocms-versioning's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.5.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Fix typo in permission name by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/476\"\u003edjango-cms/djangocms-versioning#476\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Remove unnecessary \u003ccode\u003e_original_manager\u003c/code\u003e usage from toolbar by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/477\"\u003edjango-cms/djangocms-versioning#477\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/checkout from 4 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/482\"\u003edjango-cms/djangocms-versioning#482\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/cache from 4.2.3 to 4.2.4 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/481\"\u003edjango-cms/djangocms-versioning#481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/cache from 4.2.4 to 4.3.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/485\"\u003edjango-cms/djangocms-versioning#485\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/setup-python from 5 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/484\"\u003edjango-cms/djangocms-versioning#484\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump github/codeql-action from 3 to 4 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/487\"\u003edjango-cms/djangocms-versioning#487\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Respect site-specific language configurations by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/480\"\u003edjango-cms/djangocms-versioning#480\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Respect permissions for indicator menus and version locking by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/493\"\u003edjango-cms/djangocms-versioning#493\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Modernize JS build, remove jQuery bundle by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/492\"\u003edjango-cms/djangocms-versioning#492\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eModernize Python and Django support: Drop Python 3.9, add Python 3.14 and Django 6.0 by \u003ca href=\"https://github.com/vinitkumar\"\u003e\u003ccode\u003e@​vinitkumar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/489\"\u003edjango-cms/djangocms-versioning#489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/setup-node from 4 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/494\"\u003edjango-cms/djangocms-versioning#494\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump astral-sh/setup-uv from 5 to 7 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/495\"\u003edjango-cms/djangocms-versioning#495\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Update locales by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/497\"\u003edjango-cms/djangocms-versioning#497\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdates for file djangocms_versioning/locale/en/LC_MESSAGES/django.po in de by \u003ca href=\"https://github.com/transifex-integration\"\u003e\u003ccode\u003e@​transifex-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/496\"\u003edjango-cms/djangocms-versioning#496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[BUG FIX] Language menu is showing despite only one language configured by \u003ca href=\"https://github.com/va-lang\"\u003e\u003ccode\u003e@​va-lang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/491\"\u003edjango-cms/djangocms-versioning#491\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=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/476\"\u003edjango-cms/djangocms-versioning#476\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vinitkumar\"\u003e\u003ccode\u003e@​vinitkumar\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/489\"\u003edjango-cms/djangocms-versioning#489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/va-lang\"\u003e\u003ccode\u003e@​va-lang\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/491\"\u003edjango-cms/djangocms-versioning#491\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-cms/djangocms-versioning/compare/2.4.0...2.5.0\"\u003ehttps://github.com/django-cms/djangocms-versioning/compare/2.4.0...2.5.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 href=\"https://github.com/django-cms/djangocms-versioning/blob/master/CHANGELOG.rst\"\u003edjangocms-versioning's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.5.0 (2025-11-14)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efeat: Language menu allows creating new translations from preview mode by \u003ca href=\"https://github.com/va-lang\"\u003e\u003ccode\u003e@​va-lang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/491\"\u003edjango-cms/djangocms-versioning#491\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Modernize Python and Django support: Drop Python 3.9, add Python 3.14 and Django 6.0 by \u003ca href=\"https://github.com/vinitkumar\"\u003e\u003ccode\u003e@​vinitkumar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/489\"\u003edjango-cms/djangocms-versioning#489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Updates for file djangocms_versioning/locale/en/LC_MESSAGES/django.po in de by \u003ca href=\"https://github.com/transifex-integration\"\u003e\u003ccode\u003e@​transifex-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/496\"\u003edjango-cms/djangocms-versioning#496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Swap django-fsm with django-fsm-2\u003c/li\u003e\n\u003cli\u003efix: Typo in permission name by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/476\"\u003edjango-cms/djangocms-versioning#476\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Remove unnecessary \u003ccode\u003e_original_manager\u003c/code\u003e usage from toolbar by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/477\"\u003edjango-cms/djangocms-versioning#477\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Respect site-specific language configurations by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/480\"\u003edjango-cms/djangocms-versioning#480\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Respect permissions for indicator menus and version locking by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/493\"\u003edjango-cms/djangocms-versioning#493\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eNew Contributors\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/476\"\u003edjango-cms/djangocms-versioning#476\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vinitkumar\"\u003e\u003ccode\u003e@​vinitkumar\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/489\"\u003edjango-cms/djangocms-versioning#489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/va-lang\"\u003e\u003ccode\u003e@​va-lang\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/491\"\u003edjango-cms/djangocms-versioning#491\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 href=\"https://github.com/django-cms/djangocms-versioning/commit/da78ec1adc34f37ccfe9780a30c858b89f7637fe\"\u003e\u003ccode\u003eda78ec1\u003c/code\u003e\u003c/a\u003e chore: Prepare release 2.5.0 (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/issues/500\"\u003e#500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-versioning/commit/08df487169f44e7710f18155a9d5d02d32531e4c\"\u003e\u003ccode\u003e08df487\u003c/code\u003e\u003c/a\u003e chore: Simplified requirements_dev.txt file for tests (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/issues/499\"\u003e#499\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-versioning/commit/e2e5e8d3ab1ee07b4f1dd2c7518441f6e6038c21\"\u003e\u003ccode\u003ee2e5e8d\u003c/code\u003e\u003c/a\u003e [BUG FIX] Language menu is showing despite only one language configured (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/issues/491\"\u003e#491\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-versioning/commit/d90268d6ee31dd7f9e80df804ab9ad5a2df68c2b\"\u003e\u003ccode\u003ed90268d\u003c/code\u003e\u003c/a\u003e Translate django.po in de (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/issues/496\"\u003e#496\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-versioning/commit/bc3cbc10ff12106836da1a1ee51c8283b9d726cc\"\u003e\u003ccode\u003ebc3cbc1\u003c/code\u003e\u003c/a\u003e chore: Update locales (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/issues/497\"\u003e#497\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-versioning/commit/d111df897067a31fe8dca7b88773ae0ca9fba397\"\u003e\u003ccode\u003ed111df8\u003c/code\u003e\u003c/a\u003e build(deps): bump astral-sh/setup-uv from 5 to 7 (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/issues/495\"\u003e#495\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-versioning/commit/dc24f2604420f46c1203aa8a06a9dc948eceadd3\"\u003e\u003ccode\u003edc24f26\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-node from 4 to 6 (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/issues/494\"\u003e#494\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-versioning/commit/a0db3dea7aaf838376be6809fe9870ad7eee3205\"\u003e\u003ccode\u003ea0db3de\u003c/code\u003e\u003c/a\u003e Modernize Python and Django support: Drop Python 3.9, add Python 3.14 and Dja...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-versioning/commit/27abc23b5157a3cb6d18cfb2bdaaa61eb24a284d\"\u003e\u003ccode\u003e27abc23\u003c/code\u003e\u003c/a\u003e chore: Modernize JS build, remove jQuery bundle (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/issues/492\"\u003e#492\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-versioning/commit/29b3955871676bf69bd59154ff8125378ecca287\"\u003e\u003ccode\u003e29b3955\u003c/code\u003e\u003c/a\u003e fix: Respect permissions for indicator menus and version locking (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/issues/493\"\u003e#493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-cms/djangocms-versioning/compare/2.4.0...2.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-entangled` from 0.6.3 to 0.7\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jrief/django-entangled/blob/master/CHANGELOG.md\"\u003edjango-entangled's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.7\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Django 5.2.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.13.\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 href=\"https://github.com/jrief/django-entangled/commit/734bd8f8b316663a1f31d4fa7e9248a955baea21\"\u003e\u003ccode\u003e734bd8f\u003c/code\u003e\u003c/a\u003e Bump to version 0.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jrief/django-entangled/commit/fcad6c824be14d052456df759e23bc4b44646d3e\"\u003e\u003ccode\u003efcad6c8\u003c/code\u003e\u003c/a\u003e Add support for Django-5.2 and Python 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jrief/django-entangled/commit/a89b615cafcdbb939d71fb34dc30253d2dcf5c00\"\u003e\u003ccode\u003ea89b615\u003c/code\u003e\u003c/a\u003e Propagate django-formset\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/jrief/django-entangled/compare/0.6.3...0.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `djangocms-text` from 0.9.2 to 0.9.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-cms/djangocms-text/releases\"\u003edjangocms-text's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.9.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Fixed issues for non-CMS installations and added test coverage for non-CMS installations by \u003ca href=\"https://github.com/Grosskopf\"\u003e\u003ccode\u003e@​Grosskopf\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/119\"\u003edjango-cms/djangocms-text#119\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Respect plugin language for link field by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/113\"\u003edjango-cms/djangocms-text#113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/114\"\u003edjango-cms/djangocms-text#114\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/checkout from 4 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/115\"\u003edjango-cms/djangocms-text#115\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=\"https://github.com/Grosskopf\"\u003e\u003ccode\u003e@​Grosskopf\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/119\"\u003edjango-cms/djangocms-text#119\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-cms/djangocms-text/compare/0.9.2...0.9.3\"\u003ehttps://github.com/django-cms/djangocms-text/compare/0.9.2...0.9.3\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 href=\"https://github.com/django-cms/djangocms-text/blob/main/CHANGELOG.rst\"\u003edjangocms-text's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e0.9.3 (22-08-2025)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix: Fixed issues for non-CMS installations and added test coverage for non-CMS installations by \u003ca href=\"https://github.com/Grosskopf\"\u003e\u003ccode\u003e@​Grosskopf\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/119\"\u003edjango-cms/djangocms-text#119\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Respect plugin language for link field by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/113\"\u003edjango-cms/djangocms-text#113\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/Grosskopf\"\u003e\u003ccode\u003e@​Grosskopf\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/119\"\u003edjango-cms/djangocms-text#119\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 href=\"https://github.com/django-cms/djangocms-text/commit/23c8c5b276547459db18fad7bd2b45bf978c2d4b\"\u003e\u003ccode\u003e23c8c5b\u003c/code\u003e\u003c/a\u003e chore: Prepare release 0.9.3 (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/issues/120\"\u003e#120\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-text/commit/070dc3bff81b6aaad57b34bbbdce905a9a753fef\"\u003e\u003ccode\u003e070dc3b\u003c/code\u003e\u003c/a\u003e fix: Fixed issues for non-CMS installations and added test coverage for non-C...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-text/commit/d23c7830b72afd3d143bbd54dc5c3e25c7a844a7\"\u003e\u003ccode\u003ed23c783\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/issues/115\"\u003e#115\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-text/commit/4c78ee95ac529d9444a0c0342c41fe06c5edf9c1\"\u003e\u003ccode\u003e4c78ee9\u003c/code\u003e\u003c/a\u003e Merge branch 'main' of github.com:django-cms/djangocms-text\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-text/commit/d13df72a07522f1e1f84a50a4448a3ecde4bef65\"\u003e\u003ccode\u003ed13df72\u003c/code\u003e\u003c/a\u003e feat: node 24\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-text/commit/cf7b3b82f92999bb9297b213844696374f524937\"\u003e\u003ccode\u003ecf7b3b8\u003c/code\u003e\u003c/a\u003e ci: pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/issues/114\"\u003e#114\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-text/commit/5fa6205a5910b34334bdb14744f59b62a275a09e\"\u003e\u003ccode\u003e5fa6205\u003c/code\u003e\u003c/a\u003e Update comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-text/commit/79568c6b98a6e4adda9f84b84aa016254db60481\"\u003e\u003ccode\u003e79568c6\u003c/code\u003e\u003c/a\u003e fix: Respect plugin language for link field (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/issues/113\"\u003e#113\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/django-cms/djangocms-text/compare/0.9.2...0.9.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `djangocms-frontend` from 2.1.4 to 2.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-cms/djangocms-frontend/releases\"\u003edjangocms-frontend's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.2.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eci:(deps): bump actions/cache from 4.2.3 to 4.2.4 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-frontend/pull/297\"\u003edjango-cms/djangocms-frontend#297\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Only partially functional preview removed, CSS and JS refactor by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-frontend/pull/301\"\u003edjango-cms/djangocms-frontend#301\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Button group too condensed when using djangocms-admin-style by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-frontend/pull/303\"\u003edjango-cms/djangocms-frontend#303\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-cms/djangocms-frontend/compare/2.1.4...2.2.0\"\u003ehttps://github.com/django-cms/djangocms-frontend/compare/2.1.4...2.2.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 href=\"https://github.com/django-cms/djangocms-frontend/blob/main/CHANGELOG.rst\"\u003edjangocms-frontend's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.2.0 (2025-08-16)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efeat: Refactored CSS for faster and more reliable loading by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Removed link and button preview\u003c/li\u003e\n\u003cli\u003efix: Some UI Components were not discovered by the \u003ccode\u003e{% plugin %}\u003c/code\u003e template tag in django CMS 5\u003c/li\u003e\n\u003cli\u003efix: Restored Python 3.9 compatibility\u003c/li\u003e\n\u003cli\u003echore: Update node version\u003c/li\u003e\n\u003cli\u003echore: Remove bootstrap dependency\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 href=\"https://github.com/django-cms/djangocms-frontend/commit/6ec69a0c7fa36165e9bc3d5cfa333d60422985bf\"\u003e\u003ccode\u003e6ec69a0\u003c/code\u003e\u003c/a\u003e fix: Button group too condensed when using djangocms-admin-style (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-frontend/issues/303\"\u003e#303\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/662b357e8ad4642f18a73874eceac899a26ede66\"\u003e\u003ccode\u003e662b357\u003c/code\u003e\u003c/a\u003e fix: Docs references \u003ccode\u003efrontend_tags\u003c/code\u003e instead of \u003ccode\u003efrontend\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/5135e527beb741446f626e4c0c116f2e146c7667\"\u003e\u003ccode\u003e5135e52\u003c/code\u003e\u003c/a\u003e chore: Update LICENSE\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/b84bab7439442345ea8db89145a1079e4ba871bf\"\u003e\u003ccode\u003eb84bab7\u003c/code\u003e\u003c/a\u003e feat: Only partially functional preview removed, CSS and JS refactor (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-frontend/issues/301\"\u003e#301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/554418c1d4642279bef6e601ae2297ff5d634ba0\"\u003e\u003ccode\u003e554418c\u003c/code\u003e\u003c/a\u003e ci:(deps): bump actions/cache from 4.2.3 to 4.2.4 (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-frontend/issues/297\"\u003e#297\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/53a958051b6f475a3df3e48131956db0eed72d5e\"\u003e\u003ccode\u003e53a9580\u003c/code\u003e\u003c/a\u003e fix: typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/5f8829b6e5adbdf4689cc3747756e7ff4ae86dc1\"\u003e\u003ccode\u003e5f8829b\u003c/code\u003e\u003c/a\u003e Merge branch 'main' of github.com:django-cms/djangocms-frontend\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/b3a0eb6afc484c63520a2166dccff47ca0ec653e\"\u003e\u003ccode\u003eb3a0eb6\u003c/code\u003e\u003c/a\u003e fix: Python 3.9 support for plugin_tag.py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/4d3a3cf60485a9d17292a24db7654b75c19a1be9\"\u003e\u003ccode\u003e4d3a3cf\u003c/code\u003e\u003c/a\u003e fix test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/453e4c29d928076a3bf8c9e52b5a2f1f2e692231\"\u003e\u003ccode\u003e453e4c2\u003c/code\u003e\u003c/a\u003e chore: add test for py 3.9\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-cms/djangocms-frontend/compare/2.1.4...2.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `djangocms-attributes-field` from 4.1.1 to 4.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-cms/djangocms-attributes-field/releases\"\u003edjangocms-attributes-field's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.1.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Add min-height to attributes pair buttons by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-attributes-field/pull/62\"\u003edjango-cms/djangocms-attributes-field#62\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-cms/djangocms-attributes-field/compare/4.1.1...4.1.2\"\u003ehttps://github.com/django-cms/djangocms-attributes-field/compare/4.1.1...4.1.2\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 href=\"https://github.com/django-cms/djangocms-attributes-field/blob/master/CHANGELOG.rst\"\u003edjangocms-attributes-field's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.1.2 (2025-11.02)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix: Add min-height to add link for unstyled Django admin\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 href=\"https://github.com/django-cms/djangocms-attributes-field/commit/9adbde46e3c1bd52fd297cbbf9475e4da01cbba4\"\u003e\u003ccode\u003e9adbde4\u003c/code\u003e\u003c/a\u003e fix: Add min-height to attributes pair buttons (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-attributes-field/issues/62\"\u003e#62\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/django-cms/djangocms-attributes-field/compare/4.1.1...4.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `svglib` from 1.5.1 to 1.6.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/deeplook/svglib/blob/main/CHANGELOG.rst\"\u003esvglib's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.6.0 (2025-09-25)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplace setup.py with pyproject.toml, rework GitHub workflows (\u003ca href=\"https://redirect.github.com/deeplook/svglib/issues/405\"\u003e#405\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003cli\u003eModernize codebase, added type annotations, expanded docstrings, etc.\u003c/li\u003e\n\u003cli\u003eAdd a Makefile.\u003c/li\u003e\n\u003cli\u003eAdd publishing workflows.\u003c/li\u003e\n\u003cli\u003eRemove dunder constants and use importlib.metadata to get the version number.\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 href=\"https://github.com/deeplook/svglib/commit/1dce6584fb40de115479da10880dbf3b75cda955\"\u003e\u003ccode\u003e1dce658\u003c/code\u003e\u003c/a\u003e Expanded many docstrings, sanitized pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deeplook/svglib/commit/4c69f45919b181b98ebeb2614f84797217efd759\"\u003e\u003ccode\u003e4c69f45\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/deeplook/svglib/issues/412\"\u003e#412\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deeplook/svglib/commit/35a69b9af1eafbec5e4ff8eb759de7a506c4a83f\"\u003e...\n\n_Description has been truncated_","html_url":"https://github.com/surfgreendevteam/coolify-cookiecutter-cms-template/pull/91","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/surfgreendevteam%2Fcoolify-cookiecutter-cms-template/issues/91","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/91/packages"},{"uuid":"3679686363","node_id":"PR_kwDOQDraYs62RtGJ","number":7,"state":"closed","title":"deps: bump the prod-deps group across 1 directory with 30 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2025-12-08T06:33:44.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-01T07:40:02.000Z","updated_at":"2025-12-08T06:33:46.000Z","time_to_close":600822,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps: bump","group_name":"prod-deps","update_count":30,"packages":[{"name":"django","old_version":"4.2.24","new_version":"5.2.8","repository_url":"https://github.com/django/django"},{"name":"psycopg2-binary","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"celery","old_version":"5.5.3","new_version":"5.6.0","repository_url":"https://github.com/celery/celery"},{"name":"hiredis","old_version":"3.2.1","new_version":"3.3.0","repository_url":"https://github.com/redis/hiredis-py"},{"name":"brotli","old_version":"1.1.0","new_version":"1.2.0","repository_url":"https://github.com/google/brotli"},{"name":"django-compressor","old_version":"4.5.1","new_version":"4.6.0","repository_url":"https://github.com/django-compressor/django-compressor"},{"name":"drf-yasg","old_version":"1.21.10","new_version":"1.21.11","repository_url":"https://github.com/axnsan12/drf-yasg"},{"name":"jellyfish","old_version":"1.2.0","new_version":"1.2.1"},{"name":"markdown","old_version":"3.9","new_version":"3.10","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"xlsxwriter","old_version":"3.2.5","new_version":"3.2.9","repository_url":"https://github.com/jmcnamara/XlsxWriter"},{"name":"xmltodict","old_version":"0.15.1","new_version":"1.0.2","repository_url":"https://github.com/martinblech/xmltodict"},{"name":"xmlschema","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/sissaschool/xmlschema"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"shapely","old_version":"2.0.7","new_version":"2.1.2","repository_url":"https://github.com/shapely/shapely"},{"name":"django-two-factor-auth","old_version":"1.17.0","new_version":"1.18.1"},{"name":"boto3","old_version":"1.40.27","new_version":"1.42.0","repository_url":"https://github.com/boto/boto3"},{"name":"uwsgi","old_version":"2.0.30","new_version":"2.0.31"},{"name":"coverage","old_version":"7.10.6","new_version":"7.12.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"coveralls","old_version":"4.0.1","new_version":"4.0.2","repository_url":"https://github.com/TheKevJames/coveralls-python"},{"name":"tox","old_version":"4.30.2","new_version":"4.32.0","repository_url":"https://github.com/tox-dev/tox"},{"name":"psutil","old_version":"7.0.0","new_version":"7.1.3","repository_url":"https://github.com/giampaolo/psutil"},{"name":"faker","old_version":"37.6.0","new_version":"38.2.0","repository_url":"https://github.com/joke2k/faker"},{"name":"pytest","old_version":"8.4.2","new_version":"9.0.1","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pre-commit","old_version":"4.3.0","new_version":"4.5.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"sphinx","old_version":"7.4.7","new_version":"9.0.0","repository_url":"https://github.com/sphinx-doc/sphinx"},{"name":"sphinxcontrib-spelling","old_version":"8.0.0","new_version":"8.0.2","repository_url":"https://github.com/sphinx-contrib/spelling"},{"name":"docutils","old_version":"0.21.2","new_version":"0.22.3","repository_url":"https://github.com/rtfd/recommonmark"},{"name":"hypothesis","old_version":"6.138.15","new_version":"6.148.5","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"django-debug-toolbar","old_version":"6.0.0","new_version":"6.1.0","repository_url":"https://github.com/django-commons/django-debug-toolbar"}],"path":null,"ecosystem":"pip"},"body":"Bumps the prod-deps group with 30 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [django](https://github.com/django/django) | `4.2.24` | `5.2.8` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [celery](https://github.com/celery/celery) | `5.5.3` | `5.6.0` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.2.1` | `3.3.0` |\n| [brotli](https://github.com/google/brotli) | `1.1.0` | `1.2.0` |\n| [django-compressor](https://github.com/django-compressor/django-compressor) | `4.5.1` | `4.6.0` |\n| [drf-yasg](https://github.com/axnsan12/drf-yasg) | `1.21.10` | `1.21.11` |\n| [jellyfish](https://jellyfish.jpt.sh/) | `1.2.0` | `1.2.1` |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.9` | `3.10` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [xlsxwriter](https://github.com/jmcnamara/XlsxWriter) | `3.2.5` | `3.2.9` |\n| [xmltodict](https://github.com/martinblech/xmltodict) | `0.15.1` | `1.0.2` |\n| [xmlschema](https://github.com/sissaschool/xmlschema) | `4.1.0` | `4.2.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [shapely](https://github.com/shapely/shapely) | `2.0.7` | `2.1.2` |\n| [django-two-factor-auth[phonenumbers]](https://github.com/jazzband/django-two-factor-auth) | `1.17.0` | `1.18.1` |\n| [boto3](https://github.com/boto/boto3) | `1.40.27` | `1.42.0` |\n| [uwsgi](https://uwsgi-docs.readthedocs.io/en/latest/) | `2.0.30` | `2.0.31` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.12.0` |\n| [coveralls](https://github.com/TheKevJames/coveralls-python) | `4.0.1` | `4.0.2` |\n| [tox](https://github.com/tox-dev/tox) | `4.30.2` | `4.32.0` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.1.3` |\n| [faker](https://github.com/joke2k/faker) | `37.6.0` | `38.2.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.2` | `9.0.1` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.3.0` | `4.5.0` |\n| [sphinx](https://github.com/sphinx-doc/sphinx) | `7.4.7` | `9.0.0` |\n| [sphinxcontrib-spelling](https://github.com/sphinx-contrib/spelling) | `8.0.0` | `8.0.2` |\n| [docutils](https://github.com/rtfd/recommonmark) | `0.21.2` | `0.22.3` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.138.15` | `6.148.5` |\n| [django-debug-toolbar](https://github.com/django-commons/django-debug-toolbar) | `6.0.0` | `6.1.0` |\n\n\nUpdates `django` from 4.2.24 to 5.2.8\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/47fe39af56ecd0ad73b9c7562511015e96b91b80\"\u003e\u003ccode\u003e47fe39a\u003c/code\u003e\u003c/a\u003e [5.2.x] Bumped version for 5.2.8 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/ac9fcf6eb2c909f4150c5287808f49170ce1f9e2\"\u003e\u003ccode\u003eac9fcf6\u003c/code\u003e\u003c/a\u003e [5.2.x] Refs CVE-2025-64459 -- Avoided propagating invalid arguments to Q on ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/6703f364d767e949c5b0e4016433ef75063b4f9b\"\u003e\u003ccode\u003e6703f36\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2025-64459 -- Prevented SQL injections in Q/QuerySet via th...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/4f5d904b63751dea9ffc3b0e046404a7fa5881ac\"\u003e\u003ccode\u003e4f5d904\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2025-64458 -- Mitigated potential DoS in HttpResponseRedire...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/cbdf128cb316bccf9ca3b3b4966e57bd050bfc8a\"\u003e\u003ccode\u003ecbdf128\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36704\"\u003e#36704\u003c/a\u003e -- Fixed system check error for proxy model with a compo...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/6775888470317a6d69121779b489bb2dc7350318\"\u003e\u003ccode\u003e6775888\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36696\"\u003e#36696\u003c/a\u003e -- Fixed NameError when inspecting functions with deferr...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/d5dfffaae52b9dcb4857d42b1e2902290a5c5e3c\"\u003e\u003ccode\u003ed5dfffa\u003c/code\u003e\u003c/a\u003e [5.2.x] Added stub release notes and release date for 5.2.8, 5.1.14, and 4.2.26.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/368f955c371cab5db18e9e239d10560cf15f5ea4\"\u003e\u003ccode\u003e368f955\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36681\"\u003e#36681\u003c/a\u003e -- Removed English pluralization bias from example in do...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/71267c97db211f1d7f1b8b794ceb2167a7619a4d\"\u003e\u003ccode\u003e71267c9\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/35095\"\u003e#35095\u003c/a\u003e -- Clarified Swiss number formatting in docs/topics/i18n...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/9b37bd5fe73b0d614ad8e503071d6f7bf2bdf6b2\"\u003e\u003ccode\u003e9b37bd5\u003c/code\u003e\u003c/a\u003e [5.2.x] Made RemoteTestResultTest.test_pickle_errors_detection() compatible w...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/4.2.24...5.2.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2-binary` from 2.9.10 to 2.9.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2-binary's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix building when pg_config returns an empty string (:ticket:\u003ccode\u003e[#1599](https://github.com/psycopg/psycopg2/issues/1599)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eWheel package bundled with OpenSSL 1.1.1v.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.6\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\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 href=\"https://github.com/psycopg/psycopg2/commit/fd9ae8cad2bcfc3e7e9410e7b6f07cda8f4f05ec\"\u003e\u003ccode\u003efd9ae8c\u003c/code\u003e\u003c/a\u003e chore: bump to version 2.9.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d923840546942534f0956d9202f914fd9feac5fd\"\u003e\u003ccode\u003ed923840\u003c/code\u003e\u003c/a\u003e chore: update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d42dc7169d3cd93517e282e9ef5dc2a2b40650a2\"\u003e\u003ccode\u003ed42dc71\u003c/code\u003e\u003c/a\u003e Merge branch 'fix-1791'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4fde6560c32f06ad1304404c9f7f86148dcc4be0\"\u003e\u003ccode\u003e4fde656\u003c/code\u003e\u003c/a\u003e fix: avoid failed assert passing more arguments than placeholders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/8308c19d6af0d904b313997539ed33415990a74e\"\u003e\u003ccode\u003e8308c19\u003c/code\u003e\u003c/a\u003e fix: drop warning about the use of deprecated PyWeakref_GetObject function\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1a1eabf098a3374409bb2ab4b594777b900f396d\"\u003e\u003ccode\u003e1a1eabf\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/github-script from 7 to 8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/897af8b38beda851d7257dfc525129e37c0ec9e0\"\u003e\u003ccode\u003e897af8b\u003c/code\u003e\u003c/a\u003e build(deps): bump peter-evans/repository-dispatch from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ceefd305117113ca10e383a626e87ba0796f3638\"\u003e\u003ccode\u003eceefd30\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4dc585430cabe94cee96c5a9de0265d0f55370f1\"\u003e\u003ccode\u003e4dc5854\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1945788dcf6172bb1b9328ebc3587ccf0e6a659c\"\u003e\u003ccode\u003e1945788\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1802\"\u003e#1802\u003c/a\u003e from edgarrmondragon/cp314-wheels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.10...2.9.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `celery` from 5.5.3 to 5.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/celery/celery/releases\"\u003ecelery's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.6.0\u003c/h2\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003ch2\u003eKey Highlights\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.celeryq.dev/en/stable/history/whatsnew-5.6.html\"\u003eWhat's new in Celery 5.6\u003c/a\u003e for a complete overview or read the main highlights below.\u003c/p\u003e\n\u003ch3\u003ePython 3.9 Minimum Version\u003c/h3\u003e\n\u003cp\u003eCelery 5.6.0 drops support for Python 3.8 (EOL). The minimum required Python version is now 3.9. Users still on Python 3.8 must upgrade their Python version before upgrading to Celery 5.6.0.\u003c/p\u003e\n\u003cp\u003eAdditionally, this release includes initial support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eSQS: Reverted to \u003ccode\u003epycurl\u003c/code\u003e from \u003ccode\u003eurllib3\u003c/code\u003e\u003c/h3\u003e\n\u003cp\u003eThe switch from \u003ccode\u003epycurl\u003c/code\u003e to \u003ccode\u003eurllib3\u003c/code\u003e for the SQS transport (introduced in Celery 5.5.0 via Kombu) has been reverted due to critical issues affecting SQS users.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/auvipy\"\u003e\u003ccode\u003e@​auvipy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9620\"\u003ecelery/celery#9620\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eSecurity Fix: Broker Credential Leak Prevention\u003c/h3\u003e\n\u003cp\u003eFixed a security issue where broker URLs containing passwords were being logged in plaintext by the delayed delivery mechanism. Broker credentials are now properly sanitized in all log output.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/giancarloromeo\"\u003e\u003ccode\u003e@​giancarloromeo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9997\"\u003ecelery/celery#9997\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eMemory Leak Fixes\u003c/h3\u003e\n\u003cp\u003eTwo significant memory leaks have been fixed in this release:\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eException Handling Memory Leak\u003c/strong\u003e: Fixed a critical memory leak in task exception handling that was particularly severe on Python 3.11+ due to enhanced traceback data. The fix properly breaks reference cycles in tracebacks to allow garbage collection.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/jaiganeshs21\"\u003e\u003ccode\u003e@​jaiganeshs21\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9799\"\u003ecelery/celery#9799\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ePending Result Memory Leak\u003c/strong\u003e: Fixed a memory leak where \u003ccode\u003eAsyncResult\u003c/code\u003e subscriptions were not being cleaned up when results were forgotten.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/tsoos99dev\"\u003e\u003ccode\u003e@​tsoos99dev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9806\"\u003ecelery/celery#9806\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eETA Task Memory Limit\u003c/h3\u003e\n\u003cp\u003eNew configuration option \u003ccode\u003eworker_eta_task_limit\u003c/code\u003e to prevent out-of-memory crashes when workers fetch large numbers of ETA or countdown tasks. Previously, workers could exhaust available memory when the broker contained many scheduled tasks.\u003c/p\u003e\n\u003cp\u003eExample usage:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eapp.conf.worker_eta_task_limit = 1000\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/sashu2310\"\u003e\u003ccode\u003e@​sashu2310\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9853\"\u003ecelery/celery#9853\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eQueue Type Selection for Auto-created Queues\u003c/h3\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 href=\"https://github.com/celery/celery/blob/main/Changelog.rst\"\u003ecelery's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.6.0\u003c/h1\u003e\n\u003cp\u003e:release-date: 2025-11-30\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003cp\u003eKey Highlights\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nSee :ref:`whatsnew-5.6` for a complete overview or read the main highlights below.\n\u003ch2\u003ePython 3.9 Minimum Version\u003c/h2\u003e\n\u003cp\u003eCelery 5.6.0 drops support for Python 3.8 (EOL). The minimum required Python\nversion is now 3.9. Users still on Python 3.8 must upgrade their Python version\nbefore upgrading to Celery 5.6.0.\u003c/p\u003e\n\u003cp\u003eAdditionally, this release includes initial support for Python 3.14.\u003c/p\u003e\n\u003ch2\u003eSQS: Reverted to \u003ccode\u003epycurl\u003c/code\u003e from \u003ccode\u003eurllib3\u003c/code\u003e\u003c/h2\u003e\n\u003cp\u003eThe switch from \u003ccode\u003epycurl\u003c/code\u003e to \u003ccode\u003eurllib3\u003c/code\u003e for the SQS transport (introduced in\nCelery 5.5.0 via Kombu) has been reverted due to critical issues affecting SQS\nusers:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eProcessing throughput dropped from ~100 tasks/sec to ~3/sec in some environments\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUnknownOperationException\u003c/code\u003e errors causing container crash loops\u003c/li\u003e\n\u003cli\u003eSilent message processing failures with no error logs\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eUsers of the SQS transport must ensure \u003ccode\u003epycurl\u003c/code\u003e is installed. If you removed\n\u003ccode\u003epycurl\u003c/code\u003e after upgrading to Celery 5.5.0, you will need to reinstall it.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ccode\u003e@auvipy \u0026amp;lt;https://github.com/auvipy\u0026amp;gt;\u003c/code\u003e_ in\n\u003ccode\u003e[#9620](https://github.com/celery/celery/issues/9620) \u0026amp;lt;https://github.com/celery/celery/pull/9620\u0026amp;gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003ch2\u003eSecurity Fix: Broker Credential Leak Prevention\u003c/h2\u003e\n\u003cp\u003eFixed a security issue where broker URLs containing passwords were being logged\nin plaintext by the delayed delivery mechanism. Broker credentials are now\nproperly sanitized in all log output.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ccode\u003e@giancarloromeo \u0026amp;lt;https://github.com/giancarloromeo\u0026amp;gt;\u003c/code\u003e_ in\n\u003ccode\u003e[#9997](https://github.com/celery/celery/issues/9997) \u0026amp;lt;https://github.com/celery/celery/pull/9997\u0026amp;gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003cp\u003eMemory Leak Fixes\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\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 href=\"https://github.com/celery/celery/commit/cca11164860a1bee6ad8626c27a683b482f741eb\"\u003e\u003ccode\u003ecca1116\u003c/code\u003e\u003c/a\u003e Prepare for release: v5.6.0 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10010\"\u003e#10010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/1133f22181bb22223d39c0060973695c6af55643\"\u003e\u003ccode\u003e1133f22\u003c/code\u003e\u003c/a\u003e Bump mypy from 1.14.1 to 1.19.0 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10008\"\u003e#10008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/0932d2c06e001903b90638f7c40a14f5407c9801\"\u003e\u003ccode\u003e0932d2c\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10007\"\u003e#10007\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/b446910f18860531b089d6c39f974265cc24a589\"\u003e\u003ccode\u003eb446910\u003c/code\u003e\u003c/a\u003e Prepare for (pre) release: v5.6.0rc2 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10005\"\u003e#10005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/3f0f0fe7ea6a67a696d0a750644b552559ae368e\"\u003e\u003ccode\u003e3f0f0fe\u003c/code\u003e\u003c/a\u003e asynpool: Don't return from inside a finally block (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10000\"\u003e#10000\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/95d05527c0e1fff5c1a38877ba87592983a7f993\"\u003e\u003ccode\u003e95d0552\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10003\"\u003e#10003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/f32b92f0e481601e9cc9f1212a4feced3f48e1a0\"\u003e\u003ccode\u003ef32b92f\u003c/code\u003e\u003c/a\u003e Add Py39-314t to CI (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9999\"\u003e#9999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/63c1910221d9fb8c1931ff62c80c4c37232b2d58\"\u003e\u003ccode\u003e63c1910\u003c/code\u003e\u003c/a\u003e Don't fail task on timeout during cold shutdown (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9678\"\u003e#9678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/30649dbd41308fc8eef79b2aae179a908eaa7a51\"\u003e\u003ccode\u003e30649db\u003c/code\u003e\u003c/a\u003e Fix log leaking broker credentials (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9997\"\u003e#9997\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/929412e2d4d328e337be3f177ca99fff10ab9bdc\"\u003e\u003ccode\u003e929412e\u003c/code\u003e\u003c/a\u003e Remove Python 4.0 version condition for pytest dependencies (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9993\"\u003e#9993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/celery/celery/compare/v5.5.3...v5.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `hiredis` from 3.2.1 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/hiredis-py/releases\"\u003ehiredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.3.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e by \u003ca href=\"https://github.com/zweizeichen\"\u003e\u003ccode\u003e@​zweizeichen\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\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 href=\"https://github.com/redis/hiredis-py/commit/187d0f387afed58a955a42ea8c5467100871f98b\"\u003e\u003ccode\u003e187d0f3\u003c/code\u003e\u003c/a\u003e Version 3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/3efcf037edc5a9f7abfaedbd3f60b2a03feb4787\"\u003e\u003ccode\u003e3efcf03\u003c/code\u003e\u003c/a\u003e Add Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/215\"\u003e#215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/966cede2c0ca0a8ac4fe0786571e5c230f39c36e\"\u003e\u003ccode\u003e966cede\u003c/code\u003e\u003c/a\u003e Fix assertion in reader.c (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/212\"\u003e#212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/78def309e58126fdaacb66e6fd40df9c46494062\"\u003e\u003ccode\u003e78def30\u003c/code\u003e\u003c/a\u003e Bump version to 3.3.0-dev\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/redis/hiredis-py/compare/v3.2.1...v3.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `brotli` from 1.1.0 to 1.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/google/brotli/releases\"\u003ebrotli's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.0\u003c/h2\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\u003c/li\u003e\n\u003cli\u003eCLI: \u003ccode\u003ebrcat\u003c/code\u003e alias; allow decoding concatenated brotli streams\u003c/li\u003e\n\u003cli\u003ekt: pure Kotlin decoder\u003c/li\u003e\n\u003cli\u003ecgo: support \u0026quot;raw\u0026quot; dictionaries\u003c/li\u003e\n\u003cli\u003ebuild: Bazel modules\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: dropped \u003ccode\u003efinalize()\u003c/code\u003e for native entities\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: in \u003ccode\u003ecompress\u003c/code\u003e pass correct length to native encoder\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebuild: install man pages\u003c/li\u003e\n\u003cli\u003ebuild: updated / fixed / refined Bazel buildfiles\u003c/li\u003e\n\u003cli\u003eencoder: faster encoding\u003c/li\u003e\n\u003cli\u003ecgo: link via pkg-config\u003c/li\u003e\n\u003cli\u003epython: modernize extension / allow multi-phase module initialization\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edecoder / encoder: static tables use \u0026quot;small\u0026quot; model (allows 2GiB+ binaries)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.0 RC2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed (compared to RC1)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epick changes from Debian patch by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1349\"\u003egoogle/brotli#1349\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epick changes from Alpine patch by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1348\"\u003egoogle/brotli#1348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epick VCPKG patches by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1350\"\u003egoogle/brotli#1350\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix copy-paste in Java decoder by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1357\"\u003egoogle/brotli#1357\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.0 RC1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eIMPORTANT\u003c/strong\u003e: though this is a pre-release for v1.2.0, it is expected that some changes will be added before release; most notably concerning build files: patches applied by Alpine, Debian, Conan, VCPKG will be partially/fully integrated.\u003c/p\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\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 href=\"https://github.com/google/brotli/blob/master/CHANGELOG.md\"\u003ebrotli's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.2.0] - 2025-10-27\u003c/h2\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\u003c/li\u003e\n\u003cli\u003eCLI: \u003ccode\u003ebrcat\u003c/code\u003e alias; allow decoding concatenated brotli streams\u003c/li\u003e\n\u003cli\u003ekt: pure Kotlin decoder\u003c/li\u003e\n\u003cli\u003ecgo: support \u0026quot;raw\u0026quot; dictionaries\u003c/li\u003e\n\u003cli\u003ebuild: Bazel modules\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: dropped \u003ccode\u003efinalize()\u003c/code\u003e for native entities\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: in \u003ccode\u003ecompress\u003c/code\u003e pass correct length to native encoder\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebuild: install man pages\u003c/li\u003e\n\u003cli\u003ebuild: updated / fixed / refined Bazel buildfiles\u003c/li\u003e\n\u003cli\u003eencoder: faster encoding\u003c/li\u003e\n\u003cli\u003ecgo: link via pkg-config\u003c/li\u003e\n\u003cli\u003epython: modernize extension / allow multi-phase module initialization\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edecoder / encoder: static tables use \u0026quot;small\u0026quot; model (allows 2GiB+ binaries)\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 href=\"https://github.com/google/brotli/commit/028fb5a23661f123017c060daa546b55cf4bde29\"\u003e\u003ccode\u003e028fb5a\u003c/code\u003e\u003c/a\u003e release v1.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/390de5b472ec8c40a7b8e5029e47fd6493f7a755\"\u003e\u003ccode\u003e390de5b\u003c/code\u003e\u003c/a\u003e build and test csharp decoder\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/3499acbb7ac7818c1b929a8c9c5c5f8a634751da\"\u003e\u003ccode\u003e3499acb\u003c/code\u003e\u003c/a\u003e regenerate go/kt/js/ts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/8ca2312c61f1f5853be0708f9b1d6a6ad002d2a4\"\u003e\u003ccode\u003e8ca2312\u003c/code\u003e\u003c/a\u003e fix release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/ee771daf20bab6533cbc629407c50cff1c87d9f1\"\u003e\u003ccode\u003eee771da\u003c/code\u003e\u003c/a\u003e fix copy-paste in Java decoder\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/42aee3289154cb3e8db1c7a8ebfa639c857578b9\"\u003e\u003ccode\u003e42aee32\u003c/code\u003e\u003c/a\u003e try to fix release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/392c06bac05cc1d098ab105cbbda766f19853d92\"\u003e\u003ccode\u003e392c06b\u003c/code\u003e\u003c/a\u003e redesign release resource uploading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/1964cdb1b9e16a2a0c27fbd3b2a3bccb2c1a8294\"\u003e\u003ccode\u003e1964cdb\u003c/code\u003e\u003c/a\u003e ramp up all GH actions plugins\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/61605b1cb34ba84ae71c13b383d850a59cac85b2\"\u003e\u003ccode\u003e61605b1\u003c/code\u003e\u003c/a\u003e pick VCPKG patches\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/4b0f27b6f985b4301ad5cec4a31b9792ecf252bc\"\u003e\u003ccode\u003e4b0f27b\u003c/code\u003e\u003c/a\u003e pick changes from Alpine patch\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/google/brotli/compare/go/cbrotli/v1.1.0...v1.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-compressor` from 4.5.1 to 4.6.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-compressor/django-compressor/blob/develop/docs/changelog.txt\"\u003edjango-compressor's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003ev4.6 (2025-11-10)\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003eFull list of changes from v4.5.1 \u0026lt;https://github.com/django-compressor/django-compressor/compare/4.5.1...4.6\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed compatibility with latest BS4.\u003c/li\u003e\n\u003cli\u003eRemoved top pin for rcssmin and rjsmin dependencies.\u003c/li\u003e\n\u003cli\u003eAvoid compressing the same node concurrently in offline compression.\u003c/li\u003e\n\u003cli\u003eAvoid use of deprecated ast.Constant.s\u003c/li\u003e\n\u003cli\u003eOfficially support Django 6.0\u003c/li\u003e\n\u003cli\u003eOfficially support Django 5.2\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Django 5.0\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 3.9.\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 3.8.\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 href=\"https://github.com/django-compressor/django-compressor/commit/3ada994897cf982f97fc4c934be42eb1e0b71b9a\"\u003e\u003ccode\u003e3ada994\u003c/code\u003e\u003c/a\u003e Prepare 4.6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/1baa82a6cf6942eb12007217f26195a95df727e2\"\u003e\u003ccode\u003e1baa82a\u003c/code\u003e\u003c/a\u003e Remove CI testing for EOL Django 5.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/8706a52b740e7555abefc8fba1eaae1986ded1a5\"\u003e\u003ccode\u003e8706a52\u003c/code\u003e\u003c/a\u003e Add CI testing for Python 3.14 and Django 6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/7be9ce2cefedf59302207728e383fa7811232d59\"\u003e\u003ccode\u003e7be9ce2\u003c/code\u003e\u003c/a\u003e Bump brotli, lxml, and coverage test dependencies.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/d6fd8136febd1ba409b366c7471db8763522d91d\"\u003e\u003ccode\u003ed6fd813\u003c/code\u003e\u003c/a\u003e Remove test version pinning for rcssmin and rjsmin.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/2b46e7d1724109ebb5db49b76f008dc039f0a9db\"\u003e\u003ccode\u003e2b46e7d\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1307\"\u003e#1307\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/b97bb05836eb6a42d2746d43792e9d13f041b615\"\u003e\u003ccode\u003eb97bb05\u003c/code\u003e\u003c/a\u003e Disable bs4's multi valued attributes (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1296\"\u003e#1296\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/4e5433076300508e1c3648da3345ae606386eb3f\"\u003e\u003ccode\u003e4e54330\u003c/code\u003e\u003c/a\u003e Migrate packaging to pyproject.toml (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1313\"\u003e#1313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/872f8d52ce51957bccf4a91338d177c2ea4a3908\"\u003e\u003ccode\u003e872f8d5\u003c/code\u003e\u003c/a\u003e Remove version pinning for rcssmin and rjsmin (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1312\"\u003e#1312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/cc38666efb13c6e0b355cf273f56b783d7157e29\"\u003e\u003ccode\u003ecc38666\u003c/code\u003e\u003c/a\u003e Drop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1311\"\u003e#1311\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-compressor/django-compressor/compare/4.5.1...4.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `drf-yasg` from 1.21.10 to 1.21.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/axnsan12/drf-yasg/releases\"\u003edrf-yasg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.21.11\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/917\"\u003e#917\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/916\"\u003e#916\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/926\"\u003e#926\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/922\"\u003e#922\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/928\"\u003e#928\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/923\"\u003e#923\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/848\"\u003e#848\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/903\"\u003e#903\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 href=\"https://github.com/axnsan12/drf-yasg/blob/master/docs/changelog.rst\"\u003edrf-yasg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e#########\nChangelog\n#########\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.11\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (:pr:\u003ccode\u003e917\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (:pr:\u003ccode\u003e916\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (:pr:\u003ccode\u003e926\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (:pr:\u003ccode\u003e922\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (:pr:\u003ccode\u003e928\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (:pr:\u003ccode\u003e923\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (:pr:\u003ccode\u003e848\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (:pr:\u003ccode\u003e903\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.10\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix type hints when using postponed evaluation of annotations (PEP-563) (:pr:\u003ccode\u003e840\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update JSON \u0026amp; YAML renderers to not use a \u0026quot;.\u0026quot; in their format string (:pr:\u003ccode\u003e911\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix lint errors when comparing types with == instead of is (:pr:\u003ccode\u003e868\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update swagger-ui-dist to address CVE-2021-46708 (:pr:\u003ccode\u003e904\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.9\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Added support for zoneinfo object fields (:pr:\u003ccode\u003e908\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.8\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Python 3.11 and 3.12 support (:pr:\u003ccode\u003e891\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix pkg_resources version lookups for Python 3.9+ (:pr:\u003ccode\u003e891\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.7\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cem\u003eRelease date: Jul 20, 2023\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Added \u003ccode\u003edrf_yasg.inspectors.query.DrfAPICompatInspector\u003c/code\u003e (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Added \u003ccode\u003eDrfAPICompatInspector\u003c/code\u003e to serve as a replacement \u003ccode\u003eCoreAPICompatInspector\u003c/code\u003e (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow \u003ccode\u003eDEFAULT_SPEC_RENDERERS\u003c/code\u003e default renderers to be overriden in the settings (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fixed redoc source mapping (:pr:\u003ccode\u003e859\u003c/code\u003e)\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/f8cb2db70ca42fb709565f89fdd152b614dc865d\"\u003e\u003ccode\u003ef8cb2db\u003c/code\u003e\u003c/a\u003e Add version 1.21.11 details to the changelog (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/939\"\u003e#939\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/0c6d08d5ebc52e802e5e1acbabbadfe179d4087d\"\u003e\u003ccode\u003e0c6d08d\u003c/code\u003e\u003c/a\u003e Update the ruff lint rules (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/920\"\u003e#920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/055a74dc10128fd55a48f7f74f6b58ffcc48e83d\"\u003e\u003ccode\u003e055a74d\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 in the github-actions group (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/937\"\u003e#937\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/a8813ace8e39cc2c28a916053c74415e10db1425\"\u003e\u003ccode\u003ea8813ac\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 in the github-actions group (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/936\"\u003e#936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/9f4b44943ad930e23e979b80090102dfca1d588b\"\u003e\u003ccode\u003e9f4b449\u003c/code\u003e\u003c/a\u003e Restore the live demo and replace heroku with apprunner (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/935\"\u003e#935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/298325122e11aeba87e6c8f16604e45d870649e7\"\u003e\u003ccode\u003e2983251\u003c/code\u003e\u003c/a\u003e fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/a74689370c393432debbe6285b3afb3e462aee58\"\u003e\u003ccode\u003ea746893\u003c/code\u003e\u003c/a\u003e allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/916\"\u003e#916\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/e747ad6db413c2d20c3eab79739e22ffde5930c7\"\u003e\u003ccode\u003ee747ad6\u003c/code\u003e\u003c/a\u003e Fixes issue with filter parameters not appearing in Swagger after upgrading t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/ee3c871501dad5f0585c8c62ac0659fedab999a1\"\u003e\u003ccode\u003eee3c871\u003c/code\u003e\u003c/a\u003e update Python, Django, and DRF versions \u0026amp; packaging configuration (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/922\"\u003e#922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/be6eeedcbebcb45151a9d18018d880d1fcdcf143\"\u003e\u003ccode\u003ebe6eeed\u003c/code\u003e\u003c/a\u003e Remove usage of pkg_resources (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/928\"\u003e#928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/axnsan12/drf-yasg/compare/1.21.10...1.21.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jellyfish` from 1.2.0 to 1.2.1\n\nUpdates `markdown` from 3.9 to 3.10\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/releases\"\u003emarkdown's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.10.0\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\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 href=\"https://github.com/Python-Markdown/markdown/blob/master/docs/changelog.md\"\u003emarkdown's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003etitle: Changelog\ntoc_depth: 2\u003c/p\u003e\n\u003ch1\u003ePython-Markdown Changelog\u003c/h1\u003e\n\u003cp\u003eAll notable changes to this project will be documented in this file.\u003c/p\u003e\n\u003cp\u003eThe format is based on \u003ca href=\"https://keepachangelog.com/en/1.1.0/\"\u003eKeep a Changelog\u003c/a\u003e,\nand this project adheres to the\n\u003ca href=\"https://packaging.python.org/en/latest/specifications/version-specifiers/\"\u003ePython Version Specification\u003c/a\u003e.\nSee the \u003ca href=\"https://github.com/Python-Markdown/markdown/blob/master/docs/contributing.md\"\u003eContributing Guide\u003c/a\u003e for details.\u003c/p\u003e\n\u003ch2\u003e[3.10.0] - 2025-11-03\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.9.0] - 2025-09-04\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFootnotes are now ordered by the occurrence of their references in the\ndocument. A new configuration option for the footnotes extension,\n\u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e, has been added to support restoring the previous\nbehavior of ordering footnotes by the occurrence of definitions (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1367\"\u003e#1367\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure inline processing iterates through elements in document order (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1546\"\u003e#1546\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix handling of incomplete HTML tags in code spans in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1547\"\u003e#1547\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.8.2] - 2025-06-19\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003ecodecs\u003c/code\u003e deprecation in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed comment parsing in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed declarations in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed HTML tag \u003ccode\u003e\u0026lt;foo\u003c/code\u003e and Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\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 href=\"https://github.com/Python-Markdown/markdown/commit/22e89c1fc346f72218a10e392a0c3b4731912522\"\u003e\u003ccode\u003e22e89c1\u003c/code\u003e\u003c/a\u003e Bump version to 3.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/c138aea5139a6aceae05bb957e866d9ce7577b94\"\u003e\u003ccode\u003ec138aea\u003c/code\u003e\u003c/a\u003e + PY314 - PY39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/746f7f527b15f63845253e3b86947b806ef1b98f\"\u003e\u003ccode\u003e746f7f5\u003c/code\u003e\u003c/a\u003e cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/a5ee2b4aad05531898ab8fd726c7ece31ddadf8b\"\u003e\u003ccode\u003ea5ee2b4\u003c/code\u003e\u003c/a\u003e Revert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/5354daf618149f92580a1407c036115753c5df73\"\u003e\u003ccode\u003e5354daf\u003c/code\u003e\u003c/a\u003e Fix an HTML comment parsing case that can cause an infinite loop\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Python-Markdown/markdown/compare/3.9.0...3.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyyaml` from 6.0.2 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/yaml/pyyaml/releases\"\u003epyyaml's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14 and free-threading (experimental).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ehttps://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\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 href=\"https://github.com/yaml/pyyaml/blob/6.0.3/CHANGES\"\u003epyyaml's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e6.0.3 (2025-09-25)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/yaml/pyyaml/pull/864\"\u003eyaml/pyyaml#864\u003c/a\u003e -- Support for Python 3.14 and free-threading (experimental)\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 href=\"https://github.com/yaml/pyyaml/commit/49790e73684bebad1df05ef8d828fa12f685bffb\"\u003e\u003ccode\u003e49790e7\u003c/code\u003e\u003c/a\u003e Release 6.0.3 (\u003ca href=\"https://redirect.github.com/yaml/pyyaml/issues/889\"\u003e#889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xlsxwriter` from 3.2.5 to 3.2.9\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jmcnamara/XlsxWriter/blob/main/Changes\"\u003exlsxwriter's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.2.9 - September 16 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved the \u003ccode\u003epy.typed\u003c/code\u003e file since it was causing a lot of downstream CI\nfailures where consumers weren't handling the xlsxwriter types correctly or\ntaking them into account.\u003c/p\u003e\n\u003cp\u003eThe file will be re-added once the xlsxwriter typing is more comprehensive.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.2.8 - September 14 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003emypy\u003c/code\u003e implicit export error caused by the \u003ccode\u003eWorkbook()\u003c/code\u003e type\nannotations changes in v3.2.7 and v3.2.6.\u003c/p\u003e\n\u003cp\u003e:issue:\u003ccode\u003e1154\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.2.7 - September 13 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed typing issue in \u003ccode\u003eWorkbook()\u003c/code\u003e constructor.\u003c/p\u003e\n\u003cp\u003e:issue:\u003ccode\u003e1152\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.2.6 - September 12 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded an option to position custom data labels in the same way that the data\nlabels can be positioned for the entire series.\u003c/p\u003e\n\u003cp\u003e:feature:\u003ccode\u003e1147\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd border, fill, gradient and pattern formatting options for\nchart titles and also chart axis titles.\u003c/p\u003e\n\u003cp\u003e:feature:\u003ccode\u003e957\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd additional type annotations. This is an ongoing refactoring.\u003c/p\u003e\n\u003cp\u003e:feature:\u003ccode\u003e1123\u003c/code\u003e.\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 href=\"https://github.com/jmcnamara/XlsxWriter/commit/e943bee8c9cdf0661cfdb83d5497e0725390e41e\"\u003e\u003ccode\u003ee943bee\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/392bd9e6572785394c6553e2d4f7ae2bb80782f4\"\u003e\u003ccode\u003e392bd9e\u003c/code\u003e\u003c/a\u003e typing: remove py.typed file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/eb99afecdd0050209835f9f237d580dc53e42afa\"\u003e\u003ccode\u003eeb99afe\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/5ec29826d5e398bb5adebaabafbeb9d443a6ed8c\"\u003e\u003ccode\u003e5ec2982\u003c/code\u003e\u003c/a\u003e workbook: add explicit export for mypy compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/ca85cbb03a5898c9e7b66c78ac67a365e7f53002\"\u003e\u003ccode\u003eca85cbb\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/3710251aaaa9524ee302ec04608bfc1b577d4ba5\"\u003e\u003ccode\u003e3710251\u003c/code\u003e\u003c/a\u003e typing: add more supported types to Workbook() constructor\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/27db7a14672bfe1a18f29dfbab646aa0149a369b\"\u003e\u003ccode\u003e27db7a1\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/f05067654b42283557c3621e411b6fbadb7051b6\"\u003e\u003ccode\u003ef050676\u003c/code\u003e\u003c/a\u003e docs: add CI spell check\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/60f708cc1e10c0c66ae870be4f350f45a9d3ecc8\"\u003e\u003ccode\u003e60f708c\u003c/code\u003e\u003c/a\u003e chart: add axis title formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/53dc08e5d240310c88bbfce8d1a42330ae256535\"\u003e\u003ccode\u003e53dc08e\u003c/code\u003e\u003c/a\u003e chart: add chart title formatting options\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jmcnamara/XlsxWriter/compare/RELEASE_3.2.5...RELEASE_3.2.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xmltodict` from 0.15.1 to 1.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/martinblech/xmltodict/releases\"\u003exmltodict's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.0.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.1...v1.0.2\"\u003e1.0.2\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eallow DOCTYPE with disable_entities=True (default) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/25b61a41f580cfc211df07c5fbbf603bd8eb5a5f\"\u003e25b61a4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.0...v1.0.1\"\u003e1.0.1\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efail closed when entities disabled (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c986d2d37a93d45fcc059b09063d9d9c45a655ec\"\u003ec986d2d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003evalidate XML comments (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/3d4d2d3a4cd0f68d1211dba549010261fa87b969\"\u003e3d4d2d3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd SECURITY.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/64130233c8fea272a5f82f2f585e1593523ec1b1\"\u003e6413023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify behavior for empty lists (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2025b5cb5e64fc9c4d54b8644187a0a193bdd0ed\"\u003e2025b5c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify process_comments docs (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/6b464fce284a93dbb292f3d063c9f310a478a014\"\u003e6b464fc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify strip whitespace comment behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/b3e22032d21cc387d6cecf3930116e8fdc3151cf\"\u003eb3e2203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ecreate AGENTS.md for coding agents (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/0da66ee797ced7479312aecef92c6a25e235007c\"\u003e0da66ee\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace travis with actions badge (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2576b94c918fbd154489a95dbbb3feda8bd3cbd8\"\u003e2576b94\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate CONTRIBUTING.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/db3918057cf125af989a1263d52df8df5ef8c642\"\u003edb39180\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v0.15.1...v1.0.0\"\u003e1.0.0\u003c/a\u003e (2025-09-12)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emodernize for Python 3.9+; drop legacy compat paths\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add limited XML comment round-trip; unify \u003ccode\u003e_emit\u003c/code\u003e behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/e43537eee61c20ef50f0e4242eb9223de7a6aefd\"\u003ee43537e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add selective \u003ccode\u003eforce_cdata\u003c/code\u003e support (bool/tuple/callable) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/a497fedb7d6103d68af155543ac3337a73778b19\"\u003ea497fed\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/375\"\u003e#375\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003enamespaces:\u003c/strong\u003e attach \u003ccode\u003e[@xmlns](https://github.com/xmlns)\u003c/code\u003e to declaring element when process_namespaces=True (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/f0322e578184421693434902547f330f4f0a44c3\"\u003ef0322e5\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/163\"\u003e#163\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e avoid parent accumulation at item_depth; add regression tests (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/220240c5eb2d12b75adf26cc84ec9c803ce8bb2b\"\u003e220240c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e handle non-string \u003ccode\u003e#text\u003c/code\u003e with attributes; unify value conversion (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/927a025ae8a62cbb542d5caff38b29161a2096fa\"\u003e927a025\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/366\"\u003e#366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e skip empty lists to keep pretty/compact outputs consistent (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/ab4c86fed24dc8ef0e932a524edfb01c6453ecf6\"\u003eab4c86f\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/martinblech/xmltodict/blob/master/CHANGELOG.md\"\u003exmltodict's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.1...v1.0.2\"\u003e1.0.2\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eallow DOCTYPE with disable_entities=True (default) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/25b61a41f580cfc211df07c5fbbf603bd8eb5a5f\"\u003e25b61a4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.0...v1.0.1\"\u003e1.0.1\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efail closed when entities disabled (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c986d2d37a93d45fcc059b09063d9d9c45a655ec\"\u003ec986d2d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003evalidate XML comments (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/3d4d2d3a4cd0f68d1211dba549010261fa87b969\"\u003e3d4d2d3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd SECURITY.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/64130233c8fea272a5f82f2f585e1593523ec1b1\"\u003e6413023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify behavior for empty lists (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2025b5cb5e64fc9c4d54b8644187a0a193bdd0ed\"\u003e2025b5c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify process_comments docs (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/6b464fce284a93dbb292f3d063c9f310a478a014\"\u003e6b464fc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify strip whitespace comment behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/b3e22032d21cc387d6cecf3930116e8fdc3151cf\"\u003eb3e2203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ecreate AGENTS.md for coding agents (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/0da66ee797ced7479312aecef92c6a25e235007c\"\u003e0da66ee\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace travis with actions badge (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2576b94c918fbd154489a95dbbb3feda8bd3cbd8\"\u003e2576b94\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate CONTRIBUTING.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/db3918057cf125af989a1263d52df8df5ef8c642\"\u003edb39180\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v0.15.1...v1.0.0\"\u003e1.0.0\u003c/a\u003e (2025-09-12)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emodernize for Python 3.9+; drop legacy compat paths\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add limited XML comment round-trip; unify \u003ccode\u003e_emit\u003c/code\u003e behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/e43537eee61c20ef50f0e4242eb9223de7a6aefd\"\u003ee43537e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add selective \u003ccode\u003eforce_cdata\u003c/code\u003e support (bool/tuple/callable) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/a497fedb7d6103d68af155543ac3337a73778b19\"\u003ea497fed\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/375\"\u003e#375\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003enamespaces:\u003c/strong\u003e attach \u003ccode\u003e[@xmlns](https://github.com/xmlns)\u003c/code\u003e to declaring element when process_namespaces=True (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/f0322e578184421693434902547f330f4f0a44c3\"\u003ef0322e5\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/163\"\u003e#163\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e avoid parent accumulation at item_depth; add regression tests (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/220240c5eb2d12b75adf26cc84ec9c803ce8bb2b\"\u003e220240c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e handle non-string \u003ccode\u003e#text\u003c/code\u003e with attributes; unify value conversion (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/927a025ae8a62cbb542d5caff38b29161a2096fa\"\u003e927a025\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/366\"\u003e#366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e skip empty lists to keep pretty/compact outputs consistent (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/ab4c86fed24dc8ef0e932a524edfb01c6453ecf6\"\u003eab4c86f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eReverts\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove initial Release Drafter config (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c0b74ed58f933bffd160c60a58620f672710ff7c\"\u003ec0b74ed\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 href=\"https://github.com/martinblech/xmltodict/commit/d079849136b031c471ec96a168ad7859ed5994ff\"\u003e\u003ccode\u003ed079849\u003c/code\u003e\u003c/a\u003e chore(master): release 1.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/25b61a41f580cfc211df07c5fbbf603bd8eb5a5f\"\u003e\u003ccode\u003e25b61a4\u003c/code\u003e\u003c/a\u003e fix: allow DOCTYPE with disable_entities=True (default)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/a2a9ab7e0692a62f64d97ff12553d0d53368c854\"\u003e\u003ccode\u003ea2a9ab7\u003c/code\u003e\u003c/a\u003e ci(publish): allow uploading release assets\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/656e6af9543e640fda7e96d6bdd6e693756687be\"\u003e\u003ccode\u003e656e6af\u003c/code\u003e\u003c/a\u003e chore(master): release 1.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c986d2d37a93d45fcc059b09063d9d9c45a655ec\"\u003e\u003ccode\u003ec986d2d\u003c/code\u003e\u003c/a\u003e fix: fail closed when entities disabled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/3d4d2d3a4cd0f68d1211dba549010261fa87b969\"\u003e\u003ccode\u003e3d4d2d3\u003c/code\u003e\u003c/a\u003e fix: validate XML comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/b4a5f2a3f04aff68384486e957632c8438396fd6\"\u003e\u003ccode\u003eb4a5f2a\u003c/code\u003e\u003c/a\u003e refactor: remove jython-specific parsing branches\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/6b464fce284a93dbb292f3d063c9f310a478a014\"\u003e\u003ccode\u003e6b464fc\u003c/code\u003e\u003c/a\u003e docs: clarify process_comments docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/34daa304d443e49113d195294d99c6f58ce4714c\"\u003e\u003ccode\u003e34daa30\u003c/code\u003e\u003c/a\u003e refactor: remove unused helper functions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2025b5cb5e64fc9c4d54b8644187a0a193bdd0ed\"\u003e\u003ccode\u003e2025b5c\u003c/code\u003e\u003c/a\u003e docs: clarify behavior for empty lists\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/martinblech/xmltodict/compare/v0.15.1...v1.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xmlschema` from 4.1.0 to 4.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sissaschool/xmlschema/releases\"\u003exmlschema's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.2.0 (2025-10-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd arguments validation for schemas and validation methods (by validation contexts)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSchemaSettings\u003c/code\u003e dataclass for storing read-only settings for schema instances\nand for managing package default settings\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eblock\u003c/em\u003e argument to \u003ccode\u003eXMLResource\u003c/code\u003e class (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/464\"\u003e#464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_SCHEMA_SOURCES\u003c/em\u003e package limit (\u003ccode\u003e1000\u003c/code\u003e, applied to \u003ccode\u003eXsdGlobals\u003c/code\u003e global maps instances)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_XML_ELEMENTS\u003c/em\u003e package limit (\u003ccode\u003e1,000,000\u003c/code\u003e, applied to non-lazy \u003ccode\u003eXMLResource\u003c/code\u003e instances)\u003c/li\u003e\n\u003cli\u003eReduce \u003cem\u003eMAX_XML_DEPTH\u003c/em\u003e limit to 1000 and apply it to all \u003ccode\u003eXMLResource\u003c/code\u003e instances\u003c/li\u003e\n\u003cli\u003eFix for substitute match in case of unexpected child (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\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 href=\"https://github.com/sissaschool/xmlschema/blob/master/CHANGELOG.rst\"\u003exmlschema's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ccode\u003ev4.2.0\u003c/code\u003e_ (2025-10-14)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd arguments validation for schemas and validation methods (by validation contexts)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSchemaSettings\u003c/code\u003e dataclass for storing read-only settings for schema instances\nand for managing package default settings\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eblock\u003c/em\u003e argument to \u003ccode\u003eXMLResource\u003c/code\u003e class (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/464\"\u003e#464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_SCHEMA_SOURCES\u003c/em\u003e package limit (\u003ccode\u003e1000\u003c/code\u003e, applied to \u003ccode\u003eXsdGlobals\u003c/code\u003e global maps instances)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_XML_ELEMENTS\u003c/em\u003e package limit (\u003ccode\u003e1,000,000\u003c/code\u003e, applied to non-lazy \u003ccode\u003eXMLResource\u003c/code\u003e instances)\u003c/li\u003e\n\u003cli\u003eReduce \u003cem\u003eMAX_XML_DEPTH\u003c/em\u003e limit to 1000 and apply it to all \u003ccode\u003eXMLResource\u003c/code\u003e instances\u003c/li\u003e\n\u003cli\u003eFix for substitute match in case of unexpected child (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\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 href=\"https://github.com/sissaschool/xmlschema/commit/2783030fcdcd5307563822906862a9e7088931b2\"\u003e\u003ccode\u003e2783030\u003c/code\u003e\u003c/a\u003e Bump minor release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/7c77a12f0fe16c8da0256a0f13281a03e4a0f717\"\u003e\u003ccode\u003e7c77a12\u003c/code\u003e\u003c/a\u003e Include publiccode.yml validation workflow for CI and README changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/04c19d54d4578f34a0c04d6cc82daa8d3ef9d90c\"\u003e\u003ccode\u003e04c19d5\u003c/code\u003e\u003c/a\u003e Fix XsdGroup.match_element (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/dd4f279e56b8a5ce89f78a6c88337f5032af0b2f\"\u003e\u003ccode\u003edd4f279\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/463\"\u003e#463\u003c/a\u003e from publiccode-pr-bot/chore/add-publiccode-parser-ac...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/1bd7aa6eebf4947e7ae76e47a2f706b58fed22cd\"\u003e\u003ccode\u003e1bd7aa6\u003c/code\u003e\u003c/a\u003e Update GitHub workflow for CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/76b0f67e900777166bcd3773cc109efae933682d\"\u003e\u003ccode\u003e76b0f67\u003c/code\u003e\u003c/a\u003e Patch mypy tests with protocols\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/28727bb0af89f129d59772550c6998164c37aeff\"\u003e\u003ccode\u003e28727bb\u003c/code\u003e\u003c/a\u003e Update docs and release info\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/e4131eaf6bc1a223292f3f19e78573a4317d131a\"\u003e\u003ccode\u003ee4131ea\u003c/code\u003e\u003c/a\u003e Add from_settings() class method to schemas\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/0aea8debef13b62156e7297bdc54198057ea3611\"\u003e\u003ccode\u003e0aea8de\u003c/code\u003e\u003c/a\u003e Rewrite validation contexts as normal classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/d443d7ba0e3de8fad6d6df8f314b12735af4bac3\"\u003e\u003ccode\u003ed443d7b\u003c/code\u003e\u003c/a\u003e Full validation of context arguments\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sissaschool/xmlschema/compare/v4.1.0...v4.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lark` from 1.2.2 to 1.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lark-parser/lark/releases\"\u003elark's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.3.1 - Bugfix + source build now contains complete project data\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix: Restore support for custom input, alongside text and TextSlice by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1562\"\u003elark-parser/lark#1562\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep sdist in sync with git (include all files in source build, including docs, tests and examples) by \u003ca href=\"https://github.com/chanicpanic\"\u003e\u003ccode\u003e@​chanicpanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1561\"\u003elark-parser/lark#1561\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/lark-parser/lark/compare/1.3.0...1.3.1\"\u003ehttps://github.com/lark-parser/lark/compare/1.3.0...1.3.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e1.3.0 - Introduces text-slices, Earley fix, and various small improvements\u003c/h2\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLark can now parse in sections of strings, using \u003ccode\u003eTextSlice\u003c/code\u003e, as a faster alternative to creating a \u0026quot;copy-slice\u0026quot; with \u003ccode\u003es[i:j]\u003c/code\u003e. \u003ca href=\"https://lark-parser.readthedocs.io/en/latest/classes.html#lark.utils.TextSlice\"\u003eLearn more\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded support to \u003ccode\u003ematch\u003c/code\u003e on Tree instances\u003c/li\u003e\n\u003cli\u003eWhen serializing a Lark instance, added the option to include the grammar object (before compilation).\u003c/li\u003e\n\u003cli\u003eAdded convenience method \u003ccode\u003eTree.find_token()\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix of an edge case in Earley related to representation of ambiguity.\u003c/li\u003e\n\u003cli\u003eBugfixes in the standalone parser related to imports\u003c/li\u003e\n\u003cli\u003eBugfix in indenter - now dedents always contain line information\u003c/li\u003e\n\u003cli\u003eVarious small bugfixes (see PR list below)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFull list of PRs\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDocs: Rephrase v_args() documentation to underline it only applies to Transformer classes by \u003ca href=\"https://github.com/skepppy\"\u003e\u003ccode\u003e@​skepppy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1458\"\u003elark-parser/lark#1458\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTiny refactor for PR \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1451\"\u003e#1451\u003c/a\u003e by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1459\"\u003elark-parser/lark#1459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEarley: share nodes created by the scanner with the completer by \u003ca href=\"https://github.com/chanicpanic\"\u003e\u003ccode\u003e@​chanicpanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1451\"\u003elark-parser/lark#1451\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter error in Lark.parse when using on_error when parser!=lalr (issue \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1311\"\u003e#1311\u003c/a\u003e) by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1460\"\u003elark-parser/lark#1460\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eSymbol.__eq__\u003c/code\u003e to return false when comparing with None by \u003ca href=\"https://github.com/weaversam8\"\u003e\u003ccode\u003e@​weaversam8\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1481\"\u003elark-parser/lark#1481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMention internal/external transformers in the documentation by \u003ca href=\"https://github.com/odanoburu\"\u003e\u003ccode\u003e@​odanoburu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1486\"\u003elark-parser/lark#1486\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Tree.find_token() method by \u003ca href=\"https://github.com/makukha\"\u003e\u003ccode\u003e@​makukha\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1467\"\u003elark-parser/lark#1467\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eType \u003ccode\u003eTerminal.__init__\u003c/code\u003e by \u003ca href=\"https://github.com/Liam-DeVoe\"\u003e\u003ccode\u003e@​Liam-DeVoe\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1503\"\u003elark-parser/lark#1503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd guidance on handling comments in languages with significant indentation by \u003ca href=\"https://github.com/nchammas\"\u003e\u003ccode\u003e@​nchammas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1502\"\u003elark-parser/lark#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Small fix for PR 1507 by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1508\"\u003elark-parser/lark#1508\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd note on binding power of numeric quantifiers by \u003ca href=\"https://github.com/414owen\"\u003e\u003ccode\u003e@​414owen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1507\"\u003elark-parser/lark#1507\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrap functools.partial in staticmethod() to add compatibility with Python 3.14 by \u003ca href=\"https://github.com/hrnciar\"\u003e\u003ccode\u003e@​hrnciar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1483\"\u003elark-parser/lark#1483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix generic type of Transformer_InPlaceRecursive by \u003ca href=\"https://github.com/lbhm\"\u003e\u003ccode\u003e@​lbhm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1518\"\u003elark-parser/lark#1518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded TextSlice; Lark can now parse/lex a text-slice by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1452\"\u003elark-parser/lark#1452\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport match on tree by \u003c...\n\n_Description has been truncated_","html_url":"https://github.com/chrislkl/seed/pull/7","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrislkl%2Fseed/issues/7","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/7/packages"},{"uuid":"3615215494","node_id":"PR_kwDOHc8_yM6y6VAD","number":295,"state":"closed","title":"Bump uwsgi from 2.0.26 to 2.0.31","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":"2025-11-12T13:04:54.000Z","author_association":null,"state_reason":null,"created_at":"2025-11-12T06:46:02.000Z","updated_at":"2025-11-12T13:04:56.000Z","time_to_close":22732,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"uwsgi","old_version":"2.0.26","new_version":"2.0.31","repository_url":null}],"path":null,"ecosystem":"pip"},"body":"Bumps [uwsgi](https://uwsgi-docs.readthedocs.io/en/latest/) from 2.0.26 to 2.0.31.\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=uwsgi\u0026package-manager=pip\u0026previous-version=2.0.26\u0026new-version=2.0.31)](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't alter it yourself. You can also trigger a rebase manually by commenting `@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 that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/nisyuu/sumuma/pull/295","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/nisyuu%2Fsumuma/issues/295","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/295/packages"},{"uuid":"3606400562","node_id":"PR_kwDOQDraYs6ycup4","number":4,"state":"open","title":"deps: bump the prod-deps group across 1 directory with 28 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-11-10T06:48:32.000Z","updated_at":"2025-11-10T06:48:33.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps: bump","group_name":"prod-deps","update_count":28,"packages":[{"name":"django","old_version":"4.2.24","new_version":"5.2.8","repository_url":"https://github.com/django/django"},{"name":"psycopg2-binary","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"hiredis","old_version":"3.2.1","new_version":"3.3.0","repository_url":"https://github.com/redis/hiredis-py"},{"name":"brotli","old_version":"1.1.0","new_version":"1.2.0","repository_url":"https://github.com/google/brotli"},{"name":"drf-yasg","old_version":"1.21.10","new_version":"1.21.11","repository_url":"https://github.com/axnsan12/drf-yasg"},{"name":"jellyfish","old_version":"1.2.0","new_version":"1.2.1"},{"name":"markdown","old_version":"3.9","new_version":"3.10","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"xlsxwriter","old_version":"3.2.5","new_version":"3.2.9","repository_url":"https://github.com/jmcnamara/XlsxWriter"},{"name":"xmltodict","old_version":"0.15.1","new_version":"1.0.2","repository_url":"https://github.com/martinblech/xmltodict"},{"name":"xmlschema","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/sissaschool/xmlschema"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"shapely","old_version":"2.0.7","new_version":"2.1.2","repository_url":"https://github.com/shapely/shapely"},{"name":"django-two-factor-auth","old_version":"1.17.0","new_version":"1.18.1"},{"name":"boto3","old_version":"1.40.27","new_version":"1.40.69","repository_url":"https://github.com/boto/boto3"},{"name":"uwsgi","old_version":"2.0.30","new_version":"2.0.31"},{"name":"coverage","old_version":"7.10.6","new_version":"7.11.3","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"coveralls","old_version":"4.0.1","new_version":"4.0.2","repository_url":"https://github.com/TheKevJames/coveralls-python"},{"name":"tox","old_version":"4.30.2","new_version":"4.32.0","repository_url":"https://github.com/tox-dev/tox"},{"name":"psutil","old_version":"7.0.0","new_version":"7.1.3","repository_url":"https://github.com/giampaolo/psutil"},{"name":"faker","old_version":"37.6.0","new_version":"37.12.0","repository_url":"https://github.com/joke2k/faker"},{"name":"pytest","old_version":"8.4.2","new_version":"9.0.0","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pre-commit","old_version":"4.3.0","new_version":"4.4.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"sphinx","old_version":"7.4.7","new_version":"8.2.3","repository_url":"https://github.com/sphinx-doc/sphinx"},{"name":"sphinxcontrib-spelling","old_version":"8.0.0","new_version":"8.0.1","repository_url":"https://github.com/sphinx-contrib/spelling"},{"name":"docutils","old_version":"0.21.2","new_version":"0.22.3","repository_url":"https://github.com/rtfd/recommonmark"},{"name":"hypothesis","old_version":"6.138.15","new_version":"6.147.0","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"django-debug-toolbar","old_version":"6.0.0","new_version":"6.1.0","repository_url":"https://github.com/django-commons/django-debug-toolbar"}],"path":null,"ecosystem":"pip"},"body":"Bumps the prod-deps group with 28 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [django](https://github.com/django/django) | `4.2.24` | `5.2.8` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.2.1` | `3.3.0` |\n| [brotli](https://github.com/google/brotli) | `1.1.0` | `1.2.0` |\n| [drf-yasg](https://github.com/axnsan12/drf-yasg) | `1.21.10` | `1.21.11` |\n| [jellyfish](https://jellyfish.jpt.sh/) | `1.2.0` | `1.2.1` |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.9` | `3.10` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [xlsxwriter](https://github.com/jmcnamara/XlsxWriter) | `3.2.5` | `3.2.9` |\n| [xmltodict](https://github.com/martinblech/xmltodict) | `0.15.1` | `1.0.2` |\n| [xmlschema](https://github.com/sissaschool/xmlschema) | `4.1.0` | `4.2.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [shapely](https://github.com/shapely/shapely) | `2.0.7` | `2.1.2` |\n| [django-two-factor-auth[phonenumbers]](https://github.com/jazzband/django-two-factor-auth) | `1.17.0` | `1.18.1` |\n| [boto3](https://github.com/boto/boto3) | `1.40.27` | `1.40.69` |\n| [uwsgi](https://uwsgi-docs.readthedocs.io/en/latest/) | `2.0.30` | `2.0.31` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.11.3` |\n| [coveralls](https://github.com/TheKevJames/coveralls-python) | `4.0.1` | `4.0.2` |\n| [tox](https://github.com/tox-dev/tox) | `4.30.2` | `4.32.0` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.1.3` |\n| [faker](https://github.com/joke2k/faker) | `37.6.0` | `37.12.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.2` | `9.0.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.3.0` | `4.4.0` |\n| [sphinx](https://github.com/sphinx-doc/sphinx) | `7.4.7` | `8.2.3` |\n| [sphinxcontrib-spelling](https://github.com/sphinx-contrib/spelling) | `8.0.0` | `8.0.1` |\n| [docutils](https://github.com/rtfd/recommonmark) | `0.21.2` | `0.22.3` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.138.15` | `6.147.0` |\n| [django-debug-toolbar](https://github.com/django-commons/django-debug-toolbar) | `6.0.0` | `6.1.0` |\n\n\nUpdates `django` from 4.2.24 to 5.2.8\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/47fe39af56ecd0ad73b9c7562511015e96b91b80\"\u003e\u003ccode\u003e47fe39a\u003c/code\u003e\u003c/a\u003e [5.2.x] Bumped version for 5.2.8 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/ac9fcf6eb2c909f4150c5287808f49170ce1f9e2\"\u003e\u003ccode\u003eac9fcf6\u003c/code\u003e\u003c/a\u003e [5.2.x] Refs CVE-2025-64459 -- Avoided propagating invalid arguments to Q on ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/6703f364d767e949c5b0e4016433ef75063b4f9b\"\u003e\u003ccode\u003e6703f36\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2025-64459 -- Prevented SQL injections in Q/QuerySet via th...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/4f5d904b63751dea9ffc3b0e046404a7fa5881ac\"\u003e\u003ccode\u003e4f5d904\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2025-64458 -- Mitigated potential DoS in HttpResponseRedire...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/cbdf128cb316bccf9ca3b3b4966e57bd050bfc8a\"\u003e\u003ccode\u003ecbdf128\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36704\"\u003e#36704\u003c/a\u003e -- Fixed system check error for proxy model with a compo...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/6775888470317a6d69121779b489bb2dc7350318\"\u003e\u003ccode\u003e6775888\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36696\"\u003e#36696\u003c/a\u003e -- Fixed NameError when inspecting functions with deferr...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/d5dfffaae52b9dcb4857d42b1e2902290a5c5e3c\"\u003e\u003ccode\u003ed5dfffa\u003c/code\u003e\u003c/a\u003e [5.2.x] Added stub release notes and release date for 5.2.8, 5.1.14, and 4.2.26.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/368f955c371cab5db18e9e239d10560cf15f5ea4\"\u003e\u003ccode\u003e368f955\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36681\"\u003e#36681\u003c/a\u003e -- Removed English pluralization bias from example in do...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/71267c97db211f1d7f1b8b794ceb2167a7619a4d\"\u003e\u003ccode\u003e71267c9\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/35095\"\u003e#35095\u003c/a\u003e -- Clarified Swiss number formatting in docs/topics/i18n...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/9b37bd5fe73b0d614ad8e503071d6f7bf2bdf6b2\"\u003e\u003ccode\u003e9b37bd5\u003c/code\u003e\u003c/a\u003e [5.2.x] Made RemoteTestResultTest.test_pickle_errors_detection() compatible w...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/4.2.24...5.2.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2-binary` from 2.9.10 to 2.9.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2-binary's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix building when pg_config returns an empty string (:ticket:\u003ccode\u003e[#1599](https://github.com/psycopg/psycopg2/issues/1599)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eWheel package bundled with OpenSSL 1.1.1v.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.6\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\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 href=\"https://github.com/psycopg/psycopg2/commit/fd9ae8cad2bcfc3e7e9410e7b6f07cda8f4f05ec\"\u003e\u003ccode\u003efd9ae8c\u003c/code\u003e\u003c/a\u003e chore: bump to version 2.9.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d923840546942534f0956d9202f914fd9feac5fd\"\u003e\u003ccode\u003ed923840\u003c/code\u003e\u003c/a\u003e chore: update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d42dc7169d3cd93517e282e9ef5dc2a2b40650a2\"\u003e\u003ccode\u003ed42dc71\u003c/code\u003e\u003c/a\u003e Merge branch 'fix-1791'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4fde6560c32f06ad1304404c9f7f86148dcc4be0\"\u003e\u003ccode\u003e4fde656\u003c/code\u003e\u003c/a\u003e fix: avoid failed assert passing more arguments than placeholders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/8308c19d6af0d904b313997539ed33415990a74e\"\u003e\u003ccode\u003e8308c19\u003c/code\u003e\u003c/a\u003e fix: drop warning about the use of deprecated PyWeakref_GetObject function\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1a1eabf098a3374409bb2ab4b594777b900f396d\"\u003e\u003ccode\u003e1a1eabf\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/github-script from 7 to 8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/897af8b38beda851d7257dfc525129e37c0ec9e0\"\u003e\u003ccode\u003e897af8b\u003c/code\u003e\u003c/a\u003e build(deps): bump peter-evans/repository-dispatch from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ceefd305117113ca10e383a626e87ba0796f3638\"\u003e\u003ccode\u003eceefd30\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4dc585430cabe94cee96c5a9de0265d0f55370f1\"\u003e\u003ccode\u003e4dc5854\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1945788dcf6172bb1b9328ebc3587ccf0e6a659c\"\u003e\u003ccode\u003e1945788\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1802\"\u003e#1802\u003c/a\u003e from edgarrmondragon/cp314-wheels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.10...2.9.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `hiredis` from 3.2.1 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/hiredis-py/releases\"\u003ehiredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.3.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e by \u003ca href=\"https://github.com/zweizeichen\"\u003e\u003ccode\u003e@​zweizeichen\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\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 href=\"https://github.com/redis/hiredis-py/commit/187d0f387afed58a955a42ea8c5467100871f98b\"\u003e\u003ccode\u003e187d0f3\u003c/code\u003e\u003c/a\u003e Version 3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/3efcf037edc5a9f7abfaedbd3f60b2a03feb4787\"\u003e\u003ccode\u003e3efcf03\u003c/code\u003e\u003c/a\u003e Add Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/215\"\u003e#215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/966cede2c0ca0a8ac4fe0786571e5c230f39c36e\"\u003e\u003ccode\u003e966cede\u003c/code\u003e\u003c/a\u003e Fix assertion in reader.c (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/212\"\u003e#212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/78def309e58126fdaacb66e6fd40df9c46494062\"\u003e\u003ccode\u003e78def30\u003c/code\u003e\u003c/a\u003e Bump version to 3.3.0-dev\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/redis/hiredis-py/compare/v3.2.1...v3.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `brotli` from 1.1.0 to 1.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/google/brotli/releases\"\u003ebrotli's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.0\u003c/h2\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\u003c/li\u003e\n\u003cli\u003eCLI: \u003ccode\u003ebrcat\u003c/code\u003e alias; allow decoding concatenated brotli streams\u003c/li\u003e\n\u003cli\u003ekt: pure Kotlin decoder\u003c/li\u003e\n\u003cli\u003ecgo: support \u0026quot;raw\u0026quot; dictionaries\u003c/li\u003e\n\u003cli\u003ebuild: Bazel modules\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: dropped \u003ccode\u003efinalize()\u003c/code\u003e for native entities\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: in \u003ccode\u003ecompress\u003c/code\u003e pass correct length to native encoder\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebuild: install man pages\u003c/li\u003e\n\u003cli\u003ebuild: updated / fixed / refined Bazel buildfiles\u003c/li\u003e\n\u003cli\u003eencoder: faster encoding\u003c/li\u003e\n\u003cli\u003ecgo: link via pkg-config\u003c/li\u003e\n\u003cli\u003epython: modernize extension / allow multi-phase module initialization\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edecoder / encoder: static tables use \u0026quot;small\u0026quot; model (allows 2GiB+ binaries)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.0 RC2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed (compared to RC1)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epick changes from Debian patch by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1349\"\u003egoogle/brotli#1349\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epick changes from Alpine patch by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1348\"\u003egoogle/brotli#1348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epick VCPKG patches by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1350\"\u003egoogle/brotli#1350\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix copy-paste in Java decoder by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1357\"\u003egoogle/brotli#1357\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.0 RC1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eIMPORTANT\u003c/strong\u003e: though this is a pre-release for v1.2.0, it is expected that some changes will be added before release; most notably concerning build files: patches applied by Alpine, Debian, Conan, VCPKG will be partially/fully integrated.\u003c/p\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\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 href=\"https://github.com/google/brotli/blob/master/CHANGELOG.md\"\u003ebrotli's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.2.0] - 2025-10-27\u003c/h2\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\u003c/li\u003e\n\u003cli\u003eCLI: \u003ccode\u003ebrcat\u003c/code\u003e alias; allow decoding concatenated brotli streams\u003c/li\u003e\n\u003cli\u003ekt: pure Kotlin decoder\u003c/li\u003e\n\u003cli\u003ecgo: support \u0026quot;raw\u0026quot; dictionaries\u003c/li\u003e\n\u003cli\u003ebuild: Bazel modules\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: dropped \u003ccode\u003efinalize()\u003c/code\u003e for native entities\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: in \u003ccode\u003ecompress\u003c/code\u003e pass correct length to native encoder\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebuild: install man pages\u003c/li\u003e\n\u003cli\u003ebuild: updated / fixed / refined Bazel buildfiles\u003c/li\u003e\n\u003cli\u003eencoder: faster encoding\u003c/li\u003e\n\u003cli\u003ecgo: link via pkg-config\u003c/li\u003e\n\u003cli\u003epython: modernize extension / allow multi-phase module initialization\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edecoder / encoder: static tables use \u0026quot;small\u0026quot; model (allows 2GiB+ binaries)\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 href=\"https://github.com/google/brotli/commit/028fb5a23661f123017c060daa546b55cf4bde29\"\u003e\u003ccode\u003e028fb5a\u003c/code\u003e\u003c/a\u003e release v1.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/390de5b472ec8c40a7b8e5029e47fd6493f7a755\"\u003e\u003ccode\u003e390de5b\u003c/code\u003e\u003c/a\u003e build and test csharp decoder\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/3499acbb7ac7818c1b929a8c9c5c5f8a634751da\"\u003e\u003ccode\u003e3499acb\u003c/code\u003e\u003c/a\u003e regenerate go/kt/js/ts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/8ca2312c61f1f5853be0708f9b1d6a6ad002d2a4\"\u003e\u003ccode\u003e8ca2312\u003c/code\u003e\u003c/a\u003e fix release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/ee771daf20bab6533cbc629407c50cff1c87d9f1\"\u003e\u003ccode\u003eee771da\u003c/code\u003e\u003c/a\u003e fix copy-paste in Java decoder\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/42aee3289154cb3e8db1c7a8ebfa639c857578b9\"\u003e\u003ccode\u003e42aee32\u003c/code\u003e\u003c/a\u003e try to fix release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/392c06bac05cc1d098ab105cbbda766f19853d92\"\u003e\u003ccode\u003e392c06b\u003c/code\u003e\u003c/a\u003e redesign release resource uploading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/1964cdb1b9e16a2a0c27fbd3b2a3bccb2c1a8294\"\u003e\u003ccode\u003e1964cdb\u003c/code\u003e\u003c/a\u003e ramp up all GH actions plugins\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/61605b1cb34ba84ae71c13b383d850a59cac85b2\"\u003e\u003ccode\u003e61605b1\u003c/code\u003e\u003c/a\u003e pick VCPKG patches\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/4b0f27b6f985b4301ad5cec4a31b9792ecf252bc\"\u003e\u003ccode\u003e4b0f27b\u003c/code\u003e\u003c/a\u003e pick changes from Alpine patch\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/google/brotli/compare/go/cbrotli/v1.1.0...v1.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `drf-yasg` from 1.21.10 to 1.21.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/axnsan12/drf-yasg/releases\"\u003edrf-yasg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.21.11\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/917\"\u003e#917\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/916\"\u003e#916\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/926\"\u003e#926\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/922\"\u003e#922\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/928\"\u003e#928\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/923\"\u003e#923\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/848\"\u003e#848\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/903\"\u003e#903\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 href=\"https://github.com/axnsan12/drf-yasg/blob/master/docs/changelog.rst\"\u003edrf-yasg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e#########\nChangelog\n#########\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.11\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (:pr:\u003ccode\u003e917\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (:pr:\u003ccode\u003e916\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (:pr:\u003ccode\u003e926\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (:pr:\u003ccode\u003e922\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (:pr:\u003ccode\u003e928\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (:pr:\u003ccode\u003e923\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (:pr:\u003ccode\u003e848\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (:pr:\u003ccode\u003e903\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.10\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix type hints when using postponed evaluation of annotations (PEP-563) (:pr:\u003ccode\u003e840\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update JSON \u0026amp; YAML renderers to not use a \u0026quot;.\u0026quot; in their format string (:pr:\u003ccode\u003e911\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix lint errors when comparing types with == instead of is (:pr:\u003ccode\u003e868\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update swagger-ui-dist to address CVE-2021-46708 (:pr:\u003ccode\u003e904\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.9\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Added support for zoneinfo object fields (:pr:\u003ccode\u003e908\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.8\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Python 3.11 and 3.12 support (:pr:\u003ccode\u003e891\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix pkg_resources version lookups for Python 3.9+ (:pr:\u003ccode\u003e891\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.7\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cem\u003eRelease date: Jul 20, 2023\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Added \u003ccode\u003edrf_yasg.inspectors.query.DrfAPICompatInspector\u003c/code\u003e (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Added \u003ccode\u003eDrfAPICompatInspector\u003c/code\u003e to serve as a replacement \u003ccode\u003eCoreAPICompatInspector\u003c/code\u003e (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow \u003ccode\u003eDEFAULT_SPEC_RENDERERS\u003c/code\u003e default renderers to be overriden in the settings (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fixed redoc source mapping (:pr:\u003ccode\u003e859\u003c/code\u003e)\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/f8cb2db70ca42fb709565f89fdd152b614dc865d\"\u003e\u003ccode\u003ef8cb2db\u003c/code\u003e\u003c/a\u003e Add version 1.21.11 details to the changelog (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/939\"\u003e#939\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/0c6d08d5ebc52e802e5e1acbabbadfe179d4087d\"\u003e\u003ccode\u003e0c6d08d\u003c/code\u003e\u003c/a\u003e Update the ruff lint rules (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/920\"\u003e#920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/055a74dc10128fd55a48f7f74f6b58ffcc48e83d\"\u003e\u003ccode\u003e055a74d\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 in the github-actions group (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/937\"\u003e#937\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/a8813ace8e39cc2c28a916053c74415e10db1425\"\u003e\u003ccode\u003ea8813ac\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 in the github-actions group (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/936\"\u003e#936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/9f4b44943ad930e23e979b80090102dfca1d588b\"\u003e\u003ccode\u003e9f4b449\u003c/code\u003e\u003c/a\u003e Restore the live demo and replace heroku with apprunner (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/935\"\u003e#935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/298325122e11aeba87e6c8f16604e45d870649e7\"\u003e\u003ccode\u003e2983251\u003c/code\u003e\u003c/a\u003e fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/a74689370c393432debbe6285b3afb3e462aee58\"\u003e\u003ccode\u003ea746893\u003c/code\u003e\u003c/a\u003e allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/916\"\u003e#916\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/e747ad6db413c2d20c3eab79739e22ffde5930c7\"\u003e\u003ccode\u003ee747ad6\u003c/code\u003e\u003c/a\u003e Fixes issue with filter parameters not appearing in Swagger after upgrading t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/ee3c871501dad5f0585c8c62ac0659fedab999a1\"\u003e\u003ccode\u003eee3c871\u003c/code\u003e\u003c/a\u003e update Python, Django, and DRF versions \u0026amp; packaging configuration (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/922\"\u003e#922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/be6eeedcbebcb45151a9d18018d880d1fcdcf143\"\u003e\u003ccode\u003ebe6eeed\u003c/code\u003e\u003c/a\u003e Remove usage of pkg_resources (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/928\"\u003e#928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/axnsan12/drf-yasg/compare/1.21.10...1.21.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jellyfish` from 1.2.0 to 1.2.1\n\nUpdates `markdown` from 3.9 to 3.10\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/releases\"\u003emarkdown's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.10.0\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\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 href=\"https://github.com/Python-Markdown/markdown/blob/master/docs/changelog.md\"\u003emarkdown's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003etitle: Changelog\ntoc_depth: 2\u003c/p\u003e\n\u003ch1\u003ePython-Markdown Changelog\u003c/h1\u003e\n\u003cp\u003eAll notable changes to this project will be documented in this file.\u003c/p\u003e\n\u003cp\u003eThe format is based on \u003ca href=\"https://keepachangelog.com/en/1.1.0/\"\u003eKeep a Changelog\u003c/a\u003e,\nand this project adheres to the\n\u003ca href=\"https://packaging.python.org/en/latest/specifications/version-specifiers/\"\u003ePython Version Specification\u003c/a\u003e.\nSee the \u003ca href=\"https://github.com/Python-Markdown/markdown/blob/master/docs/contributing.md\"\u003eContributing Guide\u003c/a\u003e for details.\u003c/p\u003e\n\u003ch2\u003e[3.10.0] - 2025-11-03\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.9.0] - 2025-09-04\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFootnotes are now ordered by the occurrence of their references in the\ndocument. A new configuration option for the footnotes extension,\n\u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e, has been added to support restoring the previous\nbehavior of ordering footnotes by the occurrence of definitions (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1367\"\u003e#1367\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure inline processing iterates through elements in document order (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1546\"\u003e#1546\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix handling of incomplete HTML tags in code spans in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1547\"\u003e#1547\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.8.2] - 2025-06-19\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003ecodecs\u003c/code\u003e deprecation in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed comment parsing in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed declarations in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed HTML tag \u003ccode\u003e\u0026lt;foo\u003c/code\u003e and Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\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 href=\"https://github.com/Python-Markdown/markdown/commit/22e89c1fc346f72218a10e392a0c3b4731912522\"\u003e\u003ccode\u003e22e89c1\u003c/code\u003e\u003c/a\u003e Bump version to 3.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/c138aea5139a6aceae05bb957e866d9ce7577b94\"\u003e\u003ccode\u003ec138aea\u003c/code\u003e\u003c/a\u003e + PY314 - PY39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/746f7f527b15f63845253e3b86947b806ef1b98f\"\u003e\u003ccode\u003e746f7f5\u003c/code\u003e\u003c/a\u003e cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/a5ee2b4aad05531898ab8fd726c7ece31ddadf8b\"\u003e\u003ccode\u003ea5ee2b4\u003c/code\u003e\u003c/a\u003e Revert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/5354daf618149f92580a1407c036115753c5df73\"\u003e\u003ccode\u003e5354daf\u003c/code\u003e\u003c/a\u003e Fix an HTML comment parsing case that can cause an infinite loop\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Python-Markdown/markdown/compare/3.9.0...3.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyyaml` from 6.0.2 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/yaml/pyyaml/releases\"\u003epyyaml's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14 and free-threading (experimental).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ehttps://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\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 href=\"https://github.com/yaml/pyyaml/blob/6.0.3/CHANGES\"\u003epyyaml's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e6.0.3 (2025-09-25)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/yaml/pyyaml/pull/864\"\u003eyaml/pyyaml#864\u003c/a\u003e -- Support for Python 3.14 and free-threading (experimental)\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 href=\"https://github.com/yaml/pyyaml/commit/49790e73684bebad1df05ef8d828fa12f685bffb\"\u003e\u003ccode\u003e49790e7\u003c/code\u003e\u003c/a\u003e Release 6.0.3 (\u003ca href=\"https://redirect.github.com/yaml/pyyaml/issues/889\"\u003e#889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xlsxwriter` from 3.2.5 to 3.2.9\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jmcnamara/XlsxWriter/blob/main/Changes\"\u003exlsxwriter's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.2.9 - September 16 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved the \u003ccode\u003epy.typed\u003c/code\u003e file since it was causing a lot of downstream CI\nfailures where consumers weren't handling the xlsxwriter types correctly or\ntaking them into account.\u003c/p\u003e\n\u003cp\u003eThe file will be re-added once the xlsxwriter typing is more comprehensive.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.2.8 - September 14 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003emypy\u003c/code\u003e implicit export error caused by the \u003ccode\u003eWorkbook()\u003c/code\u003e type\nannotations changes in v3.2.7 and v3.2.6.\u003c/p\u003e\n\u003cp\u003e:issue:\u003ccode\u003e1154\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.2.7 - September 13 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed typing issue in \u003ccode\u003eWorkbook()\u003c/code\u003e constructor.\u003c/p\u003e\n\u003cp\u003e:issue:\u003ccode\u003e1152\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.2.6 - September 12 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded an option to position custom data labels in the same way that the data\nlabels can be positioned for the entire series.\u003c/p\u003e\n\u003cp\u003e:feature:\u003ccode\u003e1147\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd border, fill, gradient and pattern formatting options for\nchart titles and also chart axis titles.\u003c/p\u003e\n\u003cp\u003e:feature:\u003ccode\u003e957\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd additional type annotations. This is an ongoing refactoring.\u003c/p\u003e\n\u003cp\u003e:feature:\u003ccode\u003e1123\u003c/code\u003e.\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 href=\"https://github.com/jmcnamara/XlsxWriter/commit/e943bee8c9cdf0661cfdb83d5497e0725390e41e\"\u003e\u003ccode\u003ee943bee\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/392bd9e6572785394c6553e2d4f7ae2bb80782f4\"\u003e\u003ccode\u003e392bd9e\u003c/code\u003e\u003c/a\u003e typing: remove py.typed file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/eb99afecdd0050209835f9f237d580dc53e42afa\"\u003e\u003ccode\u003eeb99afe\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/5ec29826d5e398bb5adebaabafbeb9d443a6ed8c\"\u003e\u003ccode\u003e5ec2982\u003c/code\u003e\u003c/a\u003e workbook: add explicit export for mypy compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/ca85cbb03a5898c9e7b66c78ac67a365e7f53002\"\u003e\u003ccode\u003eca85cbb\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/3710251aaaa9524ee302ec04608bfc1b577d4ba5\"\u003e\u003ccode\u003e3710251\u003c/code\u003e\u003c/a\u003e typing: add more supported types to Workbook() constructor\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/27db7a14672bfe1a18f29dfbab646aa0149a369b\"\u003e\u003ccode\u003e27db7a1\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/f05067654b42283557c3621e411b6fbadb7051b6\"\u003e\u003ccode\u003ef050676\u003c/code\u003e\u003c/a\u003e docs: add CI spell check\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/60f708cc1e10c0c66ae870be4f350f45a9d3ecc8\"\u003e\u003ccode\u003e60f708c\u003c/code\u003e\u003c/a\u003e chart: add axis title formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/53dc08e5d240310c88bbfce8d1a42330ae256535\"\u003e\u003ccode\u003e53dc08e\u003c/code\u003e\u003c/a\u003e chart: add chart title formatting options\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jmcnamara/XlsxWriter/compare/RELEASE_3.2.5...RELEASE_3.2.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xmltodict` from 0.15.1 to 1.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/martinblech/xmltodict/releases\"\u003exmltodict's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.0.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.1...v1.0.2\"\u003e1.0.2\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eallow DOCTYPE with disable_entities=True (default) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/25b61a41f580cfc211df07c5fbbf603bd8eb5a5f\"\u003e25b61a4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.0...v1.0.1\"\u003e1.0.1\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efail closed when entities disabled (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c986d2d37a93d45fcc059b09063d9d9c45a655ec\"\u003ec986d2d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003evalidate XML comments (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/3d4d2d3a4cd0f68d1211dba549010261fa87b969\"\u003e3d4d2d3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd SECURITY.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/64130233c8fea272a5f82f2f585e1593523ec1b1\"\u003e6413023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify behavior for empty lists (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2025b5cb5e64fc9c4d54b8644187a0a193bdd0ed\"\u003e2025b5c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify process_comments docs (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/6b464fce284a93dbb292f3d063c9f310a478a014\"\u003e6b464fc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify strip whitespace comment behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/b3e22032d21cc387d6cecf3930116e8fdc3151cf\"\u003eb3e2203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ecreate AGENTS.md for coding agents (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/0da66ee797ced7479312aecef92c6a25e235007c\"\u003e0da66ee\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace travis with actions badge (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2576b94c918fbd154489a95dbbb3feda8bd3cbd8\"\u003e2576b94\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate CONTRIBUTING.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/db3918057cf125af989a1263d52df8df5ef8c642\"\u003edb39180\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v0.15.1...v1.0.0\"\u003e1.0.0\u003c/a\u003e (2025-09-12)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emodernize for Python 3.9+; drop legacy compat paths\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add limited XML comment round-trip; unify \u003ccode\u003e_emit\u003c/code\u003e behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/e43537eee61c20ef50f0e4242eb9223de7a6aefd\"\u003ee43537e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add selective \u003ccode\u003eforce_cdata\u003c/code\u003e support (bool/tuple/callable) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/a497fedb7d6103d68af155543ac3337a73778b19\"\u003ea497fed\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/375\"\u003e#375\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003enamespaces:\u003c/strong\u003e attach \u003ccode\u003e[@xmlns](https://github.com/xmlns)\u003c/code\u003e to declaring element when process_namespaces=True (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/f0322e578184421693434902547f330f4f0a44c3\"\u003ef0322e5\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/163\"\u003e#163\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e avoid parent accumulation at item_depth; add regression tests (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/220240c5eb2d12b75adf26cc84ec9c803ce8bb2b\"\u003e220240c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e handle non-string \u003ccode\u003e#text\u003c/code\u003e with attributes; unify value conversion (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/927a025ae8a62cbb542d5caff38b29161a2096fa\"\u003e927a025\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/366\"\u003e#366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e skip empty lists to keep pretty/compact outputs consistent (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/ab4c86fed24dc8ef0e932a524edfb01c6453ecf6\"\u003eab4c86f\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/martinblech/xmltodict/blob/master/CHANGELOG.md\"\u003exmltodict's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.1...v1.0.2\"\u003e1.0.2\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eallow DOCTYPE with disable_entities=True (default) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/25b61a41f580cfc211df07c5fbbf603bd8eb5a5f\"\u003e25b61a4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.0...v1.0.1\"\u003e1.0.1\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efail closed when entities disabled (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c986d2d37a93d45fcc059b09063d9d9c45a655ec\"\u003ec986d2d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003evalidate XML comments (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/3d4d2d3a4cd0f68d1211dba549010261fa87b969\"\u003e3d4d2d3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd SECURITY.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/64130233c8fea272a5f82f2f585e1593523ec1b1\"\u003e6413023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify behavior for empty lists (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2025b5cb5e64fc9c4d54b8644187a0a193bdd0ed\"\u003e2025b5c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify process_comments docs (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/6b464fce284a93dbb292f3d063c9f310a478a014\"\u003e6b464fc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify strip whitespace comment behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/b3e22032d21cc387d6cecf3930116e8fdc3151cf\"\u003eb3e2203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ecreate AGENTS.md for coding agents (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/0da66ee797ced7479312aecef92c6a25e235007c\"\u003e0da66ee\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace travis with actions badge (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2576b94c918fbd154489a95dbbb3feda8bd3cbd8\"\u003e2576b94\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate CONTRIBUTING.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/db3918057cf125af989a1263d52df8df5ef8c642\"\u003edb39180\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v0.15.1...v1.0.0\"\u003e1.0.0\u003c/a\u003e (2025-09-12)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emodernize for Python 3.9+; drop legacy compat paths\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add limited XML comment round-trip; unify \u003ccode\u003e_emit\u003c/code\u003e behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/e43537eee61c20ef50f0e4242eb9223de7a6aefd\"\u003ee43537e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add selective \u003ccode\u003eforce_cdata\u003c/code\u003e support (bool/tuple/callable) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/a497fedb7d6103d68af155543ac3337a73778b19\"\u003ea497fed\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/375\"\u003e#375\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003enamespaces:\u003c/strong\u003e attach \u003ccode\u003e[@xmlns](https://github.com/xmlns)\u003c/code\u003e to declaring element when process_namespaces=True (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/f0322e578184421693434902547f330f4f0a44c3\"\u003ef0322e5\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/163\"\u003e#163\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e avoid parent accumulation at item_depth; add regression tests (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/220240c5eb2d12b75adf26cc84ec9c803ce8bb2b\"\u003e220240c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e handle non-string \u003ccode\u003e#text\u003c/code\u003e with attributes; unify value conversion (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/927a025ae8a62cbb542d5caff38b29161a2096fa\"\u003e927a025\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/366\"\u003e#366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e skip empty lists to keep pretty/compact outputs consistent (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/ab4c86fed24dc8ef0e932a524edfb01c6453ecf6\"\u003eab4c86f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eReverts\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove initial Release Drafter config (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c0b74ed58f933bffd160c60a58620f672710ff7c\"\u003ec0b74ed\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 href=\"https://github.com/martinblech/xmltodict/commit/d079849136b031c471ec96a168ad7859ed5994ff\"\u003e\u003ccode\u003ed079849\u003c/code\u003e\u003c/a\u003e chore(master): release 1.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/25b61a41f580cfc211df07c5fbbf603bd8eb5a5f\"\u003e\u003ccode\u003e25b61a4\u003c/code\u003e\u003c/a\u003e fix: allow DOCTYPE with disable_entities=True (default)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/a2a9ab7e0692a62f64d97ff12553d0d53368c854\"\u003e\u003ccode\u003ea2a9ab7\u003c/code\u003e\u003c/a\u003e ci(publish): allow uploading release assets\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/656e6af9543e640fda7e96d6bdd6e693756687be\"\u003e\u003ccode\u003e656e6af\u003c/code\u003e\u003c/a\u003e chore(master): release 1.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c986d2d37a93d45fcc059b09063d9d9c45a655ec\"\u003e\u003ccode\u003ec986d2d\u003c/code\u003e\u003c/a\u003e fix: fail closed when entities disabled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/3d4d2d3a4cd0f68d1211dba549010261fa87b969\"\u003e\u003ccode\u003e3d4d2d3\u003c/code\u003e\u003c/a\u003e fix: validate XML comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/b4a5f2a3f04aff68384486e957632c8438396fd6\"\u003e\u003ccode\u003eb4a5f2a\u003c/code\u003e\u003c/a\u003e refactor: remove jython-specific parsing branches\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/6b464fce284a93dbb292f3d063c9f310a478a014\"\u003e\u003ccode\u003e6b464fc\u003c/code\u003e\u003c/a\u003e docs: clarify process_comments docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/34daa304d443e49113d195294d99c6f58ce4714c\"\u003e\u003ccode\u003e34daa30\u003c/code\u003e\u003c/a\u003e refactor: remove unused helper functions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2025b5cb5e64fc9c4d54b8644187a0a193bdd0ed\"\u003e\u003ccode\u003e2025b5c\u003c/code\u003e\u003c/a\u003e docs: clarify behavior for empty lists\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/martinblech/xmltodict/compare/v0.15.1...v1.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xmlschema` from 4.1.0 to 4.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sissaschool/xmlschema/releases\"\u003exmlschema's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.2.0 (2025-10-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd arguments validation for schemas and validation methods (by validation contexts)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSchemaSettings\u003c/code\u003e dataclass for storing read-only settings for schema instances\nand for managing package default settings\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eblock\u003c/em\u003e argument to \u003ccode\u003eXMLResource\u003c/code\u003e class (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/464\"\u003e#464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_SCHEMA_SOURCES\u003c/em\u003e package limit (\u003ccode\u003e1000\u003c/code\u003e, applied to \u003ccode\u003eXsdGlobals\u003c/code\u003e global maps instances)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_XML_ELEMENTS\u003c/em\u003e package limit (\u003ccode\u003e1,000,000\u003c/code\u003e, applied to non-lazy \u003ccode\u003eXMLResource\u003c/code\u003e instances)\u003c/li\u003e\n\u003cli\u003eReduce \u003cem\u003eMAX_XML_DEPTH\u003c/em\u003e limit to 1000 and apply it to all \u003ccode\u003eXMLResource\u003c/code\u003e instances\u003c/li\u003e\n\u003cli\u003eFix for substitute match in case of unexpected child (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\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 href=\"https://github.com/sissaschool/xmlschema/blob/master/CHANGELOG.rst\"\u003exmlschema's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ccode\u003ev4.2.0\u003c/code\u003e_ (2025-10-14)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd arguments validation for schemas and validation methods (by validation contexts)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSchemaSettings\u003c/code\u003e dataclass for storing read-only settings for schema instances\nand for managing package default settings\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eblock\u003c/em\u003e argument to \u003ccode\u003eXMLResource\u003c/code\u003e class (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/464\"\u003e#464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_SCHEMA_SOURCES\u003c/em\u003e package limit (\u003ccode\u003e1000\u003c/code\u003e, applied to \u003ccode\u003eXsdGlobals\u003c/code\u003e global maps instances)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_XML_ELEMENTS\u003c/em\u003e package limit (\u003ccode\u003e1,000,000\u003c/code\u003e, applied to non-lazy \u003ccode\u003eXMLResource\u003c/code\u003e instances)\u003c/li\u003e\n\u003cli\u003eReduce \u003cem\u003eMAX_XML_DEPTH\u003c/em\u003e limit to 1000 and apply it to all \u003ccode\u003eXMLResource\u003c/code\u003e instances\u003c/li\u003e\n\u003cli\u003eFix for substitute match in case of unexpected child (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\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 href=\"https://github.com/sissaschool/xmlschema/commit/2783030fcdcd5307563822906862a9e7088931b2\"\u003e\u003ccode\u003e2783030\u003c/code\u003e\u003c/a\u003e Bump minor release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/7c77a12f0fe16c8da0256a0f13281a03e4a0f717\"\u003e\u003ccode\u003e7c77a12\u003c/code\u003e\u003c/a\u003e Include publiccode.yml validation workflow for CI and README changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/04c19d54d4578f34a0c04d6cc82daa8d3ef9d90c\"\u003e\u003ccode\u003e04c19d5\u003c/code\u003e\u003c/a\u003e Fix XsdGroup.match_element (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/dd4f279e56b8a5ce89f78a6c88337f5032af0b2f\"\u003e\u003ccode\u003edd4f279\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/463\"\u003e#463\u003c/a\u003e from publiccode-pr-bot/chore/add-publiccode-parser-ac...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/1bd7aa6eebf4947e7ae76e47a2f706b58fed22cd\"\u003e\u003ccode\u003e1bd7aa6\u003c/code\u003e\u003c/a\u003e Update GitHub workflow for CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/76b0f67e900777166bcd3773cc109efae933682d\"\u003e\u003ccode\u003e76b0f67\u003c/code\u003e\u003c/a\u003e Patch mypy tests with protocols\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/28727bb0af89f129d59772550c6998164c37aeff\"\u003e\u003ccode\u003e28727bb\u003c/code\u003e\u003c/a\u003e Update docs and release info\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/e4131eaf6bc1a223292f3f19e78573a4317d131a\"\u003e\u003ccode\u003ee4131ea\u003c/code\u003e\u003c/a\u003e Add from_settings() class method to schemas\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/0aea8debef13b62156e7297bdc54198057ea3611\"\u003e\u003ccode\u003e0aea8de\u003c/code\u003e\u003c/a\u003e Rewrite validation contexts as normal classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/d443d7ba0e3de8fad6d6df8f314b12735af4bac3\"\u003e\u003ccode\u003ed443d7b\u003c/code\u003e\u003c/a\u003e Full validation of context arguments\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sissaschool/xmlschema/compare/v4.1.0...v4.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lark` from 1.2.2 to 1.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lark-parser/lark/releases\"\u003elark's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.3.1 - Bugfix + source build now contains complete project data\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix: Restore support for custom input, alongside text and TextSlice by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1562\"\u003elark-parser/lark#1562\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep sdist in sync with git (include all files in source build, including docs, tests and examples) by \u003ca href=\"https://github.com/chanicpanic\"\u003e\u003ccode\u003e@​chanicpanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1561\"\u003elark-parser/lark#1561\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/lark-parser/lark/compare/1.3.0...1.3.1\"\u003ehttps://github.com/lark-parser/lark/compare/1.3.0...1.3.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e1.3.0 - Introduces text-slices, Earley fix, and various small improvements\u003c/h2\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLark can now parse in sections of strings, using \u003ccode\u003eTextSlice\u003c/code\u003e, as a faster alternative to creating a \u0026quot;copy-slice\u0026quot; with \u003ccode\u003es[i:j]\u003c/code\u003e. \u003ca href=\"https://lark-parser.readthedocs.io/en/latest/classes.html#lark.utils.TextSlice\"\u003eLearn more\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded support to \u003ccode\u003ematch\u003c/code\u003e on Tree instances\u003c/li\u003e\n\u003cli\u003eWhen serializing a Lark instance, added the option to include the grammar object (before compilation).\u003c/li\u003e\n\u003cli\u003eAdded convenience method \u003ccode\u003eTree.find_token()\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix of an edge case in Earley related to representation of ambiguity.\u003c/li\u003e\n\u003cli\u003eBugfixes in the standalone parser related to imports\u003c/li\u003e\n\u003cli\u003eBugfix in indenter - now dedents always contain line information\u003c/li\u003e\n\u003cli\u003eVarious small bugfixes (see PR list below)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFull list of PRs\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDocs: Rephrase v_args() documentation to underline it only applies to Transformer classes by \u003ca href=\"https://github.com/skepppy\"\u003e\u003ccode\u003e@​skepppy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1458\"\u003elark-parser/lark#1458\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTiny refactor for PR \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1451\"\u003e#1451\u003c/a\u003e by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1459\"\u003elark-parser/lark#1459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEarley: share nodes created by the scanner with the completer by \u003ca href=\"https://github.com/chanicpanic\"\u003e\u003ccode\u003e@​chanicpanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1451\"\u003elark-parser/lark#1451\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter error in Lark.parse when using on_error when parser!=lalr (issue \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1311\"\u003e#1311\u003c/a\u003e) by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1460\"\u003elark-parser/lark#1460\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eSymbol.__eq__\u003c/code\u003e to return false when comparing with None by \u003ca href=\"https://github.com/weaversam8\"\u003e\u003ccode\u003e@​weaversam8\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1481\"\u003elark-parser/lark#1481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMention internal/external transformers in the documentation by \u003ca href=\"https://github.com/odanoburu\"\u003e\u003ccode\u003e@​odanoburu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1486\"\u003elark-parser/lark#1486\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Tree.find_token() method by \u003ca href=\"https://github.com/makukha\"\u003e\u003ccode\u003e@​makukha\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1467\"\u003elark-parser/lark#1467\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eType \u003ccode\u003eTerminal.__init__\u003c/code\u003e by \u003ca href=\"https://github.com/Liam-DeVoe\"\u003e\u003ccode\u003e@​Liam-DeVoe\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1503\"\u003elark-parser/lark#1503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd guidance on handling comments in languages with significant indentation by \u003ca href=\"https://github.com/nchammas\"\u003e\u003ccode\u003e@​nchammas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1502\"\u003elark-parser/lark#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Small fix for PR 1507 by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1508\"\u003elark-parser/lark#1508\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd note on binding power of numeric quantifiers by \u003ca href=\"https://github.com/414owen\"\u003e\u003ccode\u003e@​414owen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1507\"\u003elark-parser/lark#1507\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrap functools.partial in staticmethod() to add compatibility with Python 3.14 by \u003ca href=\"https://github.com/hrnciar\"\u003e\u003ccode\u003e@​hrnciar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1483\"\u003elark-parser/lark#1483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix generic type of Transformer_InPlaceRecursive by \u003ca href=\"https://github.com/lbhm\"\u003e\u003ccode\u003e@​lbhm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1518\"\u003elark-parser/lark#1518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded TextSlice; Lark can now parse/lex a text-slice by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1452\"\u003elark-parser/lark#1452\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport match on tree by \u003ca href=\"https://github.com/colmmurphyxyz\"\u003e\u003ccode\u003e@​colmmurphyxyz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1521\"\u003elark-parser/lark#1521\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: Updated link of DSL article to a new version by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1529\"\u003elark-parser/lark#1529\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebetter error messages for shift/reduct conflicts by \u003ca href=\"https://github.com/skogsbaer\"\u003e\u003ccode\u003e@​skogsbaer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1531\"\u003elark-parser/lark#1531\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSerialize Lark.grammar (fixes issue \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1472\"\u003e#1472\u003c/a\u003e) by \u003ca href=\"https://github.com/NasalDaemon\"\u003e\u003ccode\u003e@​NasalDaemon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1506\"\u003elark-parser/lark#1506\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes for PR \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1506\"\u003e#1506\u003c/a\u003e, which adds the option to cache the grammar definition by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1540\"\u003elark-parser/lark#1540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix in indenter - now always creating dedents with line information by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1547\"\u003elark-parser/lark#1547\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix: issue when unpickling in the standalone parser, due to lingering Token instances by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1553\"\u003elark-parser/lark#1553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInclude missing import in standalone parser by \u003ca href=\"https://github.com/pdeibert\"\u003e\u003ccode\u003e@​pdeibert\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1541\"\u003elark-parser/lark#1541\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVersion bump (1.3.0) by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1554\"\u003elark-parser/lark#1554\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=\"https://github.com/skepppy\"\u003e\u003ccode\u003e@​skepppy\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1458\"\u003elark-parser/lark#1458\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 href=\"https://github.com/lark-parser/lark/commit/f79772cd4c6d2076b5dc01f399dbb816cc484f77\"\u003e\u003ccode\u003ef79772c\u003c/code\u003e\u003c/a\u003e Version bump (1.3.1)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/b64e9f42c93e9c05c17fac694ae5cbd18c041a2b\"\u003e\u003ccode\u003eb64e9f4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1561\"\u003e#1561\u003c/a\u003e from chanicpanic/sdist-git\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/ad0ea5f14ee4afbaf617cc088e1b8fe2fcff08fc\"\u003e\u003ccode\u003ead0ea5f\u003c/code\u003e\u003c/a\u003e Update MANIFEST.in\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/1f6f03c10540d4646c1a70b1da16a90592d7ec58\"\u003e\u003ccode\u003e1f6f03c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1562\"\u003e#1562\u003c/a\u003e from lark-parser/issue1560\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/7c365de586325620a20f2753b36ffa313c1d9b45\"\u003e\u003ccode\u003e7c365de\u003c/code\u003e\u003c/a\u003e Added custom input test (based on code from examples)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/19bbbee5d79845123f7f07ab716ec88185e2fa9d\"\u003e\u003ccode\u003e19bbbee\u003c/code\u003e\u003c/a\u003e Bugfix: Restore support for custom input, alongside text and TextSlice (Issue...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/dbcb60e888c5c8a3656c9f0c1ef0f928bb7c5ad6\"\u003e\u003ccode\u003edbcb60e\u003c/code\u003e\u003c/a\u003e Keep sdist in sync with git\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/e332c2df2f7d400460a5f1204d9bc36b49b25635\"\u003e\u003ccode\u003ee332c2d\u003c/code\u003e\u003c/a\u003e Version bump (1.3.0)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/aa5666c30e255257b0c36ef93c80d800f84a04ca\"\u003e\u003ccode\u003eaa5666c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1541\"\u003e#1541\u003c/a\u003e from pdeibert/master\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/41934d390dd7661a82df5ed28bd75655fe797cf7\"\u003e\u003ccode\u003e41934d3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1553\"\u003e#1553\u003c/a\u003e from lark-parser/issue1552\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lark-parser/lark/compare/1.2.2...1.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `shapely` from 2.0.7 to 2.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/shapely/shapely/releases\"\u003eshapely's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.1.2\u003c/h2\u003e\n\u003cp\u003eWheels are available for Python 3.14 (and still include GEOS 3.13.1).\u003c/p\u003e\n\u003ch2\u003e2.1.1\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix performance degradation calling shapely functions (caused by deprecation of certain positional arguments) (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2283\"\u003e#2283\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix crash caused by \u003ccode\u003efrom_ragged_array()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2291\"\u003e#2291\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix compilation error building with recent LLVM toolchain (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2293\"\u003e#2293\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFor a full changelog , see \u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-1\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.1.0\u003c/h2\u003e\n\u003cp\u003eShapely 2.1.0 is a feature release with various new functions, improvements and bug fixes. Highlights include initial support for geometries with M or ZM values, functionality for coverage validation and simplification, and a set of new top-level functions.\u003c/p\u003e\n\u003cp\u003eShapely supports Python \u0026gt;= 3.10, and binary wheels on PyPI include GEOS 3.13.1 and are now also provided for musllinux (Alpine) x86_64 platforms.\u003c/p\u003e\n\u003cp\u003eFor a full changelog, see \u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.1.0rc1\u003c/h2\u003e\n\u003cp\u003eShapely version 2.1.0 is a major release featuring various new functions, improvements and bug fixes. This is a first release candidate.\u003c/p\u003e\n\u003cp\u003eFor a full changelog, see \u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0-unreleased\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0-unreleased\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 href=\"https://github.com/shapely/shapely/blob/main/CHANGES.txt\"\u003eshapely's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.1.2 (unreleased)\u003c/h2\u003e\n\u003cp\u003eImproved performance of the Geometry -\u0026gt; float scalar operations: \u003ccode\u003earea\u003c/code\u003e, \u003ccode\u003elength\u003c/code\u003e,\n\u003ccode\u003eminimum_clearance\u003c/code\u003e, \u003ccode\u003ex\u003c/code\u003e, \u003ccode\u003ey\u003c/code\u003e, \u003ccode\u003ez\u003c/code\u003e and \u003ccode\u003em\u003c/code\u003e. Benchmarks showed a change of call duration\nfrom 2.6 microseconds to 0.2 microseconds (on the \u003ccode\u003ePoint.x\u003c/code\u003e attribute).\u003c/p\u003e\n\u003ch2\u003e2.1.2 (2025-09-24)\u003c/h2\u003e\n\u003cp\u003eWheels are available for Python 3.14 (and still include GEOS 3.13.1).\u003c/p\u003e\n\u003ch2\u003e2.1.1 (2025-05-19)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix performance degradation calling shapely functions (caused by deprecation\nof certain positional arguments) (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2283\"\u003e#2283\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix crash caused by \u003ccode\u003efrom_ragged_array()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2291\"\u003e#2291\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix compilation error building with recent LLVM toolchain (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2293\"\u003e#2293\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.0 (2025-04-03)\u003c/h2\u003e\n\u003cp\u003eShapely 2.1.0 is a feature release with various new functions,\nimprovements and bug fixes. Highlights include initial support for geometries\nwith M or ZM values, functionality for coverage validation and\nsimplification, and a set of new top-level functions.\u003c/p\u003e\n\u003cp\u003eShapely supports Python \u0026gt;= 3.10, and binary wheels on PyPI include GEOS 3.13.1\nand are now also provided for musllinux (Alpine) x86_64 platforms.\u003c/p\u003e\n\u003cp\u003eFor a full changelog, see\n\u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/5fb639d1056888d135fe56bfaf750c9648addeec\"\u003e\u003ccode\u003e5fb639d\u003c/code\u003e\u003c/a\u003e RLS: 2.1.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/70509a1bee5ebd6637cda98b5c9d83707c341888\"\u003e\u003ccode\u003e70509a1\u003c/code\u003e\u003c/a\u003e DOC/RLS: indicate Python 3.14 support in pyproject.toml and release notes for...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/5c572b622027f6917c75afd728f201a144fb597d\"\u003e\u003ccode\u003e5c572b6\u003c/code\u003e\u003c/a\u003e CI: add testing with GEOS 3.14 and Python 3.14 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2330\"\u003e#2330\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/a9093336b1ea77559d44148a7f1ed92ab3bc2999\"\u003e\u003ccode\u003ea909333\u003c/code\u003e\u003c/a\u003e Bump pypa/cibuildwheel from 3.1.3 to 3.2.0 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2328\"\u003e#2328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/2086d4428e29da17bafc684acbfb04bb537ce573\"\u003e\u003ccode\u003e2086d44\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2326\"\u003e#2326\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/50c1cf30be0e37081991b6d5a5dc3531cfbe35da\"\u003e\u003ccode\u003e50c1cf3\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4 to 5 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2321\"\u003e#2321\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/39490ab685a42a2c189f2ce7a45b7d07053e8e8f\"\u003e\u003ccode\u003e39490ab\u003c/code\u003e\u003c/a\u003e TST: update test_coverage_union_overlapping_inputs for upstream GEOS change (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/5ef437c898b54f723ad0e4a8b6b513b9cc5d68a2\"\u003e\u003ccode\u003e5ef437c\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2320\"\u003e#2320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/7b5ff3d24b7889d35f96ee3ae9ec26250b3d6147\"\u003e\u003ccode\u003e7b5ff3d\u003c/code\u003e\u003c/a\u003e BLD: add Python 3.14 wheels [Bump pypa/cibuildwheel from 3.0.1 to 3.1.3] (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2316\"\u003e#2316\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/480dbb14f47b685e95c03654983405185c15babd\"\u003e\u003ccode\u003e480dbb1\u003c/code\u003e\u003c/a\u003e TST: update frechet_distance densify test for latest GEOS main (densify\u0026gt;0.001...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/shapely/shapely/compare/2.0.7...2.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-two-factor-auth[phonenumbers]` from 1.17.0 to 1.18.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jazzband/django-two-factor-auth/releases\"\u003edjango-two-factor-auth[phonenumbers]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.18.1\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew translations for Azerbaijani and Serbian\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.18.0\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocumentation for setting yubikey support forgot to inform users they would\nneed to add our yubikey plugin to \u003ccode\u003eINSTALLED_APPS\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRemove reference to release-notes that had been missed, docs now build\nwithout warnings\u003c/li\u003e\n\u003cli\u003eWebAuthn: avoid submitting the wrong form\u003c/li\u003e\n\u003cli\u003eEmail gateway: tell user to use correct django-otp plugin\u003c/li\u003e\n\u003cli\u003eFix infinite redirect o...\n\n_Description has been truncated_","html_url":"https://github.com/chrislkl/seed/pull/4","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrislkl%2Fseed/issues/4","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/4/packages"},{"uuid":"3606242355","node_id":"PR_kwDOAYRY2s6ycM26","number":5136,"state":"closed","title":"deps: bump the prod-deps group across 1 directory with 27 updates","user":"dependabot[bot]","labels":["Maintenance"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2025-11-21T15:59:00.000Z","author_association":null,"state_reason":null,"created_at":"2025-11-10T05:53:13.000Z","updated_at":"2025-11-21T15:59:02.000Z","time_to_close":986747,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps: bump","group_name":"prod-deps","update_count":27,"packages":[{"name":"django","old_version":"4.2.26","new_version":"5.2.8","repository_url":"https://github.com/django/django"},{"name":"psycopg2-binary","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"hiredis","old_version":"3.2.1","new_version":"3.3.0","repository_url":"https://github.com/redis/hiredis-py"},{"name":"brotli","old_version":"1.1.0","new_version":"1.2.0","repository_url":"https://github.com/google/brotli"},{"name":"drf-yasg","old_version":"1.21.10","new_version":"1.21.11","repository_url":"https://github.com/axnsan12/drf-yasg"},{"name":"jellyfish","old_version":"1.2.0","new_version":"1.2.1"},{"name":"markdown","old_version":"3.9","new_version":"3.10","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"xlsxwriter","old_version":"3.2.8","new_version":"3.2.9","repository_url":"https://github.com/jmcnamara/XlsxWriter"},{"name":"xmlschema","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/sissaschool/xmlschema"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"shapely","old_version":"2.0.7","new_version":"2.1.2","repository_url":"https://github.com/shapely/shapely"},{"name":"django-two-factor-auth","old_version":"1.17.0","new_version":"1.18.1"},{"name":"boto3","old_version":"1.40.30","new_version":"1.40.69","repository_url":"https://github.com/boto/boto3"},{"name":"uwsgi","old_version":"2.0.30","new_version":"2.0.31"},{"name":"coverage","old_version":"7.10.6","new_version":"7.11.3","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"coveralls","old_version":"4.0.1","new_version":"4.0.2","repository_url":"https://github.com/TheKevJames/coveralls-python"},{"name":"tox","old_version":"4.30.2","new_version":"4.32.0","repository_url":"https://github.com/tox-dev/tox"},{"name":"psutil","old_version":"7.0.0","new_version":"7.1.3","repository_url":"https://github.com/giampaolo/psutil"},{"name":"faker","old_version":"37.6.0","new_version":"37.12.0","repository_url":"https://github.com/joke2k/faker"},{"name":"pytest","old_version":"8.4.2","new_version":"9.0.0","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pre-commit","old_version":"4.3.0","new_version":"4.4.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"sphinx","old_version":"7.4.7","new_version":"8.2.3","repository_url":"https://github.com/sphinx-doc/sphinx"},{"name":"sphinxcontrib-spelling","old_version":"8.0.0","new_version":"8.0.1","repository_url":"https://github.com/sphinx-contrib/spelling"},{"name":"docutils","old_version":"0.21.2","new_version":"0.22.3","repository_url":"https://github.com/rtfd/recommonmark"},{"name":"hypothesis","old_version":"6.138.16","new_version":"6.147.0","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"django-debug-toolbar","old_version":"6.0.0","new_version":"6.1.0","repository_url":"https://github.com/django-commons/django-debug-toolbar"}],"path":null,"ecosystem":"pip"},"body":"Bumps the prod-deps group with 27 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [django](https://github.com/django/django) | `4.2.26` | `5.2.8` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.2.1` | `3.3.0` |\n| [brotli](https://github.com/google/brotli) | `1.1.0` | `1.2.0` |\n| [drf-yasg](https://github.com/axnsan12/drf-yasg) | `1.21.10` | `1.21.11` |\n| [jellyfish](https://jellyfish.jpt.sh/) | `1.2.0` | `1.2.1` |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.9` | `3.10` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [xlsxwriter](https://github.com/jmcnamara/XlsxWriter) | `3.2.8` | `3.2.9` |\n| [xmlschema](https://github.com/sissaschool/xmlschema) | `4.1.0` | `4.2.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [shapely](https://github.com/shapely/shapely) | `2.0.7` | `2.1.2` |\n| [django-two-factor-auth[phonenumbers]](https://github.com/jazzband/django-two-factor-auth) | `1.17.0` | `1.18.1` |\n| [boto3](https://github.com/boto/boto3) | `1.40.30` | `1.40.69` |\n| [uwsgi](https://uwsgi-docs.readthedocs.io/en/latest/) | `2.0.30` | `2.0.31` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.11.3` |\n| [coveralls](https://github.com/TheKevJames/coveralls-python) | `4.0.1` | `4.0.2` |\n| [tox](https://github.com/tox-dev/tox) | `4.30.2` | `4.32.0` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.1.3` |\n| [faker](https://github.com/joke2k/faker) | `37.6.0` | `37.12.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.2` | `9.0.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.3.0` | `4.4.0` |\n| [sphinx](https://github.com/sphinx-doc/sphinx) | `7.4.7` | `8.2.3` |\n| [sphinxcontrib-spelling](https://github.com/sphinx-contrib/spelling) | `8.0.0` | `8.0.1` |\n| [docutils](https://github.com/rtfd/recommonmark) | `0.21.2` | `0.22.3` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.138.16` | `6.147.0` |\n| [django-debug-toolbar](https://github.com/django-commons/django-debug-toolbar) | `6.0.0` | `6.1.0` |\n\n\nUpdates `django` from 4.2.26 to 5.2.8\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/47fe39af56ecd0ad73b9c7562511015e96b91b80\"\u003e\u003ccode\u003e47fe39a\u003c/code\u003e\u003c/a\u003e [5.2.x] Bumped version for 5.2.8 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/ac9fcf6eb2c909f4150c5287808f49170ce1f9e2\"\u003e\u003ccode\u003eac9fcf6\u003c/code\u003e\u003c/a\u003e [5.2.x] Refs CVE-2025-64459 -- Avoided propagating invalid arguments to Q on ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/6703f364d767e949c5b0e4016433ef75063b4f9b\"\u003e\u003ccode\u003e6703f36\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2025-64459 -- Prevented SQL injections in Q/QuerySet via th...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/4f5d904b63751dea9ffc3b0e046404a7fa5881ac\"\u003e\u003ccode\u003e4f5d904\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2025-64458 -- Mitigated potential DoS in HttpResponseRedire...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/cbdf128cb316bccf9ca3b3b4966e57bd050bfc8a\"\u003e\u003ccode\u003ecbdf128\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36704\"\u003e#36704\u003c/a\u003e -- Fixed system check error for proxy model with a compo...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/6775888470317a6d69121779b489bb2dc7350318\"\u003e\u003ccode\u003e6775888\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36696\"\u003e#36696\u003c/a\u003e -- Fixed NameError when inspecting functions with deferr...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/d5dfffaae52b9dcb4857d42b1e2902290a5c5e3c\"\u003e\u003ccode\u003ed5dfffa\u003c/code\u003e\u003c/a\u003e [5.2.x] Added stub release notes and release date for 5.2.8, 5.1.14, and 4.2.26.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/368f955c371cab5db18e9e239d10560cf15f5ea4\"\u003e\u003ccode\u003e368f955\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36681\"\u003e#36681\u003c/a\u003e -- Removed English pluralization bias from example in do...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/71267c97db211f1d7f1b8b794ceb2167a7619a4d\"\u003e\u003ccode\u003e71267c9\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/35095\"\u003e#35095\u003c/a\u003e -- Clarified Swiss number formatting in docs/topics/i18n...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/9b37bd5fe73b0d614ad8e503071d6f7bf2bdf6b2\"\u003e\u003ccode\u003e9b37bd5\u003c/code\u003e\u003c/a\u003e [5.2.x] Made RemoteTestResultTest.test_pickle_errors_detection() compatible w...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/4.2.26...5.2.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2-binary` from 2.9.10 to 2.9.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2-binary's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix building when pg_config returns an empty string (:ticket:\u003ccode\u003e[#1599](https://github.com/psycopg/psycopg2/issues/1599)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eWheel package bundled with OpenSSL 1.1.1v.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.6\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\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 href=\"https://github.com/psycopg/psycopg2/commit/fd9ae8cad2bcfc3e7e9410e7b6f07cda8f4f05ec\"\u003e\u003ccode\u003efd9ae8c\u003c/code\u003e\u003c/a\u003e chore: bump to version 2.9.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d923840546942534f0956d9202f914fd9feac5fd\"\u003e\u003ccode\u003ed923840\u003c/code\u003e\u003c/a\u003e chore: update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d42dc7169d3cd93517e282e9ef5dc2a2b40650a2\"\u003e\u003ccode\u003ed42dc71\u003c/code\u003e\u003c/a\u003e Merge branch 'fix-1791'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4fde6560c32f06ad1304404c9f7f86148dcc4be0\"\u003e\u003ccode\u003e4fde656\u003c/code\u003e\u003c/a\u003e fix: avoid failed assert passing more arguments than placeholders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/8308c19d6af0d904b313997539ed33415990a74e\"\u003e\u003ccode\u003e8308c19\u003c/code\u003e\u003c/a\u003e fix: drop warning about the use of deprecated PyWeakref_GetObject function\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1a1eabf098a3374409bb2ab4b594777b900f396d\"\u003e\u003ccode\u003e1a1eabf\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/github-script from 7 to 8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/897af8b38beda851d7257dfc525129e37c0ec9e0\"\u003e\u003ccode\u003e897af8b\u003c/code\u003e\u003c/a\u003e build(deps): bump peter-evans/repository-dispatch from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ceefd305117113ca10e383a626e87ba0796f3638\"\u003e\u003ccode\u003eceefd30\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4dc585430cabe94cee96c5a9de0265d0f55370f1\"\u003e\u003ccode\u003e4dc5854\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1945788dcf6172bb1b9328ebc3587ccf0e6a659c\"\u003e\u003ccode\u003e1945788\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1802\"\u003e#1802\u003c/a\u003e from edgarrmondragon/cp314-wheels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.10...2.9.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `hiredis` from 3.2.1 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/hiredis-py/releases\"\u003ehiredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.3.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e by \u003ca href=\"https://github.com/zweizeichen\"\u003e\u003ccode\u003e@​zweizeichen\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\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 href=\"https://github.com/redis/hiredis-py/commit/187d0f387afed58a955a42ea8c5467100871f98b\"\u003e\u003ccode\u003e187d0f3\u003c/code\u003e\u003c/a\u003e Version 3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/3efcf037edc5a9f7abfaedbd3f60b2a03feb4787\"\u003e\u003ccode\u003e3efcf03\u003c/code\u003e\u003c/a\u003e Add Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/215\"\u003e#215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/966cede2c0ca0a8ac4fe0786571e5c230f39c36e\"\u003e\u003ccode\u003e966cede\u003c/code\u003e\u003c/a\u003e Fix assertion in reader.c (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/212\"\u003e#212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/78def309e58126fdaacb66e6fd40df9c46494062\"\u003e\u003ccode\u003e78def30\u003c/code\u003e\u003c/a\u003e Bump version to 3.3.0-dev\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/redis/hiredis-py/compare/v3.2.1...v3.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `brotli` from 1.1.0 to 1.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/google/brotli/releases\"\u003ebrotli's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.0\u003c/h2\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\u003c/li\u003e\n\u003cli\u003eCLI: \u003ccode\u003ebrcat\u003c/code\u003e alias; allow decoding concatenated brotli streams\u003c/li\u003e\n\u003cli\u003ekt: pure Kotlin decoder\u003c/li\u003e\n\u003cli\u003ecgo: support \u0026quot;raw\u0026quot; dictionaries\u003c/li\u003e\n\u003cli\u003ebuild: Bazel modules\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: dropped \u003ccode\u003efinalize()\u003c/code\u003e for native entities\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: in \u003ccode\u003ecompress\u003c/code\u003e pass correct length to native encoder\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebuild: install man pages\u003c/li\u003e\n\u003cli\u003ebuild: updated / fixed / refined Bazel buildfiles\u003c/li\u003e\n\u003cli\u003eencoder: faster encoding\u003c/li\u003e\n\u003cli\u003ecgo: link via pkg-config\u003c/li\u003e\n\u003cli\u003epython: modernize extension / allow multi-phase module initialization\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edecoder / encoder: static tables use \u0026quot;small\u0026quot; model (allows 2GiB+ binaries)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.0 RC2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed (compared to RC1)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epick changes from Debian patch by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1349\"\u003egoogle/brotli#1349\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epick changes from Alpine patch by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1348\"\u003egoogle/brotli#1348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epick VCPKG patches by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1350\"\u003egoogle/brotli#1350\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix copy-paste in Java decoder by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1357\"\u003egoogle/brotli#1357\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.0 RC1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eIMPORTANT\u003c/strong\u003e: though this is a pre-release for v1.2.0, it is expected that some changes will be added before release; most notably concerning build files: patches applied by Alpine, Debian, Conan, VCPKG will be partially/fully integrated.\u003c/p\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\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 href=\"https://github.com/google/brotli/blob/master/CHANGELOG.md\"\u003ebrotli's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.2.0] - 2025-10-27\u003c/h2\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\u003c/li\u003e\n\u003cli\u003eCLI: \u003ccode\u003ebrcat\u003c/code\u003e alias; allow decoding concatenated brotli streams\u003c/li\u003e\n\u003cli\u003ekt: pure Kotlin decoder\u003c/li\u003e\n\u003cli\u003ecgo: support \u0026quot;raw\u0026quot; dictionaries\u003c/li\u003e\n\u003cli\u003ebuild: Bazel modules\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: dropped \u003ccode\u003efinalize()\u003c/code\u003e for native entities\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: in \u003ccode\u003ecompress\u003c/code\u003e pass correct length to native encoder\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebuild: install man pages\u003c/li\u003e\n\u003cli\u003ebuild: updated / fixed / refined Bazel buildfiles\u003c/li\u003e\n\u003cli\u003eencoder: faster encoding\u003c/li\u003e\n\u003cli\u003ecgo: link via pkg-config\u003c/li\u003e\n\u003cli\u003epython: modernize extension / allow multi-phase module initialization\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edecoder / encoder: static tables use \u0026quot;small\u0026quot; model (allows 2GiB+ binaries)\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 href=\"https://github.com/google/brotli/commit/028fb5a23661f123017c060daa546b55cf4bde29\"\u003e\u003ccode\u003e028fb5a\u003c/code\u003e\u003c/a\u003e release v1.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/390de5b472ec8c40a7b8e5029e47fd6493f7a755\"\u003e\u003ccode\u003e390de5b\u003c/code\u003e\u003c/a\u003e build and test csharp decoder\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/3499acbb7ac7818c1b929a8c9c5c5f8a634751da\"\u003e\u003ccode\u003e3499acb\u003c/code\u003e\u003c/a\u003e regenerate go/kt/js/ts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/8ca2312c61f1f5853be0708f9b1d6a6ad002d2a4\"\u003e\u003ccode\u003e8ca2312\u003c/code\u003e\u003c/a\u003e fix release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/ee771daf20bab6533cbc629407c50cff1c87d9f1\"\u003e\u003ccode\u003eee771da\u003c/code\u003e\u003c/a\u003e fix copy-paste in Java decoder\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/42aee3289154cb3e8db1c7a8ebfa639c857578b9\"\u003e\u003ccode\u003e42aee32\u003c/code\u003e\u003c/a\u003e try to fix release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/392c06bac05cc1d098ab105cbbda766f19853d92\"\u003e\u003ccode\u003e392c06b\u003c/code\u003e\u003c/a\u003e redesign release resource uploading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/1964cdb1b9e16a2a0c27fbd3b2a3bccb2c1a8294\"\u003e\u003ccode\u003e1964cdb\u003c/code\u003e\u003c/a\u003e ramp up all GH actions plugins\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/61605b1cb34ba84ae71c13b383d850a59cac85b2\"\u003e\u003ccode\u003e61605b1\u003c/code\u003e\u003c/a\u003e pick VCPKG patches\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/4b0f27b6f985b4301ad5cec4a31b9792ecf252bc\"\u003e\u003ccode\u003e4b0f27b\u003c/code\u003e\u003c/a\u003e pick changes from Alpine patch\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/google/brotli/compare/go/cbrotli/v1.1.0...v1.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `drf-yasg` from 1.21.10 to 1.21.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/axnsan12/drf-yasg/releases\"\u003edrf-yasg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.21.11\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/917\"\u003e#917\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/916\"\u003e#916\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/926\"\u003e#926\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/922\"\u003e#922\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/928\"\u003e#928\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/923\"\u003e#923\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/848\"\u003e#848\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/903\"\u003e#903\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 href=\"https://github.com/axnsan12/drf-yasg/blob/master/docs/changelog.rst\"\u003edrf-yasg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e#########\nChangelog\n#########\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.11\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (:pr:\u003ccode\u003e917\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (:pr:\u003ccode\u003e916\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (:pr:\u003ccode\u003e926\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (:pr:\u003ccode\u003e922\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (:pr:\u003ccode\u003e928\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (:pr:\u003ccode\u003e923\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (:pr:\u003ccode\u003e848\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (:pr:\u003ccode\u003e903\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.10\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix type hints when using postponed evaluation of annotations (PEP-563) (:pr:\u003ccode\u003e840\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update JSON \u0026amp; YAML renderers to not use a \u0026quot;.\u0026quot; in their format string (:pr:\u003ccode\u003e911\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix lint errors when comparing types with == instead of is (:pr:\u003ccode\u003e868\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update swagger-ui-dist to address CVE-2021-46708 (:pr:\u003ccode\u003e904\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.9\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Added support for zoneinfo object fields (:pr:\u003ccode\u003e908\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.8\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Python 3.11 and 3.12 support (:pr:\u003ccode\u003e891\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix pkg_resources version lookups for Python 3.9+ (:pr:\u003ccode\u003e891\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.7\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cem\u003eRelease date: Jul 20, 2023\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Added \u003ccode\u003edrf_yasg.inspectors.query.DrfAPICompatInspector\u003c/code\u003e (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Added \u003ccode\u003eDrfAPICompatInspector\u003c/code\u003e to serve as a replacement \u003ccode\u003eCoreAPICompatInspector\u003c/code\u003e (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow \u003ccode\u003eDEFAULT_SPEC_RENDERERS\u003c/code\u003e default renderers to be overriden in the settings (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fixed redoc source mapping (:pr:\u003ccode\u003e859\u003c/code\u003e)\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/f8cb2db70ca42fb709565f89fdd152b614dc865d\"\u003e\u003ccode\u003ef8cb2db\u003c/code\u003e\u003c/a\u003e Add version 1.21.11 details to the changelog (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/939\"\u003e#939\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/0c6d08d5ebc52e802e5e1acbabbadfe179d4087d\"\u003e\u003ccode\u003e0c6d08d\u003c/code\u003e\u003c/a\u003e Update the ruff lint rules (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/920\"\u003e#920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/055a74dc10128fd55a48f7f74f6b58ffcc48e83d\"\u003e\u003ccode\u003e055a74d\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 in the github-actions group (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/937\"\u003e#937\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/a8813ace8e39cc2c28a916053c74415e10db1425\"\u003e\u003ccode\u003ea8813ac\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 in the github-actions group (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/936\"\u003e#936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/9f4b44943ad930e23e979b80090102dfca1d588b\"\u003e\u003ccode\u003e9f4b449\u003c/code\u003e\u003c/a\u003e Restore the live demo and replace heroku with apprunner (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/935\"\u003e#935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/298325122e11aeba87e6c8f16604e45d870649e7\"\u003e\u003ccode\u003e2983251\u003c/code\u003e\u003c/a\u003e fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/a74689370c393432debbe6285b3afb3e462aee58\"\u003e\u003ccode\u003ea746893\u003c/code\u003e\u003c/a\u003e allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/916\"\u003e#916\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/e747ad6db413c2d20c3eab79739e22ffde5930c7\"\u003e\u003ccode\u003ee747ad6\u003c/code\u003e\u003c/a\u003e Fixes issue with filter parameters not appearing in Swagger after upgrading t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/ee3c871501dad5f0585c8c62ac0659fedab999a1\"\u003e\u003ccode\u003eee3c871\u003c/code\u003e\u003c/a\u003e update Python, Django, and DRF versions \u0026amp; packaging configuration (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/922\"\u003e#922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/be6eeedcbebcb45151a9d18018d880d1fcdcf143\"\u003e\u003ccode\u003ebe6eeed\u003c/code\u003e\u003c/a\u003e Remove usage of pkg_resources (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/928\"\u003e#928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/axnsan12/drf-yasg/compare/1.21.10...1.21.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jellyfish` from 1.2.0 to 1.2.1\n\nUpdates `markdown` from 3.9 to 3.10\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/releases\"\u003emarkdown's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.10.0\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\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 href=\"https://github.com/Python-Markdown/markdown/blob/master/docs/changelog.md\"\u003emarkdown's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003etitle: Changelog\ntoc_depth: 2\u003c/p\u003e\n\u003ch1\u003ePython-Markdown Changelog\u003c/h1\u003e\n\u003cp\u003eAll notable changes to this project will be documented in this file.\u003c/p\u003e\n\u003cp\u003eThe format is based on \u003ca href=\"https://keepachangelog.com/en/1.1.0/\"\u003eKeep a Changelog\u003c/a\u003e,\nand this project adheres to the\n\u003ca href=\"https://packaging.python.org/en/latest/specifications/version-specifiers/\"\u003ePython Version Specification\u003c/a\u003e.\nSee the \u003ca href=\"https://github.com/Python-Markdown/markdown/blob/master/docs/contributing.md\"\u003eContributing Guide\u003c/a\u003e for details.\u003c/p\u003e\n\u003ch2\u003e[3.10.0] - 2025-11-03\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.9.0] - 2025-09-04\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFootnotes are now ordered by the occurrence of their references in the\ndocument. A new configuration option for the footnotes extension,\n\u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e, has been added to support restoring the previous\nbehavior of ordering footnotes by the occurrence of definitions (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1367\"\u003e#1367\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure inline processing iterates through elements in document order (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1546\"\u003e#1546\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix handling of incomplete HTML tags in code spans in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1547\"\u003e#1547\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.8.2] - 2025-06-19\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003ecodecs\u003c/code\u003e deprecation in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed comment parsing in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed declarations in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed HTML tag \u003ccode\u003e\u0026lt;foo\u003c/code\u003e and Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\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 href=\"https://github.com/Python-Markdown/markdown/commit/22e89c1fc346f72218a10e392a0c3b4731912522\"\u003e\u003ccode\u003e22e89c1\u003c/code\u003e\u003c/a\u003e Bump version to 3.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/c138aea5139a6aceae05bb957e866d9ce7577b94\"\u003e\u003ccode\u003ec138aea\u003c/code\u003e\u003c/a\u003e + PY314 - PY39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/746f7f527b15f63845253e3b86947b806ef1b98f\"\u003e\u003ccode\u003e746f7f5\u003c/code\u003e\u003c/a\u003e cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/a5ee2b4aad05531898ab8fd726c7ece31ddadf8b\"\u003e\u003ccode\u003ea5ee2b4\u003c/code\u003e\u003c/a\u003e Revert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/5354daf618149f92580a1407c036115753c5df73\"\u003e\u003ccode\u003e5354daf\u003c/code\u003e\u003c/a\u003e Fix an HTML comment parsing case that can cause an infinite loop\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Python-Markdown/markdown/compare/3.9.0...3.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyyaml` from 6.0.2 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/yaml/pyyaml/releases\"\u003epyyaml's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14 and free-threading (experimental).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ehttps://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\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 href=\"https://github.com/yaml/pyyaml/blob/6.0.3/CHANGES\"\u003epyyaml's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e6.0.3 (2025-09-25)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/yaml/pyyaml/pull/864\"\u003eyaml/pyyaml#864\u003c/a\u003e -- Support for Python 3.14 and free-threading (experimental)\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 href=\"https://github.com/yaml/pyyaml/commit/49790e73684bebad1df05ef8d828fa12f685bffb\"\u003e\u003ccode\u003e49790e7\u003c/code\u003e\u003c/a\u003e Release 6.0.3 (\u003ca href=\"https://redirect.github.com/yaml/pyyaml/issues/889\"\u003e#889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xlsxwriter` from 3.2.8 to 3.2.9\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jmcnamara/XlsxWriter/blob/main/Changes\"\u003exlsxwriter's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.2.9 - September 16 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved the \u003ccode\u003epy.typed\u003c/code\u003e file since it was causing a lot of downstream CI\nfailures where consumers weren't handling the xlsxwriter types correctly or\ntaking them into account.\u003c/p\u003e\n\u003cp\u003eThe file will be re-added once the xlsxwriter typing is more comprehensive.\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 href=\"https://github.com/jmcnamara/XlsxWriter/commit/e943bee8c9cdf0661cfdb83d5497e0725390e41e\"\u003e\u003ccode\u003ee943bee\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/392bd9e6572785394c6553e2d4f7ae2bb80782f4\"\u003e\u003ccode\u003e392bd9e\u003c/code\u003e\u003c/a\u003e typing: remove py.typed file\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/jmcnamara/XlsxWriter/compare/RELEASE_3.2.8...RELEASE_3.2.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xmlschema` from 4.1.0 to 4.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sissaschool/xmlschema/releases\"\u003exmlschema's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.2.0 (2025-10-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd arguments validation for schemas and validation methods (by validation contexts)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSchemaSettings\u003c/code\u003e dataclass for storing read-only settings for schema instances\nand for managing package default settings\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eblock\u003c/em\u003e argument to \u003ccode\u003eXMLResource\u003c/code\u003e class (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/464\"\u003e#464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_SCHEMA_SOURCES\u003c/em\u003e package limit (\u003ccode\u003e1000\u003c/code\u003e, applied to \u003ccode\u003eXsdGlobals\u003c/code\u003e global maps instances)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_XML_ELEMENTS\u003c/em\u003e package limit (\u003ccode\u003e1,000,000\u003c/code\u003e, applied to non-lazy \u003ccode\u003eXMLResource\u003c/code\u003e instances)\u003c/li\u003e\n\u003cli\u003eReduce \u003cem\u003eMAX_XML_DEPTH\u003c/em\u003e limit to 1000 and apply it to all \u003ccode\u003eXMLResource\u003c/code\u003e instances\u003c/li\u003e\n\u003cli\u003eFix for substitute match in case of unexpected child (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\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 href=\"https://github.com/sissaschool/xmlschema/blob/master/CHANGELOG.rst\"\u003exmlschema's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ccode\u003ev4.2.0\u003c/code\u003e_ (2025-10-14)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd arguments validation for schemas and validation methods (by validation contexts)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSchemaSettings\u003c/code\u003e dataclass for storing read-only settings for schema instances\nand for managing package default settings\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eblock\u003c/em\u003e argument to \u003ccode\u003eXMLResource\u003c/code\u003e class (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/464\"\u003e#464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_SCHEMA_SOURCES\u003c/em\u003e package limit (\u003ccode\u003e1000\u003c/code\u003e, applied to \u003ccode\u003eXsdGlobals\u003c/code\u003e global maps instances)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_XML_ELEMENTS\u003c/em\u003e package limit (\u003ccode\u003e1,000,000\u003c/code\u003e, applied to non-lazy \u003ccode\u003eXMLResource\u003c/code\u003e instances)\u003c/li\u003e\n\u003cli\u003eReduce \u003cem\u003eMAX_XML_DEPTH\u003c/em\u003e limit to 1000 and apply it to all \u003ccode\u003eXMLResource\u003c/code\u003e instances\u003c/li\u003e\n\u003cli\u003eFix for substitute match in case of unexpected child (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\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 href=\"https://github.com/sissaschool/xmlschema/commit/2783030fcdcd5307563822906862a9e7088931b2\"\u003e\u003ccode\u003e2783030\u003c/code\u003e\u003c/a\u003e Bump minor release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/7c77a12f0fe16c8da0256a0f13281a03e4a0f717\"\u003e\u003ccode\u003e7c77a12\u003c/code\u003e\u003c/a\u003e Include publiccode.yml validation workflow for CI and README changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/04c19d54d4578f34a0c04d6cc82daa8d3ef9d90c\"\u003e\u003ccode\u003e04c19d5\u003c/code\u003e\u003c/a\u003e Fix XsdGroup.match_element (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/dd4f279e56b8a5ce89f78a6c88337f5032af0b2f\"\u003e\u003ccode\u003edd4f279\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/463\"\u003e#463\u003c/a\u003e from publiccode-pr-bot/chore/add-publiccode-parser-ac...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/1bd7aa6eebf4947e7ae76e47a2f706b58fed22cd\"\u003e\u003ccode\u003e1bd7aa6\u003c/code\u003e\u003c/a\u003e Update GitHub workflow for CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/76b0f67e900777166bcd3773cc109efae933682d\"\u003e\u003ccode\u003e76b0f67\u003c/code\u003e\u003c/a\u003e Patch mypy tests with protocols\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/28727bb0af89f129d59772550c6998164c37aeff\"\u003e\u003ccode\u003e28727bb\u003c/code\u003e\u003c/a\u003e Update docs and release info\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/e4131eaf6bc1a223292f3f19e78573a4317d131a\"\u003e\u003ccode\u003ee4131ea\u003c/code\u003e\u003c/a\u003e Add from_settings() class method to schemas\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/0aea8debef13b62156e7297bdc54198057ea3611\"\u003e\u003ccode\u003e0aea8de\u003c/code\u003e\u003c/a\u003e Rewrite validation contexts as normal classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/d443d7ba0e3de8fad6d6df8f314b12735af4bac3\"\u003e\u003ccode\u003ed443d7b\u003c/code\u003e\u003c/a\u003e Full validation of context arguments\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sissaschool/xmlschema/compare/v4.1.0...v4.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lark` from 1.2.2 to 1.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lark-parser/lark/releases\"\u003elark's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.3.1 - Bugfix + source build now contains complete project data\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix: Restore support for custom input, alongside text and TextSlice by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1562\"\u003elark-parser/lark#1562\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep sdist in sync with git (include all files in source build, including docs, tests and examples) by \u003ca href=\"https://github.com/chanicpanic\"\u003e\u003ccode\u003e@​chanicpanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1561\"\u003elark-parser/lark#1561\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/lark-parser/lark/compare/1.3.0...1.3.1\"\u003ehttps://github.com/lark-parser/lark/compare/1.3.0...1.3.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e1.3.0 - Introduces text-slices, Earley fix, and various small improvements\u003c/h2\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLark can now parse in sections of strings, using \u003ccode\u003eTextSlice\u003c/code\u003e, as a faster alternative to creating a \u0026quot;copy-slice\u0026quot; with \u003ccode\u003es[i:j]\u003c/code\u003e. \u003ca href=\"https://lark-parser.readthedocs.io/en/latest/classes.html#lark.utils.TextSlice\"\u003eLearn more\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded support to \u003ccode\u003ematch\u003c/code\u003e on Tree instances\u003c/li\u003e\n\u003cli\u003eWhen serializing a Lark instance, added the option to include the grammar object (before compilation).\u003c/li\u003e\n\u003cli\u003eAdded convenience method \u003ccode\u003eTree.find_token()\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix of an edge case in Earley related to representation of ambiguity.\u003c/li\u003e\n\u003cli\u003eBugfixes in the standalone parser related to imports\u003c/li\u003e\n\u003cli\u003eBugfix in indenter - now dedents always contain line information\u003c/li\u003e\n\u003cli\u003eVarious small bugfixes (see PR list below)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFull list of PRs\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDocs: Rephrase v_args() documentation to underline it only applies to Transformer classes by \u003ca href=\"https://github.com/skepppy\"\u003e\u003ccode\u003e@​skepppy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1458\"\u003elark-parser/lark#1458\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTiny refactor for PR \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1451\"\u003e#1451\u003c/a\u003e by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1459\"\u003elark-parser/lark#1459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEarley: share nodes created by the scanner with the completer by \u003ca href=\"https://github.com/chanicpanic\"\u003e\u003ccode\u003e@​chanicpanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1451\"\u003elark-parser/lark#1451\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter error in Lark.parse when using on_error when parser!=lalr (issue \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1311\"\u003e#1311\u003c/a\u003e) by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1460\"\u003elark-parser/lark#1460\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eSymbol.__eq__\u003c/code\u003e to return false when comparing with None by \u003ca href=\"https://github.com/weaversam8\"\u003e\u003ccode\u003e@​weaversam8\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1481\"\u003elark-parser/lark#1481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMention internal/external transformers in the documentation by \u003ca href=\"https://github.com/odanoburu\"\u003e\u003ccode\u003e@​odanoburu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1486\"\u003elark-parser/lark#1486\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Tree.find_token() method by \u003ca href=\"https://github.com/makukha\"\u003e\u003ccode\u003e@​makukha\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1467\"\u003elark-parser/lark#1467\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eType \u003ccode\u003eTerminal.__init__\u003c/code\u003e by \u003ca href=\"https://github.com/Liam-DeVoe\"\u003e\u003ccode\u003e@​Liam-DeVoe\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1503\"\u003elark-parser/lark#1503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd guidance on handling comments in languages with significant indentation by \u003ca href=\"https://github.com/nchammas\"\u003e\u003ccode\u003e@​nchammas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1502\"\u003elark-parser/lark#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Small fix for PR 1507 by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1508\"\u003elark-parser/lark#1508\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd note on binding power of numeric quantifiers by \u003ca href=\"https://github.com/414owen\"\u003e\u003ccode\u003e@​414owen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1507\"\u003elark-parser/lark#1507\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrap functools.partial in staticmethod() to add compatibility with Python 3.14 by \u003ca href=\"https://github.com/hrnciar\"\u003e\u003ccode\u003e@​hrnciar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1483\"\u003elark-parser/lark#1483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix generic type of Transformer_InPlaceRecursive by \u003ca href=\"https://github.com/lbhm\"\u003e\u003ccode\u003e@​lbhm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1518\"\u003elark-parser/lark#1518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded TextSlice; Lark can now parse/lex a text-slice by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1452\"\u003elark-parser/lark#1452\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport match on tree by \u003ca href=\"https://github.com/colmmurphyxyz\"\u003e\u003ccode\u003e@​colmmurphyxyz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1521\"\u003elark-parser/lark#1521\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: Updated link of DSL article to a new version by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1529\"\u003elark-parser/lark#1529\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebetter error messages for shift/reduct conflicts by \u003ca href=\"https://github.com/skogsbaer\"\u003e\u003ccode\u003e@​skogsbaer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1531\"\u003elark-parser/lark#1531\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSerialize Lark.grammar (fixes issue \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1472\"\u003e#1472\u003c/a\u003e) by \u003ca href=\"https://github.com/NasalDaemon\"\u003e\u003ccode\u003e@​NasalDaemon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1506\"\u003elark-parser/lark#1506\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes for PR \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1506\"\u003e#1506\u003c/a\u003e, which adds the option to cache the grammar definition by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1540\"\u003elark-parser/lark#1540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix in indenter - now always creating dedents with line information by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1547\"\u003elark-parser/lark#1547\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix: issue when unpickling in the standalone parser, due to lingering Token instances by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1553\"\u003elark-parser/lark#1553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInclude missing import in standalone parser by \u003ca href=\"https://github.com/pdeibert\"\u003e\u003ccode\u003e@​pdeibert\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1541\"\u003elark-parser/lark#1541\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVersion bump (1.3.0) by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1554\"\u003elark-parser/lark#1554\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=\"https://github.com/skepppy\"\u003e\u003ccode\u003e@​skepppy\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1458\"\u003elark-parser/lark#1458\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 href=\"https://github.com/lark-parser/lark/commit/f79772cd4c6d2076b5dc01f399dbb816cc484f77\"\u003e\u003ccode\u003ef79772c\u003c/code\u003e\u003c/a\u003e Version bump (1.3.1)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/b64e9f42c93e9c05c17fac694ae5cbd18c041a2b\"\u003e\u003ccode\u003eb64e9f4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1561\"\u003e#1561\u003c/a\u003e from chanicpanic/sdist-git\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/ad0ea5f14ee4afbaf617cc088e1b8fe2fcff08fc\"\u003e\u003ccode\u003ead0ea5f\u003c/code\u003e\u003c/a\u003e Update MANIFEST.in\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/1f6f03c10540d4646c1a70b1da16a90592d7ec58\"\u003e\u003ccode\u003e1f6f03c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1562\"\u003e#1562\u003c/a\u003e from lark-parser/issue1560\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/7c365de586325620a20f2753b36ffa313c1d9b45\"\u003e\u003ccode\u003e7c365de\u003c/code\u003e\u003c/a\u003e Added custom input test (based on code from examples)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/19bbbee5d79845123f7f07ab716ec88185e2fa9d\"\u003e\u003ccode\u003e19bbbee\u003c/code\u003e\u003c/a\u003e Bugfix: Restore support for custom input, alongside text and TextSlice (Issue...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/dbcb60e888c5c8a3656c9f0c1ef0f928bb7c5ad6\"\u003e\u003ccode\u003edbcb60e\u003c/code\u003e\u003c/a\u003e Keep sdist in sync with git\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/e332c2df2f7d400460a5f1204d9bc36b49b25635\"\u003e\u003ccode\u003ee332c2d\u003c/code\u003e\u003c/a\u003e Version bump (1.3.0)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/aa5666c30e255257b0c36ef93c80d800f84a04ca\"\u003e\u003ccode\u003eaa5666c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1541\"\u003e#1541\u003c/a\u003e from pdeibert/master\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/41934d390dd7661a82df5ed28bd75655fe797cf7\"\u003e\u003ccode\u003e41934d3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1553\"\u003e#1553\u003c/a\u003e from lark-parser/issue1552\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lark-parser/lark/compare/1.2.2...1.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `shapely` from 2.0.7 to 2.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/shapely/shapely/releases\"\u003eshapely's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.1.2\u003c/h2\u003e\n\u003cp\u003eWheels are available for Python 3.14 (and still include GEOS 3.13.1).\u003c/p\u003e\n\u003ch2\u003e2.1.1\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix performance degradation calling shapely functions (caused by deprecation of certain positional arguments) (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2283\"\u003e#2283\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix crash caused by \u003ccode\u003efrom_ragged_array()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2291\"\u003e#2291\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix compilation error building with recent LLVM toolchain (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2293\"\u003e#2293\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFor a full changelog , see \u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-1\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.1.0\u003c/h2\u003e\n\u003cp\u003eShapely 2.1.0 is a feature release with various new functions, improvements and bug fixes. Highlights include initial support for geometries with M or ZM values, functionality for coverage validation and simplification, and a set of new top-level functions.\u003c/p\u003e\n\u003cp\u003eShapely supports Python \u0026gt;= 3.10, and binary wheels on PyPI include GEOS 3.13.1 and are now also provided for musllinux (Alpine) x86_64 platforms.\u003c/p\u003e\n\u003cp\u003eFor a full changelog, see \u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.1.0rc1\u003c/h2\u003e\n\u003cp\u003eShapely version 2.1.0 is a major release featuring various new functions, improvements and bug fixes. This is a first release candidate.\u003c/p\u003e\n\u003cp\u003eFor a full changelog, see \u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0-unreleased\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0-unreleased\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 href=\"https://github.com/shapely/shapely/blob/main/CHANGES.txt\"\u003eshapely's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.1.2 (unreleased)\u003c/h2\u003e\n\u003cp\u003eImproved performance of the Geometry -\u0026gt; float scalar operations: \u003ccode\u003earea\u003c/code\u003e, \u003ccode\u003elength\u003c/code\u003e,\n\u003ccode\u003eminimum_clearance\u003c/code\u003e, \u003ccode\u003ex\u003c/code\u003e, \u003ccode\u003ey\u003c/code\u003e, \u003ccode\u003ez\u003c/code\u003e and \u003ccode\u003em\u003c/code\u003e. Benchmarks showed a change of call duration\nfrom 2.6 microseconds to 0.2 microseconds (on the \u003ccode\u003ePoint.x\u003c/code\u003e attribute).\u003c/p\u003e\n\u003ch2\u003e2.1.2 (2025-09-24)\u003c/h2\u003e\n\u003cp\u003eWheels are available for Python 3.14 (and still include GEOS 3.13.1).\u003c/p\u003e\n\u003ch2\u003e2.1.1 (2025-05-19)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix performance degradation calling shapely functions (caused by deprecation\nof certain positional arguments) (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2283\"\u003e#2283\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix crash caused by \u003ccode\u003efrom_ragged_array()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2291\"\u003e#2291\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix compilation error building with recent LLVM toolchain (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2293\"\u003e#2293\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.0 (2025-04-03)\u003c/h2\u003e\n\u003cp\u003eShapely 2.1.0 is a feature release with various new functions,\nimprovements and bug fixes. Highlights include initial support for geometries\nwith M or ZM values, functionality for coverage validation and\nsimplification, and a set of new top-level functions.\u003c/p\u003e\n\u003cp\u003eShapely supports Python \u0026gt;= 3.10, and binary wheels on PyPI include GEOS 3.13.1\nand are now also provided for musllinux (Alpine) x86_64 platforms.\u003c/p\u003e\n\u003cp\u003eFor a full changelog, see\n\u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/5fb639d1056888d135fe56bfaf750c9648addeec\"\u003e\u003ccode\u003e5fb639d\u003c/code\u003e\u003c/a\u003e RLS: 2.1.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/70509a1bee5ebd6637cda98b5c9d83707c341888\"\u003e\u003ccode\u003e70509a1\u003c/code\u003e\u003c/a\u003e DOC/RLS: indicate Python 3.14 support in pyproject.toml and release notes for...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/5c572b622027f6917c75afd728f201a144fb597d\"\u003e\u003ccode\u003e5c572b6\u003c/code\u003e\u003c/a\u003e CI: add testing with GEOS 3.14 and Python 3.14 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2330\"\u003e#2330\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/a9093336b1ea77559d44148a7f1ed92ab3bc2999\"\u003e\u003ccode\u003ea909333\u003c/code\u003e\u003c/a\u003e Bump pypa/cibuildwheel from 3.1.3 to 3.2.0 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2328\"\u003e#2328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/2086d4428e29da17bafc684acbfb04bb537ce573\"\u003e\u003ccode\u003e2086d44\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2326\"\u003e#2326\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/50c1cf30be0e37081991b6d5a5dc3531cfbe35da\"\u003e\u003ccode\u003e50c1cf3\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4 to 5 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2321\"\u003e#2321\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/39490ab685a42a2c189f2ce7a45b7d07053e8e8f\"\u003e\u003ccode\u003e39490ab\u003c/code\u003e\u003c/a\u003e TST: update test_coverage_union_overlapping_inputs for upstream GEOS change (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/5ef437c898b54f723ad0e4a8b6b513b9cc5d68a2\"\u003e\u003ccode\u003e5ef437c\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2320\"\u003e#2320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/7b5ff3d24b7889d35f96ee3ae9ec26250b3d6147\"\u003e\u003ccode\u003e7b5ff3d\u003c/code\u003e\u003c/a\u003e BLD: add Python 3.14 wheels [Bump pypa/cibuildwheel from 3.0.1 to 3.1.3] (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2316\"\u003e#2316\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/480dbb14f47b685e95c03654983405185c15babd\"\u003e\u003ccode\u003e480dbb1\u003c/code\u003e\u003c/a\u003e TST: update frechet_distance densify test for latest GEOS main (densify\u0026gt;0.001...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/shapely/shapely/compare/2.0.7...2.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-two-factor-auth[phonenumbers]` from 1.17.0 to 1.18.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jazzband/django-two-factor-auth/releases\"\u003edjango-two-factor-auth[phonenumbers]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.18.1\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew translations for Azerbaijani and Serbian\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.18.0\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocumentation for setting yubikey support forgot to inform users they would\nneed to add our yubikey plugin to \u003ccode\u003eINSTALLED_APPS\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRemove reference to release-notes that had been missed, docs now build\nwithout warnings\u003c/li\u003e\n\u003cli\u003eWebAuthn: avoid submitting the wrong form\u003c/li\u003e\n\u003cli\u003eEmail gateway: tell user to use correct django-otp plugin\u003c/li\u003e\n\u003cli\u003eFix infinite redirect on admin site with AdminSiteOTPRequiredMixin\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow qrcode 8.x.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ephonenumbers\u003c/code\u003e is no longer a hard requirement for users who don't require it.\u003c/li\u003e\n\u003cli\u003eChange \u003ccode\u003eEmailDevice.confirmed\u003c/code\u003e default to \u003ccode\u003eFalse\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAny \u003ccode\u003eStaticDevice\u003c/code\u003e can be used as backup tokens, not just those labelled\n\u0026quot;backup\u0026quot;\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Django 5.2\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.13\u003c/li\u003e\n\u003cli\u003eDjango check for \u003ccode\u003eINSTALLED_APPS\u003c/code\u003e to make sure \u003ccode\u003etwo_factor\u003c/code\u003e is present and\ncomes before its plugins\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8\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 href=\"https://github.com/jazzband/django-two-factor-auth/blob/master/CHANGELOG.md\"\u003edjango-two-factor-auth[phonenumbers]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.18.1\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew translations for Azerbaijani and Serbian\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.18.0\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocumentation for setting yubikey support forgot to inform users they would\nneed to add our yubikey plugin to \u003ccode\u003eINSTALLED_APPS\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRemove reference to release-notes that had been missed, docs now build\nwithout warnings\u003c/li\u003e\n\u003cli\u003eWebAuthn: avoid submitting the wrong form\u003c/li\u003e\n\u003cli\u003eEmail gateway: tell user to use correct django-otp plugin\u003c/li\u003e\n\u003cli\u003eFix infinite redirect on admin site with AdminSiteOTPRequiredMixin\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow qrcode 8.x.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ephonenumbers\u003c/code\u003e is no longer a hard requirement for users who don't require it.\u003c/li\u003e\n\u003cli\u003eChange \u003ccode\u003eEmailDevice.confirmed\u003c/code\u003e default to \u003ccode\u003eFalse\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAny \u003ccode\u003eStaticDevice\u003c/code\u003e can be used as backup tokens, not just those labelled\n\u0026quot;backup\u0026quot;\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Django 5.2\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.13\u003c/li\u003e\n\u003cli\u003eDjango check for \u003ccode\u003eINSTALLED_APPS\u003c/code\u003e to make sure \u003ccode\u003etwo_factor\u003c/code\u003e is present and\ncomes before its plugins\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8\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 href=\"https://github.com/jazzband/django-two-factor-auth/commit/38a6ba7b6fb579b3465d66f33c4e2f25ffad28c0\"\u003e\u003ccode\u003e38a6ba7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/django-two-factor-auth/issues/778\"\u003e#778\u003c/a\u003e from claudep/missing_trans\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/004c93839e331e72740c4e6e73516d05afbca855\"\u003e\u003ccode\u003e004c938\u003c/code\u003e\u003c/a\u003e Fixes \u003ca href=\"https://redirect.github.com/jazzband/django-two-factor-auth/issues/777\"\u003e#777\u003c/a\u003e - Add missing Azerbaijani and Serbian translations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/59f44669649f281ca9b25a2beba438609f72a3a5\"\u003e\u003ccode\u003e59f4466\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/django-two-factor-auth/issues/776\"\u003e#776\u003c/a\u003e from jazzband/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/d5517043e9f9cdec4e4850f0f33e28eea485fb79\"\u003e\u003ccode\u003ed551704\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/7405b6fd545ddbbd67d28292fca2c8ef6cf0de92\"\u003e\u003ccode\u003e7405b6f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/django-two-factor-auth/issues/774\"\u003e#774\u003c/a\u003e from moggers87/release-1.18.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/b47945c8188e46ad2f64bf929c1a745682b6de15\"\u003e\u003ccode\u003eb47945c\u003c/code\u003e\u003c/a\u003e Update CHANGELOG with latest changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/b20741c609ca3fd3fe52dd3cfe1ebc3e98ce2383\"\u003e\u003ccode\u003eb20741c\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into release-1.18.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/966dab4c5bdf11b88e42bc820c8adea684b4e0d0\"\u003e\u003ccode\u003e966dab4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/django-two-factor-auth/issues/775\"\u003e#775\u003c/a\u003e from claudep/phoneplugin2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/9c72f871f0ebd3bede20d823372b02608480c4c7\"\u003e\u003ccode\u003e9c72f87\u003c/code\u003e\u003c/a\u003e Refs \u003ca href=\"https://redirect.github.com/jazzband/django-two-factor-auth/issues/469\"\u003e#469\u003c/a\u003e - Only import phonenumber functions when plugin is installed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/ec0923bf400d6faf3c82acff312c1fe5add70047\"\u003e\u003ccode\u003eec0923b\u003c/code\u003e\u003c/a\u003e Pull latest translations from Transifex\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jazzband/django-two-factor-auth/compare/1.17.0...1.18.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `boto3` from 1.40.30 to 1.40.69\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/aecb2bb02c0af646e07fdc13751e478d4611c992\"\u003e\u003ccode\u003eaecb2bb\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.69'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/ac7646e2bdbf42c6485e291236b65c6b34962311\"\u003e\u003ccode\u003eac7646e\u003c/code\u003e\u003c/a\u003e Bumping version to 1.40.69\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/f16254efa15f61e398a4a711b2f2962f45d9535a\"\u003e\u003ccode\u003ef16254e\u003c/code\u003e\u003c/a\u003e Add changelog entries from botocore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/17eb00486e0dfa6fc5fab23b7c8256f3d37c97fe\"\u003e\u003ccode\u003e17eb004\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.68'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/6a34b30475f63c9eb7a84d7eaf7f44908468cf77\"\u003e\u003ccode\u003e6a34b30\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.68' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/3dc1e85172db100b0a5597e603ff046388bedd61\"\u003e\u003ccode\u003e3dc1e85\u003c/code\u003e\u003c/a\u003e Bumping version to 1.40.68\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/014e41eeaa6eee59837c8a0aee60becc73a009a6\"\u003e\u003ccode\u003e014e41e\u003c/code\u003e\u003c/a\u003e Add changelog entries from botocore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/6a72deb2a996de0d017890192ef3028fff1fcb20\"\u003e\u003ccode\u003e6a72deb\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.67'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/f9c83204a24a05e6d0c386643682c21518215c8b\"\u003e\u003ccode\u003ef9c8320\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.67' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/4a88e5069f58107977d514cc93bdbccd08493976\"\u003e\u003ccode\u003e4a88e50\u003c/code\u003e\u003c/a\u003e Bumping version to 1.40.67\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boto/boto3/compare/1.40.30...1.40.69\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uwsgi` from 2.0.30 to 2.0.31\n\nUpdates `coverage` from 7.10.6 to 7.11.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/releases\"\u003ecoverage's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.11.3\u003c/h2\u003e\n\u003ch2\u003eVersion 7.11.3 — 2025-11-09\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the 7.11.1 changes meant that conflicts between a requested measurement core and other settings would raise an error. This was a breaking change from previous behavior, as reported in \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2076\"\u003eissue 2076\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2078\"\u003eissue 2078\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe previous behavior has been restored: when the requested core conflicts with other settings, another core is used instead, and a warning is issued.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFor contributors: the repo has moved from Ned’s \u003ca href=\"https://github.com/nedbat\"\u003enedbat GitHub account\u003c/a\u003e to the \u003ca href=\"https://github.com/coveragepy\"\u003ecoveragepy GitHub organization\u003c/a\u003e. The default branch has changed from master to main.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e:arrow_right:  PyPI page: \u003ca href=\"https://pypi.org/project/coverage/7.11.3\"\u003ecoverage 7.11.3\u003c/a\u003e.\n:arrow_right:  To install: \u003ccode\u003epython3 -m pip install coverage==7.11.3\u003c/code\u003e\u003c/p\u003e\n\u003ch2\u003e7.11.2\u003c/h2\u003e\n\u003ch2\u003eVersion 7.11.2 — 2025-11-08\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: using the “sysmon” measurement core in 7.11.1, if Python code was claimed to come from a non-Python file, a \u003ccode\u003eNotPython\u003c/code\u003e exception could be raised. This could happen for example with Jinja templates compiled to Python, as reported in \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2077\"\u003eissue 2077\u003c/a\u003e. This is now fixed.\u003c/li\u003e\n\u003cli\u003eDoc: corrected the first entry in the 7.11.1 changelog.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e:arrow_right:  PyPI page: \u003ca href=\"https://pypi.org/project/coverage/7.11.2\"\u003ecoverage 7.11.2\u003c/a\u003e.\n:arrow_right:  To install: \u003ccode\u003epython3 -m pip install coverage==7.11.2\u003c/code\u003e\u003c/p\u003e\n\u003ch2\u003e7.11.1\u003c/h2\u003e\n\u003ch2\u003eVersion 7.11.1 — 2025-11-07\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: some chanages to details of how the measurement core is chosen, and how conflicting settings are handled. The “sysmon” core cannot be used with some conurrency settings, with dynamic context, and in Python 3.12/3.13, with branch measurement.\n\u003cul\u003e\n\u003cli\u003eIf the core is not specified and defaults to “sysmon” (Python 3.14+), but other settings conflict with sysmon, then the “ctrace” core will be used instead with no warning. For concurrency conflicts, this used to produce an error, as described in \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2064\"\u003eissue 2064\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eIf the “sysmon” core is explicitly requested in your configuration, but other settings conflict, an error is now raised. This used to produce a warning.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix: some multi-line case clauses or for loops (and probably other constructs) could cause incorrect claims of missing branches with the sys.monitoring core, as described in \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2070\"\u003eissue 2070\u003c/a\u003e. This is now fixed.\u003c/li\u003e\n\u003cli\u003eFix: when running in pytest under coverage, a \u003ccode\u003ebreakpoint()\u003c/code\u003e would stop in the wrong frame, one level down from where it should, as described in \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/1420\"\u003eissue 1420\u003c/a\u003e. This was due to a coverage change in v6.4.1 that seemed to give a slight performance improvement, but I couldn’t reproduce the performance gain, so it’s been reverted, fixing the debugger problem.\u003c/li\u003e\n\u003cli\u003eA new debug option \u003ccode\u003e--debug=core\u003c/code\u003e shows which core is in use and why.\u003c/li\u003e\n\u003cli\u003eSplit \u003ccode\u003esqlite\u003c/code\u003e debugging information out of the \u003ccode\u003esys\u003c/code\u003e \u003ca href=\"https://github.com/coveragepy/coveragepy/blob/HEAD/commands/cmd_debug.rst#cmd-debug\"\u003ecoverage debug\u003c/a\u003e and \u003ca href=\"https://github.com/coveragepy/coveragepy/blob/HEAD/commands/cmd_debug.rst#cmd-run-debug\"\u003e--debug option\u003c/a\u003e options since it’s bulky and not very useful.\u003c/li\u003e\n\u003cli\u003eUpdated the \u003ca href=\"https://coverage.readthedocs.io/en/latest/howitworks.html#howitworks\"\u003eHow coverage.py works\u003c/a\u003e page to better describe the three different measurement cores.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e:arrow_right:  PyPI page: \u003ca href=\"https://pypi.org/project/coverage/7.11.1\"\u003ecoverage 7.11.1\u003c/a\u003e.\n:arrow_right:  To install: \u003ccode\u003epython3 -m pip install coverage==7.11.1\u003c/code\u003e\u003c/p\u003e\n\u003ch2\u003e7.11.1\u003c/h2\u003e\n\u003ch2\u003eVersion 7.11.1 — 2025-11-07\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: some chanages to details of how the measurement core is chosen, and how conflicting settings are handled. The “sysmon” core cannot be used with some conurrency settings, with dynamic context, and in Python 3.12/3.13, with branch measurement.\n\u003cul\u003e\n\u003cli\u003eIf the core is not specified and defaults to “sysmon” (Python 3.14+), but other settings conflict with sysmon, then the “ctrace” core will be used instead with no warning. For concurrency conflicts, this used to produce an error, as described in \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2064\"\u003eissue 2064\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eIf the “sysmon” core is explicitly requested in your configuration, but other settings conflict, an error is now raised. This used to produce a warning.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix: some multi-line case clauses or for loops (and probably other constructs) could cause incorrect claims of missing branches with the sys.monitoring core, as described in \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2070\"\u003eissue 2070\u003c/a\u003e. This is now fixed.\u003c/li\u003e\n\u003cli\u003eFix: when running in pytest under coverage, a \u003ccode\u003ebreakpoint()\u003c/code\u003e would stop in the wrong frame, one level down from where it should, as described in \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/1420\"\u003eissue 1420\u003c/a\u003e. This was due to a coverage change in v6.4.1 that seemed to give a slight performance improve...\n\n_Description has been truncated_","html_url":"https://github.com/SEED-platform/seed/pull/5136","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/SEED-platform%2Fseed/issues/5136","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/5136/packages"},{"uuid":"3533575170","node_id":"PR_kwDOELezjM6usTcY","number":1136,"state":"closed","title":"chore: bump the minor-and-patch group across 1 directory with 9 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2025-12-08T19:02:00.000Z","author_association":null,"state_reason":null,"created_at":"2025-10-20T19:03:05.000Z","updated_at":"2025-12-08T19:02:02.000Z","time_to_close":4233535,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore: bump","group_name":"minor-and-patch","update_count":9,"packages":[{"name":"django","old_version":"5.0.14","new_version":"5.2.7","repository_url":"https://github.com/django/django"},{"name":"django-cors-headers","old_version":"4.7.0","new_version":"4.9.0","repository_url":"https://github.com/adamchainz/django-cors-headers"},{"name":"drf-yasg","old_version":"1.21.10","new_version":"1.21.11","repository_url":"https://github.com/axnsan12/drf-yasg"},{"name":"psycopg2-binary","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"uwsgi","old_version":"2.0.30","new_version":"2.0.31"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"msal","old_version":"1.33.0","new_version":"1.34.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"whitenoise","old_version":"6.9.0","new_version":"6.11.0","repository_url":"https://github.com/evansd/whitenoise"},{"name":"azure-storage-blob","old_version":"12.26.0","new_version":"12.27.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-and-patch group with 9 updates in the /cit-api directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [django](https://github.com/django/django) | `5.0.14` | `5.2.7` |\n| [django-cors-headers](https://github.com/adamchainz/django-cors-headers) | `4.7.0` | `4.9.0` |\n| [drf-yasg](https://github.com/axnsan12/drf-yasg) | `1.21.10` | `1.21.11` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [uwsgi](https://uwsgi-docs.readthedocs.io/en/latest/) | `2.0.30` | `2.0.31` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.33.0` | `1.34.0` |\n| [whitenoise](https://github.com/evansd/whitenoise) | `6.9.0` | `6.11.0` |\n| [azure-storage-blob](https://github.com/Azure/azure-sdk-for-python) | `12.26.0` | `12.27.0` |\n\n\nUpdates `django` from 5.0.14 to 5.2.7\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/3cff3209e35a560f94801d428cf7f2a3ecb2a051\"\u003e\u003ccode\u003e3cff320\u003c/code\u003e\u003c/a\u003e [5.2.x] Bumped version for 5.2.7 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/ed8fc39d77465eddbde1191a054ae965f6a8a584\"\u003e\u003ccode\u003eed8fc39\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2025-59682 -- Fixed potential partial directory-traversal v...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/52fbae0a4dbbe5faa59827f8f05694a0065cc135\"\u003e\u003ccode\u003e52fbae0\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2025-59681 -- Protected QuerySet.annotate(), alias(), aggre...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/1794cbf961f9ea54715fb094fe8adc80a5054947\"\u003e\u003ccode\u003e1794cbf\u003c/code\u003e\u003c/a\u003e [5.2.x] Made cosmetic edits to 5.2.7 release notes.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/81625a141e1feaaea877fc18876fdd7b6394442c\"\u003e\u003ccode\u003e81625a1\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36587\"\u003e#36587\u003c/a\u003e -- Clarified usage of \u003ccode\u003elist.insert()\u003c/code\u003e for upload handlers.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/6f3813e4b6e3db7fa3cc612c78f898142468bca9\"\u003e\u003ccode\u003e6f3813e\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/35877\"\u003e#35877\u003c/a\u003e, Refs \u003ca href=\"https://redirect.github.com/django/django/issues/36128\"\u003e#36128\u003c/a\u003e -- Documented unique constraint when migrat...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/10a2d3b837c5d8c1ac0cabd399ad7edcc66bfa8e\"\u003e\u003ccode\u003e10a2d3b\u003c/code\u003e\u003c/a\u003e [5.2.x] Added stub release notes and release date for 5.2.7, 5.1.13, and 4.2.25.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/b2773a39a34f0f0ca768fa1daaf8bf72fca56e06\"\u003e\u003ccode\u003eb2773a3\u003c/code\u003e\u003c/a\u003e [5.2.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/25508\"\u003e#25508\u003c/a\u003e -- Used QuerySet.\u003cstrong\u003erepr\u003c/strong\u003e in docs/ref/contrib/postgres/se...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/7554c54e5f02566520dee81c8b95f47429f1b553\"\u003e\u003ccode\u003e7554c54\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36581\"\u003e#36581\u003c/a\u003e -- Updated serialization examples from XML to JSON.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/2a2936c3e6444a0f37156773ca405cedaf28dea7\"\u003e\u003ccode\u003e2a2936c\u003c/code\u003e\u003c/a\u003e [5.2.x] Updated translations from Transifex.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/5.0.14...5.2.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-cors-headers` from 4.7.0 to 4.9.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/adamchainz/django-cors-headers/blob/main/CHANGELOG.rst\"\u003edjango-cors-headers's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.9.0 (2025-09-18)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Django 6.0.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.8.0 (2025-09-08)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14.\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 href=\"https://github.com/adamchainz/django-cors-headers/commit/a3a3ad28cb4527f5189fc8ea032a66b100befdc9\"\u003e\u003ccode\u003ea3a3ad2\u003c/code\u003e\u003c/a\u003e Version 4.9.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-cors-headers/commit/2f5a94bf62b58f3dd31f088902d0334bfa2bffdd\"\u003e\u003ccode\u003e2f5a94b\u003c/code\u003e\u003c/a\u003e Correct testing of Django 6.0 (\u003ca href=\"https://redirect.github.com/adamchainz/django-cors-headers/issues/1015\"\u003e#1015\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-cors-headers/commit/4356514815a722d6e1e63ea3315919097de57af5\"\u003e\u003ccode\u003e4356514\u003c/code\u003e\u003c/a\u003e Support Django 6.0 (\u003ca href=\"https://redirect.github.com/adamchainz/django-cors-headers/issues/1014\"\u003e#1014\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-cors-headers/commit/eeaa0419584a115d81e5ba0f3744eecd2161d2b6\"\u003e\u003ccode\u003eeeaa041\u003c/code\u003e\u003c/a\u003e Version 4.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-cors-headers/commit/b760e4d1c8fa84b7e90c9c96f9385bcf1ec0d01f\"\u003e\u003ccode\u003eb760e4d\u003c/code\u003e\u003c/a\u003e Support Python 3.14 (\u003ca href=\"https://redirect.github.com/adamchainz/django-cors-headers/issues/1013\"\u003e#1013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-cors-headers/commit/bf6abfbbacedfe134ae4ff96a5dd38d8f85dde7a\"\u003e\u003ccode\u003ebf6abfb\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/adamchainz/django-cors-headers/issues/1012\"\u003e#1012\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-cors-headers/commit/5d0c6512e8b1613c719ab383cad2dbfeda8902a0\"\u003e\u003ccode\u003e5d0c651\u003c/code\u003e\u003c/a\u003e Upgrade dependencies (\u003ca href=\"https://redirect.github.com/adamchainz/django-cors-headers/issues/1011\"\u003e#1011\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-cors-headers/commit/873fd5ff5c2c1c7b91eb012b51ffe15eac6f7201\"\u003e\u003ccode\u003e873fd5f\u003c/code\u003e\u003c/a\u003e Use uvx to run tox on GitHub Actions (\u003ca href=\"https://redirect.github.com/adamchainz/django-cors-headers/issues/1010\"\u003e#1010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-cors-headers/commit/f8aa330734c3e1627ccbb83cb79a332db29d42e4\"\u003e\u003ccode\u003ef8aa330\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/adamchainz/django-cors-headers/issues/1009\"\u003e#1009\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-cors-headers/commit/b04460f37cbf458984bb377d8e6afb56776c3465\"\u003e\u003ccode\u003eb04460f\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/adamchainz/django-cors-headers/issues/1008\"\u003e#1008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/adamchainz/django-cors-headers/compare/4.7.0...4.9.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `drf-yasg` from 1.21.10 to 1.21.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/axnsan12/drf-yasg/releases\"\u003edrf-yasg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.21.11\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/917\"\u003e#917\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/916\"\u003e#916\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/926\"\u003e#926\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/922\"\u003e#922\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/928\"\u003e#928\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/923\"\u003e#923\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/848\"\u003e#848\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/903\"\u003e#903\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 href=\"https://github.com/axnsan12/drf-yasg/blob/master/docs/changelog.rst\"\u003edrf-yasg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e#########\nChangelog\n#########\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.11\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (:pr:\u003ccode\u003e917\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (:pr:\u003ccode\u003e916\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (:pr:\u003ccode\u003e926\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (:pr:\u003ccode\u003e922\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (:pr:\u003ccode\u003e928\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (:pr:\u003ccode\u003e923\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (:pr:\u003ccode\u003e848\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (:pr:\u003ccode\u003e903\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.10\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix type hints when using postponed evaluation of annotations (PEP-563) (:pr:\u003ccode\u003e840\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update JSON \u0026amp; YAML renderers to not use a \u0026quot;.\u0026quot; in their format string (:pr:\u003ccode\u003e911\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix lint errors when comparing types with == instead of is (:pr:\u003ccode\u003e868\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update swagger-ui-dist to address CVE-2021-46708 (:pr:\u003ccode\u003e904\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.9\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Added support for zoneinfo object fields (:pr:\u003ccode\u003e908\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.8\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Python 3.11 and 3.12 support (:pr:\u003ccode\u003e891\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix pkg_resources version lookups for Python 3.9+ (:pr:\u003ccode\u003e891\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.7\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cem\u003eRelease date: Jul 20, 2023\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Added \u003ccode\u003edrf_yasg.inspectors.query.DrfAPICompatInspector\u003c/code\u003e (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Added \u003ccode\u003eDrfAPICompatInspector\u003c/code\u003e to serve as a replacement \u003ccode\u003eCoreAPICompatInspector\u003c/code\u003e (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow \u003ccode\u003eDEFAULT_SPEC_RENDERERS\u003c/code\u003e default renderers to be overriden in the settings (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fixed redoc source mapping (:pr:\u003ccode\u003e859\u003c/code\u003e)\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/f8cb2db70ca42fb709565f89fdd152b614dc865d\"\u003e\u003ccode\u003ef8cb2db\u003c/code\u003e\u003c/a\u003e Add version 1.21.11 details to the changelog (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/939\"\u003e#939\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/0c6d08d5ebc52e802e5e1acbabbadfe179d4087d\"\u003e\u003ccode\u003e0c6d08d\u003c/code\u003e\u003c/a\u003e Update the ruff lint rules (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/920\"\u003e#920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/055a74dc10128fd55a48f7f74f6b58ffcc48e83d\"\u003e\u003ccode\u003e055a74d\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 in the github-actions group (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/937\"\u003e#937\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/a8813ace8e39cc2c28a916053c74415e10db1425\"\u003e\u003ccode\u003ea8813ac\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 in the github-actions group (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/936\"\u003e#936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/9f4b44943ad930e23e979b80090102dfca1d588b\"\u003e\u003ccode\u003e9f4b449\u003c/code\u003e\u003c/a\u003e Restore the live demo and replace heroku with apprunner (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/935\"\u003e#935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/298325122e11aeba87e6c8f16604e45d870649e7\"\u003e\u003ccode\u003e2983251\u003c/code\u003e\u003c/a\u003e fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/a74689370c393432debbe6285b3afb3e462aee58\"\u003e\u003ccode\u003ea746893\u003c/code\u003e\u003c/a\u003e allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/916\"\u003e#916\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/e747ad6db413c2d20c3eab79739e22ffde5930c7\"\u003e\u003ccode\u003ee747ad6\u003c/code\u003e\u003c/a\u003e Fixes issue with filter parameters not appearing in Swagger after upgrading t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/ee3c871501dad5f0585c8c62ac0659fedab999a1\"\u003e\u003ccode\u003eee3c871\u003c/code\u003e\u003c/a\u003e update Python, Django, and DRF versions \u0026amp; packaging configuration (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/922\"\u003e#922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/be6eeedcbebcb45151a9d18018d880d1fcdcf143\"\u003e\u003ccode\u003ebe6eeed\u003c/code\u003e\u003c/a\u003e Remove usage of pkg_resources (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/928\"\u003e#928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/axnsan12/drf-yasg/compare/1.21.10...1.21.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2-binary` from 2.9.10 to 2.9.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2-binary's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix building when pg_config returns an empty string (:ticket:\u003ccode\u003e[#1599](https://github.com/psycopg/psycopg2/issues/1599)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eWheel package bundled with OpenSSL 1.1.1v.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.6\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\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 href=\"https://github.com/psycopg/psycopg2/commit/fd9ae8cad2bcfc3e7e9410e7b6f07cda8f4f05ec\"\u003e\u003ccode\u003efd9ae8c\u003c/code\u003e\u003c/a\u003e chore: bump to version 2.9.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d923840546942534f0956d9202f914fd9feac5fd\"\u003e\u003ccode\u003ed923840\u003c/code\u003e\u003c/a\u003e chore: update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d42dc7169d3cd93517e282e9ef5dc2a2b40650a2\"\u003e\u003ccode\u003ed42dc71\u003c/code\u003e\u003c/a\u003e Merge branch 'fix-1791'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4fde6560c32f06ad1304404c9f7f86148dcc4be0\"\u003e\u003ccode\u003e4fde656\u003c/code\u003e\u003c/a\u003e fix: avoid failed assert passing more arguments than placeholders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/8308c19d6af0d904b313997539ed33415990a74e\"\u003e\u003ccode\u003e8308c19\u003c/code\u003e\u003c/a\u003e fix: drop warning about the use of deprecated PyWeakref_GetObject function\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1a1eabf098a3374409bb2ab4b594777b900f396d\"\u003e\u003ccode\u003e1a1eabf\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/github-script from 7 to 8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/897af8b38beda851d7257dfc525129e37c0ec9e0\"\u003e\u003ccode\u003e897af8b\u003c/code\u003e\u003c/a\u003e build(deps): bump peter-evans/repository-dispatch from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ceefd305117113ca10e383a626e87ba0796f3638\"\u003e\u003ccode\u003eceefd30\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4dc585430cabe94cee96c5a9de0265d0f55370f1\"\u003e\u003ccode\u003e4dc5854\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1945788dcf6172bb1b9328ebc3587ccf0e6a659c\"\u003e\u003ccode\u003e1945788\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1802\"\u003e#1802\u003c/a\u003e from edgarrmondragon/cp314-wheels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.10...2.9.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uwsgi` from 2.0.30 to 2.0.31\n\nUpdates `pyyaml` from 6.0.2 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/yaml/pyyaml/releases\"\u003epyyaml's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14 and free-threading (experimental).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ehttps://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\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 href=\"https://github.com/yaml/pyyaml/blob/6.0.3/CHANGES\"\u003epyyaml's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e6.0.3 (2025-09-25)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/yaml/pyyaml/pull/864\"\u003eyaml/pyyaml#864\u003c/a\u003e -- Support for Python 3.14 and free-threading (experimental)\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 href=\"https://github.com/yaml/pyyaml/commit/49790e73684bebad1df05ef8d828fa12f685bffb\"\u003e\u003ccode\u003e49790e7\u003c/code\u003e\u003c/a\u003e Release 6.0.3 (\u003ca href=\"https://redirect.github.com/yaml/pyyaml/issues/889\"\u003e#889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `msal` from 1.33.0 to 1.34.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases\"\u003emsal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eMSAL Python 1.34.0\u003c/h2\u003e\n\u003cp\u003eThis release includes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAll the changes in 1.34.0b1, plus bumping the dependency \u003ccode\u003ecryptography\u003c/code\u003e upper bound, which also drops Python 3.7 support.\u003c/li\u003e\n\u003cli\u003eOfficially support Python 3.13\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eManagedIdentityClient(..., client_capabilities=[\u0026quot;cp1\u0026quot;]).acquire_token_for_client(..., claims_challenge=\u0026quot;...\u0026quot;) by \u003ca href=\"https://github.com/rayluo\"\u003e\u003ccode\u003e@​rayluo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/791\"\u003eAzureAD/microsoft-authentication-library-for-python#791\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate deprecated TokenCache API usage by \u003ca href=\"https://github.com/pvaneck\"\u003e\u003ccode\u003e@​pvaneck\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/805\"\u003eAzureAD/microsoft-authentication-library-for-python#805\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnable broker support on Linux for WSL by \u003ca href=\"https://github.com/DharshanBJ\"\u003e\u003ccode\u003e@​DharshanBJ\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/766\"\u003eAzureAD/microsoft-authentication-library-for-python#766\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix username/password validation in broker test by \u003ca href=\"https://github.com/emmanuel-ferdman\"\u003e\u003ccode\u003e@​emmanuel-ferdman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/807\"\u003eAzureAD/microsoft-authentication-library-for-python#807\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMerge release 1.32.3 back to dev branch by \u003ca href=\"https://github.com/rayluo\"\u003e\u003ccode\u003e@​rayluo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/816\"\u003eAzureAD/microsoft-authentication-library-for-python#816\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd dependency management suggestions by \u003ca href=\"https://github.com/rayluo\"\u003e\u003ccode\u003e@​rayluo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/819\"\u003eAzureAD/microsoft-authentication-library-for-python#819\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemind developers about http_cache's unstable format by \u003ca href=\"https://github.com/rayluo\"\u003e\u003ccode\u003e@​rayluo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/821\"\u003eAzureAD/microsoft-authentication-library-for-python#821\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eProperly throw MsalServiceError exception by \u003ca href=\"https://github.com/rayluo\"\u003e\u003ccode\u003e@​rayluo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/820\"\u003eAzureAD/microsoft-authentication-library-for-python#820\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove test cases to test header-less response by \u003ca href=\"https://github.com/rayluo\"\u003e\u003ccode\u003e@​rayluo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/822\"\u003eAzureAD/microsoft-authentication-library-for-python#822\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade dependency by \u003ca href=\"https://github.com/rayluo\"\u003e\u003ccode\u003e@​rayluo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/824\"\u003eAzureAD/microsoft-authentication-library-for-python#824\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLinux broker needs a specific redirect_uri by \u003ca href=\"https://github.com/rayluo\"\u003e\u003ccode\u003e@​rayluo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/826\"\u003eAzureAD/microsoft-authentication-library-for-python#826\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMSAL Python 1.33.0b1 release by \u003ca href=\"https://github.com/rayluo\"\u003e\u003ccode\u003e@​rayluo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/827\"\u003eAzureAD/microsoft-authentication-library-for-python#827\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse lowercase environment value during searching by \u003ca href=\"https://github.com/rayluo\"\u003e\u003ccode\u003e@​rayluo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/831\"\u003eAzureAD/microsoft-authentication-library-for-python#831\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd claims challenge parameter in initiate_device_flow by \u003ca href=\"https://github.com/ashok672\"\u003e\u003ccode\u003e@​ashok672\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/839\"\u003eAzureAD/microsoft-authentication-library-for-python#839\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMSAL Python 1.33.0 by \u003ca href=\"https://github.com/rayluo\"\u003e\u003ccode\u003e@​rayluo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/841\"\u003eAzureAD/microsoft-authentication-library-for-python#841\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeclare support for Python 3.13 by \u003ca href=\"https://github.com/rayluo\"\u003e\u003ccode\u003e@​rayluo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/851\"\u003eAzureAD/microsoft-authentication-library-for-python#851\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=\"https://github.com/pvaneck\"\u003e\u003ccode\u003e@​pvaneck\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/805\"\u003eAzureAD/microsoft-authentication-library-for-python#805\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/emmanuel-ferdman\"\u003e\u003ccode\u003e@​emmanuel-ferdman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/807\"\u003eAzureAD/microsoft-authentication-library-for-python#807\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ashok672\"\u003e\u003ccode\u003e@​ashok672\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/839\"\u003eAzureAD/microsoft-authentication-library-for-python#839\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.32.3...1.34.0\"\u003ehttps://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.32.3...1.34.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eMSAL Python 1.34.0b1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUse lowercase environment value during searching by \u003ca href=\"https://github.com/rayluo\"\u003e\u003ccode\u003e@​rayluo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/831\"\u003eAzureAD/microsoft-authentication-library-for-python#831\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd claims challenge parameter in initiate_device_flow by \u003ca href=\"https://github.com/ashok672\"\u003e\u003ccode\u003e@​ashok672\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/839\"\u003eAzureAD/microsoft-authentication-library-for-python#839\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=\"https://github.com/ashok672\"\u003e\u003ccode\u003e@​ashok672\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/839\"\u003eAzureAD/microsoft-authentication-library-for-python#839\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.33.0...1.34.0b1\"\u003ehttps://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.33.0...1.34.0b1\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 href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/3edd99a1c1c01c356aff48c320ac9d07382409c5\"\u003e\u003ccode\u003e3edd99a\u003c/code\u003e\u003c/a\u003e 1.34.0b1 + minor changes = 1.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/a59bd09279d3d2c03ed45776c41ace1993f12bb9\"\u003e\u003ccode\u003ea59bd09\u003c/code\u003e\u003c/a\u003e Bumping cryptography which also drops Python 3.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/e6997a9780af71e2f3809287d1ab88c08e3a3e43\"\u003e\u003ccode\u003ee6997a9\u003c/code\u003e\u003c/a\u003e Declare support for Python 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/f3651cd09f2c3f23f6bd1bdd0663183b93d69821\"\u003e\u003ccode\u003ef3651cd\u003c/code\u003e\u003c/a\u003e MSAL Python 1.34.0b1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/854136a47ebe87dbe0320bb1cd7b193eeee9270e\"\u003e\u003ccode\u003e854136a\u003c/code\u003e\u003c/a\u003e ADFS labs were decommissioned since late July 2025\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/923a7321a53df28e6acce1c5c182b59262bd9ca0\"\u003e\u003ccode\u003e923a732\u003c/code\u003e\u003c/a\u003e MSAL Python 1.33.0 (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/841\"\u003e#841\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/70fd4d1599fc15c876c8eaccd29b9f7ae73fecd6\"\u003e\u003ccode\u003e70fd4d1\u003c/code\u003e\u003c/a\u003e Add claims challenge parameter in initiate_device_flow (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/839\"\u003e#839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/b1d8cd71145a8b1889b490f9b0dfbe4b1ac3a7f1\"\u003e\u003ccode\u003eb1d8cd7\u003c/code\u003e\u003c/a\u003e Use lowercase environment value during searching\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.33.0...1.34.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `whitenoise` from 6.9.0 to 6.11.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/evansd/whitenoise/blob/main/docs/changelog.rst\"\u003ewhitenoise's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.11.0 (2025-09-18)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Django 6.0.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.10.0 (2025-09-09)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14.\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 href=\"https://github.com/evansd/whitenoise/commit/c9c06e9382b92fc959ffdfc3e2ec63057de82561\"\u003e\u003ccode\u003ec9c06e9\u003c/code\u003e\u003c/a\u003e Version 6.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/051c4e997a07fd3ae5e9f3ec092080102ab89d93\"\u003e\u003ccode\u003e051c4e9\u003c/code\u003e\u003c/a\u003e Support Django 6.0 (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/665\"\u003e#665\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/c903cc13394895cbb3926e48c7acecf364efcd26\"\u003e\u003ccode\u003ec903cc1\u003c/code\u003e\u003c/a\u003e Version 6.10.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/a81bcb0ae2dd0c5884ebadb762f46827ecb54d0f\"\u003e\u003ccode\u003ea81bcb0\u003c/code\u003e\u003c/a\u003e docs(django): use the stable version in URLs (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/626\"\u003e#626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/67b4f32b12a9700b6dcc30ced8e9ad23bf39baa1\"\u003e\u003ccode\u003e67b4f32\u003c/code\u003e\u003c/a\u003e Support Python 3.14 (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/664\"\u003e#664\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/da8d333d165be1bdd9e7decbb3a293b5e55ff608\"\u003e\u003ccode\u003eda8d333\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/663\"\u003e#663\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/800072482c0652f81864ae78c26539d3dfc765b2\"\u003e\u003ccode\u003e8000724\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/662\"\u003e#662\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/8fb339f0eaee9219b1e02a840b5fd2227cf2fbbf\"\u003e\u003ccode\u003e8fb339f\u003c/code\u003e\u003c/a\u003e Upgrade dependencies (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/661\"\u003e#661\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/adf64ddfa5329d622cbc4740aec49b7baf0df792\"\u003e\u003ccode\u003eadf64dd\u003c/code\u003e\u003c/a\u003e Use uvx to run tox on GitHub Actions (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/660\"\u003e#660\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/ad6eb204640ff69498f8fc60bd9eb876ee5771b8\"\u003e\u003ccode\u003ead6eb20\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/659\"\u003e#659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/evansd/whitenoise/compare/6.9.0...6.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `azure-storage-blob` from 12.26.0 to 12.27.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/releases\"\u003eazure-storage-blob's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eazure-storage-blob_12.27.0\u003c/h2\u003e\n\u003ch2\u003e12.27.0 (2025-10-15)\u003c/h2\u003e\n\u003ch3\u003eFeatures Added\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eStable release of features from 12.27.0b1\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated any previously documented \u003ccode\u003ekwarg\u003c/code\u003e arguments to be named keywords.\nSome public types may have been adjusted if they were previously erroneous or incomplete.\u003c/li\u003e\n\u003cli\u003eRemoved \u003ccode\u003e__enter__\u003c/code\u003e and \u003ccode\u003e__exit__\u003c/code\u003e attributes for all asynchronous client objects for raising explicit \u003ccode\u003eTypeError\u003c/code\u003e,\nand let the \u003ccode\u003eAttributeError\u003c/code\u003e raise directly.\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 href=\"https://github.com/Azure/azure-sdk-for-python/commit/0568271b3111d0430ffcbb707c5d87110fff6dfb\"\u003e\u003ccode\u003e0568271\u003c/code\u003e\u003c/a\u003e [Storage] [STG 99] Changelogs for Removing \u003ccode\u003e__enter__\u003c/code\u003e and \u003ccode\u003e__exit__\u003c/code\u003e from As...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/ad013470dc8dfdc3b92cb5b733fb927bd075f15c\"\u003e\u003ccode\u003ead01347\u003c/code\u003e\u003c/a\u003e Updated release date\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/680072aac4799c5871f735ff29fc39e288eb577f\"\u003e\u003ccode\u003e680072a\u003c/code\u003e\u003c/a\u003e Added back download_blob overloads to fix API Views (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/42769\"\u003e#42769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/49dd75d9020e6b80552ef3d8cc07cf8346eeefb1\"\u003e\u003ccode\u003e49dd75d\u003c/code\u003e\u003c/a\u003e Added changelogs for the bug fix (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/43105\"\u003e#43105\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/c8ba802480b3d03223cdbd15750a43aa9bfafdcb\"\u003e\u003ccode\u003ec8ba802\u003c/code\u003e\u003c/a\u003e [Storage] Fixed Pagination for \u003ccode\u003elist_directories_and_files\u003c/code\u003e when `name_starts...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/ad36c0cbb52421e5bb5a5d9563c09bac09349233\"\u003e\u003ccode\u003ead36c0c\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into release/storage/stg99-ga\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/1c0344e83413c7c2b5d66808f78c499be8e8a35f\"\u003e\u003ccode\u003e1c0344e\u003c/code\u003e\u003c/a\u003e Fix NFS tests (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/42894\"\u003e#42894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/20f7d18eaea2f2db36b81fbe1c19c653a882e199\"\u003e\u003ccode\u003e20f7d18\u003c/code\u003e\u003c/a\u003e Added back download_blob overloads to fix API Views (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/42769\"\u003e#42769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/28abd08c5fb966d1460dea5c1ebb25b3af138dd0\"\u003e\u003ccode\u003e28abd08\u003c/code\u003e\u003c/a\u003e [Storage] Fix Blob test_helpers.py (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/42712\"\u003e#42712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/b1a9add8ba37a1b4fc856de3059be075bf26bb2f\"\u003e\u003ccode\u003eb1a9add\u003c/code\u003e\u003c/a\u003e Fix failing storage tests (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/42680\"\u003e#42680\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/compare/azure-storage-blob_12.26.0...azure-storage-blob_12.27.0\"\u003ecompare view\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't alter it yourself. You can also trigger a rebase manually by commenting `@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 that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/bcgov/CIT/pull/1136","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/bcgov%2FCIT/issues/1136","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1136/packages"},{"uuid":"3531140795","node_id":"PR_kwDOAYRY2s6ukCft","number":5123,"state":"closed","title":"deps: bump the prod-deps group across 1 directory with 21 updates","user":"dependabot[bot]","labels":["Maintenance"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-11-03T05:29:47.000Z","author_association":null,"state_reason":null,"created_at":"2025-10-20T05:49:37.000Z","updated_at":"2025-11-03T05:29:49.000Z","time_to_close":1208410,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps: bump","group_name":"prod-deps","update_count":21,"packages":[{"name":"django","old_version":"4.2.24","new_version":"5.2.7","repository_url":"https://github.com/django/django"},{"name":"psycopg2-binary","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"hiredis","old_version":"3.2.1","new_version":"3.3.0","repository_url":"https://github.com/redis/hiredis-py"},{"name":"drf-yasg","old_version":"1.21.10","new_version":"1.21.11","repository_url":"https://github.com/axnsan12/drf-yasg"},{"name":"jellyfish","old_version":"1.2.0","new_version":"1.2.1"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"xlsxwriter","old_version":"3.2.8","new_version":"3.2.9","repository_url":"https://github.com/jmcnamara/XlsxWriter"},{"name":"xmlschema","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/sissaschool/xmlschema"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.0","repository_url":"https://github.com/lark-parser/lark"},{"name":"shapely","old_version":"2.0.7","new_version":"2.1.2","repository_url":"https://github.com/shapely/shapely"},{"name":"django-two-factor-auth","old_version":"1.17.0","new_version":"1.18.1"},{"name":"boto3","old_version":"1.40.30","new_version":"1.40.55","repository_url":"https://github.com/boto/boto3"},{"name":"uwsgi","old_version":"2.0.30","new_version":"2.0.31"},{"name":"coverage","old_version":"7.10.6","new_version":"7.11.0","repository_url":"https://github.com/nedbat/coveragepy"},{"name":"tox","old_version":"4.30.2","new_version":"4.31.0","repository_url":"https://github.com/tox-dev/tox"},{"name":"psutil","old_version":"7.0.0","new_version":"7.1.1","repository_url":"https://github.com/giampaolo/psutil"},{"name":"faker","old_version":"37.6.0","new_version":"37.11.0","repository_url":"https://github.com/joke2k/faker"},{"name":"sphinx","old_version":"7.4.7","new_version":"8.2.3","repository_url":"https://github.com/sphinx-doc/sphinx"},{"name":"sphinxcontrib-spelling","old_version":"8.0.0","new_version":"8.0.1","repository_url":"https://github.com/sphinx-contrib/spelling"},{"name":"docutils","old_version":"0.21.2","new_version":"0.22.2","repository_url":"https://github.com/rtfd/recommonmark"},{"name":"hypothesis","old_version":"6.138.16","new_version":"6.142.1","repository_url":"https://github.com/HypothesisWorks/hypothesis"}],"path":null,"ecosystem":"pip"},"body":"Bumps the prod-deps group with 21 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [django](https://github.com/django/django) | `4.2.24` | `5.2.7` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.2.1` | `3.3.0` |\n| [drf-yasg](https://github.com/axnsan12/drf-yasg) | `1.21.10` | `1.21.11` |\n| [jellyfish](https://jellyfish.jpt.sh/) | `1.2.0` | `1.2.1` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [xlsxwriter](https://github.com/jmcnamara/XlsxWriter) | `3.2.8` | `3.2.9` |\n| [xmlschema](https://github.com/sissaschool/xmlschema) | `4.1.0` | `4.2.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.0` |\n| [shapely](https://github.com/shapely/shapely) | `2.0.7` | `2.1.2` |\n| [django-two-factor-auth[phonenumbers]](https://github.com/jazzband/django-two-factor-auth) | `1.17.0` | `1.18.1` |\n| [boto3](https://github.com/boto/boto3) | `1.40.30` | `1.40.55` |\n| [uwsgi](https://uwsgi-docs.readthedocs.io/en/latest/) | `2.0.30` | `2.0.31` |\n| [coverage](https://github.com/nedbat/coveragepy) | `7.10.6` | `7.11.0` |\n| [tox](https://github.com/tox-dev/tox) | `4.30.2` | `4.31.0` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.1.1` |\n| [faker](https://github.com/joke2k/faker) | `37.6.0` | `37.11.0` |\n| [sphinx](https://github.com/sphinx-doc/sphinx) | `7.4.7` | `8.2.3` |\n| [sphinxcontrib-spelling](https://github.com/sphinx-contrib/spelling) | `8.0.0` | `8.0.1` |\n| [docutils](https://github.com/rtfd/recommonmark) | `0.21.2` | `0.22.2` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.138.16` | `6.142.1` |\n\n\nUpdates `django` from 4.2.24 to 5.2.7\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/3cff3209e35a560f94801d428cf7f2a3ecb2a051\"\u003e\u003ccode\u003e3cff320\u003c/code\u003e\u003c/a\u003e [5.2.x] Bumped version for 5.2.7 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/ed8fc39d77465eddbde1191a054ae965f6a8a584\"\u003e\u003ccode\u003eed8fc39\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2025-59682 -- Fixed potential partial directory-traversal v...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/52fbae0a4dbbe5faa59827f8f05694a0065cc135\"\u003e\u003ccode\u003e52fbae0\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2025-59681 -- Protected QuerySet.annotate(), alias(), aggre...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/1794cbf961f9ea54715fb094fe8adc80a5054947\"\u003e\u003ccode\u003e1794cbf\u003c/code\u003e\u003c/a\u003e [5.2.x] Made cosmetic edits to 5.2.7 release notes.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/81625a141e1feaaea877fc18876fdd7b6394442c\"\u003e\u003ccode\u003e81625a1\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36587\"\u003e#36587\u003c/a\u003e -- Clarified usage of \u003ccode\u003elist.insert()\u003c/code\u003e for upload handlers.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/6f3813e4b6e3db7fa3cc612c78f898142468bca9\"\u003e\u003ccode\u003e6f3813e\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/35877\"\u003e#35877\u003c/a\u003e, Refs \u003ca href=\"https://redirect.github.com/django/django/issues/36128\"\u003e#36128\u003c/a\u003e -- Documented unique constraint when migrat...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/10a2d3b837c5d8c1ac0cabd399ad7edcc66bfa8e\"\u003e\u003ccode\u003e10a2d3b\u003c/code\u003e\u003c/a\u003e [5.2.x] Added stub release notes and release date for 5.2.7, 5.1.13, and 4.2.25.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/b2773a39a34f0f0ca768fa1daaf8bf72fca56e06\"\u003e\u003ccode\u003eb2773a3\u003c/code\u003e\u003c/a\u003e [5.2.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/25508\"\u003e#25508\u003c/a\u003e -- Used QuerySet.\u003cstrong\u003erepr\u003c/strong\u003e in docs/ref/contrib/postgres/se...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/7554c54e5f02566520dee81c8b95f47429f1b553\"\u003e\u003ccode\u003e7554c54\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36581\"\u003e#36581\u003c/a\u003e -- Updated serialization examples from XML to JSON.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/2a2936c3e6444a0f37156773ca405cedaf28dea7\"\u003e\u003ccode\u003e2a2936c\u003c/code\u003e\u003c/a\u003e [5.2.x] Updated translations from Transifex.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/4.2.24...5.2.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2-binary` from 2.9.10 to 2.9.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2-binary's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix building when pg_config returns an empty string (:ticket:\u003ccode\u003e[#1599](https://github.com/psycopg/psycopg2/issues/1599)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eWheel package bundled with OpenSSL 1.1.1v.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.6\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\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 href=\"https://github.com/psycopg/psycopg2/commit/fd9ae8cad2bcfc3e7e9410e7b6f07cda8f4f05ec\"\u003e\u003ccode\u003efd9ae8c\u003c/code\u003e\u003c/a\u003e chore: bump to version 2.9.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d923840546942534f0956d9202f914fd9feac5fd\"\u003e\u003ccode\u003ed923840\u003c/code\u003e\u003c/a\u003e chore: update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d42dc7169d3cd93517e282e9ef5dc2a2b40650a2\"\u003e\u003ccode\u003ed42dc71\u003c/code\u003e\u003c/a\u003e Merge branch 'fix-1791'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4fde6560c32f06ad1304404c9f7f86148dcc4be0\"\u003e\u003ccode\u003e4fde656\u003c/code\u003e\u003c/a\u003e fix: avoid failed assert passing more arguments than placeholders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/8308c19d6af0d904b313997539ed33415990a74e\"\u003e\u003ccode\u003e8308c19\u003c/code\u003e\u003c/a\u003e fix: drop warning about the use of deprecated PyWeakref_GetObject function\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1a1eabf098a3374409bb2ab4b594777b900f396d\"\u003e\u003ccode\u003e1a1eabf\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/github-script from 7 to 8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/897af8b38beda851d7257dfc525129e37c0ec9e0\"\u003e\u003ccode\u003e897af8b\u003c/code\u003e\u003c/a\u003e build(deps): bump peter-evans/repository-dispatch from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ceefd305117113ca10e383a626e87ba0796f3638\"\u003e\u003ccode\u003eceefd30\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4dc585430cabe94cee96c5a9de0265d0f55370f1\"\u003e\u003ccode\u003e4dc5854\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1945788dcf6172bb1b9328ebc3587ccf0e6a659c\"\u003e\u003ccode\u003e1945788\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1802\"\u003e#1802\u003c/a\u003e from edgarrmondragon/cp314-wheels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.10...2.9.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `hiredis` from 3.2.1 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/hiredis-py/releases\"\u003ehiredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.3.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e by \u003ca href=\"https://github.com/zweizeichen\"\u003e\u003ccode\u003e@​zweizeichen\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\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 href=\"https://github.com/redis/hiredis-py/commit/187d0f387afed58a955a42ea8c5467100871f98b\"\u003e\u003ccode\u003e187d0f3\u003c/code\u003e\u003c/a\u003e Version 3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/3efcf037edc5a9f7abfaedbd3f60b2a03feb4787\"\u003e\u003ccode\u003e3efcf03\u003c/code\u003e\u003c/a\u003e Add Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/215\"\u003e#215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/966cede2c0ca0a8ac4fe0786571e5c230f39c36e\"\u003e\u003ccode\u003e966cede\u003c/code\u003e\u003c/a\u003e Fix assertion in reader.c (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/212\"\u003e#212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/78def309e58126fdaacb66e6fd40df9c46494062\"\u003e\u003ccode\u003e78def30\u003c/code\u003e\u003c/a\u003e Bump version to 3.3.0-dev\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/redis/hiredis-py/compare/v3.2.1...v3.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `drf-yasg` from 1.21.10 to 1.21.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/axnsan12/drf-yasg/releases\"\u003edrf-yasg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.21.11\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/917\"\u003e#917\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/916\"\u003e#916\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/926\"\u003e#926\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/922\"\u003e#922\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/928\"\u003e#928\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/923\"\u003e#923\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/848\"\u003e#848\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/903\"\u003e#903\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 href=\"https://github.com/axnsan12/drf-yasg/blob/master/docs/changelog.rst\"\u003edrf-yasg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e#########\nChangelog\n#########\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.11\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (:pr:\u003ccode\u003e917\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (:pr:\u003ccode\u003e916\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (:pr:\u003ccode\u003e926\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (:pr:\u003ccode\u003e922\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (:pr:\u003ccode\u003e928\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (:pr:\u003ccode\u003e923\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (:pr:\u003ccode\u003e848\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (:pr:\u003ccode\u003e903\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.10\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix type hints when using postponed evaluation of annotations (PEP-563) (:pr:\u003ccode\u003e840\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update JSON \u0026amp; YAML renderers to not use a \u0026quot;.\u0026quot; in their format string (:pr:\u003ccode\u003e911\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix lint errors when comparing types with == instead of is (:pr:\u003ccode\u003e868\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update swagger-ui-dist to address CVE-2021-46708 (:pr:\u003ccode\u003e904\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.9\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Added support for zoneinfo object fields (:pr:\u003ccode\u003e908\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.8\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Python 3.11 and 3.12 support (:pr:\u003ccode\u003e891\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix pkg_resources version lookups for Python 3.9+ (:pr:\u003ccode\u003e891\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.7\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cem\u003eRelease date: Jul 20, 2023\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Added \u003ccode\u003edrf_yasg.inspectors.query.DrfAPICompatInspector\u003c/code\u003e (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Added \u003ccode\u003eDrfAPICompatInspector\u003c/code\u003e to serve as a replacement \u003ccode\u003eCoreAPICompatInspector\u003c/code\u003e (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow \u003ccode\u003eDEFAULT_SPEC_RENDERERS\u003c/code\u003e default renderers to be overriden in the settings (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fixed redoc source mapping (:pr:\u003ccode\u003e859\u003c/code\u003e)\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/f8cb2db70ca42fb709565f89fdd152b614dc865d\"\u003e\u003ccode\u003ef8cb2db\u003c/code\u003e\u003c/a\u003e Add version 1.21.11 details to the changelog (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/939\"\u003e#939\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/0c6d08d5ebc52e802e5e1acbabbadfe179d4087d\"\u003e\u003ccode\u003e0c6d08d\u003c/code\u003e\u003c/a\u003e Update the ruff lint rules (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/920\"\u003e#920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/055a74dc10128fd55a48f7f74f6b58ffcc48e83d\"\u003e\u003ccode\u003e055a74d\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 in the github-actions group (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/937\"\u003e#937\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/a8813ace8e39cc2c28a916053c74415e10db1425\"\u003e\u003ccode\u003ea8813ac\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 in the github-actions group (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/936\"\u003e#936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/9f4b44943ad930e23e979b80090102dfca1d588b\"\u003e\u003ccode\u003e9f4b449\u003c/code\u003e\u003c/a\u003e Restore the live demo and replace heroku with apprunner (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/935\"\u003e#935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/298325122e11aeba87e6c8f16604e45d870649e7\"\u003e\u003ccode\u003e2983251\u003c/code\u003e\u003c/a\u003e fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/a74689370c393432debbe6285b3afb3e462aee58\"\u003e\u003ccode\u003ea746893\u003c/code\u003e\u003c/a\u003e allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/916\"\u003e#916\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/e747ad6db413c2d20c3eab79739e22ffde5930c7\"\u003e\u003ccode\u003ee747ad6\u003c/code\u003e\u003c/a\u003e Fixes issue with filter parameters not appearing in Swagger after upgrading t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/ee3c871501dad5f0585c8c62ac0659fedab999a1\"\u003e\u003ccode\u003eee3c871\u003c/code\u003e\u003c/a\u003e update Python, Django, and DRF versions \u0026amp; packaging configuration (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/922\"\u003e#922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/be6eeedcbebcb45151a9d18018d880d1fcdcf143\"\u003e\u003ccode\u003ebe6eeed\u003c/code\u003e\u003c/a\u003e Remove usage of pkg_resources (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/928\"\u003e#928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/axnsan12/drf-yasg/compare/1.21.10...1.21.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jellyfish` from 1.2.0 to 1.2.1\n\nUpdates `pyyaml` from 6.0.2 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/yaml/pyyaml/releases\"\u003epyyaml's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14 and free-threading (experimental).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ehttps://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\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 href=\"https://github.com/yaml/pyyaml/blob/6.0.3/CHANGES\"\u003epyyaml's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e6.0.3 (2025-09-25)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/yaml/pyyaml/pull/864\"\u003eyaml/pyyaml#864\u003c/a\u003e -- Support for Python 3.14 and free-threading (experimental)\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 href=\"https://github.com/yaml/pyyaml/commit/49790e73684bebad1df05ef8d828fa12f685bffb\"\u003e\u003ccode\u003e49790e7\u003c/code\u003e\u003c/a\u003e Release 6.0.3 (\u003ca href=\"https://redirect.github.com/yaml/pyyaml/issues/889\"\u003e#889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xlsxwriter` from 3.2.8 to 3.2.9\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jmcnamara/XlsxWriter/blob/main/Changes\"\u003exlsxwriter's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.2.9 - September 16 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved the \u003ccode\u003epy.typed\u003c/code\u003e file since it was causing a lot of downstream CI\nfailures where consumers weren't handling the xlsxwriter types correctly or\ntaking them into account.\u003c/p\u003e\n\u003cp\u003eThe file will be re-added once the xlsxwriter typing is more comprehensive.\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 href=\"https://github.com/jmcnamara/XlsxWriter/commit/e943bee8c9cdf0661cfdb83d5497e0725390e41e\"\u003e\u003ccode\u003ee943bee\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/392bd9e6572785394c6553e2d4f7ae2bb80782f4\"\u003e\u003ccode\u003e392bd9e\u003c/code\u003e\u003c/a\u003e typing: remove py.typed file\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/jmcnamara/XlsxWriter/compare/RELEASE_3.2.8...RELEASE_3.2.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xmlschema` from 4.1.0 to 4.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sissaschool/xmlschema/releases\"\u003exmlschema's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.2.0 (2025-10-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd arguments validation for schemas and validation methods (by validation contexts)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSchemaSettings\u003c/code\u003e dataclass for storing read-only settings for schema instances\nand for managing package default settings\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eblock\u003c/em\u003e argument to \u003ccode\u003eXMLResource\u003c/code\u003e class (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/464\"\u003e#464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_SCHEMA_SOURCES\u003c/em\u003e package limit (\u003ccode\u003e1000\u003c/code\u003e, applied to \u003ccode\u003eXsdGlobals\u003c/code\u003e global maps instances)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_XML_ELEMENTS\u003c/em\u003e package limit (\u003ccode\u003e1,000,000\u003c/code\u003e, applied to non-lazy \u003ccode\u003eXMLResource\u003c/code\u003e instances)\u003c/li\u003e\n\u003cli\u003eReduce \u003cem\u003eMAX_XML_DEPTH\u003c/em\u003e limit to 1000 and apply it to all \u003ccode\u003eXMLResource\u003c/code\u003e instances\u003c/li\u003e\n\u003cli\u003eFix for substitute match in case of unexpected child (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\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 href=\"https://github.com/sissaschool/xmlschema/blob/master/CHANGELOG.rst\"\u003exmlschema's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ccode\u003ev4.2.0\u003c/code\u003e_ (2025-10-14)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd arguments validation for schemas and validation methods (by validation contexts)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSchemaSettings\u003c/code\u003e dataclass for storing read-only settings for schema instances\nand for managing package default settings\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eblock\u003c/em\u003e argument to \u003ccode\u003eXMLResource\u003c/code\u003e class (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/464\"\u003e#464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_SCHEMA_SOURCES\u003c/em\u003e package limit (\u003ccode\u003e1000\u003c/code\u003e, applied to \u003ccode\u003eXsdGlobals\u003c/code\u003e global maps instances)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_XML_ELEMENTS\u003c/em\u003e package limit (\u003ccode\u003e1,000,000\u003c/code\u003e, applied to non-lazy \u003ccode\u003eXMLResource\u003c/code\u003e instances)\u003c/li\u003e\n\u003cli\u003eReduce \u003cem\u003eMAX_XML_DEPTH\u003c/em\u003e limit to 1000 and apply it to all \u003ccode\u003eXMLResource\u003c/code\u003e instances\u003c/li\u003e\n\u003cli\u003eFix for substitute match in case of unexpected child (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\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 href=\"https://github.com/sissaschool/xmlschema/commit/2783030fcdcd5307563822906862a9e7088931b2\"\u003e\u003ccode\u003e2783030\u003c/code\u003e\u003c/a\u003e Bump minor release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/7c77a12f0fe16c8da0256a0f13281a03e4a0f717\"\u003e\u003ccode\u003e7c77a12\u003c/code\u003e\u003c/a\u003e Include publiccode.yml validation workflow for CI and README changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/04c19d54d4578f34a0c04d6cc82daa8d3ef9d90c\"\u003e\u003ccode\u003e04c19d5\u003c/code\u003e\u003c/a\u003e Fix XsdGroup.match_element (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/dd4f279e56b8a5ce89f78a6c88337f5032af0b2f\"\u003e\u003ccode\u003edd4f279\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/463\"\u003e#463\u003c/a\u003e from publiccode-pr-bot/chore/add-publiccode-parser-ac...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/1bd7aa6eebf4947e7ae76e47a2f706b58fed22cd\"\u003e\u003ccode\u003e1bd7aa6\u003c/code\u003e\u003c/a\u003e Update GitHub workflow for CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/76b0f67e900777166bcd3773cc109efae933682d\"\u003e\u003ccode\u003e76b0f67\u003c/code\u003e\u003c/a\u003e Patch mypy tests with protocols\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/28727bb0af89f129d59772550c6998164c37aeff\"\u003e\u003ccode\u003e28727bb\u003c/code\u003e\u003c/a\u003e Update docs and release info\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/e4131eaf6bc1a223292f3f19e78573a4317d131a\"\u003e\u003ccode\u003ee4131ea\u003c/code\u003e\u003c/a\u003e Add from_settings() class method to schemas\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/0aea8debef13b62156e7297bdc54198057ea3611\"\u003e\u003ccode\u003e0aea8de\u003c/code\u003e\u003c/a\u003e Rewrite validation contexts as normal classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/d443d7ba0e3de8fad6d6df8f314b12735af4bac3\"\u003e\u003ccode\u003ed443d7b\u003c/code\u003e\u003c/a\u003e Full validation of context arguments\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sissaschool/xmlschema/compare/v4.1.0...v4.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lark` from 1.2.2 to 1.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lark-parser/lark/releases\"\u003elark's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.3.0 - Introduces text-slices, Earley fix, and various small improvements\u003c/h2\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLark can now parse in sections of strings, using \u003ccode\u003eTextSlice\u003c/code\u003e, as a faster alternative to creating a \u0026quot;copy-slice\u0026quot; with \u003ccode\u003es[i:j]\u003c/code\u003e. \u003ca href=\"https://lark-parser.readthedocs.io/en/latest/classes.html#lark.utils.TextSlice\"\u003eLearn more\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded support to \u003ccode\u003ematch\u003c/code\u003e on Tree instances\u003c/li\u003e\n\u003cli\u003eWhen serializing a Lark instance, added the option to include the grammar object (before compilation).\u003c/li\u003e\n\u003cli\u003eAdded convenience method \u003ccode\u003eTree.find_token()\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix of an edge case in Earley related to representation of ambiguity.\u003c/li\u003e\n\u003cli\u003eBugfixes in the standalone parser related to imports\u003c/li\u003e\n\u003cli\u003eBugfix in indenter - now dedents always contain line information\u003c/li\u003e\n\u003cli\u003eVarious small bugfixes (see PR list below)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFull list of PRs\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDocs: Rephrase v_args() documentation to underline it only applies to Transformer classes by \u003ca href=\"https://github.com/skepppy\"\u003e\u003ccode\u003e@​skepppy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1458\"\u003elark-parser/lark#1458\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTiny refactor for PR \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1451\"\u003e#1451\u003c/a\u003e by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1459\"\u003elark-parser/lark#1459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEarley: share nodes created by the scanner with the completer by \u003ca href=\"https://github.com/chanicpanic\"\u003e\u003ccode\u003e@​chanicpanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1451\"\u003elark-parser/lark#1451\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter error in Lark.parse when using on_error when parser!=lalr (issue \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1311\"\u003e#1311\u003c/a\u003e) by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1460\"\u003elark-parser/lark#1460\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eSymbol.__eq__\u003c/code\u003e to return false when comparing with None by \u003ca href=\"https://github.com/weaversam8\"\u003e\u003ccode\u003e@​weaversam8\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1481\"\u003elark-parser/lark#1481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMention internal/external transformers in the documentation by \u003ca href=\"https://github.com/odanoburu\"\u003e\u003ccode\u003e@​odanoburu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1486\"\u003elark-parser/lark#1486\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Tree.find_token() method by \u003ca href=\"https://github.com/makukha\"\u003e\u003ccode\u003e@​makukha\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1467\"\u003elark-parser/lark#1467\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eType \u003ccode\u003eTerminal.__init__\u003c/code\u003e by \u003ca href=\"https://github.com/Liam-DeVoe\"\u003e\u003ccode\u003e@​Liam-DeVoe\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1503\"\u003elark-parser/lark#1503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd guidance on handling comments in languages with significant indentation by \u003ca href=\"https://github.com/nchammas\"\u003e\u003ccode\u003e@​nchammas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1502\"\u003elark-parser/lark#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Small fix for PR 1507 by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1508\"\u003elark-parser/lark#1508\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd note on binding power of numeric quantifiers by \u003ca href=\"https://github.com/414owen\"\u003e\u003ccode\u003e@​414owen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1507\"\u003elark-parser/lark#1507\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrap functools.partial in staticmethod() to add compatibility with Python 3.14 by \u003ca href=\"https://github.com/hrnciar\"\u003e\u003ccode\u003e@​hrnciar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1483\"\u003elark-parser/lark#1483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix generic type of Transformer_InPlaceRecursive by \u003ca href=\"https://github.com/lbhm\"\u003e\u003ccode\u003e@​lbhm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1518\"\u003elark-parser/lark#1518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded TextSlice; Lark can now parse/lex a text-slice by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1452\"\u003elark-parser/lark#1452\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport match on tree by \u003ca href=\"https://github.com/colmmurphyxyz\"\u003e\u003ccode\u003e@​colmmurphyxyz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1521\"\u003elark-parser/lark#1521\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: Updated link of DSL article to a new version by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1529\"\u003elark-parser/lark#1529\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebetter error messages for shift/reduct conflicts by \u003ca href=\"https://github.com/skogsbaer\"\u003e\u003ccode\u003e@​skogsbaer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1531\"\u003elark-parser/lark#1531\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSerialize Lark.grammar (fixes issue \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1472\"\u003e#1472\u003c/a\u003e) by \u003ca href=\"https://github.com/NasalDaemon\"\u003e\u003ccode\u003e@​NasalDaemon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1506\"\u003elark-parser/lark#1506\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes for PR \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1506\"\u003e#1506\u003c/a\u003e, which adds the option to cache the grammar definition by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1540\"\u003elark-parser/lark#1540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix in indenter - now always creating dedents with line information by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1547\"\u003elark-parser/lark#1547\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix: issue when unpickling in the standalone parser, due to lingering Token instances by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1553\"\u003elark-parser/lark#1553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInclude missing import in standalone parser by \u003ca href=\"https://github.com/pdeibert\"\u003e\u003ccode\u003e@​pdeibert\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1541\"\u003elark-parser/lark#1541\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVersion bump (1.3.0) by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1554\"\u003elark-parser/lark#1554\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=\"https://github.com/skepppy\"\u003e\u003ccode\u003e@​skepppy\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1458\"\u003elark-parser/lark#1458\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/weaversam8\"\u003e\u003ccode\u003e@​weaversam8\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1481\"\u003elark-parser/lark#1481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/odanoburu\"\u003e\u003ccode\u003e@​odanoburu\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1486\"\u003elark-parser/lark#1486\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/makukha\"\u003e\u003ccode\u003e@​makukha\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1467\"\u003elark-parser/lark#1467\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Liam-DeVoe\"\u003e\u003ccode\u003e@​Liam-DeVoe\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1503\"\u003elark-parser/lark#1503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/414owen\"\u003e\u003ccode\u003e@​414owen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1507\"\u003elark-parser/lark#1507\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hrnciar\"\u003e\u003ccode\u003e@​hrnciar\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1483\"\u003elark-parser/lark#1483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lbhm\"\u003e\u003ccode\u003e@​lbhm\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1518\"\u003elark-parser/lark#1518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/colmmurphyxyz\"\u003e\u003ccode\u003e@​colmmurphyxyz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1521\"\u003elark-parser/lark#1521\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 href=\"https://github.com/lark-parser/lark/commit/e332c2df2f7d400460a5f1204d9bc36b49b25635\"\u003e\u003ccode\u003ee332c2d\u003c/code\u003e\u003c/a\u003e Version bump (1.3.0)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/aa5666c30e255257b0c36ef93c80d800f84a04ca\"\u003e\u003ccode\u003eaa5666c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1541\"\u003e#1541\u003c/a\u003e from pdeibert/master\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/41934d390dd7661a82df5ed28bd75655fe797cf7\"\u003e\u003ccode\u003e41934d3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1553\"\u003e#1553\u003c/a\u003e from lark-parser/issue1552\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/23c95ea33f76a1bdba686bb1e79a0bd25f3c4d08\"\u003e\u003ccode\u003e23c95ea\u003c/code\u003e\u003c/a\u003e Bugfix: issue when unpickling in the standalone parser, due to lingering\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/d1a456dd365603bbcb4b5b4ec2c29e6096b82f59\"\u003e\u003ccode\u003ed1a456d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1547\"\u003e#1547\u003c/a\u003e from lark-parser/dev\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/2e3108e770aede14000e010322c501c9066dbabc\"\u003e\u003ccode\u003e2e3108e\u003c/code\u003e\u003c/a\u003e UnexpectedInput.pos_in_stream now defaults to 0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/0d248fc59f03ac82c26d12b4b6a86733cffe4d52\"\u003e\u003ccode\u003e0d248fc\u003c/code\u003e\u003c/a\u003e Fix in indenter - now always creating dedents with line information\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/c2e2048bbdb07f6efd0b36252ee90e419e0ee292\"\u003e\u003ccode\u003ec2e2048\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1540\"\u003e#1540\u003c/a\u003e from lark-parser/pr1506\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/2f286cc25a626c7107ad63bc69fcaf213e330433\"\u003e\u003ccode\u003e2f286cc\u003c/code\u003e\u003c/a\u003e Added tests for cache_grammar\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/8a0b02d78989ea328ce0726aa551de9689419dce\"\u003e\u003ccode\u003e8a0b02d\u003c/code\u003e\u003c/a\u003e Small fix, comments, added some types\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lark-parser/lark/compare/1.2.2...1.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `shapely` from 2.0.7 to 2.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/shapely/shapely/releases\"\u003eshapely's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.1.2\u003c/h2\u003e\n\u003cp\u003eWheels are available for Python 3.14 (and still include GEOS 3.13.1).\u003c/p\u003e\n\u003ch2\u003e2.1.1\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix performance degradation calling shapely functions (caused by deprecation of certain positional arguments) (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2283\"\u003e#2283\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix crash caused by \u003ccode\u003efrom_ragged_array()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2291\"\u003e#2291\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix compilation error building with recent LLVM toolchain (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2293\"\u003e#2293\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFor a full changelog , see \u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-1\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.1.0\u003c/h2\u003e\n\u003cp\u003eShapely 2.1.0 is a feature release with various new functions, improvements and bug fixes. Highlights include initial support for geometries with M or ZM values, functionality for coverage validation and simplification, and a set of new top-level functions.\u003c/p\u003e\n\u003cp\u003eShapely supports Python \u0026gt;= 3.10, and binary wheels on PyPI include GEOS 3.13.1 and are now also provided for musllinux (Alpine) x86_64 platforms.\u003c/p\u003e\n\u003cp\u003eFor a full changelog, see \u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.1.0rc1\u003c/h2\u003e\n\u003cp\u003eShapely version 2.1.0 is a major release featuring various new functions, improvements and bug fixes. This is a first release candidate.\u003c/p\u003e\n\u003cp\u003eFor a full changelog, see \u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0-unreleased\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0-unreleased\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 href=\"https://github.com/shapely/shapely/blob/main/CHANGES.txt\"\u003eshapely's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.1.2 (2025-09-24)\u003c/h2\u003e\n\u003cp\u003eWheels are available for Python 3.14 (and still include GEOS 3.13.1).\u003c/p\u003e\n\u003ch2\u003e2.1.1 (2025-05-19)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix performance degradation calling shapely functions (caused by deprecation\nof certain positional arguments) (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2283\"\u003e#2283\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix crash caused by \u003ccode\u003efrom_ragged_array()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2291\"\u003e#2291\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix compilation error building with recent LLVM toolchain (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2293\"\u003e#2293\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.0 (2025-04-03)\u003c/h2\u003e\n\u003cp\u003eShapely 2.1.0 is a feature release with various new functions,\nimprovements and bug fixes. Highlights include initial support for geometries\nwith M or ZM values, functionality for coverage validation and\nsimplification, and a set of new top-level functions.\u003c/p\u003e\n\u003cp\u003eShapely supports Python \u0026gt;= 3.10, and binary wheels on PyPI include GEOS 3.13.1\nand are now also provided for musllinux (Alpine) x86_64 platforms.\u003c/p\u003e\n\u003cp\u003eFor a full changelog, see\n\u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/5fb639d1056888d135fe56bfaf750c9648addeec\"\u003e\u003ccode\u003e5fb639d\u003c/code\u003e\u003c/a\u003e RLS: 2.1.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/70509a1bee5ebd6637cda98b5c9d83707c341888\"\u003e\u003ccode\u003e70509a1\u003c/code\u003e\u003c/a\u003e DOC/RLS: indicate Python 3.14 support in pyproject.toml and release notes for...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/5c572b622027f6917c75afd728f201a144fb597d\"\u003e\u003ccode\u003e5c572b6\u003c/code\u003e\u003c/a\u003e CI: add testing with GEOS 3.14 and Python 3.14 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2330\"\u003e#2330\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/a9093336b1ea77559d44148a7f1ed92ab3bc2999\"\u003e\u003ccode\u003ea909333\u003c/code\u003e\u003c/a\u003e Bump pypa/cibuildwheel from 3.1.3 to 3.2.0 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2328\"\u003e#2328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/2086d4428e29da17bafc684acbfb04bb537ce573\"\u003e\u003ccode\u003e2086d44\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2326\"\u003e#2326\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/50c1cf30be0e37081991b6d5a5dc3531cfbe35da\"\u003e\u003ccode\u003e50c1cf3\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4 to 5 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2321\"\u003e#2321\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/39490ab685a42a2c189f2ce7a45b7d07053e8e8f\"\u003e\u003ccode\u003e39490ab\u003c/code\u003e\u003c/a\u003e TST: update test_coverage_union_overlapping_inputs for upstream GEOS change (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/5ef437c898b54f723ad0e4a8b6b513b9cc5d68a2\"\u003e\u003ccode\u003e5ef437c\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2320\"\u003e#2320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/7b5ff3d24b7889d35f96ee3ae9ec26250b3d6147\"\u003e\u003ccode\u003e7b5ff3d\u003c/code\u003e\u003c/a\u003e BLD: add Python 3.14 wheels [Bump pypa/cibuildwheel from 3.0.1 to 3.1.3] (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2316\"\u003e#2316\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/480dbb14f47b685e95c03654983405185c15babd\"\u003e\u003ccode\u003e480dbb1\u003c/code\u003e\u003c/a\u003e TST: update frechet_distance densify test for latest GEOS main (densify\u0026gt;0.001...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/shapely/shapely/compare/2.0.7...2.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-two-factor-auth[phonenumbers]` from 1.17.0 to 1.18.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jazzband/django-two-factor-auth/releases\"\u003edjango-two-factor-auth[phonenumbers]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.18.1\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew translations for Azerbaijani and Serbian\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.18.0\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocumentation for setting yubikey support forgot to inform users they would\nneed to add our yubikey plugin to \u003ccode\u003eINSTALLED_APPS\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRemove reference to release-notes that had been missed, docs now build\nwithout warnings\u003c/li\u003e\n\u003cli\u003eWebAuthn: avoid submitting the wrong form\u003c/li\u003e\n\u003cli\u003eEmail gateway: tell user to use correct django-otp plugin\u003c/li\u003e\n\u003cli\u003eFix infinite redirect on admin site with AdminSiteOTPRequiredMixin\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow qrcode 8.x.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ephonenumbers\u003c/code\u003e is no longer a hard requirement for users who don't require it.\u003c/li\u003e\n\u003cli\u003eChange \u003ccode\u003eEmailDevice.confirmed\u003c/code\u003e default to \u003ccode\u003eFalse\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAny \u003ccode\u003eStaticDevice\u003c/code\u003e can be used as backup tokens, not just those labelled\n\u0026quot;backup\u0026quot;\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Django 5.2\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.13\u003c/li\u003e\n\u003cli\u003eDjango check for \u003ccode\u003eINSTALLED_APPS\u003c/code\u003e to make sure \u003ccode\u003etwo_factor\u003c/code\u003e is present and\ncomes before its plugins\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8\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 href=\"https://github.com/jazzband/django-two-factor-auth/blob/master/CHANGELOG.md\"\u003edjango-two-factor-auth[phonenumbers]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.18.1\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew translations for Azerbaijani and Serbian\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.18.0\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocumentation for setting yubikey support forgot to inform users they would\nneed to add our yubikey plugin to \u003ccode\u003eINSTALLED_APPS\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRemove reference to release-notes that had been missed, docs now build\nwithout warnings\u003c/li\u003e\n\u003cli\u003eWebAuthn: avoid submitting the wrong form\u003c/li\u003e\n\u003cli\u003eEmail gateway: tell user to use correct django-otp plugin\u003c/li\u003e\n\u003cli\u003eFix infinite redirect on admin site with AdminSiteOTPRequiredMixin\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow qrcode 8.x.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ephonenumbers\u003c/code\u003e is no longer a hard requirement for users who don't require it.\u003c/li\u003e\n\u003cli\u003eChange \u003ccode\u003eEmailDevice.confirmed\u003c/code\u003e default to \u003ccode\u003eFalse\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAny \u003ccode\u003eStaticDevice\u003c/code\u003e can be used as backup tokens, not just those labelled\n\u0026quot;backup\u0026quot;\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Django 5.2\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.13\u003c/li\u003e\n\u003cli\u003eDjango check for \u003ccode\u003eINSTALLED_APPS\u003c/code\u003e to make sure \u003ccode\u003etwo_factor\u003c/code\u003e is present and\ncomes before its plugins\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8\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 href=\"https://github.com/jazzband/django-two-factor-auth/commit/38a6ba7b6fb579b3465d66f33c4e2f25ffad28c0\"\u003e\u003ccode\u003e38a6ba7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/django-two-factor-auth/issues/778\"\u003e#778\u003c/a\u003e from claudep/missing_trans\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/004c93839e331e72740c4e6e73516d05afbca855\"\u003e\u003ccode\u003e004c938\u003c/code\u003e\u003c/a\u003e Fixes \u003ca href=\"https://redirect.github.com/jazzband/django-two-factor-auth/issues/777\"\u003e#777\u003c/a\u003e - Add missing Azerbaijani and Serbian translations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/59f44669649f281ca9b25a2beba438609f72a3a5\"\u003e\u003ccode\u003e59f4466\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/django-two-factor-auth/issues/776\"\u003e#776\u003c/a\u003e from jazzband/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/d5517043e9f9cdec4e4850f0f33e28eea485fb79\"\u003e\u003ccode\u003ed551704\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/7405b6fd545ddbbd67d28292fca2c8ef6cf0de92\"\u003e\u003ccode\u003e7405b6f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/django-two-factor-auth/issues/774\"\u003e#774\u003c/a\u003e from moggers87/release-1.18.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/b47945c8188e46ad2f64bf929c1a745682b6de15\"\u003e\u003ccode\u003eb47945c\u003c/code\u003e\u003c/a\u003e Update CHANGELOG with latest changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/b20741c609ca3fd3fe52dd3cfe1ebc3e98ce2383\"\u003e\u003ccode\u003eb20741c\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into release-1.18.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/966dab4c5bdf11b88e42bc820c8adea684b4e0d0\"\u003e\u003ccode\u003e966dab4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/django-two-factor-auth/issues/775\"\u003e#775\u003c/a\u003e from claudep/phoneplugin2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/9c72f871f0ebd3bede20d823372b02608480c4c7\"\u003e\u003ccode\u003e9c72f87\u003c/code\u003e\u003c/a\u003e Refs \u003ca href=\"https://redirect.github.com/jazzband/django-two-factor-auth/issues/469\"\u003e#469\u003c/a\u003e - Only import phonenumber functions when plugin is installed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/ec0923bf400d6faf3c82acff312c1fe5add70047\"\u003e\u003ccode\u003eec0923b\u003c/code\u003e\u003c/a\u003e Pull latest translations from Transifex\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jazzband/django-two-factor-auth/compare/1.17.0...1.18.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `boto3` from 1.40.30 to 1.40.55\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/eb5f82773991f715b62dc38f6801d76d1035a868\"\u003e\u003ccode\u003eeb5f827\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.55'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/52a3496b66a6ff66755c4315c55f22b07826e758\"\u003e\u003ccode\u003e52a3496\u003c/code\u003e\u003c/a\u003e Bumping version to 1.40.55\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/0c90e25258ee214b06e96f3b458a6e0d843a990a\"\u003e\u003ccode\u003e0c90e25\u003c/code\u003e\u003c/a\u003e Add changelog entries from botocore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/2f92c15bdda649d95fce1d865c65f81dfab5f3f4\"\u003e\u003ccode\u003e2f92c15\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.54'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/eaf0158a0a0b80633d2e6a5c58bf78c1fbfb4bd1\"\u003e\u003ccode\u003eeaf0158\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.54' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/574a0d474790a8c548f7b8618b29a874fffe10e6\"\u003e\u003ccode\u003e574a0d4\u003c/code\u003e\u003c/a\u003e Bumping version to 1.40.54\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/1ada209aa81b0919af8c7df09c04efa7b4bfa626\"\u003e\u003ccode\u003e1ada209\u003c/code\u003e\u003c/a\u003e Add changelog entries from botocore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/9a9288aae8f60bc20679b57291fd642af33f4102\"\u003e\u003ccode\u003e9a9288a\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.53'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/7d581c32f273a4835fe8fc67917e856f2bb2a1c3\"\u003e\u003ccode\u003e7d581c3\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.53' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/312bc51267cbf62136b2f37543e88aa46f770506\"\u003e\u003ccode\u003e312bc51\u003c/code\u003e\u003c/a\u003e Bumping version to 1.40.53\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boto/boto3/compare/1.40.30...1.40.55\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uwsgi` from 2.0.30 to 2.0.31\n\nUpdates `coverage` from 7.10.6 to 7.11.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.11.0 — 2025-10-15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9, declared support for Python 3.15 alpha.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _changes_7-10-7:\u003c/p\u003e\n\u003ch2\u003eVersion 7.10.7 — 2025-09-21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance: with branch coverage in large files, generating HTML, JSON, or\nLCOV reports could take far too long due to some quadratic behavior when\ncreating the function and class index pages.  This is now fixed, closing\n\u003ccode\u003eissue 2048\u003c/code\u003e_.  Thanks to Daniel Diniz for help diagnosing the problem.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMost warnings and a few errors now have links to a page in the docs\nexplaining the specific message.  Closes \u003ccode\u003eissue 1921\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1921: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1921\"\u003enedbat/coveragepy#1921\u003c/a\u003e\n.. _issue 2048: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2048\"\u003enedbat/coveragepy#2048\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-10-6:\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 href=\"https://github.com/nedbat/coveragepy/commit/20ef00b4abc33a52ffcb10de4d3144e29dbea6a3\"\u003e\u003ccode\u003e20ef00b\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/5edf8ebf1f9754b32bad92d4826ed651614d9b94\"\u003e\u003ccode\u003e5edf8eb\u003c/code\u003e\u003c/a\u003e docs: prep for 7.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/2c023ae7a1c50e375d20c31b0b8c693416ba92a5\"\u003e\u003ccode\u003e2c023ae\u003c/code\u003e\u003c/a\u003e build: 3.15 is supported\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/2f1b95b0bd913397da3236155ca78e2117731247\"\u003e\u003ccode\u003e2f1b95b\u003c/code\u003e\u003c/a\u003e refactor: no need for _BaseCoverageException\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/72b1bcc77e0062eefaf9d1da40c6b8c2ef0ec27e\"\u003e\u003ccode\u003e72b1bcc\u003c/code\u003e\u003c/a\u003e build: test light-threads on all versions of Python\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/16e93797527eada3417afc439fc4b28a432d6efc\"\u003e\u003ccode\u003e16e9379\u003c/code\u003e\u003c/a\u003e refactor: move core tests to their own file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/bc8875db8f98439c046f4c141cb7aecdaa8d1f56\"\u003e\u003ccode\u003ebc8875d\u003c/code\u003e\u003c/a\u003e test: change a test to be in-process so metacov can capture its work\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/8e5d5b1bd53147e8618019191a062d2b86747355\"\u003e\u003ccode\u003e8e5d5b1\u003c/code\u003e\u003c/a\u003e build: tweak some version info\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/b0236dffef02f1aa219326b96230bdf26b9f5e6c\"\u003e\u003ccode\u003eb0236df\u003c/code\u003e\u003c/a\u003e test: more tests for core selection, and some refactoring of them\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/56edde623ae497c3638e608ef6803583c1db8720\"\u003e\u003ccode\u003e56edde6\u003c/code\u003e\u003c/a\u003e build: next version will be 7.11.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nedbat/coveragepy/compare/7.10.6...7.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tox` from 4.30.2 to 4.31.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/tox/releases\"\u003etox's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.31.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAddress a type-conversion noted during doc builds by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3623\"\u003etox-dev/tox#3623\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd 3.14, drop 3.9 and support | union style by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3624\"\u003etox-dev/tox#3624\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/tox/compare/4.30.3...4.31.0\"\u003ehttps://github.com/tox-dev/tox/compare/4.30.3...4.31.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.30.3\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIsolate the test suite from any existing \u003ccode\u003eDEFAULT_CONFIG_FILE\u003c/code\u003e file by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3612\"\u003etox-dev/tox#3612\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix none config file issue 3611 by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3613\"\u003etox-dev/tox#3613\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3608\"\u003etox-dev/tox#3608\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix incorrect type annotations in PythonPathPackageWithDeps (fixes \u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3607\"\u003e#3607\u003c/a\u003e) by \u003ca href=\"https://github.com/PreistlyPython\"\u003e\u003ccode\u003e@​PreistlyPython\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3616\"\u003etox-dev/tox#3616\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3615\"\u003etox-dev/tox#3615\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=\"https://github.com/PreistlyPython\"\u003e\u003ccode\u003e@​PreistlyPython\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3616\"\u003etox-dev/tox#3616\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/tox/compare/4.30.2...4.30.3\"\u003ehttps://github.com/tox-dev/tox/compare/4.30.2...4.30.3\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 href=\"https://github.com/tox-dev/tox/blob/main/docs/changelog.rst\"\u003etox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.31.0 (2025-10-09)\u003c/h2\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch2\u003ev4.30.3 (2025-10-02)\u003c/h2\u003e\n\u003cp\u003eBugfixes - 4.30.3\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e- Fix incorrect type annotation in ``PythonPathPackageWithDeps.__init__()``\n  where ``deps`` was annotated as ``Sequence[Package]`` but should be\n  ``Sequence[Requirement]`` to match actual runtime usage - by :user:`PreistlyPython` (:issue:`3607`)\n- Fix ``None`` appearing as the config filename in error output\n  when the user's default config file is corrupt. - by :user:`kurtmckee` (:issue:`3611`)\n\u003c/code\u003e\u003c/pre\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 href=\"https://github.com/tox-dev/tox/commit/eac78c1b6376ff37967b1f18a1d985ce3987c3c0\"\u003e\u003ccode\u003eeac78c1\u003c/code\u003e\u003c/a\u003e release 4.31.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/733f5aac5808cc45404aab592bbb27768b8f5a68\"\u003e\u003ccode\u003e733f5aa\u003c/code\u003e\u003c/a\u003e Add 3.14, drop 3.9 and support | union style (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3624\"\u003e#3624\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/b5f1cd8be910505df5a61699568150ee9b33a26f\"\u003e\u003ccode\u003eb5f1cd8\u003c/code\u003e\u003c/a\u003e Address a type-conversion noted during doc builds (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3623\"\u003e#3623\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/1f284224a1e30c0bf14efc56d46856e1c4154c23\"\u003e\u003ccode\u003e1f28422\u003c/code\u003e\u003c/a\u003e Bump astral-sh/setup-uv from 6 to 7 (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3620\"\u003e#3620\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/01442da183f81b63846182110f9cd697ad2a0eb5\"\u003e\u003ccode\u003e01442da\u003c/code\u003e\u003c/a\u003e release 4.30.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/984dc78b77278ec7640f301471f1b98756833ac8\"\u003e\u003ccode\u003e984dc78\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3615\"\u003e#3615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/660adb5ce9cbac73082231baa2b3a12494121b48\"\u003e\u003ccode\u003e660adb5\u003c/code\u003e\u003c/a\u003e Fix incorrect type annotations in PythonPathPackageWithDeps (fixes \u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3607\"\u003e#3607\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3\"\u003e#3\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/393de39c10414e1ff9d02d70686373a185634199\"\u003e\u003ccode\u003e393de39\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3608\"\u003e#3608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/6e3242613ae17fbe46ce28d8e41a5dd54dc322cc\"\u003e\u003ccode\u003e6e32426\u003c/code\u003e\u003c/a\u003e Fix none config file issue 3611 (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3613\"\u003e#3613\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/0805c8358687f6902b1793ed4616162dff733cb8\"\u003e\u003ccode\u003e0805c83\u003c/code\u003e\u003c/a\u003e Isolate the test suite from any existing \u003ccode\u003eDEFAULT_CONFIG_FILE\u003c/code\u003e file (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3612\"\u003e#3612\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tox-dev/tox/compare/4.30.2...4.31.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psutil` from 7.0.0 to 7.1.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/giampaolo/psutil/blob/master/HISTORY.rst\"\u003epsutil's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e7.1.1\u003c/h1\u003e\n\u003cp\u003e2025-10-19\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2645_, [SunOS]: dropped support for SunOS 10.\u003c/li\u003e\n\u003cli\u003e2646_, [SunOS]: add CI test runner for SunOS.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2641_, [SunOS]: cannot compile psutil from sources due to missing C include.\u003c/li\u003e\n\u003cli\u003e2357_, [SunOS]: \u003ccode\u003eProcess.cmdline()\u003c/code\u003e_ does not handle spaces properly. (patch\nby Ben Raz)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eCompatibility notes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2645_: SunOS 10 is no longer supported.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e7.1.0\u003c/h1\u003e\n\u003cp\u003e2025-09-17\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2581_, [Windows]: publish ARM64 wheels.  (patch by Matthieu Darbois)\u003c/li\u003e\n\u003cli\u003e2571_, [FreeBSD]: Dropped support for FreeBSD 8 and earlier. FreeBSD 8 was\nmaintained from 2009 to 2013.\u003c/li\u003e\n\u003cli\u003e2575_: introduced \u003ccode\u003edprint\u003c/code\u003e CLI tool to format .yml and .md files.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2473_, [macOS]: Fix build issue on macOS 11 and lower.\u003c/li\u003e\n\u003cli\u003e2494_, [Windows]: All APIs dealing with paths, such as\n\u003ccode\u003eProcess.memory_maps()\u003c/code\u003e\u003cem\u003e, \u003ccode\u003eProcess.exe()\u003c/code\u003e\u003c/em\u003e and \u003ccode\u003eProcess.open_files()\u003c/code\u003e_ does\nnot properly handle UNC paths. Paths such as \u003ccode\u003e\\\\??\\\\C:\\\\Windows\\\\Temp\u003c/code\u003e and\n\u003ccode\u003e'\\\\Device\\\\HarddiskVolume1\\\\Windows\\\\Temp'\u003c/code\u003e are now converted to\n\u003ccode\u003eC:\\\\Windows\\\\Temp\u003c/code\u003e.  (patch by Ben Peddell)\u003c/li\u003e\n\u003cli\u003e2506_, [Windows]: Windows service APIs had issues with unicode services using\nspecial characters in their name.\u003c/li\u003e\n\u003cli\u003e2514_, [Linux]: \u003ccode\u003eProcess.cwd()\u003c/code\u003e_ sometimes fail with \u003ccode\u003eFileNotFoundError\u003c/code\u003e due\nto a race condition.\u003c/li\u003e\n\u003cli\u003e2526_, [Linux]: \u003ccode\u003eProcess.create_time()\u003c/code\u003e\u003cem\u003e, which is used to univocally\nidentify a process over time, is subject to system clock updates, and as such\ncan lead to \u003ccode\u003eProcess.is_running()\u003c/code\u003e\u003c/em\u003e returning a wrong result. A monotonic\ncreation time is now used instead.  (patch by Jonathan Kohler)\u003c/li\u003e\n\u003cli\u003e2528_, [Linux]: \u003ccode\u003eProcess.children()\u003c/code\u003e_ may raise \u003ccode\u003ePermissionError\u003c/code\u003e. It will\nnow raise \u003ccode\u003eAccessDenied\u003c/code\u003e_ instead.\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 href=\"https://github.com/giampaolo/psutil/commit/a07e87a1336678cbcc929116cd826137779cf654\"\u003e\u003ccode\u003ea07e87a\u003c/code\u003e\u003c/a\u003e Pre release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/7a0756f0adf9c7191b01281f868aa1ca83488f43\"\u003e\u003ccode\u003e7a0756f\u003c/code\u003e\u003c/a\u003e Upgrade actions/setup-python@v6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/03c5c69fe6326c0857881aa6a253314785bd95b3\"\u003e\u003ccode\u003e03c5c69\u003c/code\u003e\u003c/a\u003e setup.py: link external libs also when compiling _psutil_posix.c ext\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/49b56c2ae1299e1157ce8126ae8e3aad36750e37\"\u003e\u003ccode\u003e49b56c2\u003c/code\u003e\u003c/a\u003e [SunOS] Drop SunOS 10 support (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2647\"\u003e#2647\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/8aca550dd16ec6b78d0160471bda4d24fe7e4d21\"\u003e\u003ccode\u003e8aca550\u003c/code\u003e\u003c/a\u003e [SunOS] add CI test runner for SunOS (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2646\"\u003e#2646\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/c4dd48a7788bcc4a680edef6eb28198e53710076\"\u003e\u003ccode\u003ec4dd48a\u003c/code\u003e\u003c/a\u003e Rename psutil_get_proc_list() to _psutil_pids()\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/567b6c993a06769bcfcbd9fe19e3fe092fb37bcb\"\u003e\u003ccode\u003e567b6c9\u003c/code\u003e\u003c/a\u003e CI: rename ci-* Makefile target\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/c3f655136628a2f88b5c16fb9dd61cedb79faeea\"\u003e\u003ccode\u003ec3f6551\u003c/code\u003e\u003c/a\u003e avoid raising the result of pytest.skip/pytest.fail (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2638\"\u003e#2638\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/a2091b950f65c66583f5a67fbb5d030671141f63\"\u003e\u003ccode\u003ea2091b9\u003c/code\u003e\u003c/a\u003e Centralize distribution sanity check into Makefile\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/4250b8e9e3520516766f30716daf113558cf61fd\"\u003e\u003ccode\u003e4250b8e\u003c/code\u003e\u003c/a\u003e Make ruff happy\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/giampaolo/psutil/compare/release-7.0.0...release-7.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `faker` from 37.6.0 to 37.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/joke2k/faker/releases\"\u003efaker's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v37.11.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/joke2k/faker/blob/refs/tags/v37.11.0/CHANGELOG.md\"\u003eCHANGELOG.md\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eRelease v37.10.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/joke2k/faker/blob/refs/tags/v37.10.0/CHANGELOG.md\"\u003eCHANGELOG.md\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eRelease v37.9.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/joke2k/faker/blob/refs/tags/v37.9.0/CHANGELOG.md\"\u003eCHANGELOG.md\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eRelease v37.8.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/joke2k/faker/blob/refs/tags/v37.8.0/CHANGELOG.md\"\u003eCHANGELOG.md\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eRelease v37.7.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/joke2k/faker/blob/refs/tags/v37.7.0/CHANGELOG.md\"\u003eCHANGELOG.md\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 href=\"https://github.com/joke2k/faker/blob/master/CHANGELOG.md\"\u003efaker's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003e\u003ca href=\"https://github.com/joke2k/faker/compare/v37.9.0...v37.10.0\"\u003ev37.11.0 - 2025-10-07\u003c/a\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd French company APE code. Thanks \u003ca href=\"https://github.com/fabien-michel\"\u003e\u003ccode\u003e@​fabien-michel\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003ca href=\"https://github.com/joke2k/faker/compare/v37.8.0...v37.9.0\"\u003ev37.9.0 - 2025-10-07\u003c/a\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd names generation to \u003ccode\u003een_KE\u003c/code\u003e locale. Thanks \u003ca href=\"https://github.com/titustum\"\u003e\u003ccode\u003e@​titustum\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003ca href=\"https://github.com/joke2k/faker/compare/v37.7.0...v37.8.0\"\u003ev37.8.0 - 2025-09-15\u003c/a\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Automotive providers for \u003ccode\u003eja_JP\u003c/code\u003e locale. Thanks \u003ca href=\"https://github.com/ItoRino424\"\u003e\u003ccode\u003e@​ItoRino424\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003ca href=\"https://github.com/joke2k/faker/compare/v37.6.0...v37.7.0\"\u003ev37.7.0 - 2025-09-15\u003c/a\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Nigerian name locales (\u003ccode\u003eyo_NG\u003c/code\u003e, \u003ccode\u003eha_NG\u003c/code\u003e, \u003ccode\u003eig_NG\u003c/code\u003e, \u003ccode\u003een_NG\u003c/code\u003e). Thanks \u003ca href=\"https://github.com/ifeoluwaoladeji\"\u003e\u003ccode\u003e@​ifeoluwaoladeji\u003c/code\u003e\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 href=\"https://github.com/joke2k/faker/commit/2a366a6163dfd767a1ccdb1684109e6156a745ee\"\u003e\u003ccode\u003e2a366a6\u003c/code\u003e\u003c/a\u003e Bump version: 37.10.0 → 37.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/84890eb6d84c333f73eea04b7f8128aef9740c00\"\u003e\u003ccode\u003e84890eb\u003c/code\u003e\u003c/a\u003e Bump version: 37.9.0 → 37.10.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/6e9b7ef3f1ea2c5b9d3abafb340d496d4d6dc0a3\"\u003e\u003ccode\u003e6e9b7ef\u003c/code\u003e\u003c/a\u003e 📝 Update CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/e8f344fa5a4ae01ed77c28c3b8ffa8d6c1b9a1ed\"\u003e\u003ccode\u003ee8f344f\u003c/code\u003e\u003c/a\u003e 💄 Lint code\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/de0efef770826ec2683448c4445f134633ddb823\"\u003e\u003ccode\u003ede0efef\u003c/code\u003e\u003c/a\u003e feat: add french company APE code (\u003ca href=\"https://redirect.github.com/joke2k/faker/issues/2263\"\u003e#2263\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/d4826a7c85228768a2281392cc918957e74b69ce\"\u003e\u003ccode\u003ed4826a7\u003c/code\u003e\u003c/a\u003e Bump version: 37.8.0 → 37.9.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/e49d9a164dd774e07304d36fab9761e821b82148\"\u003e\u003ccode\u003ee49d9a1\u003c/code\u003e\u003c/a\u003e 📝 Update CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/923863e9a80ccff9830a40a86b86167221dc03bd\"\u003e\u003ccode\u003e923863e\u003c/code\u003e\u003c/a\u003e 📝 Update CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/e089c8fbd778cb43c20866c01d69b77c4583d4cd\"\u003e\u003ccode\u003ee089c8f\u003c/code\u003e\u003c/a\u003e 💄 Lint code\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/b91c7c1a7c0028c7f6b4139c1b718623a3d306f7\"\u003e\u003ccode\u003eb91c7c1\u003c/code\u003e\u003c/a\u003e Add names generation to \u003ccode\u003een_KE\u003c/code\u003e locale (\u003ca href=\"https://redirect.github.com/joke2k/faker/issues/2255\"\u003e#2255\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/joke2k/faker/compare/v37.6.0...v37.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx` from 7.4.7 to 8.2.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sphinx-doc/sphinx/r...\n\n_Description has been truncated_","html_url":"https://github.com/SEED-platform/seed/pull/5123","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/SEED-platform%2Fseed/issues/5123","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/5123/packages"},{"uuid":"3523710815","node_id":"PR_kwDOPdzh-c6uLwBd","number":56,"state":"closed","title":"Bump the python group across 1 directory with 27 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-10-30T22:26:17.000Z","author_association":null,"state_reason":null,"created_at":"2025-10-16T22:29:07.000Z","updated_at":"2025-10-30T22:26:18.000Z","time_to_close":1209430,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python","update_count":27,"packages":[{"name":"rcssmin","old_version":"1.1.2","new_version":"1.2.2","repository_url":"https://github.com/ndparker/rcssmin"},{"name":"whitenoise","old_version":"6.9.0","new_version":"6.11.0","repository_url":"https://github.com/evansd/whitenoise"},{"name":"hiredis","old_version":"3.2.1","new_version":"3.3.0","repository_url":"https://github.com/redis/hiredis-py"},{"name":"django","old_version":"5.1.11","new_version":"5.2.7","repository_url":"https://github.com/django/django"},{"name":"django-allauth","old_version":"65.10.0","new_version":"65.12.1"},{"name":"uwsgi","old_version":"2.0.30","new_version":"2.0.31"},{"name":"easy-thumbnails","old_version":"2.10","new_version":"2.10.1"},{"name":"django-cms","old_version":"5.0.2","new_version":"5.0.4","repository_url":"https://github.com/django-cms/django-cms"},{"name":"django-entangled","old_version":"0.6.3","new_version":"0.7","repository_url":"https://github.com/jrief/django-entangled"},{"name":"djangocms-text","old_version":"0.9.2","new_version":"0.9.3","repository_url":"https://github.com/django-cms/djangocms-text"},{"name":"djangocms-frontend","old_version":"2.1.4","new_version":"2.2.0","repository_url":"https://github.com/django-cms/djangocms-frontend"},{"name":"svglib","old_version":"1.5.1","new_version":"1.6.0","repository_url":"https://github.com/deeplook/svglib"},{"name":"reportlab","old_version":"4.4.3","new_version":"4.4.4"},{"name":"django-filer","old_version":"3.3.1","new_version":"3.3.2","repository_url":"https://github.com/django-cms/django-filer"},{"name":"pip-tools","old_version":"7.5.0","new_version":"7.5.1","repository_url":"https://github.com/jazzband/pip-tools"},{"name":"djangocms-snippet","old_version":"5.0.1","new_version":"5.0.2","repository_url":"https://github.com/django-cms/djangocms-snippet"},{"name":"psycopg","old_version":"3.2.9","new_version":"3.2.10"},{"name":"django-anymail","old_version":"13.0.1","new_version":"13.1"},{"name":"watchfiles","old_version":"1.1.0","new_version":"1.1.1","repository_url":"https://github.com/samuelcolvin/watchfiles"},{"name":"mypy","old_version":"1.17.1","new_version":"1.18.2","repository_url":"https://github.com/python/mypy"},{"name":"django-stubs","old_version":"5.2.2","new_version":"5.2.7"},{"name":"pytest","old_version":"8.4.1","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-sugar","old_version":"1.0.0","new_version":"1.1.1","repository_url":"https://github.com/Teemu/pytest-sugar"},{"name":"ruff","old_version":"0.12.8","new_version":"0.14.1","repository_url":"https://github.com/astral-sh/ruff"},{"name":"coverage","old_version":"7.10.3","new_version":"7.11.0","repository_url":"https://github.com/nedbat/coveragepy"},{"name":"factory-boy","old_version":"3.3.2","new_version":"3.3.3","repository_url":"https://github.com/FactoryBoy/factory_boy"},{"name":"django-coverage-plugin","old_version":"3.1.1","new_version":"3.2.0","repository_url":"https://github.com/nedbat/django_coverage_plugin"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python group with 27 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [rcssmin](https://github.com/ndparker/rcssmin) | `1.1.2` | `1.2.2` |\n| [whitenoise](https://github.com/evansd/whitenoise) | `6.9.0` | `6.11.0` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.2.1` | `3.3.0` |\n| [django](https://github.com/django/django) | `5.1.11` | `5.2.7` |\n| [django-allauth[mfa]](https://github.com/sponsors/pennersr) | `65.10.0` | `65.12.1` |\n| [uwsgi](https://uwsgi-docs.readthedocs.io/en/latest/) | `2.0.30` | `2.0.31` |\n| [easy-thumbnails[svg]](https://github.com/SmileyChris/easy-thumbnails) | `2.10` | `2.10.1` |\n| [django-cms](https://github.com/django-cms/django-cms) | `5.0.2` | `5.0.4` |\n| [django-entangled](https://github.com/jrief/django-entangled) | `0.6.3` | `0.7` |\n| [djangocms-text](https://github.com/django-cms/djangocms-text) | `0.9.2` | `0.9.3` |\n| [djangocms-frontend](https://github.com/django-cms/djangocms-frontend) | `2.1.4` | `2.2.0` |\n| [svglib](https://github.com/deeplook/svglib) | `1.5.1` | `1.6.0` |\n| [reportlab](https://www.reportlab.com/) | `4.4.3` | `4.4.4` |\n| [django-filer](https://github.com/django-cms/django-filer) | `3.3.1` | `3.3.2` |\n| [pip-tools](https://github.com/jazzband/pip-tools) | `7.5.0` | `7.5.1` |\n| [djangocms-snippet](https://github.com/django-cms/djangocms-snippet) | `5.0.1` | `5.0.2` |\n| [psycopg[c]](https://github.com/psycopg/psycopg) | `3.2.9` | `3.2.10` |\n| [django-anymail[mailgun]](https://github.com/anymail/django-anymail) | `13.0.1` | `13.1` |\n| [watchfiles](https://github.com/samuelcolvin/watchfiles) | `1.1.0` | `1.1.1` |\n| [mypy](https://github.com/python/mypy) | `1.17.1` | `1.18.2` |\n| [django-stubs[compatible-mypy]](https://github.com/sponsors/typeddjango) | `5.2.2` | `5.2.7` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.1` | `8.4.2` |\n| [pytest-sugar](https://github.com/Teemu/pytest-sugar) | `1.0.0` | `1.1.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.12.8` | `0.14.1` |\n| [coverage](https://github.com/nedbat/coveragepy) | `7.10.3` | `7.11.0` |\n| [factory-boy](https://github.com/FactoryBoy/factory_boy) | `3.3.2` | `3.3.3` |\n| [django-coverage-plugin](https://github.com/nedbat/django_coverage_plugin) | `3.1.1` | `3.2.0` |\n\n\nUpdates `rcssmin` from 1.1.2 to 1.2.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ndparker/rcssmin/blob/master/CHANGES\"\u003ercssmin's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eChanges with version 1.2.2\u003c/p\u003e\n\u003cp\u003e*) Update benchmarks\u003c/p\u003e\n\u003cp\u003e*) Add support for Python 3.14\u003c/p\u003e\n\u003cp\u003e*) Update project boilerplate\u003c/p\u003e\n\u003cp\u003eChanges with version 1.2.1\u003c/p\u003e\n\u003cp\u003e*) Change doc theme to \u0026quot;furo\u0026quot;\u003c/p\u003e\n\u003cp\u003e*) Remove build dependency pinning (resolves \u003ca href=\"https://redirect.github.com/ndparker/rcssmin/issues/18\"\u003e#18\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e*) Update project boilerplate\u003c/p\u003e\n\u003cp\u003eChanges with version 1.2.0\u003c/p\u003e\n\u003cp\u003e*) Add support for nesting selector (\u0026amp;)\u003c/p\u003e\n\u003cp\u003e*) Update project boilerplate\u003c/p\u003e\n\u003cp\u003eChanges with version 1.1.3\u003c/p\u003e\n\u003cp\u003e*) Add support for Python 3.13\u003c/p\u003e\n\u003cp\u003e*) Update project boilerplate\u003c/p\u003e\n\u003cp\u003eChanges with version 1.1.2\u003c/p\u003e\n\u003cp\u003e*) Add support for Python 3.12\u003c/p\u003e\n\u003cp\u003e*) Add musllinux wheels\u003c/p\u003e\n\u003cp\u003e*) Update project boilerplate\u003c/p\u003e\n\u003cp\u003eChanges with version 1.1.1\u003c/p\u003e\n\u003cp\u003e*) Add support for Python 3.11\u003c/p\u003e\n\u003cp\u003e*) Update project boilerplate\u003c/p\u003e\n\u003cp\u003eChanges with version 1.1.0\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 href=\"https://github.com/ndparker/rcssmin/commit/b4cac4d1ffd665aa3b8d2f9e0e09529578a67193\"\u003e\u003ccode\u003eb4cac4d\u003c/code\u003e\u003c/a\u003e Bump version to 1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/db3f06eefa05860bbe1e8fa373e0249cb6adedbb\"\u003e\u003ccode\u003edb3f06e\u003c/code\u003e\u003c/a\u003e Update benchmarks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/77816d3cf9e2f3dc03c00e1f8526e471dffdc3fe\"\u003e\u003ccode\u003e77816d3\u003c/code\u003e\u003c/a\u003e Add Python 3.14 support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/ecac7747c1a68781cf1b524ea54db44aae7c7bd2\"\u003e\u003ccode\u003eecac774\u003c/code\u003e\u003c/a\u003e Project boilerplate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/5bac716410f460f75e243961f482b1895e487b6b\"\u003e\u003ccode\u003e5bac716\u003c/code\u003e\u003c/a\u003e Bump version to 1.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/8d4312f864efa55d36742a728adffebfd27a6aa3\"\u003e\u003ccode\u003e8d4312f\u003c/code\u003e\u003c/a\u003e Hello 2025\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/41d1e1f7ae6242a80854509d7181f8a91278722b\"\u003e\u003ccode\u003e41d1e1f\u003c/code\u003e\u003c/a\u003e Update dependencies, change sphinx theme\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/5396f5ec399b2ac57293657fb87ca888f3ecda8e\"\u003e\u003ccode\u003e5396f5e\u003c/code\u003e\u003c/a\u003e Bump version to 1.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/81da21987bfe614153711217f1b50bc0fa5f4c55\"\u003e\u003ccode\u003e81da219\u003c/code\u003e\u003c/a\u003e Update benchmarks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/1f9ff6d2d89f03108ccf53332352e328ee010b82\"\u003e\u003ccode\u003e1f9ff6d\u003c/code\u003e\u003c/a\u003e Add support for nesting selector (\u0026amp;)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ndparker/rcssmin/compare/1.1.2...1.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `whitenoise` from 6.9.0 to 6.11.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/evansd/whitenoise/blob/main/docs/changelog.rst\"\u003ewhitenoise's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.11.0 (2025-09-18)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Django 6.0.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.10.0 (2025-09-09)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14.\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 href=\"https://github.com/evansd/whitenoise/commit/c9c06e9382b92fc959ffdfc3e2ec63057de82561\"\u003e\u003ccode\u003ec9c06e9\u003c/code\u003e\u003c/a\u003e Version 6.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/051c4e997a07fd3ae5e9f3ec092080102ab89d93\"\u003e\u003ccode\u003e051c4e9\u003c/code\u003e\u003c/a\u003e Support Django 6.0 (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/665\"\u003e#665\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/c903cc13394895cbb3926e48c7acecf364efcd26\"\u003e\u003ccode\u003ec903cc1\u003c/code\u003e\u003c/a\u003e Version 6.10.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/a81bcb0ae2dd0c5884ebadb762f46827ecb54d0f\"\u003e\u003ccode\u003ea81bcb0\u003c/code\u003e\u003c/a\u003e docs(django): use the stable version in URLs (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/626\"\u003e#626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/67b4f32b12a9700b6dcc30ced8e9ad23bf39baa1\"\u003e\u003ccode\u003e67b4f32\u003c/code\u003e\u003c/a\u003e Support Python 3.14 (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/664\"\u003e#664\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/da8d333d165be1bdd9e7decbb3a293b5e55ff608\"\u003e\u003ccode\u003eda8d333\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/663\"\u003e#663\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/800072482c0652f81864ae78c26539d3dfc765b2\"\u003e\u003ccode\u003e8000724\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/662\"\u003e#662\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/8fb339f0eaee9219b1e02a840b5fd2227cf2fbbf\"\u003e\u003ccode\u003e8fb339f\u003c/code\u003e\u003c/a\u003e Upgrade dependencies (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/661\"\u003e#661\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/adf64ddfa5329d622cbc4740aec49b7baf0df792\"\u003e\u003ccode\u003eadf64dd\u003c/code\u003e\u003c/a\u003e Use uvx to run tox on GitHub Actions (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/660\"\u003e#660\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/ad6eb204640ff69498f8fc60bd9eb876ee5771b8\"\u003e\u003ccode\u003ead6eb20\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/659\"\u003e#659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/evansd/whitenoise/compare/6.9.0...6.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `hiredis` from 3.2.1 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/hiredis-py/releases\"\u003ehiredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.3.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e by \u003ca href=\"https://github.com/zweizeichen\"\u003e\u003ccode\u003e@​zweizeichen\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\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 href=\"https://github.com/redis/hiredis-py/commit/187d0f387afed58a955a42ea8c5467100871f98b\"\u003e\u003ccode\u003e187d0f3\u003c/code\u003e\u003c/a\u003e Version 3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/3efcf037edc5a9f7abfaedbd3f60b2a03feb4787\"\u003e\u003ccode\u003e3efcf03\u003c/code\u003e\u003c/a\u003e Add Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/215\"\u003e#215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/966cede2c0ca0a8ac4fe0786571e5c230f39c36e\"\u003e\u003ccode\u003e966cede\u003c/code\u003e\u003c/a\u003e Fix assertion in reader.c (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/212\"\u003e#212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/78def309e58126fdaacb66e6fd40df9c46494062\"\u003e\u003ccode\u003e78def30\u003c/code\u003e\u003c/a\u003e Bump version to 3.3.0-dev\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/redis/hiredis-py/compare/v3.2.1...v3.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django` from 5.1.11 to 5.2.7\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/3cff3209e35a560f94801d428cf7f2a3ecb2a051\"\u003e\u003ccode\u003e3cff320\u003c/code\u003e\u003c/a\u003e [5.2.x] Bumped version for 5.2.7 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/ed8fc39d77465eddbde1191a054ae965f6a8a584\"\u003e\u003ccode\u003eed8fc39\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2025-59682 -- Fixed potential partial directory-traversal v...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/52fbae0a4dbbe5faa59827f8f05694a0065cc135\"\u003e\u003ccode\u003e52fbae0\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2025-59681 -- Protected QuerySet.annotate(), alias(), aggre...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/1794cbf961f9ea54715fb094fe8adc80a5054947\"\u003e\u003ccode\u003e1794cbf\u003c/code\u003e\u003c/a\u003e [5.2.x] Made cosmetic edits to 5.2.7 release notes.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/81625a141e1feaaea877fc18876fdd7b6394442c\"\u003e\u003ccode\u003e81625a1\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36587\"\u003e#36587\u003c/a\u003e -- Clarified usage of \u003ccode\u003elist.insert()\u003c/code\u003e for upload handlers.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/6f3813e4b6e3db7fa3cc612c78f898142468bca9\"\u003e\u003ccode\u003e6f3813e\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/35877\"\u003e#35877\u003c/a\u003e, Refs \u003ca href=\"https://redirect.github.com/django/django/issues/36128\"\u003e#36128\u003c/a\u003e -- Documented unique constraint when migrat...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/10a2d3b837c5d8c1ac0cabd399ad7edcc66bfa8e\"\u003e\u003ccode\u003e10a2d3b\u003c/code\u003e\u003c/a\u003e [5.2.x] Added stub release notes and release date for 5.2.7, 5.1.13, and 4.2.25.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/b2773a39a34f0f0ca768fa1daaf8bf72fca56e06\"\u003e\u003ccode\u003eb2773a3\u003c/code\u003e\u003c/a\u003e [5.2.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/25508\"\u003e#25508\u003c/a\u003e -- Used QuerySet.\u003cstrong\u003erepr\u003c/strong\u003e in docs/ref/contrib/postgres/se...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/7554c54e5f02566520dee81c8b95f47429f1b553\"\u003e\u003ccode\u003e7554c54\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36581\"\u003e#36581\u003c/a\u003e -- Updated serialization examples from XML to JSON.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/2a2936c3e6444a0f37156773ca405cedaf28dea7\"\u003e\u003ccode\u003e2a2936c\u003c/code\u003e\u003c/a\u003e [5.2.x] Updated translations from Transifex.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/5.1.11...5.2.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-allauth[mfa]` from 65.10.0 to 65.12.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sponsors/pennersr/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uwsgi` from 2.0.30 to 2.0.31\n\nUpdates `easy-thumbnails[svg]` from 2.10 to 2.10.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/blob/master/CHANGES.rst\"\u003eeasy-thumbnails[svg]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.10.1 (2025-08-17)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Django-5.2.\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 href=\"https://github.com/SmileyChris/easy-thumbnails/commit/208f672ab53e3c7596c966b5282e64ed9747a3e4\"\u003e\u003ccode\u003e208f672\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/SmileyChris/easy-thumbnails/issues/664\"\u003e#664\u003c/a\u003e from SmileyChris/jrief-patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/318a2847391bb0e3fdc0a17a52af49a5851b53c9\"\u003e\u003ccode\u003e318a284\u003c/code\u003e\u003c/a\u003e Update CHANGES.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/0989a40226197b78bfa47939e44017bedea564fa\"\u003e\u003ccode\u003e0989a40\u003c/code\u003e\u003c/a\u003e version 2.10.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/3b86790c40788ebf9ce0cb66f529d745abe715b5\"\u003e\u003ccode\u003e3b86790\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/SmileyChris/easy-thumbnails/issues/663\"\u003e#663\u003c/a\u003e from tomkins/django-5.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/221679530109e5f92b2ad4d3e25f759d6dd90ced\"\u003e\u003ccode\u003e2216795\u003c/code\u003e\u003c/a\u003e Drop support for Django 5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/2cf9af0d7dc341ccaaabc79500033584aae88fbb\"\u003e\u003ccode\u003e2cf9af0\u003c/code\u003e\u003c/a\u003e Add support for Django 5.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/4957daa823a8ee17a90859281c2d93b06930e6fa\"\u003e\u003ccode\u003e4957daa\u003c/code\u003e\u003c/a\u003e Drop py38 from Django 4.2 testing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/21759697b0b5b600e6ebd5cce336a7d25f94099b\"\u003e\u003ccode\u003e2175969\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/SmileyChris/easy-thumbnails/issues/654\"\u003e#654\u003c/a\u003e from ArcaniteSolutions/fix-remote-storages-location-l...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/26351108ed706721492e606fe4ff51179d8a4844\"\u003e\u003ccode\u003e2635110\u003c/code\u003e\u003c/a\u003e check storage has location before fixing path\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/9d6fe6632ba4f175e9f4ad61eb4b3457b8124711\"\u003e\u003ccode\u003e9d6fe66\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/SmileyChris/easy-thumbnails/issues/650\"\u003e#650\u003c/a\u003e from benkonrath/python-3.13\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/compare/2.10.0...2.10.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-cms` from 5.0.2 to 5.0.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-cms/django-cms/releases\"\u003edjango-cms's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.0.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Wrong placeholders rendered when using apphooks with own placeholders (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8343\"\u003e#8343\u003c/a\u003e) by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8348\"\u003edjango-cms/django-cms#8348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Prepare release 5.0.4 by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8352\"\u003edjango-cms/django-cms#8352\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-cms/django-cms/compare/5.0.3...5.0.4\"\u003ehttps://github.com/django-cms/django-cms/compare/5.0.3...5.0.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: Django 6 compatibility (July 2025) by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8302\"\u003edjango-cms/django-cms#8302\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: Add documentation for toolbar get_object and set_object methods by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8314\"\u003edjango-cms/django-cms#8314\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Respect individual placeholder checks if they can be changed (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8317\"\u003e#8317\u003c/a\u003e) by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8318\"\u003edjango-cms/django-cms#8318\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Cut children from inactive menu nodes when level is less or equal to 0 (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8322\"\u003e#8322\u003c/a\u003e) by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8324\"\u003edjango-cms/django-cms#8324\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: copy lang management command - include PageUrl (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/7548\"\u003e#7548\u003c/a\u003e) by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8335\"\u003edjango-cms/django-cms#8335\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Optimize placeholder and plugin utilities by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8337\"\u003edjango-cms/django-cms#8337\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Migration 0033 failed when empty placeholder objects were not present in the db by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8339\"\u003edjango-cms/django-cms#8339\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Build 5.0.3 release by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8341\"\u003edjango-cms/django-cms#8341\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-cms/django-cms/compare/5.0.2...5.0.3\"\u003ehttps://github.com/django-cms/django-cms/compare/5.0.2...5.0.3\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 href=\"https://github.com/django-cms/django-cms/blob/5.0.4/CHANGELOG.rst\"\u003edjango-cms's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.0.4 (2025-10-03)\u003c/h1\u003e\n\u003ch2\u003eBug Fixes:\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWrong placeholders rendered when using apphooks with own placeholders (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8343\"\u003e#8343\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8348\"\u003e#8348\u003c/a\u003e) (775392390) -- Fabian Braun\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eStatistics:\u003c/h2\u003e\n\u003cp\u003eThis release includes 1 pull request, and was created with the help of the following contributors (in alphabetical order):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFabian Braun (1 pull request)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWith the review help of the following contributors:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVinit Kumar\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to all contributors for their efforts!\u003c/p\u003e\n\u003ch1\u003e5.0.3 (2025-09-17)\u003c/h1\u003e\n\u003ch2\u003eBug Fixes:\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDjango 6 compatibility (July 2025) (8302) -- Fabian Braun\u003c/li\u003e\n\u003cli\u003eRespect individual placeholder checks if they can be changed (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8318\"\u003e#8318\u003c/a\u003e) -- Fabian Braun\u003c/li\u003e\n\u003cli\u003eCut children from inactive menu nodes when level is less or equal to 0 (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8324\"\u003e#8324\u003c/a\u003e) -- Stefan Wehrmeyer\u003c/li\u003e\n\u003cli\u003eCopy lang management command - include PageUrl (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8335\"\u003e#8335\u003c/a\u003e) -- Vašek Chalupníček\u003c/li\u003e\n\u003cli\u003eOptimize placeholder and plugin utilities (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8337\"\u003e#8337\u003c/a\u003e) -- Fabian Braun\u003c/li\u003e\n\u003cli\u003eMigration 0033 failed when empty placeholder objects were not present in the db (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8339\"\u003e#8339\u003c/a\u003e) -- Fabian Braun\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eStatistics:\u003c/h2\u003e\n\u003cp\u003eThis release includes 9 pull requests, and was created with the help of the following contributors (in alphabetical order):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFabian Braun (5 pull requests)\u003c/li\u003e\n\u003cli\u003eStefan Wehrmeyer (1 pull request)\u003c/li\u003e\n\u003cli\u003eVašek Chalupníček (1 pull request)\u003c/li\u003e\n\u003cli\u003eGithub Release Action (3 pull requests)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWith the review help of the following contributors:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFabian Braun\u003c/li\u003e\n\u003cli\u003eVinit Kumar\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 href=\"https://github.com/django-cms/django-cms/commit/ed3a004b62ee69f099b0f647dd33778ba0b0d1fb\"\u003e\u003ccode\u003eed3a004\u003c/code\u003e\u003c/a\u003e chore: Prepare release 5.0.4 (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8352\"\u003e#8352\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/775392390eea0ffcdeccb0d21306d6e34fb859df\"\u003e\u003ccode\u003e7753923\u003c/code\u003e\u003c/a\u003e fix: Wrong placeholders rendered when using apphooks with own placeholders (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/cb8bdcecf623e125ea789a0551279a3dc0152deb\"\u003e\u003ccode\u003ecb8bdce\u003c/code\u003e\u003c/a\u003e chore: Build 5.0.3 release (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8341\"\u003e#8341\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/7ec333dc84a443813a2ae980eab685711e9554b4\"\u003e\u003ccode\u003e7ec333d\u003c/code\u003e\u003c/a\u003e fix: Migration 0033 failed when empty placeholder objects were not present in...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/9375101a310c39dbce214845dabe9dfe9c0fd346\"\u003e\u003ccode\u003e9375101\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8337\"\u003e#8337\u003c/a\u003e from django-cms/chore/bp-8319\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/054113d845e550e6be11d97493b45acb2611dce4\"\u003e\u003ccode\u003e054113d\u003c/code\u003e\u003c/a\u003e fix: Add missing space\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/e2e78c1539f2171962abaed8f9807fc83695c20f\"\u003e\u003ccode\u003ee2e78c1\u003c/code\u003e\u003c/a\u003e fix: Undo thread critical opt.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/89dd7677c301a6a6d8de827fc78bbd712cfa5f4f\"\u003e\u003ccode\u003e89dd767\u003c/code\u003e\u003c/a\u003e perf: Optimize placeholder and plugin utilities\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/d568e811f53b67caf0fac71473015437509e75f3\"\u003e\u003ccode\u003ed568e81\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8335\"\u003e#8335\u003c/a\u003e from django-cms/chore/bp-7548\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/6c699d7f5043af9d01710a62bc2aee6ed7f16bd7\"\u003e\u003ccode\u003e6c699d7\u003c/code\u003e\u003c/a\u003e fix: copy lang management command - include PageUrl (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/7548\"\u003e#7548\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-cms/django-cms/compare/5.0.2...5.0.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-entangled` from 0.6.3 to 0.7\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jrief/django-entangled/blob/master/CHANGELOG.md\"\u003edjango-entangled's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.7\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Django 5.2.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.13.\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 href=\"https://github.com/jrief/django-entangled/commit/734bd8f8b316663a1f31d4fa7e9248a955baea21\"\u003e\u003ccode\u003e734bd8f\u003c/code\u003e\u003c/a\u003e Bump to version 0.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jrief/django-entangled/commit/fcad6c824be14d052456df759e23bc4b44646d3e\"\u003e\u003ccode\u003efcad6c8\u003c/code\u003e\u003c/a\u003e Add support for Django-5.2 and Python 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jrief/django-entangled/commit/a89b615cafcdbb939d71fb34dc30253d2dcf5c00\"\u003e\u003ccode\u003ea89b615\u003c/code\u003e\u003c/a\u003e Propagate django-formset\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/jrief/django-entangled/compare/0.6.3...0.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `djangocms-text` from 0.9.2 to 0.9.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-cms/djangocms-text/releases\"\u003edjangocms-text's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.9.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Fixed issues for non-CMS installations and added test coverage for non-CMS installations by \u003ca href=\"https://github.com/Grosskopf\"\u003e\u003ccode\u003e@​Grosskopf\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/119\"\u003edjango-cms/djangocms-text#119\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Respect plugin language for link field by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/113\"\u003edjango-cms/djangocms-text#113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/114\"\u003edjango-cms/djangocms-text#114\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/checkout from 4 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/115\"\u003edjango-cms/djangocms-text#115\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=\"https://github.com/Grosskopf\"\u003e\u003ccode\u003e@​Grosskopf\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/119\"\u003edjango-cms/djangocms-text#119\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-cms/djangocms-text/compare/0.9.2...0.9.3\"\u003ehttps://github.com/django-cms/djangocms-text/compare/0.9.2...0.9.3\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 href=\"https://github.com/django-cms/djangocms-text/blob/main/CHANGELOG.rst\"\u003edjangocms-text's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e0.9.3 (22-08-2025)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix: Fixed issues for non-CMS installations and added test coverage for non-CMS installations by \u003ca href=\"https://github.com/Grosskopf\"\u003e\u003ccode\u003e@​Grosskopf\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/119\"\u003edjango-cms/djangocms-text#119\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Respect plugin language for link field by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/113\"\u003edjango-cms/djangocms-text#113\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/Grosskopf\"\u003e\u003ccode\u003e@​Grosskopf\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/119\"\u003edjango-cms/djangocms-text#119\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 href=\"https://github.com/django-cms/djangocms-text/commit/23c8c5b276547459db18fad7bd2b45bf978c2d4b\"\u003e\u003ccode\u003e23c8c5b\u003c/code\u003e\u003c/a\u003e chore: Prepare release 0.9.3 (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/issues/120\"\u003e#120\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-text/commit/070dc3bff81b6aaad57b34bbbdce905a9a753fef\"\u003e\u003ccode\u003e070dc3b\u003c/code\u003e\u003c/a\u003e fix: Fixed issues for non-CMS installations and added test coverage for non-C...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-text/commit/d23c7830b72afd3d143bbd54dc5c3e25c7a844a7\"\u003e\u003ccode\u003ed23c783\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/issues/115\"\u003e#115\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-text/commit/4c78ee95ac529d9444a0c0342c41fe06c5edf9c1\"\u003e\u003ccode\u003e4c78ee9\u003c/code\u003e\u003c/a\u003e Merge branch 'main' of github.com:django-cms/djangocms-text\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-text/commit/d13df72a07522f1e1f84a50a4448a3ecde4bef65\"\u003e\u003ccode\u003ed13df72\u003c/code\u003e\u003c/a\u003e feat: node 24\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-text/commit/cf7b3b82f92999bb9297b213844696374f524937\"\u003e\u003ccode\u003ecf7b3b8\u003c/code\u003e\u003c/a\u003e ci: pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/issues/114\"\u003e#114\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-text/commit/5fa6205a5910b34334bdb14744f59b62a275a09e\"\u003e\u003ccode\u003e5fa6205\u003c/code\u003e\u003c/a\u003e Update comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-text/commit/79568c6b98a6e4adda9f84b84aa016254db60481\"\u003e\u003ccode\u003e79568c6\u003c/code\u003e\u003c/a\u003e fix: Respect plugin language for link field (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/issues/113\"\u003e#113\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/django-cms/djangocms-text/compare/0.9.2...0.9.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `djangocms-frontend` from 2.1.4 to 2.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-cms/djangocms-frontend/releases\"\u003edjangocms-frontend's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.2.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eci:(deps): bump actions/cache from 4.2.3 to 4.2.4 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-frontend/pull/297\"\u003edjango-cms/djangocms-frontend#297\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Only partially functional preview removed, CSS and JS refactor by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-frontend/pull/301\"\u003edjango-cms/djangocms-frontend#301\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Button group too condensed when using djangocms-admin-style by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-frontend/pull/303\"\u003edjango-cms/djangocms-frontend#303\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-cms/djangocms-frontend/compare/2.1.4...2.2.0\"\u003ehttps://github.com/django-cms/djangocms-frontend/compare/2.1.4...2.2.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 href=\"https://github.com/django-cms/djangocms-frontend/blob/main/CHANGELOG.rst\"\u003edjangocms-frontend's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.2.0 (2025-08-16)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efeat: Refactored CSS for faster and more reliable loading by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Removed link and button preview\u003c/li\u003e\n\u003cli\u003efix: Some UI Components were not discovered by the \u003ccode\u003e{% plugin %}\u003c/code\u003e template tag in django CMS 5\u003c/li\u003e\n\u003cli\u003efix: Restored Python 3.9 compatibility\u003c/li\u003e\n\u003cli\u003echore: Update node version\u003c/li\u003e\n\u003cli\u003echore: Remove bootstrap dependency\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 href=\"https://github.com/django-cms/djangocms-frontend/commit/6ec69a0c7fa36165e9bc3d5cfa333d60422985bf\"\u003e\u003ccode\u003e6ec69a0\u003c/code\u003e\u003c/a\u003e fix: Button group too condensed when using djangocms-admin-style (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-frontend/issues/303\"\u003e#303\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/662b357e8ad4642f18a73874eceac899a26ede66\"\u003e\u003ccode\u003e662b357\u003c/code\u003e\u003c/a\u003e fix: Docs references \u003ccode\u003efrontend_tags\u003c/code\u003e instead of \u003ccode\u003efrontend\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/5135e527beb741446f626e4c0c116f2e146c7667\"\u003e\u003ccode\u003e5135e52\u003c/code\u003e\u003c/a\u003e chore: Update LICENSE\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/b84bab7439442345ea8db89145a1079e4ba871bf\"\u003e\u003ccode\u003eb84bab7\u003c/code\u003e\u003c/a\u003e feat: Only partially functional preview removed, CSS and JS refactor (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-frontend/issues/301\"\u003e#301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/554418c1d4642279bef6e601ae2297ff5d634ba0\"\u003e\u003ccode\u003e554418c\u003c/code\u003e\u003c/a\u003e ci:(deps): bump actions/cache from 4.2.3 to 4.2.4 (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-frontend/issues/297\"\u003e#297\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/53a958051b6f475a3df3e48131956db0eed72d5e\"\u003e\u003ccode\u003e53a9580\u003c/code\u003e\u003c/a\u003e fix: typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/5f8829b6e5adbdf4689cc3747756e7ff4ae86dc1\"\u003e\u003ccode\u003e5f8829b\u003c/code\u003e\u003c/a\u003e Merge branch 'main' of github.com:django-cms/djangocms-frontend\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/b3a0eb6afc484c63520a2166dccff47ca0ec653e\"\u003e\u003ccode\u003eb3a0eb6\u003c/code\u003e\u003c/a\u003e fix: Python 3.9 support for plugin_tag.py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/4d3a3cf60485a9d17292a24db7654b75c19a1be9\"\u003e\u003ccode\u003e4d3a3cf\u003c/code\u003e\u003c/a\u003e fix test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/453e4c29d928076a3bf8c9e52b5a2f1f2e692231\"\u003e\u003ccode\u003e453e4c2\u003c/code\u003e\u003c/a\u003e chore: add test for py 3.9\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-cms/djangocms-frontend/compare/2.1.4...2.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `svglib` from 1.5.1 to 1.6.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/deeplook/svglib/blob/main/CHANGELOG.rst\"\u003esvglib's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.6.0 (2025-09-25)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplace setup.py with pyproject.toml, rework GitHub workflows (\u003ca href=\"https://redirect.github.com/deeplook/svglib/issues/405\"\u003e#405\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003cli\u003eModernize codebase, added type annotations, expanded docstrings, etc.\u003c/li\u003e\n\u003cli\u003eAdd a Makefile.\u003c/li\u003e\n\u003cli\u003eAdd publishing workflows.\u003c/li\u003e\n\u003cli\u003eRemove dunder constants and use importlib.metadata to get the version number.\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 href=\"https://github.com/deeplook/svglib/commit/1dce6584fb40de115479da10880dbf3b75cda955\"\u003e\u003ccode\u003e1dce658\u003c/code\u003e\u003c/a\u003e Expanded many docstrings, sanitized pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deeplook/svglib/commit/4c69f45919b181b98ebeb2614f84797217efd759\"\u003e\u003ccode\u003e4c69f45\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/deeplook/svglib/issues/412\"\u003e#412\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deeplook/svglib/commit/35a69b9af1eafbec5e4ff8eb759de7a506c4a83f\"\u003e\u003ccode\u003e35a69b9\u003c/code\u003e\u003c/a\u003e Fix format complaints\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deeplook/svglib/commit/d7eec2d2deef3a6ec5993854e0af679d4bd866f0\"\u003e\u003ccode\u003ed7eec2d\u003c/code\u003e\u003c/a\u003e Add workflow to publish on pypi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deeplook/svglib/commit/7bbbd33be99a75da97b4179935eec2dfdb64f9c0\"\u003e\u003ccode\u003e7bbbd33\u003c/code\u003e\u003c/a\u003e Fix underlines for publishing workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deeplook/svglib/commit/5bb73b8dea39a0058f6427b06ad246b09771057f\"\u003e\u003ccode\u003e5bb73b8\u003c/code\u003e\u003c/a\u003e Add workflow to publish on test.pypi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deeplook/svglib/commit/8eb422db6ec7ebeb22b69a14c3fff328c4b292ad\"\u003e\u003ccode\u003e8eb422d\u003c/code\u003e\u003c/a\u003e Fix PIL-related warning (\u003ca href=\"https://redirect.github.com/deeplook/svglib/issues/411\"\u003e#411\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deeplook/svglib/commit/3237aa1e75d1d0e924afddd4386f7f0015cfac79\"\u003e\u003ccode\u003e3237aa1\u003c/code\u003e\u003c/a\u003e Add type-checking (\u003ca href=\"https://redirect.github.com/deeplook/svglib/issues/410\"\u003e#410\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deeplook/svglib/commit/7eb6c774e73297c116f3c870c4ec4a448e7363a2\"\u003e\u003ccode\u003e7eb6c77\u003c/code\u003e\u003c/a\u003e Modernize code (\u003ca href=\"https://redirect.github.com/deeplook/svglib/issues/408\"\u003e#408\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deeplook/svglib/commit/7e9e92df52cefd5db9c73d142b9133944fd5067e\"\u003e\u003ccode\u003e7e9e92d\u003c/code\u003e\u003c/a\u003e Mention minimum supported Python version is 3.9\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/deeplook/svglib/compare/v1.5.1...v1.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `reportlab` from 4.4.3 to 4.4.4\n\nUpdates `django-filer` from 3.3.1 to 3.3.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-cms/django-filer/releases\"\u003edjango-filer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.3.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: add filename length safety check with random suffix by \u003ca href=\"https://github.com/Baraff24\"\u003e\u003ccode\u003e@​Baraff24\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1515\"\u003edjango-cms/django-filer#1515\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1516\"\u003edjango-cms/django-filer#1516\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Remove user from autocomplete fields if (swapped) user model does not have search fields by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1517\"\u003edjango-cms/django-filer#1517\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Include Private Storage in Orphan File Scanning for filer_check Command by \u003ca href=\"https://github.com/Baraff24\"\u003e\u003ccode\u003e@​Baraff24\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1518\"\u003edjango-cms/django-filer#1518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1520\"\u003edjango-cms/django-filer#1520\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Reflect template block structure of Django 5.2+ by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1523\"\u003edjango-cms/django-filer#1523\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded Full Persian (Farsi) Translate by \u003ca href=\"https://github.com/dimacodev\"\u003e\u003ccode\u003e@​dimacodev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1524\"\u003edjango-cms/django-filer#1524\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate directory_table_list.html by \u003ca href=\"https://github.com/AliAkbarSobhanpoor\"\u003e\u003ccode\u003e@​AliAkbarSobhanpoor\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1528\"\u003edjango-cms/django-filer#1528\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Avoid locale-dependent ratio by \u003ca href=\"https://github.com/albanbochsler\"\u003e\u003ccode\u003e@​albanbochsler\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1536\"\u003edjango-cms/django-filer#1536\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1531\"\u003edjango-cms/django-filer#1531\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: docs GitHub action built by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1540\"\u003edjango-cms/django-filer#1540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Update project meta data and use pyproject.toml by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1541\"\u003edjango-cms/django-filer#1541\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Folder permission cache update sometimes raised TypeError by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1539\"\u003edjango-cms/django-filer#1539\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Failed to install submodules of filer by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1544\"\u003edjango-cms/django-filer#1544\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Prepare release 3.3.2 by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1545\"\u003edjango-cms/django-filer#1545\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=\"https://github.com/Baraff24\"\u003e\u003ccode\u003e@​Baraff24\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1515\"\u003edjango-cms/django-filer#1515\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dimacodev\"\u003e\u003ccode\u003e@​dimacodev\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1524\"\u003edjango-cms/django-filer#1524\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AliAkbarSobhanpoor\"\u003e\u003ccode\u003e@​AliAkbarSobhanpoor\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1528\"\u003edjango-cms/django-filer#1528\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/albanbochsler\"\u003e\u003ccode\u003e@​albanbochsler\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1536\"\u003edjango-cms/django-filer#1536\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-cms/django-filer/compare/3.3.1...3.3.2\"\u003ehttps://github.com/django-cms/django-filer/compare/3.3.1...3.3.2\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 href=\"https://github.com/django-cms/django-filer/blob/master/CHANGELOG.rst\"\u003edjango-filer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.3.2 (2025-09-01)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix: add filename length safety check with random suffix by \u003ca href=\"https://github.com/Baraff24\"\u003e\u003ccode\u003e@​Baraff24\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1515\"\u003edjango-cms/django-filer#1515\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Remove user from autocomplete fields if (swapped) user model does not have search fields by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1517\"\u003edjango-cms/django-filer#1517\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Include Private Storage in Orphan File Scanning for filer_check Command by \u003ca href=\"https://github.com/Baraff24\"\u003e\u003ccode\u003e@​Baraff24\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1518\"\u003edjango-cms/django-filer#1518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Relect template block structure of Django 5.2+ by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1523\"\u003edjango-cms/django-filer#1523\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Added Full Persian (Farsi) Translate by \u003ca href=\"https://github.com/dimacodev\"\u003e\u003ccode\u003e@​dimacodev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1524\"\u003edjango-cms/django-filer#1524\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Update directory_table_list.html by \u003ca href=\"https://github.com/AliAkbarSobhanpoor\"\u003e\u003ccode\u003e@​AliAkbarSobhanpoor\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1528\"\u003edjango-cms/django-filer#1528\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Avoid locale-dependent ratio by \u003ca href=\"https://github.com/albanbochsler\"\u003e\u003ccode\u003e@​albanbochsler\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1536\"\u003edjango-cms/django-filer#1536\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: docs GitHub action built by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1540\"\u003edjango-cms/django-filer#1540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Folder permission cache update sometimes raised TypeError by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1539\"\u003edjango-cms/django-filer#1539\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Failed to install submodules of filer by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1544\"\u003edjango-cms/django-filer#1544\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eNew Contributors\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Baraff24\"\u003e\u003ccode\u003e@​Baraff24\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1515\"\u003edjango-cms/django-filer#1515\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dimacodev\"\u003e\u003ccode\u003e@​dimacodev\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1524\"\u003edjango-cms/django-filer#1524\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AliAkbarSobhanpoor\"\u003e\u003ccode\u003e@​AliAkbarSobhanpoor\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1528\"\u003edjango-cms/django-filer#1528\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/albanbochsler\"\u003e\u003ccode\u003e@​albanbochsler\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1536\"\u003edjango-cms/django-filer#1536\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 href=\"https://github.com/django-cms/django-filer/commit/3a5713c82a15b1f6576c13d9d35c8ba6590a5e58\"\u003e\u003ccode\u003e3a5713c\u003c/code\u003e\u003c/a\u003e chore: Prepare release 3.3.2 (\u003ca href=\"https://redirect.github.com/django-cms/django-filer/issues/1545\"\u003e#1545\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-filer/commit/3cd00e9797a6313c99d23c797ea9b71b78c0d4ca\"\u003e\u003ccode\u003e3cd00e9\u003c/code\u003e\u003c/a\u003e chore: Configure package data in pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-filer/commit/06236c41c2338f76251e4ce39acee2c1af734e7b\"\u003e\u003ccode\u003e06236c4\u003c/code\u003e\u003c/a\u003e fix: Failed to install submodules of filer (\u003ca href=\"https://redirect.github.com/django-cms/django-filer/issues/1544\"\u003e#1544\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-filer/commit/9df2d5ceba58291bc6cf34f9592db7838f54a843\"\u003e\u003ccode\u003e9df2d5c\u003c/code\u003e\u003c/a\u003e fix: Folder permission cache update sometimes raised TypeError (\u003ca href=\"https://redirect.github.com/django-cms/django-filer/issues/1539\"\u003e#1539\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-filer/commit/f3ce53ee40c40ca1460a1814779ef206b4408b18\"\u003e\u003ccode\u003ef3ce53e\u003c/code\u003e\u003c/a\u003e chore: Update project meta data and use pyproject.toml (\u003ca href=\"https://redirect.github.com/django-cms/django-filer/issues/1541\"\u003e#1541\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-filer/commit/e618986c7f9bcb84a67cc7431f56f9769a05d402\"\u003e\u003ccode\u003ee618986\u003c/code\u003e\u003c/a\u003e fix: docs GitHub action built (\u003ca href=\"https://redirect.github.com/django-cms/django-filer/issues/1540\"\u003e#1540\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-filer/commit/7d7acddb1180dca0903dd46c1e4c84ee99b7032d\"\u003e\u003ccode\u003e7d7acdd\u003c/code\u003e\u003c/a\u003e ci: pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/django-cms/django-filer/issues/1531\"\u003e#1531\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-filer/commit/da1c634f5f34ce160d69809a27cc76a4bf1f52e5\"\u003e\u003ccode\u003eda1c634\u003c/code\u003e\u003c/a\u003e fix: Avoid locale-dependent ratio (\u003ca href=\"https://redirect.github.com/django-cms/django-filer/issues/1536\"\u003e#1536\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-filer/commit/55a0e70d64fbb60d468dadf727650cce607d5edf\"\u003e\u003ccode\u003e55a0e70\u003c/code\u003e\u003c/a\u003e Update directory_table_list.html (\u003ca href=\"https://redirect.github.com/django-cms/django-filer/issues/1528\"\u003e#1528\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-filer/commit/b409ab16a940055b3dea5e03641a6073fd647774\"\u003e\u003ccode\u003eb409ab1\u003c/code\u003e\u003c/a\u003e Added Full Persain (Farsi) Translate (\u003ca href=\"https://redirect.github.com/django-cms/django-filer/issues/1524\"\u003e#1524\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-cms/django-filer/compare/3.3.1...3.3.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pip-tools` from 7.5.0 to 7.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jazzband/pip-tools/releases\"\u003epip-tools's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.5.1\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2025-09-26\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed static parsing of \u003ccode\u003epyproject.toml\u003c/code\u003e data when the \u003ccode\u003epyproject.toml\u003c/code\u003e is supplied as a relative path -- by \u003ca href=\"https://github.com/sirosen\"\u003e\u003ccode\u003e@​sirosen\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2215\"\u003e#2215\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2221\"\u003e#2221\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2233\"\u003e#2233\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe \u0026quot;via\u0026quot; paths in \u003ccode\u003epip-compile\u003c/code\u003e output for requirements discovered from \u003ccode\u003epyproject.toml\u003c/code\u003e data are now written in POSIX format -- by \u003ca href=\"https://github.com/sirosen\"\u003e\u003ccode\u003e@​sirosen\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2221\"\u003e#2221\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed a bug which removed slashes from URLs in \u003ccode\u003e-r\u003c/code\u003e and \u003ccode\u003e-c\u003c/code\u003e in the output of \u003ccode\u003epip-compile\u003c/code\u003e -- by \u003ca href=\"https://github.com/sirosen\"\u003e\u003ccode\u003e@​sirosen\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2223\"\u003e#2223\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed an incompatibility with \u003ccode\u003eclick \u0026gt;= 8.3\u003c/code\u003e which made \u003ccode\u003epip-compile\u003c/code\u003e display incorrect options in the compile command in output headers -- by \u003ca href=\"https://github.com/sirosen\"\u003e\u003ccode\u003e@​sirosen\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2235\"\u003e#2235\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003epip-tools\u003c/code\u003e now officially supports \u003ccode\u003epip\u003c/code\u003e version 25.2 -- by \u003ca href=\"https://github.com/sirosen\"\u003e\u003ccode\u003e@​sirosen\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2214\"\u003e#2214\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved documentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eReadTheDocs builds for \u003ccode\u003epip-tools\u003c/code\u003e no longer include htmlzip and pdf outputs -- by \u003ca href=\"https://github.com/sirosen\"\u003e\u003ccode\u003e@​sirosen\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2218\"\u003e#2218\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributor-facing changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003epip-tools\u003c/code\u003e now tests on \u003ccode\u003epip\u003c/code\u003e version 25.2 -- by \u003ca href=\"https://github.com/sirosen\"\u003e\u003ccode\u003e@​sirosen\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2214\"\u003e#2214\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe changelog documentation for contributors now provides hyperlinks to the source of each example change note -- by \u003ca href=\"https://github.com/jayaddison\"\u003e\u003ccode\u003e@​jayaddison\u003c/code\u003e\u003c/a\u003e (for OpenCulinary).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2217\"\u003e#2217\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe CPython versions tested in nightly CI runs are now separate from branch and PR CI, and don't include very old versions -- by \u003ca href=\"https://github.com/sirosen\"\u003e\u003ccode\u003e@​sirosen\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2226\"\u003e#2226\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jazzband/pip-tools/blob/main/CHANGELOG.md\"\u003epip-tools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.5.1\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2025-09-26\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed static parsing of {file}\u003ccode\u003epyproject.toml\u003c/code\u003e data when the\n{file}\u003ccode\u003epyproject.toml\u003c/code\u003e is supplied as a relative path -- by {user}\u003ccode\u003esirosen\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e {issue}\u003ccode\u003e2215\u003c/code\u003e, {issue}\u003ccode\u003e2221\u003c/code\u003e, {issue}\u003ccode\u003e2233\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe \u0026quot;via\u0026quot; paths in \u003ccode\u003epip-compile\u003c/code\u003e output for requirements discovered from\n\u003ccode\u003epyproject.toml\u003c/code\u003e data are now written in POSIX format -- by {user}\u003ccode\u003esirosen\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e {issue}\u003ccode\u003e2221\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed a bug which removed slashes from URLs in \u003ccode\u003e-r\u003c/code\u003e and \u003ccode\u003e-c\u003c/code\u003e in the output\nof \u003ccode\u003epip-compile\u003c/code\u003e -- by {user}\u003ccode\u003esirosen\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e {issue}\u003ccode\u003e2223\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed an incompatibility with \u003ccode\u003eclick \u0026gt;= 8.3\u003c/code\u003e which made \u003ccode\u003epip-compile\u003c/code\u003e display incorrect\noptions in the compile command in output headers -- by {user}\u003ccode\u003esirosen\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e {issue}\u003ccode\u003e2235\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003epip-tools\u003c/code\u003e now officially supports \u003ccode\u003epip\u003c/code\u003e version 25.2 -- by {user}\u003ccode\u003esirosen\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e {issue}\u003ccode\u003e2214\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved documentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eReadTheDocs builds for \u003ccode\u003epip-tools\u003c/code\u003e no longer include htmlzip and pdf outputs -- by {user}\u003ccode\u003esirosen\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e {issue}\u003ccode\u003e2218\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributor-facing changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003epip-tools\u003c/code\u003e now tests on \u003ccode\u003epip\u003c/code\u003e version 25.2 -- by {user}\u003ccode\u003esirosen\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e {issue}\u003ccode\u003e2214\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe changelog documentation for contributors now provides hyperlinks to the source of each example change note -- by {user}\u003ccode\u003ejayaddison\u003c/code\u003e (for OpenCulinary).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e {issue}\u003ccode\u003e2217\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe CPython versions tested in nightly CI runs are now separate from\nbranch and PR CI, and don't include very old versions -- by {user}\u003ccode\u003esirosen\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 href=\"https://github.com/jazzband/pip-tools/commit/1c2692b7f45a94d93e3f4bb252da3fd711ad08a9\"\u003e\u003ccode\u003e1c2692b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2245\"\u003e#2245\u003c/a\u003e from sirosen/release-7.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/6a863fdebc8481adcda6fd0d019e0e1cc052b6ae\"\u003e\u003ccode\u003e6a863fd\u003c/code\u003e\u003c/a\u003e Various small fixes to the changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/e8adc41d8054c998cc1c927f1a9cddb9a13f812a\"\u003e\u003ccode\u003ee8adc41\u003c/code\u003e\u003c/a\u003e Update changelog for version 7.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/9b4de7d3b8f3a4f12650a00fd6d63793ff0d4d38\"\u003e\u003ccode\u003e9b4de7d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2242\"\u003e#2242\u003c/a\u003e from sirosen/bump-nightly-ci-job-to-310\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/cd233ddb638f555d8a05012ffd6d61d9dc2f7b5c\"\u003e\u003ccode\u003ecd233dd\u003c/code\u003e\u003c/a\u003e Separately control CPython versions in nightly CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/78020b415bf6a023d45532ddcc8f87482336b43e\"\u003e\u003ccode\u003e78020b4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2243\"\u003e#2243\u003c/a\u003e from openculinary/pr-2217-followup/add-changelog-entry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/2be5b1f76a8b34f0f4555d5761bb4ec86116d461\"\u003e\u003ccode\u003e2be5b1f\u003c/code\u003e\u003c/a\u003e Add changelog entry for \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2217\"\u003e#2217\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/16c793b06897e1ab22d326ebe249780a2fac9116\"\u003e\u003ccode\u003e16c793b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2221\"\u003e#2221\u003c/a\u003e from sirosen/fix-relpath-static-pyproject-parse\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/76bdc77f2cc44470347921c6aaa232719aab49cf\"\u003e\u003ccode\u003e76bdc77\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2217\"\u003e#2217\u003c/a\u003e from openculinary/pr-2203-followup/reify-changenote-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/a5cf40c6418fcc241078845509fb47fa04fbe2cb\"\u003e\u003ccode\u003ea5cf40c\u003c/code\u003e\u003c/a\u003e Link second resolved issue in changelog\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jazzband/pip-tools/compare/v7.5.0...v7.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `djangocms-snippet` from 5.0.1 to 5.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-cms/djangocms-snippet/releases\"\u003edjangocms-snippet's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.0.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eBigAutoField\u003c/code\u003e to \u003ccode\u003eid\u003c/code\u003e fields by \u003ca href=\"https://github.com/arkain\"\u003e\u003ccode\u003e@​arkain\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/pull/189\"\u003edjango-cms/djangocms-snippet#189\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/pull/188\"\u003edjango-cms/djangocms-snippet#188\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAutomatically remove orphaned grouper instances by \u003ca href=\"https://github.com/ms-18\"\u003e\u003ccode\u003e@​ms-18\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/pull/190\"\u003edjango-cms/djangocms-snippet#190\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/pull/191\"\u003edjango-cms/djangocms-snippet#191\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 4 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/pull/193\"\u003edjango-cms/djangocms-snippet#193\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/download-artifact from 4 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/pull/192\"\u003edjango-cms/djangocms-snippet#192\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=\"https://github.com/arkain\"\u003e\u003ccode\u003e@​arkain\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/pull/189\"\u003edjango-cms/djangocms-snippet#189\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ms-18\"\u003e\u003ccode\u003e@​ms-18\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/pull/190\"\u003edjango-cms/djangocms-snippet#190\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-cms/djangocms-snippet/compare/5.0.1...5.0.2\"\u003ehttps://github.com/django-cms/djangocms-snippet/compare/5.0.1...5.0.2\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 href=\"https://github.com/django-cms/djangocms-snippet/blob/master/CHANGELOG.rst\"\u003edjangocms-snippet's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.0.2 (2025-09-03)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eBigAutoField\u003c/code\u003e to \u003ccode\u003eid\u003c/code\u003e fields by \u003ca href=\"https://github.com/arkain\"\u003e\u003ccode\u003e@​arkain\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/pull/189\"\u003edjango-cms/djangocms-snippet#189\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAutomatically remove orphaned grouper instances by \u003ca href=\"https://github.com/ms-18\"\u003e\u003ccode\u003e@​ms-18\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/pull/190\"\u003edjango-cms/djangocms-snippet#190\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eNew Contributors\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arkain\"\u003e\u003ccode\u003e@​arkain\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/pull/189\"\u003edjango-cms/djangocms-snippet#189\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ms-18\"\u003e\u003ccode\u003e@​ms-18\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/pull/190\"\u003edjango-cms/djangocms-snippet#190\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 href=\"https://github.com/django-cms/djangocms-snippet/commit/f8df3f0055f72d145188c1218524342f8db00dc8\"\u003e\u003ccode\u003ef8df3f0\u003c/code\u003e\u003c/a\u003e Bump version to 5.0.2 (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/issues/194\"\u003e#194\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-snippet/commit/81333f0173e30a282d968a30c50b198464fc2960\"\u003e\u003ccode\u003e81333f0\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4 to 5 (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/issues/192\"\u003e#192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-snippet/commit/9108b93dfa1d98e5982673264067179dbbd25e6a\"\u003e\u003ccode\u003e9108b93\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/issues/193\"\u003e#193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-snippet/commit/66df4c1590232f7372a91106ce05cfc4000f1b15\"\u003e\u003ccode\u003e66df4c1\u003c/code\u003e\u003c/a\u003e ci: pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/issues/191\"\u003e#191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-snippet/commit/0fbfa1de5adc885bc8ed1186ebb2473b07c686b8\"\u003e\u003ccode\u003e0fbfa1d\u003c/code\u003e\u003c/a\u003e Automatically remove orphaned grouper instances (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/issues/190\"\u003e#190\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-snippet/commit/8ed5edaeab7093b0b3faa4508edd815e66ccb682\"\u003e\u003ccode\u003e8ed5eda\u003c/code\u003e\u003c/a\u003e ci: pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/issues/188\"\u003e#188\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-snippet/commit/60d3f181a01b69befb2911e44a791cd9f9481e94\"\u003e\u003ccode\u003e60d3f18\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eBigAutoField\u003c/code\u003e to \u003ccode\u003eid\u003c/code\u003e fields (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/issues/189\"\u003e#189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/django-cms/djangocms-snippet/compare/5.0.1...5.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg[c]` from 3.2.9 to 3.2.10\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg/blob/master/docs/news.rst\"\u003epsycopg[c]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e.. currentmodule:: psycopg\u003c/p\u003e\n\u003cp\u003e.. index::\nsingle: Release notes\nsingle: News\u003c/p\u003e\n\u003ch1\u003e\u003ccode\u003epsycopg\u003c/code\u003e release notes\u003c/h1\u003e\n\u003ch2\u003eFuture releases\u003c/h2\u003e\n\u003cp\u003ePsycopg 3.3.0 (unreleased)\n^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003e.. rubric:: New top-level features\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd :ref:\u003ccode\u003etemplate strings queries \\\u0026lt;template-strings\u0026gt;\u003c/code\u003e (:ticket:\u003ccode\u003e[#1054](https://github.com/psycopg/psycopg/issues/1054)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eCursors are now iterators, not only iterables. This means you can call\n\u003ccode\u003enext(cur)\u003c/code\u003e to fetch the next row (:ticket:\u003ccode\u003e[#1064](https://github.com/psycopg/psycopg/issues/1064)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eCursor.results()\u003c/code\u003e to iterate over the result sets of the queries\nexecuted though \u003ccode\u003e~Cursor.executemany()\u003c/code\u003e or \u003ccode\u003e~Cursor.execute()\u003c/code\u003e\n(:ticket:\u003ccode\u003e[#1080](https://github.com/psycopg/psycopg/issues/1080)\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. rubric:: New libpq wrapper features\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epq.PGconn.used_gssapi\u003c/code\u003e attribute and \u003ccode\u003eCapabilities.has_used_gssapi()\u003c/code\u003e\nfunction (:ticket:\u003ccode\u003e[#1138](https://github.com/psycopg/psycopg/issues/1138)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eConnectionInfo.full_protocol_version\u003c/code\u003e attribute,\n\u003ccode\u003eCapabilities.has_full_protocol_version()\u003c/code\u003e function (:ticket:\u003ccode\u003e[#1079](https://github.com/psycopg/psycopg/issues/1079)\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. rubric:: Other changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDisable default GSSAPI preferential connection in the binary package\n(:ticket:\u003ccode\u003e[#1136](https://github.com/psycopg/psycopg/issues/1136)\u003c/code\u003e).\u003c/p\u003e\n\u003cp\u003e.. warning::\u003c/p\u003e\n\u003cp\u003ePlease explicitly set the gssencmode_ connection parameter or the\n:envvar:\u003ccode\u003ePGGSSENCMODE\u003c/code\u003e environment variable to interact reliably with the\nGSSAPI.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDrop support for Python 3.8 (:ticket:\u003ccode\u003e[#976](https://github.com/psycopg/psycopg/issues/976)\u003c/code\u003e) and 3.9 (:ticket:\u003ccode\u003e[#1056](https://github.com/psycopg/psycopg/issues/1056)\u003c/code\u003e).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePsycopg 3.2.11 (unreleased)\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix spurious readiness flags in some of the wait functions (:ticket:\u003ccode\u003e[#1141](https://github.com/psycopg/psycopg/issues/1141)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix high CPU usage using the \u003ccode\u003ewait_c\u003c/code\u003e function on Windows (:ticket:\u003ccode\u003e[#645](https://github.com/psycopg/psycopg/issues/645)\u003c/code\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 href=\"https://github.com/psycopg/psycopg/commit/6cc2adfb45464f201bb7a15dd95189a7af16c26e\"\u003e\u003ccode\u003e6cc2adf\u003c/code\u003e\u003c/a\u003e chore: bump psycopg package version to 3.2.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/4c2fd3735c0670d63b92a7ad098fc0a0a2c7f52a\"\u003e\u003ccode\u003e4c2fd37\u003c/code\u003e\u003c/a\u003e Merge branch 'pg18-3.2' into maint-3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/6ddad7b4bb7144b317e41ea57fcf3b720756fc8a\"\u003e\u003ccode\u003e6ddad7b\u003c/code\u003e\u003c/a\u003e docs: mention PostgreSQL v18 support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/30bfdb954ea93cf92ce9a823f41ea6f67fd03d52\"\u003e\u003ccode\u003e30bfdb9\u003c/code\u003e\u003c/a\u003e ci: add PostgreSQL 18 to the test grid\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/57236b83b83cbfb588fcfcf70c1ca81c62d05a5b\"\u003e\u003ccode\u003e57236b8\u003c/code\u003e\u003c/a\u003e chore: add PostgreSQL 18 exceptions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/970a307b3d6d2b5125abf8337320aab97292f34f\"\u003e\u003ccode\u003e970a307\u003c/code\u003e\u003c/a\u003e fix: add ConnStatus.CONNECTION_AUTHENTICATING value\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/6903a92b5f9dc40e25f3a3d7ba62a4b4e739a638\"\u003e\u003ccode\u003e6903a92\u003c/code\u003e\u003c/a\u003e Merge branch 'fix-1091' into maint-3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/43ad961c85703c0458c58eccc512ec1e1f2d9fae\"\u003e\u003ccode\u003e43ad961\u003c/code\u003e\u003c/a\u003e docs: document the changes to notifies generator\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/eac8115523d1b569e279eaec5fc31d76da25ef55\"\u003e\u003cc...\n\n_Description has been truncated_","html_url":"https://github.com/maxnoelp2/coolify-template/pull/56","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/maxnoelp2%2Fcoolify-template/issues/56","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/56/packages"},{"uuid":"3523565948","node_id":"PR_kwDOPfcqS86uLQUA","number":55,"state":"closed","title":"Bump the python group across 1 directory with 27 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-10-30T21:26:58.000Z","author_association":null,"state_reason":null,"created_at":"2025-10-16T21:25:20.000Z","updated_at":"2025-10-30T21:26:59.000Z","time_to_close":1209698,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python","update_count":27,"packages":[{"name":"rcssmin","old_version":"1.1.2","new_version":"1.2.2","repository_url":"https://github.com/ndparker/rcssmin"},{"name":"whitenoise","old_version":"6.9.0","new_version":"6.11.0","repository_url":"https://github.com/evansd/whitenoise"},{"name":"hiredis","old_version":"3.2.1","new_version":"3.3.0","repository_url":"https://github.com/redis/hiredis-py"},{"name":"django","old_version":"5.1.11","new_version":"5.2.7","repository_url":"https://github.com/django/django"},{"name":"django-allauth","old_version":"65.10.0","new_version":"65.12.1"},{"name":"uwsgi","old_version":"2.0.30","new_version":"2.0.31"},{"name":"easy-thumbnails","old_version":"2.10","new_version":"2.10.1"},{"name":"django-cms","old_version":"5.0.2","new_version":"5.0.4","repository_url":"https://github.com/django-cms/django-cms"},{"name":"django-entangled","old_version":"0.6.3","new_version":"0.7","repository_url":"https://github.com/jrief/django-entangled"},{"name":"djangocms-text","old_version":"0.9.2","new_version":"0.9.3","repository_url":"https://github.com/django-cms/djangocms-text"},{"name":"djangocms-frontend","old_version":"2.1.4","new_version":"2.2.0","repository_url":"https://github.com/django-cms/djangocms-frontend"},{"name":"svglib","old_version":"1.5.1","new_version":"1.6.0","repository_url":"https://github.com/deeplook/svglib"},{"name":"reportlab","old_version":"4.4.3","new_version":"4.4.4"},{"name":"django-filer","old_version":"3.3.1","new_version":"3.3.2","repository_url":"https://github.com/django-cms/django-filer"},{"name":"pip-tools","old_version":"7.5.0","new_version":"7.5.1","repository_url":"https://github.com/jazzband/pip-tools"},{"name":"djangocms-snippet","old_version":"5.0.1","new_version":"5.0.2","repository_url":"https://github.com/django-cms/djangocms-snippet"},{"name":"psycopg","old_version":"3.2.9","new_version":"3.2.10"},{"name":"django-anymail","old_version":"13.0.1","new_version":"13.1"},{"name":"watchfiles","old_version":"1.1.0","new_version":"1.1.1","repository_url":"https://github.com/samuelcolvin/watchfiles"},{"name":"mypy","old_version":"1.17.1","new_version":"1.18.2","repository_url":"https://github.com/python/mypy"},{"name":"django-stubs","old_version":"5.2.2","new_version":"5.2.7"},{"name":"pytest","old_version":"8.4.1","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-sugar","old_version":"1.0.0","new_version":"1.1.1","repository_url":"https://github.com/Teemu/pytest-sugar"},{"name":"ruff","old_version":"0.12.8","new_version":"0.14.1","repository_url":"https://github.com/astral-sh/ruff"},{"name":"coverage","old_version":"7.10.3","new_version":"7.11.0","repository_url":"https://github.com/nedbat/coveragepy"},{"name":"factory-boy","old_version":"3.3.2","new_version":"3.3.3","repository_url":"https://github.com/FactoryBoy/factory_boy"},{"name":"django-coverage-plugin","old_version":"3.1.1","new_version":"3.2.0","repository_url":"https://github.com/nedbat/django_coverage_plugin"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python group with 27 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [rcssmin](https://github.com/ndparker/rcssmin) | `1.1.2` | `1.2.2` |\n| [whitenoise](https://github.com/evansd/whitenoise) | `6.9.0` | `6.11.0` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.2.1` | `3.3.0` |\n| [django](https://github.com/django/django) | `5.1.11` | `5.2.7` |\n| [django-allauth[mfa]](https://github.com/sponsors/pennersr) | `65.10.0` | `65.12.1` |\n| [uwsgi](https://uwsgi-docs.readthedocs.io/en/latest/) | `2.0.30` | `2.0.31` |\n| [easy-thumbnails[svg]](https://github.com/SmileyChris/easy-thumbnails) | `2.10` | `2.10.1` |\n| [django-cms](https://github.com/django-cms/django-cms) | `5.0.2` | `5.0.4` |\n| [django-entangled](https://github.com/jrief/django-entangled) | `0.6.3` | `0.7` |\n| [djangocms-text](https://github.com/django-cms/djangocms-text) | `0.9.2` | `0.9.3` |\n| [djangocms-frontend](https://github.com/django-cms/djangocms-frontend) | `2.1.4` | `2.2.0` |\n| [svglib](https://github.com/deeplook/svglib) | `1.5.1` | `1.6.0` |\n| [reportlab](https://www.reportlab.com/) | `4.4.3` | `4.4.4` |\n| [django-filer](https://github.com/django-cms/django-filer) | `3.3.1` | `3.3.2` |\n| [pip-tools](https://github.com/jazzband/pip-tools) | `7.5.0` | `7.5.1` |\n| [djangocms-snippet](https://github.com/django-cms/djangocms-snippet) | `5.0.1` | `5.0.2` |\n| [psycopg[c]](https://github.com/psycopg/psycopg) | `3.2.9` | `3.2.10` |\n| [django-anymail[mailgun]](https://github.com/anymail/django-anymail) | `13.0.1` | `13.1` |\n| [watchfiles](https://github.com/samuelcolvin/watchfiles) | `1.1.0` | `1.1.1` |\n| [mypy](https://github.com/python/mypy) | `1.17.1` | `1.18.2` |\n| [django-stubs[compatible-mypy]](https://github.com/sponsors/typeddjango) | `5.2.2` | `5.2.7` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.1` | `8.4.2` |\n| [pytest-sugar](https://github.com/Teemu/pytest-sugar) | `1.0.0` | `1.1.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.12.8` | `0.14.1` |\n| [coverage](https://github.com/nedbat/coveragepy) | `7.10.3` | `7.11.0` |\n| [factory-boy](https://github.com/FactoryBoy/factory_boy) | `3.3.2` | `3.3.3` |\n| [django-coverage-plugin](https://github.com/nedbat/django_coverage_plugin) | `3.1.1` | `3.2.0` |\n\n\nUpdates `rcssmin` from 1.1.2 to 1.2.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ndparker/rcssmin/blob/master/CHANGES\"\u003ercssmin's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eChanges with version 1.2.2\u003c/p\u003e\n\u003cp\u003e*) Update benchmarks\u003c/p\u003e\n\u003cp\u003e*) Add support for Python 3.14\u003c/p\u003e\n\u003cp\u003e*) Update project boilerplate\u003c/p\u003e\n\u003cp\u003eChanges with version 1.2.1\u003c/p\u003e\n\u003cp\u003e*) Change doc theme to \u0026quot;furo\u0026quot;\u003c/p\u003e\n\u003cp\u003e*) Remove build dependency pinning (resolves \u003ca href=\"https://redirect.github.com/ndparker/rcssmin/issues/18\"\u003e#18\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e*) Update project boilerplate\u003c/p\u003e\n\u003cp\u003eChanges with version 1.2.0\u003c/p\u003e\n\u003cp\u003e*) Add support for nesting selector (\u0026amp;)\u003c/p\u003e\n\u003cp\u003e*) Update project boilerplate\u003c/p\u003e\n\u003cp\u003eChanges with version 1.1.3\u003c/p\u003e\n\u003cp\u003e*) Add support for Python 3.13\u003c/p\u003e\n\u003cp\u003e*) Update project boilerplate\u003c/p\u003e\n\u003cp\u003eChanges with version 1.1.2\u003c/p\u003e\n\u003cp\u003e*) Add support for Python 3.12\u003c/p\u003e\n\u003cp\u003e*) Add musllinux wheels\u003c/p\u003e\n\u003cp\u003e*) Update project boilerplate\u003c/p\u003e\n\u003cp\u003eChanges with version 1.1.1\u003c/p\u003e\n\u003cp\u003e*) Add support for Python 3.11\u003c/p\u003e\n\u003cp\u003e*) Update project boilerplate\u003c/p\u003e\n\u003cp\u003eChanges with version 1.1.0\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 href=\"https://github.com/ndparker/rcssmin/commit/b4cac4d1ffd665aa3b8d2f9e0e09529578a67193\"\u003e\u003ccode\u003eb4cac4d\u003c/code\u003e\u003c/a\u003e Bump version to 1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/db3f06eefa05860bbe1e8fa373e0249cb6adedbb\"\u003e\u003ccode\u003edb3f06e\u003c/code\u003e\u003c/a\u003e Update benchmarks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/77816d3cf9e2f3dc03c00e1f8526e471dffdc3fe\"\u003e\u003ccode\u003e77816d3\u003c/code\u003e\u003c/a\u003e Add Python 3.14 support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/ecac7747c1a68781cf1b524ea54db44aae7c7bd2\"\u003e\u003ccode\u003eecac774\u003c/code\u003e\u003c/a\u003e Project boilerplate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/5bac716410f460f75e243961f482b1895e487b6b\"\u003e\u003ccode\u003e5bac716\u003c/code\u003e\u003c/a\u003e Bump version to 1.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/8d4312f864efa55d36742a728adffebfd27a6aa3\"\u003e\u003ccode\u003e8d4312f\u003c/code\u003e\u003c/a\u003e Hello 2025\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/41d1e1f7ae6242a80854509d7181f8a91278722b\"\u003e\u003ccode\u003e41d1e1f\u003c/code\u003e\u003c/a\u003e Update dependencies, change sphinx theme\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/5396f5ec399b2ac57293657fb87ca888f3ecda8e\"\u003e\u003ccode\u003e5396f5e\u003c/code\u003e\u003c/a\u003e Bump version to 1.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/81da21987bfe614153711217f1b50bc0fa5f4c55\"\u003e\u003ccode\u003e81da219\u003c/code\u003e\u003c/a\u003e Update benchmarks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/1f9ff6d2d89f03108ccf53332352e328ee010b82\"\u003e\u003ccode\u003e1f9ff6d\u003c/code\u003e\u003c/a\u003e Add support for nesting selector (\u0026amp;)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ndparker/rcssmin/compare/1.1.2...1.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `whitenoise` from 6.9.0 to 6.11.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/evansd/whitenoise/blob/main/docs/changelog.rst\"\u003ewhitenoise's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.11.0 (2025-09-18)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Django 6.0.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.10.0 (2025-09-09)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14.\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 href=\"https://github.com/evansd/whitenoise/commit/c9c06e9382b92fc959ffdfc3e2ec63057de82561\"\u003e\u003ccode\u003ec9c06e9\u003c/code\u003e\u003c/a\u003e Version 6.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/051c4e997a07fd3ae5e9f3ec092080102ab89d93\"\u003e\u003ccode\u003e051c4e9\u003c/code\u003e\u003c/a\u003e Support Django 6.0 (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/665\"\u003e#665\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/c903cc13394895cbb3926e48c7acecf364efcd26\"\u003e\u003ccode\u003ec903cc1\u003c/code\u003e\u003c/a\u003e Version 6.10.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/a81bcb0ae2dd0c5884ebadb762f46827ecb54d0f\"\u003e\u003ccode\u003ea81bcb0\u003c/code\u003e\u003c/a\u003e docs(django): use the stable version in URLs (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/626\"\u003e#626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/67b4f32b12a9700b6dcc30ced8e9ad23bf39baa1\"\u003e\u003ccode\u003e67b4f32\u003c/code\u003e\u003c/a\u003e Support Python 3.14 (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/664\"\u003e#664\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/da8d333d165be1bdd9e7decbb3a293b5e55ff608\"\u003e\u003ccode\u003eda8d333\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/663\"\u003e#663\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/800072482c0652f81864ae78c26539d3dfc765b2\"\u003e\u003ccode\u003e8000724\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/662\"\u003e#662\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/8fb339f0eaee9219b1e02a840b5fd2227cf2fbbf\"\u003e\u003ccode\u003e8fb339f\u003c/code\u003e\u003c/a\u003e Upgrade dependencies (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/661\"\u003e#661\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/adf64ddfa5329d622cbc4740aec49b7baf0df792\"\u003e\u003ccode\u003eadf64dd\u003c/code\u003e\u003c/a\u003e Use uvx to run tox on GitHub Actions (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/660\"\u003e#660\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/ad6eb204640ff69498f8fc60bd9eb876ee5771b8\"\u003e\u003ccode\u003ead6eb20\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/659\"\u003e#659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/evansd/whitenoise/compare/6.9.0...6.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `hiredis` from 3.2.1 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/hiredis-py/releases\"\u003ehiredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.3.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e by \u003ca href=\"https://github.com/zweizeichen\"\u003e\u003ccode\u003e@​zweizeichen\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\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 href=\"https://github.com/redis/hiredis-py/commit/187d0f387afed58a955a42ea8c5467100871f98b\"\u003e\u003ccode\u003e187d0f3\u003c/code\u003e\u003c/a\u003e Version 3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/3efcf037edc5a9f7abfaedbd3f60b2a03feb4787\"\u003e\u003ccode\u003e3efcf03\u003c/code\u003e\u003c/a\u003e Add Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/215\"\u003e#215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/966cede2c0ca0a8ac4fe0786571e5c230f39c36e\"\u003e\u003ccode\u003e966cede\u003c/code\u003e\u003c/a\u003e Fix assertion in reader.c (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/212\"\u003e#212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/78def309e58126fdaacb66e6fd40df9c46494062\"\u003e\u003ccode\u003e78def30\u003c/code\u003e\u003c/a\u003e Bump version to 3.3.0-dev\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/redis/hiredis-py/compare/v3.2.1...v3.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django` from 5.1.11 to 5.2.7\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/3cff3209e35a560f94801d428cf7f2a3ecb2a051\"\u003e\u003ccode\u003e3cff320\u003c/code\u003e\u003c/a\u003e [5.2.x] Bumped version for 5.2.7 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/ed8fc39d77465eddbde1191a054ae965f6a8a584\"\u003e\u003ccode\u003eed8fc39\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2025-59682 -- Fixed potential partial directory-traversal v...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/52fbae0a4dbbe5faa59827f8f05694a0065cc135\"\u003e\u003ccode\u003e52fbae0\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2025-59681 -- Protected QuerySet.annotate(), alias(), aggre...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/1794cbf961f9ea54715fb094fe8adc80a5054947\"\u003e\u003ccode\u003e1794cbf\u003c/code\u003e\u003c/a\u003e [5.2.x] Made cosmetic edits to 5.2.7 release notes.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/81625a141e1feaaea877fc18876fdd7b6394442c\"\u003e\u003ccode\u003e81625a1\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36587\"\u003e#36587\u003c/a\u003e -- Clarified usage of \u003ccode\u003elist.insert()\u003c/code\u003e for upload handlers.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/6f3813e4b6e3db7fa3cc612c78f898142468bca9\"\u003e\u003ccode\u003e6f3813e\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/35877\"\u003e#35877\u003c/a\u003e, Refs \u003ca href=\"https://redirect.github.com/django/django/issues/36128\"\u003e#36128\u003c/a\u003e -- Documented unique constraint when migrat...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/10a2d3b837c5d8c1ac0cabd399ad7edcc66bfa8e\"\u003e\u003ccode\u003e10a2d3b\u003c/code\u003e\u003c/a\u003e [5.2.x] Added stub release notes and release date for 5.2.7, 5.1.13, and 4.2.25.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/b2773a39a34f0f0ca768fa1daaf8bf72fca56e06\"\u003e\u003ccode\u003eb2773a3\u003c/code\u003e\u003c/a\u003e [5.2.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/25508\"\u003e#25508\u003c/a\u003e -- Used QuerySet.\u003cstrong\u003erepr\u003c/strong\u003e in docs/ref/contrib/postgres/se...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/7554c54e5f02566520dee81c8b95f47429f1b553\"\u003e\u003ccode\u003e7554c54\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36581\"\u003e#36581\u003c/a\u003e -- Updated serialization examples from XML to JSON.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/2a2936c3e6444a0f37156773ca405cedaf28dea7\"\u003e\u003ccode\u003e2a2936c\u003c/code\u003e\u003c/a\u003e [5.2.x] Updated translations from Transifex.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/5.1.11...5.2.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-allauth[mfa]` from 65.10.0 to 65.12.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sponsors/pennersr/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uwsgi` from 2.0.30 to 2.0.31\n\nUpdates `easy-thumbnails[svg]` from 2.10 to 2.10.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/blob/master/CHANGES.rst\"\u003eeasy-thumbnails[svg]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.10.1 (2025-08-17)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Django-5.2.\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 href=\"https://github.com/SmileyChris/easy-thumbnails/commit/208f672ab53e3c7596c966b5282e64ed9747a3e4\"\u003e\u003ccode\u003e208f672\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/SmileyChris/easy-thumbnails/issues/664\"\u003e#664\u003c/a\u003e from SmileyChris/jrief-patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/318a2847391bb0e3fdc0a17a52af49a5851b53c9\"\u003e\u003ccode\u003e318a284\u003c/code\u003e\u003c/a\u003e Update CHANGES.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/0989a40226197b78bfa47939e44017bedea564fa\"\u003e\u003ccode\u003e0989a40\u003c/code\u003e\u003c/a\u003e version 2.10.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/3b86790c40788ebf9ce0cb66f529d745abe715b5\"\u003e\u003ccode\u003e3b86790\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/SmileyChris/easy-thumbnails/issues/663\"\u003e#663\u003c/a\u003e from tomkins/django-5.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/221679530109e5f92b2ad4d3e25f759d6dd90ced\"\u003e\u003ccode\u003e2216795\u003c/code\u003e\u003c/a\u003e Drop support for Django 5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/2cf9af0d7dc341ccaaabc79500033584aae88fbb\"\u003e\u003ccode\u003e2cf9af0\u003c/code\u003e\u003c/a\u003e Add support for Django 5.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/4957daa823a8ee17a90859281c2d93b06930e6fa\"\u003e\u003ccode\u003e4957daa\u003c/code\u003e\u003c/a\u003e Drop py38 from Django 4.2 testing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/21759697b0b5b600e6ebd5cce336a7d25f94099b\"\u003e\u003ccode\u003e2175969\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/SmileyChris/easy-thumbnails/issues/654\"\u003e#654\u003c/a\u003e from ArcaniteSolutions/fix-remote-storages-location-l...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/26351108ed706721492e606fe4ff51179d8a4844\"\u003e\u003ccode\u003e2635110\u003c/code\u003e\u003c/a\u003e check storage has location before fixing path\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/9d6fe6632ba4f175e9f4ad61eb4b3457b8124711\"\u003e\u003ccode\u003e9d6fe66\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/SmileyChris/easy-thumbnails/issues/650\"\u003e#650\u003c/a\u003e from benkonrath/python-3.13\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/compare/2.10.0...2.10.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-cms` from 5.0.2 to 5.0.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-cms/django-cms/releases\"\u003edjango-cms's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.0.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Wrong placeholders rendered when using apphooks with own placeholders (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8343\"\u003e#8343\u003c/a\u003e) by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8348\"\u003edjango-cms/django-cms#8348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Prepare release 5.0.4 by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8352\"\u003edjango-cms/django-cms#8352\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-cms/django-cms/compare/5.0.3...5.0.4\"\u003ehttps://github.com/django-cms/django-cms/compare/5.0.3...5.0.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: Django 6 compatibility (July 2025) by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8302\"\u003edjango-cms/django-cms#8302\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: Add documentation for toolbar get_object and set_object methods by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8314\"\u003edjango-cms/django-cms#8314\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Respect individual placeholder checks if they can be changed (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8317\"\u003e#8317\u003c/a\u003e) by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8318\"\u003edjango-cms/django-cms#8318\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Cut children from inactive menu nodes when level is less or equal to 0 (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8322\"\u003e#8322\u003c/a\u003e) by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8324\"\u003edjango-cms/django-cms#8324\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: copy lang management command - include PageUrl (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/7548\"\u003e#7548\u003c/a\u003e) by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8335\"\u003edjango-cms/django-cms#8335\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Optimize placeholder and plugin utilities by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8337\"\u003edjango-cms/django-cms#8337\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Migration 0033 failed when empty placeholder objects were not present in the db by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8339\"\u003edjango-cms/django-cms#8339\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Build 5.0.3 release by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8341\"\u003edjango-cms/django-cms#8341\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-cms/django-cms/compare/5.0.2...5.0.3\"\u003ehttps://github.com/django-cms/django-cms/compare/5.0.2...5.0.3\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 href=\"https://github.com/django-cms/django-cms/blob/5.0.4/CHANGELOG.rst\"\u003edjango-cms's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.0.4 (2025-10-03)\u003c/h1\u003e\n\u003ch2\u003eBug Fixes:\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWrong placeholders rendered when using apphooks with own placeholders (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8343\"\u003e#8343\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8348\"\u003e#8348\u003c/a\u003e) (775392390) -- Fabian Braun\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eStatistics:\u003c/h2\u003e\n\u003cp\u003eThis release includes 1 pull request, and was created with the help of the following contributors (in alphabetical order):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFabian Braun (1 pull request)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWith the review help of the following contributors:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVinit Kumar\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to all contributors for their efforts!\u003c/p\u003e\n\u003ch1\u003e5.0.3 (2025-09-17)\u003c/h1\u003e\n\u003ch2\u003eBug Fixes:\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDjango 6 compatibility (July 2025) (8302) -- Fabian Braun\u003c/li\u003e\n\u003cli\u003eRespect individual placeholder checks if they can be changed (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8318\"\u003e#8318\u003c/a\u003e) -- Fabian Braun\u003c/li\u003e\n\u003cli\u003eCut children from inactive menu nodes when level is less or equal to 0 (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8324\"\u003e#8324\u003c/a\u003e) -- Stefan Wehrmeyer\u003c/li\u003e\n\u003cli\u003eCopy lang management command - include PageUrl (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8335\"\u003e#8335\u003c/a\u003e) -- Vašek Chalupníček\u003c/li\u003e\n\u003cli\u003eOptimize placeholder and plugin utilities (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8337\"\u003e#8337\u003c/a\u003e) -- Fabian Braun\u003c/li\u003e\n\u003cli\u003eMigration 0033 failed when empty placeholder objects were not present in the db (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8339\"\u003e#8339\u003c/a\u003e) -- Fabian Braun\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eStatistics:\u003c/h2\u003e\n\u003cp\u003eThis release includes 9 pull requests, and was created with the help of the following contributors (in alphabetical order):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFabian Braun (5 pull requests)\u003c/li\u003e\n\u003cli\u003eStefan Wehrmeyer (1 pull request)\u003c/li\u003e\n\u003cli\u003eVašek Chalupníček (1 pull request)\u003c/li\u003e\n\u003cli\u003eGithub Release Action (3 pull requests)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWith the review help of the following contributors:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFabian Braun\u003c/li\u003e\n\u003cli\u003eVinit Kumar\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 href=\"https://github.com/django-cms/django-cms/commit/ed3a004b62ee69f099b0f647dd33778ba0b0d1fb\"\u003e\u003ccode\u003eed3a004\u003c/code\u003e\u003c/a\u003e chore: Prepare release 5.0.4 (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8352\"\u003e#8352\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/775392390eea0ffcdeccb0d21306d6e34fb859df\"\u003e\u003ccode\u003e7753923\u003c/code\u003e\u003c/a\u003e fix: Wrong placeholders rendered when using apphooks with own placeholders (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/cb8bdcecf623e125ea789a0551279a3dc0152deb\"\u003e\u003ccode\u003ecb8bdce\u003c/code\u003e\u003c/a\u003e chore: Build 5.0.3 release (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8341\"\u003e#8341\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/7ec333dc84a443813a2ae980eab685711e9554b4\"\u003e\u003ccode\u003e7ec333d\u003c/code\u003e\u003c/a\u003e fix: Migration 0033 failed when empty placeholder objects were not present in...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/9375101a310c39dbce214845dabe9dfe9c0fd346\"\u003e\u003ccode\u003e9375101\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8337\"\u003e#8337\u003c/a\u003e from django-cms/chore/bp-8319\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/054113d845e550e6be11d97493b45acb2611dce4\"\u003e\u003ccode\u003e054113d\u003c/code\u003e\u003c/a\u003e fix: Add missing space\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/e2e78c1539f2171962abaed8f9807fc83695c20f\"\u003e\u003ccode\u003ee2e78c1\u003c/code\u003e\u003c/a\u003e fix: Undo thread critical opt.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/89dd7677c301a6a6d8de827fc78bbd712cfa5f4f\"\u003e\u003ccode\u003e89dd767\u003c/code\u003e\u003c/a\u003e perf: Optimize placeholder and plugin utilities\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/d568e811f53b67caf0fac71473015437509e75f3\"\u003e\u003ccode\u003ed568e81\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8335\"\u003e#8335\u003c/a\u003e from django-cms/chore/bp-7548\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/6c699d7f5043af9d01710a62bc2aee6ed7f16bd7\"\u003e\u003ccode\u003e6c699d7\u003c/code\u003e\u003c/a\u003e fix: copy lang management command - include PageUrl (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/7548\"\u003e#7548\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-cms/django-cms/compare/5.0.2...5.0.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-entangled` from 0.6.3 to 0.7\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jrief/django-entangled/blob/master/CHANGELOG.md\"\u003edjango-entangled's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.7\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Django 5.2.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.13.\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 href=\"https://github.com/jrief/django-entangled/commit/734bd8f8b316663a1f31d4fa7e9248a955baea21\"\u003e\u003ccode\u003e734bd8f\u003c/code\u003e\u003c/a\u003e Bump to version 0.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jrief/django-entangled/commit/fcad6c824be14d052456df759e23bc4b44646d3e\"\u003e\u003ccode\u003efcad6c8\u003c/code\u003e\u003c/a\u003e Add support for Django-5.2 and Python 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jrief/django-entangled/commit/a89b615cafcdbb939d71fb34dc30253d2dcf5c00\"\u003e\u003ccode\u003ea89b615\u003c/code\u003e\u003c/a\u003e Propagate django-formset\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/jrief/django-entangled/compare/0.6.3...0.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `djangocms-text` from 0.9.2 to 0.9.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-cms/djangocms-text/releases\"\u003edjangocms-text's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.9.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Fixed issues for non-CMS installations and added test coverage for non-CMS installations by \u003ca href=\"https://github.com/Grosskopf\"\u003e\u003ccode\u003e@​Grosskopf\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/119\"\u003edjango-cms/djangocms-text#119\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Respect plugin language for link field by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/113\"\u003edjango-cms/djangocms-text#113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/114\"\u003edjango-cms/djangocms-text#114\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/checkout from 4 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/115\"\u003edjango-cms/djangocms-text#115\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=\"https://github.com/Grosskopf\"\u003e\u003ccode\u003e@​Grosskopf\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/119\"\u003edjango-cms/djangocms-text#119\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-cms/djangocms-text/compare/0.9.2...0.9.3\"\u003ehttps://github.com/django-cms/djangocms-text/compare/0.9.2...0.9.3\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 href=\"https://github.com/django-cms/djangocms-text/blob/main/CHANGELOG.rst\"\u003edjangocms-text's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e0.9.3 (22-08-2025)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix: Fixed issues for non-CMS installations and added test coverage for non-CMS installations by \u003ca href=\"https://github.com/Grosskopf\"\u003e\u003ccode\u003e@​Grosskopf\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/119\"\u003edjango-cms/djangocms-text#119\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Respect plugin language for link field by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/113\"\u003edjango-cms/djangocms-text#113\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/Grosskopf\"\u003e\u003ccode\u003e@​Grosskopf\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/119\"\u003edjango-cms/djangocms-text#119\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 href=\"https://github.com/django-cms/djangocms-text/commit/23c8c5b276547459db18fad7bd2b45bf978c2d4b\"\u003e\u003ccode\u003e23c8c5b\u003c/code\u003e\u003c/a\u003e chore: Prepare release 0.9.3 (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/issues/120\"\u003e#120\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-text/commit/070dc3bff81b6aaad57b34bbbdce905a9a753fef\"\u003e\u003ccode\u003e070dc3b\u003c/code\u003e\u003c/a\u003e fix: Fixed issues for non-CMS installations and added test coverage for non-C...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-text/commit/d23c7830b72afd3d143bbd54dc5c3e25c7a844a7\"\u003e\u003ccode\u003ed23c783\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/issues/115\"\u003e#115\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-text/commit/4c78ee95ac529d9444a0c0342c41fe06c5edf9c1\"\u003e\u003ccode\u003e4c78ee9\u003c/code\u003e\u003c/a\u003e Merge branch 'main' of github.com:django-cms/djangocms-text\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-text/commit/d13df72a07522f1e1f84a50a4448a3ecde4bef65\"\u003e\u003ccode\u003ed13df72\u003c/code\u003e\u003c/a\u003e feat: node 24\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-text/commit/cf7b3b82f92999bb9297b213844696374f524937\"\u003e\u003ccode\u003ecf7b3b8\u003c/code\u003e\u003c/a\u003e ci: pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/issues/114\"\u003e#114\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-text/commit/5fa6205a5910b34334bdb14744f59b62a275a09e\"\u003e\u003ccode\u003e5fa6205\u003c/code\u003e\u003c/a\u003e Update comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-text/commit/79568c6b98a6e4adda9f84b84aa016254db60481\"\u003e\u003ccode\u003e79568c6\u003c/code\u003e\u003c/a\u003e fix: Respect plugin language for link field (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/issues/113\"\u003e#113\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/django-cms/djangocms-text/compare/0.9.2...0.9.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `djangocms-frontend` from 2.1.4 to 2.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-cms/djangocms-frontend/releases\"\u003edjangocms-frontend's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.2.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eci:(deps): bump actions/cache from 4.2.3 to 4.2.4 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-frontend/pull/297\"\u003edjango-cms/djangocms-frontend#297\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Only partially functional preview removed, CSS and JS refactor by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-frontend/pull/301\"\u003edjango-cms/djangocms-frontend#301\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Button group too condensed when using djangocms-admin-style by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-frontend/pull/303\"\u003edjango-cms/djangocms-frontend#303\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-cms/djangocms-frontend/compare/2.1.4...2.2.0\"\u003ehttps://github.com/django-cms/djangocms-frontend/compare/2.1.4...2.2.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 href=\"https://github.com/django-cms/djangocms-frontend/blob/main/CHANGELOG.rst\"\u003edjangocms-frontend's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.2.0 (2025-08-16)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efeat: Refactored CSS for faster and more reliable loading by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Removed link and button preview\u003c/li\u003e\n\u003cli\u003efix: Some UI Components were not discovered by the \u003ccode\u003e{% plugin %}\u003c/code\u003e template tag in django CMS 5\u003c/li\u003e\n\u003cli\u003efix: Restored Python 3.9 compatibility\u003c/li\u003e\n\u003cli\u003echore: Update node version\u003c/li\u003e\n\u003cli\u003echore: Remove bootstrap dependency\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 href=\"https://github.com/django-cms/djangocms-frontend/commit/6ec69a0c7fa36165e9bc3d5cfa333d60422985bf\"\u003e\u003ccode\u003e6ec69a0\u003c/code\u003e\u003c/a\u003e fix: Button group too condensed when using djangocms-admin-style (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-frontend/issues/303\"\u003e#303\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/662b357e8ad4642f18a73874eceac899a26ede66\"\u003e\u003ccode\u003e662b357\u003c/code\u003e\u003c/a\u003e fix: Docs references \u003ccode\u003efrontend_tags\u003c/code\u003e instead of \u003ccode\u003efrontend\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/5135e527beb741446f626e4c0c116f2e146c7667\"\u003e\u003ccode\u003e5135e52\u003c/code\u003e\u003c/a\u003e chore: Update LICENSE\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/b84bab7439442345ea8db89145a1079e4ba871bf\"\u003e\u003ccode\u003eb84bab7\u003c/code\u003e\u003c/a\u003e feat: Only partially functional preview removed, CSS and JS refactor (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-frontend/issues/301\"\u003e#301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/554418c1d4642279bef6e601ae2297ff5d634ba0\"\u003e\u003ccode\u003e554418c\u003c/code\u003e\u003c/a\u003e ci:(deps): bump actions/cache from 4.2.3 to 4.2.4 (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-frontend/issues/297\"\u003e#297\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/53a958051b6f475a3df3e48131956db0eed72d5e\"\u003e\u003ccode\u003e53a9580\u003c/code\u003e\u003c/a\u003e fix: typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/5f8829b6e5adbdf4689cc3747756e7ff4ae86dc1\"\u003e\u003ccode\u003e5f8829b\u003c/code\u003e\u003c/a\u003e Merge branch 'main' of github.com:django-cms/djangocms-frontend\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/b3a0eb6afc484c63520a2166dccff47ca0ec653e\"\u003e\u003ccode\u003eb3a0eb6\u003c/code\u003e\u003c/a\u003e fix: Python 3.9 support for plugin_tag.py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/4d3a3cf60485a9d17292a24db7654b75c19a1be9\"\u003e\u003ccode\u003e4d3a3cf\u003c/code\u003e\u003c/a\u003e fix test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/453e4c29d928076a3bf8c9e52b5a2f1f2e692231\"\u003e\u003ccode\u003e453e4c2\u003c/code\u003e\u003c/a\u003e chore: add test for py 3.9\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-cms/djangocms-frontend/compare/2.1.4...2.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `svglib` from 1.5.1 to 1.6.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/deeplook/svglib/blob/main/CHANGELOG.rst\"\u003esvglib's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.6.0 (2025-09-25)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplace setup.py with pyproject.toml, rework GitHub workflows (\u003ca href=\"https://redirect.github.com/deeplook/svglib/issues/405\"\u003e#405\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003cli\u003eModernize codebase, added type annotations, expanded docstrings, etc.\u003c/li\u003e\n\u003cli\u003eAdd a Makefile.\u003c/li\u003e\n\u003cli\u003eAdd publishing workflows.\u003c/li\u003e\n\u003cli\u003eRemove dunder constants and use importlib.metadata to get the version number.\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 href=\"https://github.com/deeplook/svglib/commit/1dce6584fb40de115479da10880dbf3b75cda955\"\u003e\u003ccode\u003e1dce658\u003c/code\u003e\u003c/a\u003e Expanded many docstrings, sanitized pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deeplook/svglib/commit/4c69f45919b181b98ebeb2614f84797217efd759\"\u003e\u003ccode\u003e4c69f45\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/deeplook/svglib/issues/412\"\u003e#412\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deeplook/svglib/commit/35a69b9af1eafbec5e4ff8eb759de7a506c4a83f\"\u003e\u003ccode\u003e35a69b9\u003c/code\u003e\u003c/a\u003e Fix format complaints\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deeplook/svglib/commit/d7eec2d2deef3a6ec5993854e0af679d4bd866f0\"\u003e\u003ccode\u003ed7eec2d\u003c/code\u003e\u003c/a\u003e Add workflow to publish on pypi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deeplook/svglib/commit/7bbbd33be99a75da97b4179935eec2dfdb64f9c0\"\u003e\u003ccode\u003e7bbbd33\u003c/code\u003e\u003c/a\u003e Fix underlines for publishing workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deeplook/svglib/commit/5bb73b8dea39a0058f6427b06ad246b09771057f\"\u003e\u003ccode\u003e5bb73b8\u003c/code\u003e\u003c/a\u003e Add workflow to publish on test.pypi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deeplook/svglib/commit/8eb422db6ec7ebeb22b69a14c3fff328c4b292ad\"\u003e\u003ccode\u003e8eb422d\u003c/code\u003e\u003c/a\u003e Fix PIL-related warning (\u003ca href=\"https://redirect.github.com/deeplook/svglib/issues/411\"\u003e#411\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deeplook/svglib/commit/3237aa1e75d1d0e924afddd4386f7f0015cfac79\"\u003e\u003ccode\u003e3237aa1\u003c/code\u003e\u003c/a\u003e Add type-checking (\u003ca href=\"https://redirect.github.com/deeplook/svglib/issues/410\"\u003e#410\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deeplook/svglib/commit/7eb6c774e73297c116f3c870c4ec4a448e7363a2\"\u003e\u003ccode\u003e7eb6c77\u003c/code\u003e\u003c/a\u003e Modernize code (\u003ca href=\"https://redirect.github.com/deeplook/svglib/issues/408\"\u003e#408\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deeplook/svglib/commit/7e9e92df52cefd5db9c73d142b9133944fd5067e\"\u003e\u003ccode\u003e7e9e92d\u003c/code\u003e\u003c/a\u003e Mention minimum supported Python version is 3.9\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/deeplook/svglib/compare/v1.5.1...v1.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `reportlab` from 4.4.3 to 4.4.4\n\nUpdates `django-filer` from 3.3.1 to 3.3.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-cms/django-filer/releases\"\u003edjango-filer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.3.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: add filename length safety check with random suffix by \u003ca href=\"https://github.com/Baraff24\"\u003e\u003ccode\u003e@​Baraff24\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1515\"\u003edjango-cms/django-filer#1515\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1516\"\u003edjango-cms/django-filer#1516\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Remove user from autocomplete fields if (swapped) user model does not have search fields by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1517\"\u003edjango-cms/django-filer#1517\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Include Private Storage in Orphan File Scanning for filer_check Command by \u003ca href=\"https://github.com/Baraff24\"\u003e\u003ccode\u003e@​Baraff24\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1518\"\u003edjango-cms/django-filer#1518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1520\"\u003edjango-cms/django-filer#1520\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Reflect template block structure of Django 5.2+ by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1523\"\u003edjango-cms/django-filer#1523\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded Full Persian (Farsi) Translate by \u003ca href=\"https://github.com/dimacodev\"\u003e\u003ccode\u003e@​dimacodev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1524\"\u003edjango-cms/django-filer#1524\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate directory_table_list.html by \u003ca href=\"https://github.com/AliAkbarSobhanpoor\"\u003e\u003ccode\u003e@​AliAkbarSobhanpoor\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1528\"\u003edjango-cms/django-filer#1528\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Avoid locale-dependent ratio by \u003ca href=\"https://github.com/albanbochsler\"\u003e\u003ccode\u003e@​albanbochsler\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1536\"\u003edjango-cms/django-filer#1536\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1531\"\u003edjango-cms/django-filer#1531\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: docs GitHub action built by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1540\"\u003edjango-cms/django-filer#1540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Update project meta data and use pyproject.toml by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1541\"\u003edjango-cms/django-filer#1541\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Folder permission cache update sometimes raised TypeError by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1539\"\u003edjango-cms/django-filer#1539\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Failed to install submodules of filer by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1544\"\u003edjango-cms/django-filer#1544\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Prepare release 3.3.2 by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1545\"\u003edjango-cms/django-filer#1545\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=\"https://github.com/Baraff24\"\u003e\u003ccode\u003e@​Baraff24\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1515\"\u003edjango-cms/django-filer#1515\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dimacodev\"\u003e\u003ccode\u003e@​dimacodev\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1524\"\u003edjango-cms/django-filer#1524\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AliAkbarSobhanpoor\"\u003e\u003ccode\u003e@​AliAkbarSobhanpoor\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1528\"\u003edjango-cms/django-filer#1528\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/albanbochsler\"\u003e\u003ccode\u003e@​albanbochsler\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1536\"\u003edjango-cms/django-filer#1536\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-cms/django-filer/compare/3.3.1...3.3.2\"\u003ehttps://github.com/django-cms/django-filer/compare/3.3.1...3.3.2\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 href=\"https://github.com/django-cms/django-filer/blob/master/CHANGELOG.rst\"\u003edjango-filer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.3.2 (2025-09-01)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix: add filename length safety check with random suffix by \u003ca href=\"https://github.com/Baraff24\"\u003e\u003ccode\u003e@​Baraff24\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1515\"\u003edjango-cms/django-filer#1515\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Remove user from autocomplete fields if (swapped) user model does not have search fields by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1517\"\u003edjango-cms/django-filer#1517\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Include Private Storage in Orphan File Scanning for filer_check Command by \u003ca href=\"https://github.com/Baraff24\"\u003e\u003ccode\u003e@​Baraff24\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1518\"\u003edjango-cms/django-filer#1518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Relect template block structure of Django 5.2+ by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1523\"\u003edjango-cms/django-filer#1523\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Added Full Persian (Farsi) Translate by \u003ca href=\"https://github.com/dimacodev\"\u003e\u003ccode\u003e@​dimacodev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1524\"\u003edjango-cms/django-filer#1524\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Update directory_table_list.html by \u003ca href=\"https://github.com/AliAkbarSobhanpoor\"\u003e\u003ccode\u003e@​AliAkbarSobhanpoor\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1528\"\u003edjango-cms/django-filer#1528\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Avoid locale-dependent ratio by \u003ca href=\"https://github.com/albanbochsler\"\u003e\u003ccode\u003e@​albanbochsler\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1536\"\u003edjango-cms/django-filer#1536\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: docs GitHub action built by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1540\"\u003edjango-cms/django-filer#1540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Folder permission cache update sometimes raised TypeError by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1539\"\u003edjango-cms/django-filer#1539\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Failed to install submodules of filer by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1544\"\u003edjango-cms/django-filer#1544\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eNew Contributors\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Baraff24\"\u003e\u003ccode\u003e@​Baraff24\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1515\"\u003edjango-cms/django-filer#1515\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dimacodev\"\u003e\u003ccode\u003e@​dimacodev\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1524\"\u003edjango-cms/django-filer#1524\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AliAkbarSobhanpoor\"\u003e\u003ccode\u003e@​AliAkbarSobhanpoor\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1528\"\u003edjango-cms/django-filer#1528\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/albanbochsler\"\u003e\u003ccode\u003e@​albanbochsler\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1536\"\u003edjango-cms/django-filer#1536\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 href=\"https://github.com/django-cms/django-filer/commit/3a5713c82a15b1f6576c13d9d35c8ba6590a5e58\"\u003e\u003ccode\u003e3a5713c\u003c/code\u003e\u003c/a\u003e chore: Prepare release 3.3.2 (\u003ca href=\"https://redirect.github.com/django-cms/django-filer/issues/1545\"\u003e#1545\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-filer/commit/3cd00e9797a6313c99d23c797ea9b71b78c0d4ca\"\u003e\u003ccode\u003e3cd00e9\u003c/code\u003e\u003c/a\u003e chore: Configure package data in pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-filer/commit/06236c41c2338f76251e4ce39acee2c1af734e7b\"\u003e\u003ccode\u003e06236c4\u003c/code\u003e\u003c/a\u003e fix: Failed to install submodules of filer (\u003ca href=\"https://redirect.github.com/django-cms/django-filer/issues/1544\"\u003e#1544\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-filer/commit/9df2d5ceba58291bc6cf34f9592db7838f54a843\"\u003e\u003ccode\u003e9df2d5c\u003c/code\u003e\u003c/a\u003e fix: Folder permission cache update sometimes raised TypeError (\u003ca href=\"https://redirect.github.com/django-cms/django-filer/issues/1539\"\u003e#1539\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-filer/commit/f3ce53ee40c40ca1460a1814779ef206b4408b18\"\u003e\u003ccode\u003ef3ce53e\u003c/code\u003e\u003c/a\u003e chore: Update project meta data and use pyproject.toml (\u003ca href=\"https://redirect.github.com/django-cms/django-filer/issues/1541\"\u003e#1541\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-filer/commit/e618986c7f9bcb84a67cc7431f56f9769a05d402\"\u003e\u003ccode\u003ee618986\u003c/code\u003e\u003c/a\u003e fix: docs GitHub action built (\u003ca href=\"https://redirect.github.com/django-cms/django-filer/issues/1540\"\u003e#1540\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-filer/commit/7d7acddb1180dca0903dd46c1e4c84ee99b7032d\"\u003e\u003ccode\u003e7d7acdd\u003c/code\u003e\u003c/a\u003e ci: pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/django-cms/django-filer/issues/1531\"\u003e#1531\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-filer/commit/da1c634f5f34ce160d69809a27cc76a4bf1f52e5\"\u003e\u003ccode\u003eda1c634\u003c/code\u003e\u003c/a\u003e fix: Avoid locale-dependent ratio (\u003ca href=\"https://redirect.github.com/django-cms/django-filer/issues/1536\"\u003e#1536\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-filer/commit/55a0e70d64fbb60d468dadf727650cce607d5edf\"\u003e\u003ccode\u003e55a0e70\u003c/code\u003e\u003c/a\u003e Update directory_table_list.html (\u003ca href=\"https://redirect.github.com/django-cms/django-filer/issues/1528\"\u003e#1528\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-filer/commit/b409ab16a940055b3dea5e03641a6073fd647774\"\u003e\u003ccode\u003eb409ab1\u003c/code\u003e\u003c/a\u003e Added Full Persain (Farsi) Translate (\u003ca href=\"https://redirect.github.com/django-cms/django-filer/issues/1524\"\u003e#1524\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-cms/django-filer/compare/3.3.1...3.3.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pip-tools` from 7.5.0 to 7.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jazzband/pip-tools/releases\"\u003epip-tools's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.5.1\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2025-09-26\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed static parsing of \u003ccode\u003epyproject.toml\u003c/code\u003e data when the \u003ccode\u003epyproject.toml\u003c/code\u003e is supplied as a relative path -- by \u003ca href=\"https://github.com/sirosen\"\u003e\u003ccode\u003e@​sirosen\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2215\"\u003e#2215\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2221\"\u003e#2221\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2233\"\u003e#2233\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe \u0026quot;via\u0026quot; paths in \u003ccode\u003epip-compile\u003c/code\u003e output for requirements discovered from \u003ccode\u003epyproject.toml\u003c/code\u003e data are now written in POSIX format -- by \u003ca href=\"https://github.com/sirosen\"\u003e\u003ccode\u003e@​sirosen\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2221\"\u003e#2221\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed a bug which removed slashes from URLs in \u003ccode\u003e-r\u003c/code\u003e and \u003ccode\u003e-c\u003c/code\u003e in the output of \u003ccode\u003epip-compile\u003c/code\u003e -- by \u003ca href=\"https://github.com/sirosen\"\u003e\u003ccode\u003e@​sirosen\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2223\"\u003e#2223\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed an incompatibility with \u003ccode\u003eclick \u0026gt;= 8.3\u003c/code\u003e which made \u003ccode\u003epip-compile\u003c/code\u003e display incorrect options in the compile command in output headers -- by \u003ca href=\"https://github.com/sirosen\"\u003e\u003ccode\u003e@​sirosen\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2235\"\u003e#2235\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003epip-tools\u003c/code\u003e now officially supports \u003ccode\u003epip\u003c/code\u003e version 25.2 -- by \u003ca href=\"https://github.com/sirosen\"\u003e\u003ccode\u003e@​sirosen\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2214\"\u003e#2214\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved documentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eReadTheDocs builds for \u003ccode\u003epip-tools\u003c/code\u003e no longer include htmlzip and pdf outputs -- by \u003ca href=\"https://github.com/sirosen\"\u003e\u003ccode\u003e@​sirosen\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2218\"\u003e#2218\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributor-facing changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003epip-tools\u003c/code\u003e now tests on \u003ccode\u003epip\u003c/code\u003e version 25.2 -- by \u003ca href=\"https://github.com/sirosen\"\u003e\u003ccode\u003e@​sirosen\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2214\"\u003e#2214\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe changelog documentation for contributors now provides hyperlinks to the source of each example change note -- by \u003ca href=\"https://github.com/jayaddison\"\u003e\u003ccode\u003e@​jayaddison\u003c/code\u003e\u003c/a\u003e (for OpenCulinary).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2217\"\u003e#2217\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe CPython versions tested in nightly CI runs are now separate from branch and PR CI, and don't include very old versions -- by \u003ca href=\"https://github.com/sirosen\"\u003e\u003ccode\u003e@​sirosen\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2226\"\u003e#2226\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jazzband/pip-tools/blob/main/CHANGELOG.md\"\u003epip-tools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.5.1\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2025-09-26\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed static parsing of {file}\u003ccode\u003epyproject.toml\u003c/code\u003e data when the\n{file}\u003ccode\u003epyproject.toml\u003c/code\u003e is supplied as a relative path -- by {user}\u003ccode\u003esirosen\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e {issue}\u003ccode\u003e2215\u003c/code\u003e, {issue}\u003ccode\u003e2221\u003c/code\u003e, {issue}\u003ccode\u003e2233\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe \u0026quot;via\u0026quot; paths in \u003ccode\u003epip-compile\u003c/code\u003e output for requirements discovered from\n\u003ccode\u003epyproject.toml\u003c/code\u003e data are now written in POSIX format -- by {user}\u003ccode\u003esirosen\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e {issue}\u003ccode\u003e2221\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed a bug which removed slashes from URLs in \u003ccode\u003e-r\u003c/code\u003e and \u003ccode\u003e-c\u003c/code\u003e in the output\nof \u003ccode\u003epip-compile\u003c/code\u003e -- by {user}\u003ccode\u003esirosen\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e {issue}\u003ccode\u003e2223\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed an incompatibility with \u003ccode\u003eclick \u0026gt;= 8.3\u003c/code\u003e which made \u003ccode\u003epip-compile\u003c/code\u003e display incorrect\noptions in the compile command in output headers -- by {user}\u003ccode\u003esirosen\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e {issue}\u003ccode\u003e2235\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003epip-tools\u003c/code\u003e now officially supports \u003ccode\u003epip\u003c/code\u003e version 25.2 -- by {user}\u003ccode\u003esirosen\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e {issue}\u003ccode\u003e2214\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved documentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eReadTheDocs builds for \u003ccode\u003epip-tools\u003c/code\u003e no longer include htmlzip and pdf outputs -- by {user}\u003ccode\u003esirosen\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e {issue}\u003ccode\u003e2218\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributor-facing changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003epip-tools\u003c/code\u003e now tests on \u003ccode\u003epip\u003c/code\u003e version 25.2 -- by {user}\u003ccode\u003esirosen\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e {issue}\u003ccode\u003e2214\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe changelog documentation for contributors now provides hyperlinks to the source of each example change note -- by {user}\u003ccode\u003ejayaddison\u003c/code\u003e (for OpenCulinary).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e {issue}\u003ccode\u003e2217\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe CPython versions tested in nightly CI runs are now separate from\nbranch and PR CI, and don't include very old versions -- by {user}\u003ccode\u003esirosen\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 href=\"https://github.com/jazzband/pip-tools/commit/1c2692b7f45a94d93e3f4bb252da3fd711ad08a9\"\u003e\u003ccode\u003e1c2692b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2245\"\u003e#2245\u003c/a\u003e from sirosen/release-7.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/6a863fdebc8481adcda6fd0d019e0e1cc052b6ae\"\u003e\u003ccode\u003e6a863fd\u003c/code\u003e\u003c/a\u003e Various small fixes to the changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/e8adc41d8054c998cc1c927f1a9cddb9a13f812a\"\u003e\u003ccode\u003ee8adc41\u003c/code\u003e\u003c/a\u003e Update changelog for version 7.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/9b4de7d3b8f3a4f12650a00fd6d63793ff0d4d38\"\u003e\u003ccode\u003e9b4de7d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2242\"\u003e#2242\u003c/a\u003e from sirosen/bump-nightly-ci-job-to-310\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/cd233ddb638f555d8a05012ffd6d61d9dc2f7b5c\"\u003e\u003ccode\u003ecd233dd\u003c/code\u003e\u003c/a\u003e Separately control CPython versions in nightly CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/78020b415bf6a023d45532ddcc8f87482336b43e\"\u003e\u003ccode\u003e78020b4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2243\"\u003e#2243\u003c/a\u003e from openculinary/pr-2217-followup/add-changelog-entry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/2be5b1f76a8b34f0f4555d5761bb4ec86116d461\"\u003e\u003ccode\u003e2be5b1f\u003c/code\u003e\u003c/a\u003e Add changelog entry for \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2217\"\u003e#2217\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/16c793b06897e1ab22d326ebe249780a2fac9116\"\u003e\u003ccode\u003e16c793b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2221\"\u003e#2221\u003c/a\u003e from sirosen/fix-relpath-static-pyproject-parse\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/76bdc77f2cc44470347921c6aaa232719aab49cf\"\u003e\u003ccode\u003e76bdc77\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2217\"\u003e#2217\u003c/a\u003e from openculinary/pr-2203-followup/reify-changenote-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/a5cf40c6418fcc241078845509fb47fa04fbe2cb\"\u003e\u003ccode\u003ea5cf40c\u003c/code\u003e\u003c/a\u003e Link second resolved issue in changelog\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jazzband/pip-tools/compare/v7.5.0...v7.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `djangocms-snippet` from 5.0.1 to 5.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-cms/djangocms-snippet/releases\"\u003edjangocms-snippet's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.0.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eBigAutoField\u003c/code\u003e to \u003ccode\u003eid\u003c/code\u003e fields by \u003ca href=\"https://github.com/arkain\"\u003e\u003ccode\u003e@​arkain\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/pull/189\"\u003edjango-cms/djangocms-snippet#189\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/pull/188\"\u003edjango-cms/djangocms-snippet#188\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAutomatically remove orphaned grouper instances by \u003ca href=\"https://github.com/ms-18\"\u003e\u003ccode\u003e@​ms-18\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/pull/190\"\u003edjango-cms/djangocms-snippet#190\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/pull/191\"\u003edjango-cms/djangocms-snippet#191\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 4 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/pull/193\"\u003edjango-cms/djangocms-snippet#193\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/download-artifact from 4 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/pull/192\"\u003edjango-cms/djangocms-snippet#192\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=\"https://github.com/arkain\"\u003e\u003ccode\u003e@​arkain\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/pull/189\"\u003edjango-cms/djangocms-snippet#189\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ms-18\"\u003e\u003ccode\u003e@​ms-18\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/pull/190\"\u003edjango-cms/djangocms-snippet#190\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-cms/djangocms-snippet/compare/5.0.1...5.0.2\"\u003ehttps://github.com/django-cms/djangocms-snippet/compare/5.0.1...5.0.2\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 href=\"https://github.com/django-cms/djangocms-snippet/blob/master/CHANGELOG.rst\"\u003edjangocms-snippet's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.0.2 (2025-09-03)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eBigAutoField\u003c/code\u003e to \u003ccode\u003eid\u003c/code\u003e fields by \u003ca href=\"https://github.com/arkain\"\u003e\u003ccode\u003e@​arkain\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/pull/189\"\u003edjango-cms/djangocms-snippet#189\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAutomatically remove orphaned grouper instances by \u003ca href=\"https://github.com/ms-18\"\u003e\u003ccode\u003e@​ms-18\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/pull/190\"\u003edjango-cms/djangocms-snippet#190\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eNew Contributors\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arkain\"\u003e\u003ccode\u003e@​arkain\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/pull/189\"\u003edjango-cms/djangocms-snippet#189\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ms-18\"\u003e\u003ccode\u003e@​ms-18\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/pull/190\"\u003edjango-cms/djangocms-snippet#190\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 href=\"https://github.com/django-cms/djangocms-snippet/commit/f8df3f0055f72d145188c1218524342f8db00dc8\"\u003e\u003ccode\u003ef8df3f0\u003c/code\u003e\u003c/a\u003e Bump version to 5.0.2 (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/issues/194\"\u003e#194\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-snippet/commit/81333f0173e30a282d968a30c50b198464fc2960\"\u003e\u003ccode\u003e81333f0\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4 to 5 (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/issues/192\"\u003e#192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-snippet/commit/9108b93dfa1d98e5982673264067179dbbd25e6a\"\u003e\u003ccode\u003e9108b93\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/issues/193\"\u003e#193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-snippet/commit/66df4c1590232f7372a91106ce05cfc4000f1b15\"\u003e\u003ccode\u003e66df4c1\u003c/code\u003e\u003c/a\u003e ci: pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/issues/191\"\u003e#191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-snippet/commit/0fbfa1de5adc885bc8ed1186ebb2473b07c686b8\"\u003e\u003ccode\u003e0fbfa1d\u003c/code\u003e\u003c/a\u003e Automatically remove orphaned grouper instances (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/issues/190\"\u003e#190\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-snippet/commit/8ed5edaeab7093b0b3faa4508edd815e66ccb682\"\u003e\u003ccode\u003e8ed5eda\u003c/code\u003e\u003c/a\u003e ci: pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/issues/188\"\u003e#188\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-snippet/commit/60d3f181a01b69befb2911e44a791cd9f9481e94\"\u003e\u003ccode\u003e60d3f18\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eBigAutoField\u003c/code\u003e to \u003ccode\u003eid\u003c/code\u003e fields (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/issues/189\"\u003e#189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/django-cms/djangocms-snippet/compare/5.0.1...5.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg[c]` from 3.2.9 to 3.2.10\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg/blob/master/docs/news.rst\"\u003epsycopg[c]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e.. currentmodule:: psycopg\u003c/p\u003e\n\u003cp\u003e.. index::\nsingle: Release notes\nsingle: News\u003c/p\u003e\n\u003ch1\u003e\u003ccode\u003epsycopg\u003c/code\u003e release notes\u003c/h1\u003e\n\u003ch2\u003eFuture releases\u003c/h2\u003e\n\u003cp\u003ePsycopg 3.3.0 (unreleased)\n^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003e.. rubric:: New top-level features\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd :ref:\u003ccode\u003etemplate strings queries \\\u0026lt;template-strings\u0026gt;\u003c/code\u003e (:ticket:\u003ccode\u003e[#1054](https://github.com/psycopg/psycopg/issues/1054)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eCursors are now iterators, not only iterables. This means you can call\n\u003ccode\u003enext(cur)\u003c/code\u003e to fetch the next row (:ticket:\u003ccode\u003e[#1064](https://github.com/psycopg/psycopg/issues/1064)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eCursor.results()\u003c/code\u003e to iterate over the result sets of the queries\nexecuted though \u003ccode\u003e~Cursor.executemany()\u003c/code\u003e or \u003ccode\u003e~Cursor.execute()\u003c/code\u003e\n(:ticket:\u003ccode\u003e[#1080](https://github.com/psycopg/psycopg/issues/1080)\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. rubric:: New libpq wrapper features\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epq.PGconn.used_gssapi\u003c/code\u003e attribute and \u003ccode\u003eCapabilities.has_used_gssapi()\u003c/code\u003e\nfunction (:ticket:\u003ccode\u003e[#1138](https://github.com/psycopg/psycopg/issues/1138)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eConnectionInfo.full_protocol_version\u003c/code\u003e attribute,\n\u003ccode\u003eCapabilities.has_full_protocol_version()\u003c/code\u003e function (:ticket:\u003ccode\u003e[#1079](https://github.com/psycopg/psycopg/issues/1079)\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. rubric:: Other changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDisable default GSSAPI preferential connection in the binary package\n(:ticket:\u003ccode\u003e[#1136](https://github.com/psycopg/psycopg/issues/1136)\u003c/code\u003e).\u003c/p\u003e\n\u003cp\u003e.. warning::\u003c/p\u003e\n\u003cp\u003ePlease explicitly set the gssencmode_ connection parameter or the\n:envvar:\u003ccode\u003ePGGSSENCMODE\u003c/code\u003e environment variable to interact reliably with the\nGSSAPI.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDrop support for Python 3.8 (:ticket:\u003ccode\u003e[#976](https://github.com/psycopg/psycopg/issues/976)\u003c/code\u003e) and 3.9 (:ticket:\u003ccode\u003e[#1056](https://github.com/psycopg/psycopg/issues/1056)\u003c/code\u003e).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePsycopg 3.2.11 (unreleased)\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix spurious readiness flags in some of the wait functions (:ticket:\u003ccode\u003e[#1141](https://github.com/psycopg/psycopg/issues/1141)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix high CPU usage using the \u003ccode\u003ewait_c\u003c/code\u003e function on Windows (:ticket:\u003ccode\u003e[#645](https://github.com/psycopg/psycopg/issues/645)\u003c/code\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 href=\"https://github.com/psycopg/psycopg/commit/6cc2adfb45464f201bb7a15dd95189a7af16c26e\"\u003e\u003ccode\u003e6cc2adf\u003c/code\u003e\u003c/a\u003e chore: bump psycopg package version to 3.2.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/4c2fd3735c0670d63b92a7ad098fc0a0a2c7f52a\"\u003e\u003ccode\u003e4c2fd37\u003c/code\u003e\u003c/a\u003e Merge branch 'pg18-3.2' into maint-3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/6ddad7b4bb7144b317e41ea57fcf3b720756fc8a\"\u003e\u003ccode\u003e6ddad7b\u003c/code\u003e\u003c/a\u003e docs: mention PostgreSQL v18 support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/30bfdb954ea93cf92ce9a823f41ea6f67fd03d52\"\u003e\u003ccode\u003e30bfdb9\u003c/code\u003e\u003c/a\u003e ci: add PostgreSQL 18 to the test grid\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/57236b83b83cbfb588fcfcf70c1ca81c62d05a5b\"\u003e\u003ccode\u003e57236b8\u003c/code\u003e\u003c/a\u003e chore: add PostgreSQL 18 exceptions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/970a307b3d6d2b5125abf8337320aab97292f34f\"\u003e\u003ccode\u003e970a307\u003c/code\u003e\u003c/a\u003e fix: add ConnStatus.CONNECTION_AUTHENTICATING value\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/6903a92b5f9dc40e25f3a3d7ba62a4b4e739a638\"\u003e\u003ccode\u003e6903a92\u003c/code\u003e\u003c/a\u003e Merge branch 'fix-1091' into maint-3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/43ad961c85703c0458c58eccc512ec1e1f2d9fae\"\u003e\u003ccode\u003e43ad961\u003c/code\u003e\u003c/a\u003e docs: document the changes to notifies generator\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/eac8115523d1b569e279eaec5fc31d76da25ef55\"\u003e\u003cc...\n\n_Description has been truncated_","html_url":"https://github.com/surfgreendevteam/coolify-cookiecutter-cms-template/pull/55","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/surfgreendevteam%2Fcoolify-cookiecutter-cms-template/issues/55","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/55/packages"},{"uuid":"2920781424","node_id":"PR_kwDOQDraYs6uF5Zw","number":2,"state":"closed","title":"deps: bump the prod-deps group with 22 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-10-16T15:01:44.023Z","updated_at":"2025-12-23T19:34:13.572Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps: bump","group_name":"prod-deps","update_count":22,"packages":[{"name":"django","old_version":"4.2.24","new_version":"5.2.7","repository_url":"https://github.com/django/django"},{"name":"psycopg2-binary","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"hiredis","old_version":"3.2.1","new_version":"3.3.0","repository_url":"https://github.com/redis/hiredis-py"},{"name":"drf-yasg","old_version":"1.21.10","new_version":"1.21.11","repository_url":"https://github.com/axnsan12/drf-yasg"},{"name":"jellyfish","old_version":"1.2.0","new_version":"1.2.1"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"xlsxwriter","old_version":"3.2.5","new_version":"3.2.9","repository_url":"https://github.com/jmcnamara/XlsxWriter"},{"name":"xmltodict","old_version":"0.15.1","new_version":"1.0.2","repository_url":"https://github.com/martinblech/xmltodict"},{"name":"xmlschema","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/sissaschool/xmlschema"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.0","repository_url":"https://github.com/lark-parser/lark"},{"name":"shapely","old_version":"2.0.7","new_version":"2.1.2","repository_url":"https://github.com/shapely/shapely"},{"name":"django-two-factor-auth","old_version":"1.17.0","new_version":"1.18.1"},{"name":"boto3","old_version":"1.40.27","new_version":"1.40.53","repository_url":"https://github.com/boto/boto3"},{"name":"uwsgi","old_version":"2.0.30","new_version":"2.0.31"},{"name":"coverage","old_version":"7.10.6","new_version":"7.11.0","repository_url":"https://github.com/nedbat/coveragepy"},{"name":"tox","old_version":"4.30.2","new_version":"4.31.0","repository_url":"https://github.com/tox-dev/tox"},{"name":"psutil","old_version":"7.0.0","new_version":"7.1.0","repository_url":"https://github.com/giampaolo/psutil"},{"name":"faker","old_version":"37.6.0","new_version":"37.11.0","repository_url":"https://github.com/joke2k/faker"},{"name":"sphinx","old_version":"7.4.7","new_version":"8.2.3","repository_url":"https://github.com/sphinx-doc/sphinx"},{"name":"sphinxcontrib-spelling","old_version":"8.0.0","new_version":"8.0.1","repository_url":"https://github.com/sphinx-contrib/spelling"},{"name":"docutils","old_version":"0.21.2","new_version":"0.22.2","repository_url":"https://github.com/rtfd/recommonmark"},{"name":"hypothesis","old_version":"6.138.15","new_version":"6.142.0","repository_url":"https://github.com/HypothesisWorks/hypothesis"}],"path":null,"ecosystem":"pip"},"body":"Bumps the prod-deps group with 22 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [django](https://github.com/django/django) | `4.2.24` | `5.2.7` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.2.1` | `3.3.0` |\n| [drf-yasg](https://github.com/axnsan12/drf-yasg) | `1.21.10` | `1.21.11` |\n| [jellyfish](https://jellyfish.jpt.sh/) | `1.2.0` | `1.2.1` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [xlsxwriter](https://github.com/jmcnamara/XlsxWriter) | `3.2.5` | `3.2.9` |\n| [xmltodict](https://github.com/martinblech/xmltodict) | `0.15.1` | `1.0.2` |\n| [xmlschema](https://github.com/sissaschool/xmlschema) | `4.1.0` | `4.2.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.0` |\n| [shapely](https://github.com/shapely/shapely) | `2.0.7` | `2.1.2` |\n| [django-two-factor-auth[phonenumbers]](https://github.com/jazzband/django-two-factor-auth) | `1.17.0` | `1.18.1` |\n| [boto3](https://github.com/boto/boto3) | `1.40.27` | `1.40.53` |\n| [uwsgi](https://uwsgi-docs.readthedocs.io/en/latest/) | `2.0.30` | `2.0.31` |\n| [coverage](https://github.com/nedbat/coveragepy) | `7.10.6` | `7.11.0` |\n| [tox](https://github.com/tox-dev/tox) | `4.30.2` | `4.31.0` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.1.0` |\n| [faker](https://github.com/joke2k/faker) | `37.6.0` | `37.11.0` |\n| [sphinx](https://github.com/sphinx-doc/sphinx) | `7.4.7` | `8.2.3` |\n| [sphinxcontrib-spelling](https://github.com/sphinx-contrib/spelling) | `8.0.0` | `8.0.1` |\n| [docutils](https://github.com/rtfd/recommonmark) | `0.21.2` | `0.22.2` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.138.15` | `6.142.0` |\n\nUpdates `django` from 4.2.24 to 5.2.7\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/3cff3209e35a560f94801d428cf7f2a3ecb2a051\"\u003e\u003ccode\u003e3cff320\u003c/code\u003e\u003c/a\u003e [5.2.x] Bumped version for 5.2.7 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/ed8fc39d77465eddbde1191a054ae965f6a8a584\"\u003e\u003ccode\u003eed8fc39\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2025-59682 -- Fixed potential partial directory-traversal v...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/52fbae0a4dbbe5faa59827f8f05694a0065cc135\"\u003e\u003ccode\u003e52fbae0\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2025-59681 -- Protected QuerySet.annotate(), alias(), aggre...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/1794cbf961f9ea54715fb094fe8adc80a5054947\"\u003e\u003ccode\u003e1794cbf\u003c/code\u003e\u003c/a\u003e [5.2.x] Made cosmetic edits to 5.2.7 release notes.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/81625a141e1feaaea877fc18876fdd7b6394442c\"\u003e\u003ccode\u003e81625a1\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36587\"\u003e#36587\u003c/a\u003e -- Clarified usage of \u003ccode\u003elist.insert()\u003c/code\u003e for upload handlers.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/6f3813e4b6e3db7fa3cc612c78f898142468bca9\"\u003e\u003ccode\u003e6f3813e\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/35877\"\u003e#35877\u003c/a\u003e, Refs \u003ca href=\"https://redirect.github.com/django/django/issues/36128\"\u003e#36128\u003c/a\u003e -- Documented unique constraint when migrat...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/10a2d3b837c5d8c1ac0cabd399ad7edcc66bfa8e\"\u003e\u003ccode\u003e10a2d3b\u003c/code\u003e\u003c/a\u003e [5.2.x] Added stub release notes and release date for 5.2.7, 5.1.13, and 4.2.25.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/b2773a39a34f0f0ca768fa1daaf8bf72fca56e06\"\u003e\u003ccode\u003eb2773a3\u003c/code\u003e\u003c/a\u003e [5.2.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/25508\"\u003e#25508\u003c/a\u003e -- Used QuerySet.\u003cstrong\u003erepr\u003c/strong\u003e in docs/ref/contrib/postgres/se...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/7554c54e5f02566520dee81c8b95f47429f1b553\"\u003e\u003ccode\u003e7554c54\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36581\"\u003e#36581\u003c/a\u003e -- Updated serialization examples from XML to JSON.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/2a2936c3e6444a0f37156773ca405cedaf28dea7\"\u003e\u003ccode\u003e2a2936c\u003c/code\u003e\u003c/a\u003e [5.2.x] Updated translations from Transifex.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/4.2.24...5.2.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2-binary` from 2.9.10 to 2.9.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2-binary's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix building when pg_config returns an empty string (:ticket:\u003ccode\u003e[#1599](https://github.com/psycopg/psycopg2/issues/1599)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eWheel package bundled with OpenSSL 1.1.1v.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.6\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\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 href=\"https://github.com/psycopg/psycopg2/commit/fd9ae8cad2bcfc3e7e9410e7b6f07cda8f4f05ec\"\u003e\u003ccode\u003efd9ae8c\u003c/code\u003e\u003c/a\u003e chore: bump to version 2.9.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d923840546942534f0956d9202f914fd9feac5fd\"\u003e\u003ccode\u003ed923840\u003c/code\u003e\u003c/a\u003e chore: update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d42dc7169d3cd93517e282e9ef5dc2a2b40650a2\"\u003e\u003ccode\u003ed42dc71\u003c/code\u003e\u003c/a\u003e Merge branch 'fix-1791'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4fde6560c32f06ad1304404c9f7f86148dcc4be0\"\u003e\u003ccode\u003e4fde656\u003c/code\u003e\u003c/a\u003e fix: avoid failed assert passing more arguments than placeholders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/8308c19d6af0d904b313997539ed33415990a74e\"\u003e\u003ccode\u003e8308c19\u003c/code\u003e\u003c/a\u003e fix: drop warning about the use of deprecated PyWeakref_GetObject function\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1a1eabf098a3374409bb2ab4b594777b900f396d\"\u003e\u003ccode\u003e1a1eabf\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/github-script from 7 to 8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/897af8b38beda851d7257dfc525129e37c0ec9e0\"\u003e\u003ccode\u003e897af8b\u003c/code\u003e\u003c/a\u003e build(deps): bump peter-evans/repository-dispatch from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ceefd305117113ca10e383a626e87ba0796f3638\"\u003e\u003ccode\u003eceefd30\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4dc585430cabe94cee96c5a9de0265d0f55370f1\"\u003e\u003ccode\u003e4dc5854\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1945788dcf6172bb1b9328ebc3587ccf0e6a659c\"\u003e\u003ccode\u003e1945788\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1802\"\u003e#1802\u003c/a\u003e from edgarrmondragon/cp314-wheels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.10...2.9.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `hiredis` from 3.2.1 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/hiredis-py/releases\"\u003ehiredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.3.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e by \u003ca href=\"https://github.com/zweizeichen\"\u003e\u003ccode\u003e@​zweizeichen\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\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 href=\"https://github.com/redis/hiredis-py/commit/187d0f387afed58a955a42ea8c5467100871f98b\"\u003e\u003ccode\u003e187d0f3\u003c/code\u003e\u003c/a\u003e Version 3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/3efcf037edc5a9f7abfaedbd3f60b2a03feb4787\"\u003e\u003ccode\u003e3efcf03\u003c/code\u003e\u003c/a\u003e Add Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/215\"\u003e#215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/966cede2c0ca0a8ac4fe0786571e5c230f39c36e\"\u003e\u003ccode\u003e966cede\u003c/code\u003e\u003c/a\u003e Fix assertion in reader.c (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/212\"\u003e#212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/78def309e58126fdaacb66e6fd40df9c46494062\"\u003e\u003ccode\u003e78def30\u003c/code\u003e\u003c/a\u003e Bump version to 3.3.0-dev\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/redis/hiredis-py/compare/v3.2.1...v3.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `drf-yasg` from 1.21.10 to 1.21.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/axnsan12/drf-yasg/releases\"\u003edrf-yasg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.21.11\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/917\"\u003e#917\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/916\"\u003e#916\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/926\"\u003e#926\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/922\"\u003e#922\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/928\"\u003e#928\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/923\"\u003e#923\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/848\"\u003e#848\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/903\"\u003e#903\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 href=\"https://github.com/axnsan12/drf-yasg/blob/master/docs/changelog.rst\"\u003edrf-yasg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e#########\nChangelog\n#########\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.11\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (:pr:\u003ccode\u003e917\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (:pr:\u003ccode\u003e916\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (:pr:\u003ccode\u003e926\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (:pr:\u003ccode\u003e922\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (:pr:\u003ccode\u003e928\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (:pr:\u003ccode\u003e923\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (:pr:\u003ccode\u003e848\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (:pr:\u003ccode\u003e903\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.10\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix type hints when using postponed evaluation of annotations (PEP-563) (:pr:\u003ccode\u003e840\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update JSON \u0026amp; YAML renderers to not use a \u0026quot;.\u0026quot; in their format string (:pr:\u003ccode\u003e911\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix lint errors when comparing types with == instead of is (:pr:\u003ccode\u003e868\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update swagger-ui-dist to address CVE-2021-46708 (:pr:\u003ccode\u003e904\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.9\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Added support for zoneinfo object fields (:pr:\u003ccode\u003e908\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.8\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Python 3.11 and 3.12 support (:pr:\u003ccode\u003e891\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix pkg_resources version lookups for Python 3.9+ (:pr:\u003ccode\u003e891\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.7\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cem\u003eRelease date: Jul 20, 2023\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Added \u003ccode\u003edrf_yasg.inspectors.query.DrfAPICompatInspector\u003c/code\u003e (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Added \u003ccode\u003eDrfAPICompatInspector\u003c/code\u003e to serve as a replacement \u003ccode\u003eCoreAPICompatInspector\u003c/code\u003e (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow \u003ccode\u003eDEFAULT_SPEC_RENDERERS\u003c/code\u003e default renderers to be overriden in the settings (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fixed redoc source mapping (:pr:\u003ccode\u003e859\u003c/code\u003e)\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/f8cb2db70ca42fb709565f89fdd152b614dc865d\"\u003e\u003ccode\u003ef8cb2db\u003c/code\u003e\u003c/a\u003e Add version 1.21.11 details to the changelog (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/939\"\u003e#939\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/0c6d08d5ebc52e802e5e1acbabbadfe179d4087d\"\u003e\u003ccode\u003e0c6d08d\u003c/code\u003e\u003c/a\u003e Update the ruff lint rules (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/920\"\u003e#920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/055a74dc10128fd55a48f7f74f6b58ffcc48e83d\"\u003e\u003ccode\u003e055a74d\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 in the github-actions group (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/937\"\u003e#937\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/a8813ace8e39cc2c28a916053c74415e10db1425\"\u003e\u003ccode\u003ea8813ac\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 in the github-actions group (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/936\"\u003e#936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/9f4b44943ad930e23e979b80090102dfca1d588b\"\u003e\u003ccode\u003e9f4b449\u003c/code\u003e\u003c/a\u003e Restore the live demo and replace heroku with apprunner (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/935\"\u003e#935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/298325122e11aeba87e6c8f16604e45d870649e7\"\u003e\u003ccode\u003e2983251\u003c/code\u003e\u003c/a\u003e fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/a74689370c393432debbe6285b3afb3e462aee58\"\u003e\u003ccode\u003ea746893\u003c/code\u003e\u003c/a\u003e allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/916\"\u003e#916\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/e747ad6db413c2d20c3eab79739e22ffde5930c7\"\u003e\u003ccode\u003ee747ad6\u003c/code\u003e\u003c/a\u003e Fixes issue with filter parameters not appearing in Swagger after upgrading t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/ee3c871501dad5f0585c8c62ac0659fedab999a1\"\u003e\u003ccode\u003eee3c871\u003c/code\u003e\u003c/a\u003e update Python, Django, and DRF versions \u0026amp; packaging configuration (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/922\"\u003e#922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/be6eeedcbebcb45151a9d18018d880d1fcdcf143\"\u003e\u003ccode\u003ebe6eeed\u003c/code\u003e\u003c/a\u003e Remove usage of pkg_resources (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/928\"\u003e#928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/axnsan12/drf-yasg/compare/1.21.10...1.21.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jellyfish` from 1.2.0 to 1.2.1\n\nUpdates `pyyaml` from 6.0.2 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/yaml/pyyaml/releases\"\u003epyyaml's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14 and free-threading (experimental).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ehttps://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\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 href=\"https://github.com/yaml/pyyaml/blob/6.0.3/CHANGES\"\u003epyyaml's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e6.0.3 (2025-09-25)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/yaml/pyyaml/pull/864\"\u003eyaml/pyyaml#864\u003c/a\u003e -- Support for Python 3.14 and free-threading (experimental)\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 href=\"https://github.com/yaml/pyyaml/commit/49790e73684bebad1df05ef8d828fa12f685bffb\"\u003e\u003ccode\u003e49790e7\u003c/code\u003e\u003c/a\u003e Release 6.0.3 (\u003ca href=\"https://redirect.github.com/yaml/pyyaml/issues/889\"\u003e#889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xlsxwriter` from 3.2.5 to 3.2.9\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jmcnamara/XlsxWriter/blob/main/Changes\"\u003exlsxwriter's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.2.9 - September 16 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved the \u003ccode\u003epy.typed\u003c/code\u003e file since it was causing a lot of downstream CI\nfailures where consumers weren't handling the xlsxwriter types correctly or\ntaking them into account.\u003c/p\u003e\n\u003cp\u003eThe file will be re-added once the xlsxwriter typing is more comprehensive.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.2.8 - September 14 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003emypy\u003c/code\u003e implicit export error caused by the \u003ccode\u003eWorkbook()\u003c/code\u003e type\nannotations changes in v3.2.7 and v3.2.6.\u003c/p\u003e\n\u003cp\u003e:issue:\u003ccode\u003e1154\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.2.7 - September 13 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed typing issue in \u003ccode\u003eWorkbook()\u003c/code\u003e constructor.\u003c/p\u003e\n\u003cp\u003e:issue:\u003ccode\u003e1152\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.2.6 - September 12 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded an option to position custom data labels in the same way that the data\nlabels can be positioned for the entire series.\u003c/p\u003e\n\u003cp\u003e:feature:\u003ccode\u003e1147\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd border, fill, gradient and pattern formatting options for\nchart titles and also chart axis titles.\u003c/p\u003e\n\u003cp\u003e:feature:\u003ccode\u003e957\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd additional type annotations. This is an ongoing refactoring.\u003c/p\u003e\n\u003cp\u003e:feature:\u003ccode\u003e1123\u003c/code\u003e.\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 href=\"https://github.com/jmcnamara/XlsxWriter/commit/e943bee8c9cdf0661cfdb83d5497e0725390e41e\"\u003e\u003ccode\u003ee943bee\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/392bd9e6572785394c6553e2d4f7ae2bb80782f4\"\u003e\u003ccode\u003e392bd9e\u003c/code\u003e\u003c/a\u003e typing: remove py.typed file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/eb99afecdd0050209835f9f237d580dc53e42afa\"\u003e\u003ccode\u003eeb99afe\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/5ec29826d5e398bb5adebaabafbeb9d443a6ed8c\"\u003e\u003ccode\u003e5ec2982\u003c/code\u003e\u003c/a\u003e workbook: add explicit export for mypy compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/ca85cbb03a5898c9e7b66c78ac67a365e7f53002\"\u003e\u003ccode\u003eca85cbb\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/3710251aaaa9524ee302ec04608bfc1b577d4ba5\"\u003e\u003ccode\u003e3710251\u003c/code\u003e\u003c/a\u003e typing: add more supported types to Workbook() constructor\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/27db7a14672bfe1a18f29dfbab646aa0149a369b\"\u003e\u003ccode\u003e27db7a1\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/f05067654b42283557c3621e411b6fbadb7051b6\"\u003e\u003ccode\u003ef050676\u003c/code\u003e\u003c/a\u003e docs: add CI spell check\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/60f708cc1e10c0c66ae870be4f350f45a9d3ecc8\"\u003e\u003ccode\u003e60f708c\u003c/code\u003e\u003c/a\u003e chart: add axis title formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/53dc08e5d240310c88bbfce8d1a42330ae256535\"\u003e\u003ccode\u003e53dc08e\u003c/code\u003e\u003c/a\u003e chart: add chart title formatting options\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jmcnamara/XlsxWriter/compare/RELEASE_3.2.5...RELEASE_3.2.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xmltodict` from 0.15.1 to 1.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/martinblech/xmltodict/releases\"\u003exmltodict's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.0.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.1...v1.0.2\"\u003e1.0.2\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eallow DOCTYPE with disable_entities=True (default) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/25b61a41f580cfc211df07c5fbbf603bd8eb5a5f\"\u003e25b61a4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.0...v1.0.1\"\u003e1.0.1\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efail closed when entities disabled (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c986d2d37a93d45fcc059b09063d9d9c45a655ec\"\u003ec986d2d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003evalidate XML comments (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/3d4d2d3a4cd0f68d1211dba549010261fa87b969\"\u003e3d4d2d3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd SECURITY.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/64130233c8fea272a5f82f2f585e1593523ec1b1\"\u003e6413023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify behavior for empty lists (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2025b5cb5e64fc9c4d54b8644187a0a193bdd0ed\"\u003e2025b5c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify process_comments docs (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/6b464fce284a93dbb292f3d063c9f310a478a014\"\u003e6b464fc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify strip whitespace comment behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/b3e22032d21cc387d6cecf3930116e8fdc3151cf\"\u003eb3e2203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ecreate AGENTS.md for coding agents (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/0da66ee797ced7479312aecef92c6a25e235007c\"\u003e0da66ee\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace travis with actions badge (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2576b94c918fbd154489a95dbbb3feda8bd3cbd8\"\u003e2576b94\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate CONTRIBUTING.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/db3918057cf125af989a1263d52df8df5ef8c642\"\u003edb39180\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v0.15.1...v1.0.0\"\u003e1.0.0\u003c/a\u003e (2025-09-12)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emodernize for Python 3.9+; drop legacy compat paths\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add limited XML comment round-trip; unify \u003ccode\u003e_emit\u003c/code\u003e behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/e43537eee61c20ef50f0e4242eb9223de7a6aefd\"\u003ee43537e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add selective \u003ccode\u003eforce_cdata\u003c/code\u003e support (bool/tuple/callable) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/a497fedb7d6103d68af155543ac3337a73778b19\"\u003ea497fed\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/375\"\u003e#375\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003enamespaces:\u003c/strong\u003e attach \u003ccode\u003e[@xmlns](https://github.com/xmlns)\u003c/code\u003e to declaring element when process_namespaces=True (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/f0322e578184421693434902547f330f4f0a44c3\"\u003ef0322e5\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/163\"\u003e#163\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e avoid parent accumulation at item_depth; add regression tests (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/220240c5eb2d12b75adf26cc84ec9c803ce8bb2b\"\u003e220240c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e handle non-string \u003ccode\u003e#text\u003c/code\u003e with attributes; unify value conversion (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/927a025ae8a62cbb542d5caff38b29161a2096fa\"\u003e927a025\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/366\"\u003e#366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e skip empty lists to keep pretty/compact outputs consistent (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/ab4c86fed24dc8ef0e932a524edfb01c6453ecf6\"\u003eab4c86f\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/martinblech/xmltodict/blob/master/CHANGELOG.md\"\u003exmltodict's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.1...v1.0.2\"\u003e1.0.2\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eallow DOCTYPE with disable_entities=True (default) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/25b61a41f580cfc211df07c5fbbf603bd8eb5a5f\"\u003e25b61a4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.0...v1.0.1\"\u003e1.0.1\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efail closed when entities disabled (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c986d2d37a93d45fcc059b09063d9d9c45a655ec\"\u003ec986d2d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003evalidate XML comments (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/3d4d2d3a4cd0f68d1211dba549010261fa87b969\"\u003e3d4d2d3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd SECURITY.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/64130233c8fea272a5f82f2f585e1593523ec1b1\"\u003e6413023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify behavior for empty lists (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2025b5cb5e64fc9c4d54b8644187a0a193bdd0ed\"\u003e2025b5c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify process_comments docs (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/6b464fce284a93dbb292f3d063c9f310a478a014\"\u003e6b464fc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify strip whitespace comment behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/b3e22032d21cc387d6cecf3930116e8fdc3151cf\"\u003eb3e2203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ecreate AGENTS.md for coding agents (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/0da66ee797ced7479312aecef92c6a25e235007c\"\u003e0da66ee\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace travis with actions badge (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2576b94c918fbd154489a95dbbb3feda8bd3cbd8\"\u003e2576b94\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate CONTRIBUTING.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/db3918057cf125af989a1263d52df8df5ef8c642\"\u003edb39180\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v0.15.1...v1.0.0\"\u003e1.0.0\u003c/a\u003e (2025-09-12)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emodernize for Python 3.9+; drop legacy compat paths\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add limited XML comment round-trip; unify \u003ccode\u003e_emit\u003c/code\u003e behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/e43537eee61c20ef50f0e4242eb9223de7a6aefd\"\u003ee43537e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add selective \u003ccode\u003eforce_cdata\u003c/code\u003e support (bool/tuple/callable) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/a497fedb7d6103d68af155543ac3337a73778b19\"\u003ea497fed\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/375\"\u003e#375\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003enamespaces:\u003c/strong\u003e attach \u003ccode\u003e[@xmlns](https://github.com/xmlns)\u003c/code\u003e to declaring element when process_namespaces=True (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/f0322e578184421693434902547f330f4f0a44c3\"\u003ef0322e5\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/163\"\u003e#163\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e avoid parent accumulation at item_depth; add regression tests (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/220240c5eb2d12b75adf26cc84ec9c803ce8bb2b\"\u003e220240c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e handle non-string \u003ccode\u003e#text\u003c/code\u003e with attributes; unify value conversion (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/927a025ae8a62cbb542d5caff38b29161a2096fa\"\u003e927a025\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/366\"\u003e#366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e skip empty lists to keep pretty/compact outputs consistent (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/ab4c86fed24dc8ef0e932a524edfb01c6453ecf6\"\u003eab4c86f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eReverts\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove initial Release Drafter config (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c0b74ed58f933bffd160c60a58620f672710ff7c\"\u003ec0b74ed\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 href=\"https://github.com/martinblech/xmltodict/commit/d079849136b031c471ec96a168ad7859ed5994ff\"\u003e\u003ccode\u003ed079849\u003c/code\u003e\u003c/a\u003e chore(master): release 1.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/25b61a41f580cfc211df07c5fbbf603bd8eb5a5f\"\u003e\u003ccode\u003e25b61a4\u003c/code\u003e\u003c/a\u003e fix: allow DOCTYPE with disable_entities=True (default)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/a2a9ab7e0692a62f64d97ff12553d0d53368c854\"\u003e\u003ccode\u003ea2a9ab7\u003c/code\u003e\u003c/a\u003e ci(publish): allow uploading release assets\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/656e6af9543e640fda7e96d6bdd6e693756687be\"\u003e\u003ccode\u003e656e6af\u003c/code\u003e\u003c/a\u003e chore(master): release 1.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c986d2d37a93d45fcc059b09063d9d9c45a655ec\"\u003e\u003ccode\u003ec986d2d\u003c/code\u003e\u003c/a\u003e fix: fail closed when entities disabled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/3d4d2d3a4cd0f68d1211dba549010261fa87b969\"\u003e\u003ccode\u003e3d4d2d3\u003c/code\u003e\u003c/a\u003e fix: validate XML comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/b4a5f2a3f04aff68384486e957632c8438396fd6\"\u003e\u003ccode\u003eb4a5f2a\u003c/code\u003e\u003c/a\u003e refactor: remove jython-specific parsing branches\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/6b464fce284a93dbb292f3d063c9f310a478a014\"\u003e\u003ccode\u003e6b464fc\u003c/code\u003e\u003c/a\u003e docs: clarify process_comments docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/34daa304d443e49113d195294d99c6f58ce4714c\"\u003e\u003ccode\u003e34daa30\u003c/code\u003e\u003c/a\u003e refactor: remove unused helper functions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2025b5cb5e64fc9c4d54b8644187a0a193bdd0ed\"\u003e\u003ccode\u003e2025b5c\u003c/code\u003e\u003c/a\u003e docs: clarify behavior for empty lists\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/martinblech/xmltodict/compare/v0.15.1...v1.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xmlschema` from 4.1.0 to 4.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sissaschool/xmlschema/releases\"\u003exmlschema's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.2.0 (2025-10-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd arguments validation for schemas and validation methods (by validation contexts)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSchemaSettings\u003c/code\u003e dataclass for storing read-only settings for schema instances\nand for managing package default settings\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eblock\u003c/em\u003e argument to \u003ccode\u003eXMLResource\u003c/code\u003e class (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/464\"\u003e#464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_SCHEMA_SOURCES\u003c/em\u003e package limit (\u003ccode\u003e1000\u003c/code\u003e, applied to \u003ccode\u003eXsdGlobals\u003c/code\u003e global maps instances)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_XML_ELEMENTS\u003c/em\u003e package limit (\u003ccode\u003e1,000,000\u003c/code\u003e, applied to non-lazy \u003ccode\u003eXMLResource\u003c/code\u003e instances)\u003c/li\u003e\n\u003cli\u003eReduce \u003cem\u003eMAX_XML_DEPTH\u003c/em\u003e limit to 1000 and apply it to all \u003ccode\u003eXMLResource\u003c/code\u003e instances\u003c/li\u003e\n\u003cli\u003eFix for substitute match in case of unexpected child (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\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 href=\"https://github.com/sissaschool/xmlschema/blob/master/CHANGELOG.rst\"\u003exmlschema's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ccode\u003ev4.2.0\u003c/code\u003e_ (2025-10-14)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd arguments validation for schemas and validation methods (by validation contexts)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSchemaSettings\u003c/code\u003e dataclass for storing read-only settings for schema instances\nand for managing package default settings\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eblock\u003c/em\u003e argument to \u003ccode\u003eXMLResource\u003c/code\u003e class (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/464\"\u003e#464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_SCHEMA_SOURCES\u003c/em\u003e package limit (\u003ccode\u003e1000\u003c/code\u003e, applied to \u003ccode\u003eXsdGlobals\u003c/code\u003e global maps instances)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_XML_ELEMENTS\u003c/em\u003e package limit (\u003ccode\u003e1,000,000\u003c/code\u003e, applied to non-lazy \u003ccode\u003eXMLResource\u003c/code\u003e instances)\u003c/li\u003e\n\u003cli\u003eReduce \u003cem\u003eMAX_XML_DEPTH\u003c/em\u003e limit to 1000 and apply it to all \u003ccode\u003eXMLResource\u003c/code\u003e instances\u003c/li\u003e\n\u003cli\u003eFix for substitute match in case of unexpected child (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\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 href=\"https://github.com/sissaschool/xmlschema/commit/2783030fcdcd5307563822906862a9e7088931b2\"\u003e\u003ccode\u003e2783030\u003c/code\u003e\u003c/a\u003e Bump minor release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/7c77a12f0fe16c8da0256a0f13281a03e4a0f717\"\u003e\u003ccode\u003e7c77a12\u003c/code\u003e\u003c/a\u003e Include publiccode.yml validation workflow for CI and README changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/04c19d54d4578f34a0c04d6cc82daa8d3ef9d90c\"\u003e\u003ccode\u003e04c19d5\u003c/code\u003e\u003c/a\u003e Fix XsdGroup.match_element (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/dd4f279e56b8a5ce89f78a6c88337f5032af0b2f\"\u003e\u003ccode\u003edd4f279\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/463\"\u003e#463\u003c/a\u003e from publiccode-pr-bot/chore/add-publiccode-parser-ac...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/1bd7aa6eebf4947e7ae76e47a2f706b58fed22cd\"\u003e\u003ccode\u003e1bd7aa6\u003c/code\u003e\u003c/a\u003e Update GitHub workflow for CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/76b0f67e900777166bcd3773cc109efae933682d\"\u003e\u003ccode\u003e76b0f67\u003c/code\u003e\u003c/a\u003e Patch mypy tests with protocols\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/28727bb0af89f129d59772550c6998164c37aeff\"\u003e\u003ccode\u003e28727bb\u003c/code\u003e\u003c/a\u003e Update docs and release info\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/e4131eaf6bc1a223292f3f19e78573a4317d131a\"\u003e\u003ccode\u003ee4131ea\u003c/code\u003e\u003c/a\u003e Add from_settings() class method to schemas\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/0aea8debef13b62156e7297bdc54198057ea3611\"\u003e\u003ccode\u003e0aea8de\u003c/code\u003e\u003c/a\u003e Rewrite validation contexts as normal classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/d443d7ba0e3de8fad6d6df8f314b12735af4bac3\"\u003e\u003ccode\u003ed443d7b\u003c/code\u003e\u003c/a\u003e Full validation of context arguments\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sissaschool/xmlschema/compare/v4.1.0...v4.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lark` from 1.2.2 to 1.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lark-parser/lark/releases\"\u003elark's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.3.0 - Introduces text-slices, Earley fix, and various small improvements\u003c/h2\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLark can now parse in sections of strings, using \u003ccode\u003eTextSlice\u003c/code\u003e, as a faster alternative to creating a \u0026quot;copy-slice\u0026quot; with \u003ccode\u003es[i:j]\u003c/code\u003e. \u003ca href=\"https://lark-parser.readthedocs.io/en/latest/classes.html#lark.utils.TextSlice\"\u003eLearn more\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded support to \u003ccode\u003ematch\u003c/code\u003e on Tree instances\u003c/li\u003e\n\u003cli\u003eWhen serializing a Lark instance, added the option to include the grammar object (before compilation).\u003c/li\u003e\n\u003cli\u003eAdded convenience method \u003ccode\u003eTree.find_token()\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix of an edge case in Earley related to representation of ambiguity.\u003c/li\u003e\n\u003cli\u003eBugfixes in the standalone parser related to imports\u003c/li\u003e\n\u003cli\u003eBugfix in indenter - now dedents always contain line information\u003c/li\u003e\n\u003cli\u003eVarious small bugfixes (see PR list below)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFull list of PRs\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDocs: Rephrase v_args() documentation to underline it only applies to Transformer classes by \u003ca href=\"https://github.com/skepppy\"\u003e\u003ccode\u003e@​skepppy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1458\"\u003elark-parser/lark#1458\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTiny refactor for PR \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1451\"\u003e#1451\u003c/a\u003e by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1459\"\u003elark-parser/lark#1459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEarley: share nodes created by the scanner with the completer by \u003ca href=\"https://github.com/chanicpanic\"\u003e\u003ccode\u003e@​chanicpanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1451\"\u003elark-parser/lark#1451\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter error in Lark.parse when using on_error when parser!=lalr (issue \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1311\"\u003e#1311\u003c/a\u003e) by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1460\"\u003elark-parser/lark#1460\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eSymbol.__eq__\u003c/code\u003e to return false when comparing with None by \u003ca href=\"https://github.com/weaversam8\"\u003e\u003ccode\u003e@​weaversam8\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1481\"\u003elark-parser/lark#1481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMention internal/external transformers in the documentation by \u003ca href=\"https://github.com/odanoburu\"\u003e\u003ccode\u003e@​odanoburu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1486\"\u003elark-parser/lark#1486\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Tree.find_token() method by \u003ca href=\"https://github.com/makukha\"\u003e\u003ccode\u003e@​makukha\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1467\"\u003elark-parser/lark#1467\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eType \u003ccode\u003eTerminal.__init__\u003c/code\u003e by \u003ca href=\"https://github.com/Liam-DeVoe\"\u003e\u003ccode\u003e@​Liam-DeVoe\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1503\"\u003elark-parser/lark#1503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd guidance on handling comments in languages with significant indentation by \u003ca href=\"https://github.com/nchammas\"\u003e\u003ccode\u003e@​nchammas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1502\"\u003elark-parser/lark#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Small fix for PR 1507 by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1508\"\u003elark-parser/lark#1508\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd note on binding power of numeric quantifiers by \u003ca href=\"https://github.com/414owen\"\u003e\u003ccode\u003e@​414owen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1507\"\u003elark-parser/lark#1507\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrap functools.partial in staticmethod() to add compatibility with Python 3.14 by \u003ca href=\"https://github.com/hrnciar\"\u003e\u003ccode\u003e@​hrnciar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1483\"\u003elark-parser/lark#1483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix generic type of Transformer_InPlaceRecursive by \u003ca href=\"https://github.com/lbhm\"\u003e\u003ccode\u003e@​lbhm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1518\"\u003elark-parser/lark#1518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded TextSlice; Lark can now parse/lex a text-slice by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1452\"\u003elark-parser/lark#1452\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport match on tree by \u003ca href=\"https://github.com/colmmurphyxyz\"\u003e\u003ccode\u003e@​colmmurphyxyz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1521\"\u003elark-parser/lark#1521\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: Updated link of DSL article to a new version by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1529\"\u003elark-parser/lark#1529\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebetter error messages for shift/reduct conflicts by \u003ca href=\"https://github.com/skogsbaer\"\u003e\u003ccode\u003e@​skogsbaer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1531\"\u003elark-parser/lark#1531\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSerialize Lark.grammar (fixes issue \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1472\"\u003e#1472\u003c/a\u003e) by \u003ca href=\"https://github.com/NasalDaemon\"\u003e\u003ccode\u003e@​NasalDaemon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1506\"\u003elark-parser/lark#1506\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes for PR \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1506\"\u003e#1506\u003c/a\u003e, which adds the option to cache the grammar definition by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1540\"\u003elark-parser/lark#1540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix in indenter - now always creating dedents with line information by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1547\"\u003elark-parser/lark#1547\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix: issue when unpickling in the standalone parser, due to lingering Token instances by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1553\"\u003elark-parser/lark#1553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInclude missing import in standalone parser by \u003ca href=\"https://github.com/pdeibert\"\u003e\u003ccode\u003e@​pdeibert\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1541\"\u003elark-parser/lark#1541\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVersion bump (1.3.0) by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1554\"\u003elark-parser/lark#1554\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=\"https://github.com/skepppy\"\u003e\u003ccode\u003e@​skepppy\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1458\"\u003elark-parser/lark#1458\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/weaversam8\"\u003e\u003ccode\u003e@​weaversam8\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1481\"\u003elark-parser/lark#1481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/odanoburu\"\u003e\u003ccode\u003e@​odanoburu\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1486\"\u003elark-parser/lark#1486\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/makukha\"\u003e\u003ccode\u003e@​makukha\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1467\"\u003elark-parser/lark#1467\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Liam-DeVoe\"\u003e\u003ccode\u003e@​Liam-DeVoe\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1503\"\u003elark-parser/lark#1503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/414owen\"\u003e\u003ccode\u003e@​414owen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1507\"\u003elark-parser/lark#1507\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hrnciar\"\u003e\u003ccode\u003e@​hrnciar\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1483\"\u003elark-parser/lark#1483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lbhm\"\u003e\u003ccode\u003e@​lbhm\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1518\"\u003elark-parser/lark#1518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/colmmurphyxyz\"\u003e\u003ccode\u003e@​colmmurphyxyz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1521\"\u003elark-parser/lark#1521\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 href=\"https://github.com/lark-parser/lark/commit/e332c2df2f7d400460a5f1204d9bc36b49b25635\"\u003e\u003ccode\u003ee332c2d\u003c/code\u003e\u003c/a\u003e Version bump (1.3.0)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/aa5666c30e255257b0c36ef93c80d800f84a04ca\"\u003e\u003ccode\u003eaa5666c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1541\"\u003e#1541\u003c/a\u003e from pdeibert/master\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/41934d390dd7661a82df5ed28bd75655fe797cf7\"\u003e\u003ccode\u003e41934d3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1553\"\u003e#1553\u003c/a\u003e from lark-parser/issue1552\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/23c95ea33f76a1bdba686bb1e79a0bd25f3c4d08\"\u003e\u003ccode\u003e23c95ea\u003c/code\u003e\u003c/a\u003e Bugfix: issue when unpickling in the standalone parser, due to lingering\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/d1a456dd365603bbcb4b5b4ec2c29e6096b82f59\"\u003e\u003ccode\u003ed1a456d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1547\"\u003e#1547\u003c/a\u003e from lark-parser/dev\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/2e3108e770aede14000e010322c501c9066dbabc\"\u003e\u003ccode\u003e2e3108e\u003c/code\u003e\u003c/a\u003e UnexpectedInput.pos_in_stream now defaults to 0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/0d248fc59f03ac82c26d12b4b6a86733cffe4d52\"\u003e\u003ccode\u003e0d248fc\u003c/code\u003e\u003c/a\u003e Fix in indenter - now always creating dedents with line information\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/c2e2048bbdb07f6efd0b36252ee90e419e0ee292\"\u003e\u003ccode\u003ec2e2048\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1540\"\u003e#1540\u003c/a\u003e from lark-parser/pr1506\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/2f286cc25a626c7107ad63bc69fcaf213e330433\"\u003e\u003ccode\u003e2f286cc\u003c/code\u003e\u003c/a\u003e Added tests for cache_grammar\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/8a0b02d78989ea328ce0726aa551de9689419dce\"\u003e\u003ccode\u003e8a0b02d\u003c/code\u003e\u003c/a\u003e Small fix, comments, added some types\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lark-parser/lark/compare/1.2.2...1.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `shapely` from 2.0.7 to 2.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/shapely/shapely/releases\"\u003eshapely's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.1.2\u003c/h2\u003e\n\u003cp\u003eWheels are available for Python 3.14 (and still include GEOS 3.13.1).\u003c/p\u003e\n\u003ch2\u003e2.1.1\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix performance degradation calling shapely functions (caused by deprecation of certain positional arguments) (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2283\"\u003e#2283\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix crash caused by \u003ccode\u003efrom_ragged_array()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2291\"\u003e#2291\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix compilation error building with recent LLVM toolchain (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2293\"\u003e#2293\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFor a full changelog , see \u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-1\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.1.0\u003c/h2\u003e\n\u003cp\u003eShapely 2.1.0 is a feature release with various new functions, improvements and bug fixes. Highlights include initial support for geometries with M or ZM values, functionality for coverage validation and simplification, and a set of new top-level functions.\u003c/p\u003e\n\u003cp\u003eShapely supports Python \u0026gt;= 3.10, and binary wheels on PyPI include GEOS 3.13.1 and are now also provided for musllinux (Alpine) x86_64 platforms.\u003c/p\u003e\n\u003cp\u003eFor a full changelog, see \u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.1.0rc1\u003c/h2\u003e\n\u003cp\u003eShapely version 2.1.0 is a major release featuring various new functions, improvements and bug fixes. This is a first release candidate.\u003c/p\u003e\n\u003cp\u003eFor a full changelog, see \u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0-unreleased\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0-unreleased\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 href=\"https://github.com/shapely/shapely/blob/main/CHANGES.txt\"\u003eshapely's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.1.2 (2025-09-24)\u003c/h2\u003e\n\u003cp\u003eWheels are available for Python 3.14 (and still include GEOS 3.13.1).\u003c/p\u003e\n\u003ch2\u003e2.1.1 (2025-05-19)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix performance degradation calling shapely functions (caused by deprecation\nof certain positional arguments) (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2283\"\u003e#2283\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix crash caused by \u003ccode\u003efrom_ragged_array()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2291\"\u003e#2291\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix compilation error building with recent LLVM toolchain (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2293\"\u003e#2293\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.0 (2025-04-03)\u003c/h2\u003e\n\u003cp\u003eShapely 2.1.0 is a feature release with various new functions,\nimprovements and bug fixes. Highlights include initial support for geometries\nwith M or ZM values, functionality for coverage validation and\nsimplification, and a set of new top-level functions.\u003c/p\u003e\n\u003cp\u003eShapely supports Python \u0026gt;= 3.10, and binary wheels on PyPI include GEOS 3.13.1\nand are now also provided for musllinux (Alpine) x86_64 platforms.\u003c/p\u003e\n\u003cp\u003eFor a full changelog, see\n\u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/5fb639d1056888d135fe56bfaf750c9648addeec\"\u003e\u003ccode\u003e5fb639d\u003c/code\u003e\u003c/a\u003e RLS: 2.1.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/70509a1bee5ebd6637cda98b5c9d83707c341888\"\u003e\u003ccode\u003e70509a1\u003c/code\u003e\u003c/a\u003e DOC/RLS: indicate Python 3.14 support in pyproject.toml and release notes for...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/5c572b622027f6917c75afd728f201a144fb597d\"\u003e\u003ccode\u003e5c572b6\u003c/code\u003e\u003c/a\u003e CI: add testing with GEOS 3.14 and Python 3.14 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2330\"\u003e#2330\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/a9093336b1ea77559d44148a7f1ed92ab3bc2999\"\u003e\u003ccode\u003ea909333\u003c/code\u003e\u003c/a\u003e Bump pypa/cibuildwheel from 3.1.3 to 3.2.0 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2328\"\u003e#2328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/2086d4428e29da17bafc684acbfb04bb537ce573\"\u003e\u003ccode\u003e2086d44\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2326\"\u003e#2326\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/50c1cf30be0e37081991b6d5a5dc3531cfbe35da\"\u003e\u003ccode\u003e50c1cf3\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4 to 5 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2321\"\u003e#2321\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/39490ab685a42a2c189f2ce7a45b7d07053e8e8f\"\u003e\u003ccode\u003e39490ab\u003c/code\u003e\u003c/a\u003e TST: update test_coverage_union_overlapping_inputs for upstream GEOS change (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/5ef437c898b54f723ad0e4a8b6b513b9cc5d68a2\"\u003e\u003ccode\u003e5ef437c\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2320\"\u003e#2320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/7b5ff3d24b7889d35f96ee3ae9ec26250b3d6147\"\u003e\u003ccode\u003e7b5ff3d\u003c/code\u003e\u003c/a\u003e BLD: add Python 3.14 wheels [Bump pypa/cibuildwheel from 3.0.1 to 3.1.3] (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2316\"\u003e#2316\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/480dbb14f47b685e95c03654983405185c15babd\"\u003e\u003ccode\u003e480dbb1\u003c/code\u003e\u003c/a\u003e TST: update frechet_distance densify test for latest GEOS main (densify\u0026gt;0.001...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/shapely/shapely/compare/2.0.7...2.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-two-factor-auth[phonenumbers]` from 1.17.0 to 1.18.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jazzband/django-two-factor-auth/releases\"\u003edjango-two-factor-auth[phonenumbers]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.18.1\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew translations for Azerbaijani and Serbian\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.18.0\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocumentation for setting yubikey support forgot to inform users they would\nneed to add our yubikey plugin to \u003ccode\u003eINSTALLED_APPS\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRemove reference to release-notes that had been missed, docs now build\nwithout warnings\u003c/li\u003e\n\u003cli\u003eWebAuthn: avoid submitting the wrong form\u003c/li\u003e\n\u003cli\u003eEmail gateway: tell user to use correct django-otp plugin\u003c/li\u003e\n\u003cli\u003eFix infinite redirect on admin site with AdminSiteOTPRequiredMixin\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow qrcode 8.x.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ephonenumbers\u003c/code\u003e is no longer a hard requirement for users who don't require it.\u003c/li\u003e\n\u003cli\u003eChange \u003ccode\u003eEmailDevice.confirmed\u003c/code\u003e default to \u003ccode\u003eFalse\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAny \u003ccode\u003eStaticDevice\u003c/code\u003e can be used as backup tokens, not just those labelled\n\u0026quot;backup\u0026quot;\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Django 5.2\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.13\u003c/li\u003e\n\u003cli\u003eDjango check for \u003ccode\u003eINSTALLED_APPS\u003c/code\u003e to make sure \u003ccode\u003etwo_factor\u003c/code\u003e is present and\ncomes before its plugins\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8\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 href=\"https://github.com/jazzband/django-two-factor-auth/blob/master/CHANGELOG.md\"\u003edjango-two-factor-auth[phonenumbers]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.18.1\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew translations for Azerbaijani and Serbian\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.18.0\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocumentation for setting yubikey support forgot to inform users they would\nneed to add our yubikey plugin to \u003ccode\u003eINSTALLED_APPS\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRemove reference to release-notes that had been missed, docs now build\nwithout warnings\u003c/li\u003e\n\u003cli\u003eWebAuthn: avoid submitting the wrong form\u003c/li\u003e\n\u003cli\u003eEmail gateway: tell user to use correct django-otp plugin\u003c/li\u003e\n\u003cli\u003eFix infinite redirect on admin site with AdminSiteOTPRequiredMixin\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow qrcode 8.x.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ephonenumbers\u003c/code\u003e is no longer a hard requirement for users who don't require it.\u003c/li\u003e\n\u003cli\u003eChange \u003ccode\u003eEmailDevice.confirmed\u003c/code\u003e default to \u003ccode\u003eFalse\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAny \u003ccode\u003eStaticDevice\u003c/code\u003e can be used as backup tokens, not just those labelled\n\u0026quot;backup\u0026quot;\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Django 5.2\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.13\u003c/li\u003e\n\u003cli\u003eDjango check for \u003ccode\u003eINSTALLED_APPS\u003c/code\u003e to make sure \u003ccode\u003etwo_factor\u003c/code\u003e is present and\ncomes before its plugins\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8\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 href=\"https://github.com/jazzband/django-two-factor-auth/commit/38a6ba7b6fb579b3465d66f33c4e2f25ffad28c0\"\u003e\u003ccode\u003e38a6ba7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/django-two-factor-auth/issues/778\"\u003e#778\u003c/a\u003e from claudep/missing_trans\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/004c93839e331e72740c4e6e73516d05afbca855\"\u003e\u003ccode\u003e004c938\u003c/code\u003e\u003c/a\u003e Fixes \u003ca href=\"https://redirect.github.com/jazzband/django-two-factor-auth/issues/777\"\u003e#777\u003c/a\u003e - Add missing Azerbaijani and Serbian translations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/59f44669649f281ca9b25a2beba438609f72a3a5\"\u003e\u003ccode\u003e59f4466\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/django-two-factor-auth/issues/776\"\u003e#776\u003c/a\u003e from jazzband/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/d5517043e9f9cdec4e4850f0f33e28eea485fb79\"\u003e\u003ccode\u003ed551704\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/7405b6fd545ddbbd67d28292fca2c8ef6cf0de92\"\u003e\u003ccode\u003e7405b6f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/django-two-factor-auth/issues/774\"\u003e#774\u003c/a\u003e from moggers87/release-1.18.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/b47945c8188e46ad2f64bf929c1a745682b6de15\"\u003e\u003ccode\u003eb47945c\u003c/code\u003e\u003c/a\u003e Update CHANGELOG with latest changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/b20741c609ca3fd3fe52dd3cfe1ebc3e98ce2383\"\u003e\u003ccode\u003eb20741c\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into release-1.18.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/966dab4c5bdf11b88e42bc820c8adea684b4e0d0\"\u003e\u003ccode\u003e966dab4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/django-two-factor-auth/issues/775\"\u003e#775\u003c/a\u003e from claudep/phoneplugin2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/9c72f871f0ebd3bede20d823372b02608480c4c7\"\u003e\u003ccode\u003e9c72f87\u003c/code\u003e\u003c/a\u003e Refs \u003ca href=\"https://redirect.github.com/jazzband/django-two-factor-auth/issues/469\"\u003e#469\u003c/a\u003e - Only import phonenumber functions when plugin is installed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/ec0923bf400d6faf3c82acff312c1fe5add70047\"\u003e\u003ccode\u003eec0923b\u003c/code\u003e\u003c/a\u003e Pull latest translations from Transifex\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jazzband/django-two-factor-auth/compare/1.17.0...1.18.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `boto3` from 1.40.27 to 1.40.53\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/9a9288aae8f60bc20679b57291fd642af33f4102\"\u003e\u003ccode\u003e9a9288a\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.53'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/312bc51267cbf62136b2f37543e88aa46f770506\"\u003e\u003ccode\u003e312bc51\u003c/code\u003e\u003c/a\u003e Bumping version to 1.40.53\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/24a2a2b400d18bf76021810e751df77b96b72a5e\"\u003e\u003ccode\u003e24a2a2b\u003c/code\u003e\u003c/a\u003e Add changelog entries from botocore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/3c21bf207dfee4f1eed65a1e19450120a8e5b426\"\u003e\u003ccode\u003e3c21bf2\u003c/code\u003e\u003c/a\u003e Remove license classifier deprecation and use up to date license setup (\u003ca href=\"https://redirect.github.com/boto/boto3/issues/4637\"\u003e#4637\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/89d83785e73d144d96f80f80f048d63a49fc1af2\"\u003e\u003ccode\u003e89d8378\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.52'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/a1060c616424d3c9376d694c2785ac58a37e445f\"\u003e\u003ccode\u003ea1060c6\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.52' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/cbe50bab5192ddc265c8f5d6a045a4a6ee019a1a\"\u003e\u003ccode\u003ecbe50ba\u003c/code\u003e\u003c/a\u003e Bumping version to 1.40.52\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/f7b03d196843406d849c0e3f15ab9c893b10c999\"\u003e\u003ccode\u003ef7b03d1\u003c/code\u003e\u003c/a\u003e Add changelog entries from botocore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/92007179325850ec45c742098b9294cc98df4e03\"\u003e\u003ccode\u003e9200717\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.51'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/935e4e7f0a809864cc4ed84eed38be12a2ad4ab1\"\u003e\u003ccode\u003e935e4e7\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.51' into develop\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boto/boto3/compare/1.40.27...1.40.53\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uwsgi` from 2.0.30 to 2.0.31\n\nUpdates `coverage` from 7.10.6 to 7.11.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.11.0 — 2025-10-15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9, declared support for Python 3.15 alpha.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _changes_7-10-7:\u003c/p\u003e\n\u003ch2\u003eVersion 7.10.7 — 2025-09-21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance: with branch coverage in large files, generating HTML, JSON, or\nLCOV reports could take far too long due to some quadratic behavior when\ncreating the function and class index pages.  This is now fixed, closing\n\u003ccode\u003eissue 2048\u003c/code\u003e_.  Thanks to Daniel Diniz for help diagnosing the problem.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMost warnings and a few errors now have links to a page in the docs\nexplaining the specific message.  Closes \u003ccode\u003eissue 1921\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1921: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1921\"\u003enedbat/coveragepy#1921\u003c/a\u003e\n.. _issue 2048: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2048\"\u003enedbat/coveragepy#2048\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-10-6:\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 href=\"https://github.com/nedbat/coveragepy/commit/20ef00b4abc33a52ffcb10de4d3144e29dbea6a3\"\u003e\u003ccode\u003e20ef00b\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/5edf8ebf1f9754b32bad92d4826ed651614d9b94\"\u003e\u003ccode\u003e5edf8eb\u003c/code\u003e\u003c/a\u003e docs: prep for 7.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/2c023ae7a1c50e375d20c31b0b8c693416ba92a5\"\u003e\u003ccode\u003e2c023ae\u003c/code\u003e\u003c/a\u003e build: 3.15 is supported\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/2f1b95b0bd913397da3236155ca78e2117731247\"\u003e\u003ccode\u003e2f1b95b\u003c/code\u003e\u003c/a\u003e refactor: no need for _BaseCoverageException\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/72b1bcc77e0062eefaf9d1da40c6b8c2ef0ec27e\"\u003e\u003ccode\u003e72b1bcc\u003c/code\u003e\u003c/a\u003e build: test light-threads on all versions of Python\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/16e93797527eada3417afc439fc4b28a432d6efc\"\u003e\u003ccode\u003e16e9379\u003c/code\u003e\u003c/a\u003e refactor: move core tests to their own file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/bc8875db8f98439c046f4c141cb7aecdaa8d1f56\"\u003e\u003ccode\u003ebc8875d\u003c/code\u003e\u003c/a\u003e test: change a test to be in-process so metacov can capture its work\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/8e5d5b1bd53147e8618019191a062d2b86747355\"\u003e\u003ccode\u003e8e5d5b1\u003c/code\u003e\u003c/a\u003e build: tweak some version info\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/b0236dffef02f1aa219326b96230bdf26b9f5e6c\"\u003e\u003ccode\u003eb0236df\u003c/code\u003e\u003c/a\u003e test: more tests for core selection, and some refactoring of them\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/56edde623ae497c3638e608ef6803583c1db8720\"\u003e\u003ccode\u003e56edde6\u003c/code\u003e\u003c/a\u003e build: next version will be 7.11.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nedbat/coveragepy/compare/7.10.6...7.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tox` from 4.30.2 to 4.31.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/tox/releases\"\u003etox's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.31.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAddress a type-conversion noted during doc builds by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3623\"\u003etox-dev/tox#3623\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd 3.14, drop 3.9 and support | union style by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3624\"\u003etox-dev/tox#3624\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/tox/compare/4.30.3...4.31.0\"\u003ehttps://github.com/tox-dev/tox/compare/4.30.3...4.31.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.30.3\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIsolate the test suite from any existing \u003ccode\u003eDEFAULT_CONFIG_FILE\u003c/code\u003e file by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3612\"\u003etox-dev/tox#3612\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix none config file issue 3611 by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3613\"\u003etox-dev/tox#3613\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3608\"\u003etox-dev/tox#3608\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix incorrect type annotations in PythonPathPackageWithDeps (fixes \u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3607\"\u003e#3607\u003c/a\u003e) by \u003ca href=\"https://github.com/PreistlyPython\"\u003e\u003ccode\u003e@​PreistlyPython\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/...\n\n_Description has been truncated_","html_url":"https://github.com/chrislkl/seed/pull/2","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrislkl%2Fseed/issues/2","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/2/packages"},{"uuid":"3520060585","node_id":"PR_kwDOBDhOWs6t_fpV","number":594,"state":"open","title":"Bump uwsgi from 2.0.30 to 2.0.31","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-10-16T02:04:28.000Z","updated_at":"2025-10-17T10:08:17.342Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"uwsgi","old_version":"2.0.30","new_version":"2.0.31","repository_url":null}],"path":null,"ecosystem":"pip"},"body":"Bumps [uwsgi](https://uwsgi-docs.readthedocs.io/en/latest/) from 2.0.30 to 2.0.31.\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=uwsgi\u0026package-manager=pip\u0026previous-version=2.0.30\u0026new-version=2.0.31)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nYou can trigger a rebase of this PR by commenting `@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 that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/ministryofjustice/laa-fee-calculator/pull/594","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ministryofjustice%2Flaa-fee-calculator/issues/594","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/594/packages"}],"issue_packages":[{"old_version":"2.0.28","new_version":"2.0.31","update_type":"patch","path":null,"pr_created_at":"2026-05-19T08:28:06.000Z","version_change":"2.0.28 → 2.0.31","issue":{"uuid":"4475721777","node_id":"PR_kwDOSbTTLM7c-24h","number":6,"state":"open","title":"Bump the production-dependencies group with 22 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-19T08:28:06.000Z","updated_at":"2026-05-19T08:28:07.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"production-dependencies","update_count":22,"packages":[{"name":"flask","old_version":"3.1.1","new_version":"3.1.3","repository_url":"https://github.com/pallets/flask"},{"name":"flask-wtf","old_version":"1.2.2","new_version":"1.3.0","repository_url":"https://github.com/pallets-eco/flask-wtf"},{"name":"google-cloud-datastore","old_version":"2.20.2","new_version":"2.21.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"grpcio","old_version":"1.71.0","new_version":"1.80.0","repository_url":"https://github.com/grpc/grpc"},{"name":"gunicorn","old_version":"23.0.0","new_version":"26.0.0","repository_url":"https://github.com/benoitc/gunicorn"},{"name":"pika","old_version":"1.3.2","new_version":"1.4.0","repository_url":"https://github.com/pika/pika"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"requests","old_version":"2.33.0","new_version":"2.34.2","repository_url":"https://github.com/psf/requests"},{"name":"structlog","old_version":"25.2.0","new_version":"25.5.0","repository_url":"https://github.com/hynek/structlog"},{"name":"marshmallow","old_version":"3.26.2","new_version":"4.3.0","repository_url":"https://github.com/marshmallow-code/marshmallow"},{"name":"google-cloud-storage","old_version":"3.1.0","new_version":"3.10.1","repository_url":"https://github.com/googleapis/python-storage"},{"name":"jsonpointer","old_version":"3.0.0","new_version":"3.1.1","repository_url":"https://github.com/stefankoegl/python-json-pointer"},{"name":"redis","old_version":"7.1.0","new_version":"7.4.0","repository_url":"https://github.com/redis/redis-py"},{"name":"flask-compress","old_version":"1.17","new_version":"1.24","repository_url":"https://github.com/colour-science/flask-compress"},{"name":"uwsgi","old_version":"2.0.28","new_version":"2.0.31"},{"name":"email-validator","old_version":"2.2.0","new_version":"2.3.0","repository_url":"https://github.com/JoshData/python-email-validator"},{"name":"google-cloud-pubsub","old_version":"2.29.0","new_version":"2.38.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-tasks","old_version":"2.19.2","new_version":"2.22.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"simplejson","old_version":"3.20.1","new_version":"4.1.1","repository_url":"https://github.com/simplejson/simplejson"},{"name":"markupsafe","old_version":"3.0.2","new_version":"3.0.3","repository_url":"https://github.com/pallets/markupsafe"},{"name":"cachetools","old_version":"6.2.2","new_version":"7.1.3","repository_url":"https://github.com/tkem/cachetools"},{"name":"gevent","old_version":"25.9.1","new_version":"26.4.0","repository_url":"https://github.com/gevent/gevent"}],"path":null,"ecosystem":"pip"},"body":"Bumps the production-dependencies group with 22 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [flask](https://github.com/pallets/flask) | `3.1.1` | `3.1.3` |\n| [flask-wtf](https://github.com/pallets-eco/flask-wtf) | `1.2.2` | `1.3.0` |\n| [google-cloud-datastore](https://github.com/googleapis/google-cloud-python) | `2.20.2` | `2.21.0` |\n| [grpcio](https://github.com/grpc/grpc) | `1.71.0` | `1.80.0` |\n| [gunicorn](https://github.com/benoitc/gunicorn) | `23.0.0` | `26.0.0` |\n| [pika](https://github.com/pika/pika) | `1.3.2` | `1.4.0` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [requests](https://github.com/psf/requests) | `2.33.0` | `2.34.2` |\n| [structlog](https://github.com/hynek/structlog) | `25.2.0` | `25.5.0` |\n| [marshmallow](https://github.com/marshmallow-code/marshmallow) | `3.26.2` | `4.3.0` |\n| [google-cloud-storage](https://github.com/googleapis/python-storage) | `3.1.0` | `3.10.1` |\n| [jsonpointer](https://github.com/stefankoegl/python-json-pointer) | `3.0.0` | `3.1.1` |\n| [redis](https://github.com/redis/redis-py) | `7.1.0` | `7.4.0` |\n| [flask-compress](https://github.com/colour-science/flask-compress) | `1.17` | `1.24` |\n| [uwsgi](https://uwsgi-docs.readthedocs.io/en/latest/) | `2.0.28` | `2.0.31` |\n| [email-validator](https://github.com/JoshData/python-email-validator) | `2.2.0` | `2.3.0` |\n| [google-cloud-pubsub](https://github.com/googleapis/google-cloud-python) | `2.29.0` | `2.38.0` |\n| [google-cloud-tasks](https://github.com/googleapis/google-cloud-python) | `2.19.2` | `2.22.0` |\n| [simplejson](https://github.com/simplejson/simplejson) | `3.20.1` | `4.1.1` |\n| [markupsafe](https://github.com/pallets/markupsafe) | `3.0.2` | `3.0.3` |\n| [cachetools](https://github.com/tkem/cachetools) | `6.2.2` | `7.1.3` |\n| [gevent](https://github.com/gevent/gevent) | `25.9.1` | `26.4.0` |\n\nUpdates `flask` from 3.1.1 to 3.1.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/flask/releases\"\u003eflask's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.1.3\u003c/h2\u003e\n\u003cp\u003eThis is the Flask 3.1.3 security fix release, which fixes a security issue but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/Flask/3.1.3/\"\u003ehttps://pypi.org/project/Flask/3.1.3/\u003c/a\u003e\nChanges: \u003ca href=\"https://flask.palletsprojects.com/page/changes/#version-3-1-3\"\u003ehttps://flask.palletsprojects.com/page/changes/#version-3-1-3\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe session is marked as accessed for operations that only access the keys but not the values, such as \u003ccode\u003ein\u003c/code\u003e and \u003ccode\u003elen\u003c/code\u003e. \u003ca href=\"https://github.com/pallets/flask/security/advisories/GHSA-68rp-wp8r-4726\"\u003eGHSA-68rp-wp8r-4726\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.1.2\u003c/h2\u003e\n\u003cp\u003eThis is the Flask 3.1.2 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/Flask/3.1.2/\"\u003ehttps://pypi.org/project/Flask/3.1.2/\u003c/a\u003e\nChanges: \u003ca href=\"https://flask.palletsprojects.com/page/changes/#version-3-1-2\"\u003ehttps://flask.palletsprojects.com/page/changes/#version-3-1-2\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/flask/milestone/38?closed=1\"\u003ehttps://github.com/pallets/flask/milestone/38?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003estream_with_context\u003c/code\u003e does not fail inside async views. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5774\"\u003e#5774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen using \u003ccode\u003efollow_redirects\u003c/code\u003e in the test client, the final state of \u003ccode\u003esession\u003c/code\u003e is correct. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5786\"\u003e#5786\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelax type hint for passing bytes IO to \u003ccode\u003esend_file\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5776\"\u003e#5776\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 href=\"https://github.com/pallets/flask/blob/main/CHANGES.rst\"\u003eflask's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.1.3\u003c/h2\u003e\n\u003cp\u003eReleased 2026-02-18\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe session is marked as accessed for operations that only access the keys\nbut not the values, such as \u003ccode\u003ein\u003c/code\u003e and \u003ccode\u003elen\u003c/code\u003e. :ghsa:\u003ccode\u003e68rp-wp8r-4726\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.1.2\u003c/h2\u003e\n\u003cp\u003eReleased 2025-08-19\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003estream_with_context\u003c/code\u003e does not fail inside async views. :issue:\u003ccode\u003e5774\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eWhen using \u003ccode\u003efollow_redirects\u003c/code\u003e in the test client, the final state\nof \u003ccode\u003esession\u003c/code\u003e is correct. :issue:\u003ccode\u003e5786\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRelax type hint for passing bytes IO to \u003ccode\u003esend_file\u003c/code\u003e. :issue:\u003ccode\u003e5776\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 href=\"https://github.com/pallets/flask/commit/22d924701a6ae2e4cd01e9a15bbaf3946094af65\"\u003e\u003ccode\u003e22d9247\u003c/code\u003e\u003c/a\u003e release version 3.1.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/089cb86dd22bff589a4eafb7ab8e42dc357623b4\"\u003e\u003ccode\u003e089cb86\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/c17f379390731543eea33a570a47bd4ef76a54fa\"\u003e\u003ccode\u003ec17f379\u003c/code\u003e\u003c/a\u003e request context tracks session access\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/27be9338405382445a7cb01151e084559b98d602\"\u003e\u003ccode\u003e27be933\u003c/code\u003e\u003c/a\u003e start version 3.1.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/4e652d3f68b90d50aa2301d3b7e68c3fafd9251d\"\u003e\u003ccode\u003e4e652d3\u003c/code\u003e\u003c/a\u003e Abort if the instance folder cannot be created (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5903\"\u003e#5903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/3d03098a97ddc6a908aa4a50c2ef7381f8297d0a\"\u003e\u003ccode\u003e3d03098\u003c/code\u003e\u003c/a\u003e Abort if the instance folder cannot be created\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/407eb76b27884848383a37c7274654f0271e4bc4\"\u003e\u003ccode\u003e407eb76\u003c/code\u003e\u003c/a\u003e document using gevent for async (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5900\"\u003e#5900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/ac5664d2281533eacafd64f5cc7d5edcdaccab60\"\u003e\u003ccode\u003eac5664d\u003c/code\u003e\u003c/a\u003e document using gevent for async\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/4f79d5b59a56bc4356a97f2e81a35f98cb18d7b3\"\u003e\u003ccode\u003e4f79d5b\u003c/code\u003e\u003c/a\u003e Increase required flit_core version to 3.11 (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5865\"\u003e#5865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/fe3b215d3ade4db68262dae1a3cdc464a1fc524f\"\u003e\u003ccode\u003efe3b215\u003c/code\u003e\u003c/a\u003e Increase required flit_core version to 3.11\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/flask/compare/3.1.1...3.1.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flask-wtf` from 1.2.2 to 1.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets-eco/flask-wtf/releases\"\u003eflask-wtf's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.3.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epre-commit autoupdate by \u003ca href=\"https://github.com/azmeuk\"\u003e\u003ccode\u003e@​azmeuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/607\"\u003epallets-eco/flask-wtf#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eremove slsa provenance by \u003ca href=\"https://github.com/davidism\"\u003e\u003ccode\u003e@​davidism\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/638\"\u003epallets-eco/flask-wtf#638\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14 by \u003ca href=\"https://github.com/azmeuk\"\u003e\u003ccode\u003e@​azmeuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/648\"\u003epallets-eco/flask-wtf#648\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTry not to read uploaded files into memory by \u003ca href=\"https://github.com/Zverik\"\u003e\u003ccode\u003e@​Zverik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/635\"\u003epallets-eco/flask-wtf#635\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMigrate the project to uv by \u003ca href=\"https://github.com/azmeuk\"\u003e\u003ccode\u003e@​azmeuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/649\"\u003epallets-eco/flask-wtf#649\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReCaptcha field testing mode documentation by \u003ca href=\"https://github.com/OmeirP\"\u003e\u003ccode\u003e@​OmeirP\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/650\"\u003epallets-eco/flask-wtf#650\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow nonce in reCaptcha by \u003ca href=\"https://github.com/kesara\"\u003e\u003ccode\u003e@​kesara\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/312\"\u003epallets-eco/flask-wtf#312\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCSRF meta tag helper by \u003ca href=\"https://github.com/azmeuk\"\u003e\u003ccode\u003e@​azmeuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/674\"\u003epallets-eco/flask-wtf#674\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ewidget support the kwargs to add custom html attributes by \u003ca href=\"https://github.com/thivolle-cazat-cedric\"\u003e\u003ccode\u003e@​thivolle-cazat-cedric\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/353\"\u003epallets-eco/flask-wtf#353\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRespect exempts in CSRFProtect.protect() by \u003ca href=\"https://github.com/rauchy\"\u003e\u003ccode\u003e@​rauchy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/419\"\u003epallets-eco/flask-wtf#419\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdding RECAPTCHA_ENABLE to disable recaptcha by \u003ca href=\"https://github.com/rnt\"\u003e\u003ccode\u003e@​rnt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/509\"\u003epallets-eco/flask-wtf#509\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove CSRF Documentation by \u003ca href=\"https://github.com/israel-oye\"\u003e\u003ccode\u003e@​israel-oye\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/584\"\u003epallets-eco/flask-wtf#584\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=\"https://github.com/Zverik\"\u003e\u003ccode\u003e@​Zverik\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/635\"\u003epallets-eco/flask-wtf#635\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/OmeirP\"\u003e\u003ccode\u003e@​OmeirP\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/650\"\u003epallets-eco/flask-wtf#650\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kesara\"\u003e\u003ccode\u003e@​kesara\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/312\"\u003epallets-eco/flask-wtf#312\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thivolle-cazat-cedric\"\u003e\u003ccode\u003e@​thivolle-cazat-cedric\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/353\"\u003epallets-eco/flask-wtf#353\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rauchy\"\u003e\u003ccode\u003e@​rauchy\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/419\"\u003epallets-eco/flask-wtf#419\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rnt\"\u003e\u003ccode\u003e@​rnt\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/509\"\u003epallets-eco/flask-wtf#509\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/israel-oye\"\u003e\u003ccode\u003e@​israel-oye\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/pull/584\"\u003epallets-eco/flask-wtf#584\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pallets-eco/flask-wtf/compare/v1.2.2...v1.3.0\"\u003ehttps://github.com/pallets-eco/flask-wtf/compare/v1.2.2...v1.3.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 href=\"https://github.com/pallets-eco/flask-wtf/blob/main/docs/changes.rst\"\u003eflask-wtf's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.3.0\u003c/h2\u003e\n\u003cp\u003eReleased 2026-04-23\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDon't read the whole uploaded files to know their size. :pr:\u003ccode\u003e635\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eStop support for Python 3.9. Start support for Python 3.14. :pr:\u003ccode\u003e648\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eMigrate the project to uv. :pr:\u003ccode\u003e649\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAllow setting a \u003ccode\u003enonce\u003c/code\u003e on :class:\u003ccode\u003e~flask_wtf.recaptcha.RecaptchaField\u003c/code\u003e\n(string or zero-argument callable) for nonce-based Content Security\nPolicies. :pr:\u003ccode\u003e312\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ecsrf_meta_tag()\u003c/code\u003e helper and \u003ccode\u003eWTF_CSRF_META_NAME\u003c/code\u003e setting to render\nthe CSRF token as an HTML \u003ccode\u003e\u0026lt;meta\u0026gt;\u003c/code\u003e tag.\u003c/li\u003e\n\u003cli\u003eForward keyword arguments passed to the reCAPTCHA widget as HTML attributes\non the captcha \u003ccode\u003e\u0026lt;div\u0026gt;\u003c/code\u003e, with the field id used as a default \u003ccode\u003eid\u003c/code\u003e.\n:pr:\u003ccode\u003e353\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eapply_exemptions\u003c/code\u003e parameter to\n:meth:\u003ccode\u003e~flask_wtf.csrf.CSRFProtect.protect\u003c/code\u003e so \u003ccode\u003e@csrf.exempt\u003c/code\u003e keeps working\nwhen validation is triggered manually. :pr:\u003ccode\u003e419\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eRECAPTCHA_ENABLED\u003c/code\u003e setting. :pr:\u003ccode\u003e509\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 href=\"https://github.com/pallets-eco/flask-wtf/commit/63eb4d3bd55735fc136bdc6f23a90ca2b220b602\"\u003e\u003ccode\u003e63eb4d3\u003c/code\u003e\u003c/a\u003e chore: bump to v1.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/192ece3da0d98682c13e12574d7b1fc938bdd8e8\"\u003e\u003ccode\u003e192ece3\u003c/code\u003e\u003c/a\u003e Improve CSRF Documentation (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/584\"\u003e#584\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/1f8522d4a362ee66ab12a1ebf55379501dfcef0d\"\u003e\u003ccode\u003e1f8522d\u003c/code\u003e\u003c/a\u003e Adding RECAPTCHA_ENABLE to disable recaptcha (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/509\"\u003e#509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/64b9215be16dc123f7eb187494dbba6bd0e5c2cd\"\u003e\u003ccode\u003e64b9215\u003c/code\u003e\u003c/a\u003e Respect exempts in CSRFProtect.protect() (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/419\"\u003e#419\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/adf674f80c5c5e55c050729e3ec086b4d6cb0f26\"\u003e\u003ccode\u003eadf674f\u003c/code\u003e\u003c/a\u003e widget support the kwargs to add custom html attributes (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/353\"\u003e#353\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/ea1f797112f857c783dcd2c6e3954357df8e1bb7\"\u003e\u003ccode\u003eea1f797\u003c/code\u003e\u003c/a\u003e feat: CSRF meta tag helper (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/674\"\u003e#674\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/412e3efda3703b141ca75afbcbf0538a7797b713\"\u003e\u003ccode\u003e412e3ef\u003c/code\u003e\u003c/a\u003e Allow nonce in reCaptcha (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/312\"\u003e#312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/a7b764a1fa8f4ea960d81104c364a2d29429e1b8\"\u003e\u003ccode\u003ea7b764a\u003c/code\u003e\u003c/a\u003e ReCaptcha field testing mode documentation (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/650\"\u003e#650\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/c053c0ec11560e68e558636962bbec1115a7ae2a\"\u003e\u003ccode\u003ec053c0e\u003c/code\u003e\u003c/a\u003e chore(deps-dev): bump pytest from 9.0.1 to 9.0.3 (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/673\"\u003e#673\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/ca2216cdf72717aa3c2355ba5f454080c78d9273\"\u003e\u003ccode\u003eca2216c\u003c/code\u003e\u003c/a\u003e chore(deps): bump uv from 0.9.11 to 0.11.6 (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/672\"\u003e#672\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets-eco/flask-wtf/compare/v1.2.2...v1.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-datastore` from 2.20.2 to 2.21.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/releases\"\u003egoogle-cloud-datastore's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-cloud-os-login: v2.21.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-os-login-v2.20.0...google-cloud-os-login-v2.21.0\"\u003ev2.21.0\u003c/a\u003e (2026-05-06)\u003c/h2\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 href=\"https://github.com/googleapis/google-cloud-python/blob/main/packages/google-cloud-documentai/CHANGELOG.md\"\u003egoogle-cloud-datastore's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-documentai-v2.20.2...google-cloud-documentai-v2.21.0\"\u003e2.21.0\u003c/a\u003e (2023-12-07)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for python 3.12 (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/fb6f9dbfadfe1a8ca3b236e0cae5c85cf2862f3e\"\u003efb6f9db\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIntroduce compatibility with native namespace packages (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/fb6f9dbfadfe1a8ca3b236e0cae5c85cf2862f3e\"\u003efb6f9db\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRequire proto-plus \u0026gt;= 1.22.3 (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/fb6f9dbfadfe1a8ca3b236e0cae5c85cf2862f3e\"\u003efb6f9db\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eretry_async\u003c/code\u003e instead of \u003ccode\u003eretry\u003c/code\u003e in async client (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/fb6f9dbfadfe1a8ca3b236e0cae5c85cf2862f3e\"\u003efb6f9db\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 href=\"https://github.com/googleapis/google-cloud-python/commit/c60ded47847b04b2536f19c1610b5592b7952d6a\"\u003e\u003ccode\u003ec60ded4\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20260108T181058Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/15005\"\u003e#15005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c0e3e9d221c3b8cd6d99503fadbb8e643db1e325\"\u003e\u003ccode\u003ec0e3e9d\u003c/code\u003e\u003c/a\u003e chore: disable treat warnings as errors (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/15008\"\u003e#15008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/45d4cee9e0e48a209b2d9292be29a15125548458\"\u003e\u003ccode\u003e45d4cee\u003c/code\u003e\u003c/a\u003e docs(samples): Update BigQuery Storage Arrow samples batching logic (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14961\"\u003e#14961\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/45149baca6064be265db1b653abb405c298a2b41\"\u003e\u003ccode\u003e45149ba\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20260108T162506Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/15001\"\u003e#15001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/d58a9ba338df3df1afca11e155fe449c32631179\"\u003e\u003ccode\u003ed58a9ba\u003c/code\u003e\u003c/a\u003e test: Add 'cryptography' 'cachetools' to test deps for bigquery-storage (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14999\"\u003e#14999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/10289465a87988b9bf35a85893f26ea372ad717b\"\u003e\u003ccode\u003e1028946\u003c/code\u003e\u003c/a\u003e feat: add v1 api for google-cloud-maintenance-api (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14998\"\u003e#14998\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/b3cb4de3ce50c3ec55af2b132d756252a32641f3\"\u003e\u003ccode\u003eb3cb4de\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260107T084051Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14995\"\u003e#14995\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/17cc12897e6afdf3f3131531c50a8226a3f57c0f\"\u003e\u003ccode\u003e17cc128\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20251231T091651Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14991\"\u003e#14991\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c353aa5bcc937ef9399c8efc90492dadbcf01aa2\"\u003e\u003ccode\u003ec353aa5\u003c/code\u003e\u003c/a\u003e chore: librarian update image pull request: 20251219T024955Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14985\"\u003e#14985\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/f38453832a2bb0226c389c30df13d072d1642377\"\u003e\u003ccode\u003ef384538\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20251217T215552Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14980\"\u003e#14980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-documentai-v2.20.2...google-cloud-iam-v2.21.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `grpcio` from 1.71.0 to 1.80.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/grpc/grpc/releases\"\u003egrpcio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v1.80.0\u003c/h2\u003e\n\u003cp\u003eThis is release 1.80.0 (\u003ca href=\"https://github.com/grpc/grpc/blob/master/doc/g_stands_for.md\"\u003eglimmering\u003c/a\u003e) of gRPC Core.\u003c/p\u003e\n\u003cp\u003eFor gRPC documentation, see \u003ca href=\"https://grpc.io/\"\u003egrpc.io\u003c/a\u003e. For previous releases, see \u003ca href=\"https://github.com/grpc/grpc/releases\"\u003eReleases\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis release contains refinements, improvements, and bug fixes, with highlights listed below.\u003c/p\u003e\n\u003ch2\u003eCore\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[ssl] Implement TLS private key signer in Python. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/41701\"\u003e#41701\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[TLS Credentials]: Private Key Offload Implementation. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/41606\"\u003e#41606\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix max sockaddr struct size on OpenBSD. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/40454\"\u003e#40454\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[core] Enable EventEngine for Python by default, and EventEngine fork support in Python and Ruby. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/41432\"\u003e#41432\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[TLS Credentials]: Create InMemoryCertificateProvider to update certificates independently. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/41484\"\u003e#41484\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Ruby] Build/test ruby 4.0 and build native gems with Ruby 4.0 support. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/41324\"\u003e#41324\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[EventEngine] Remove an incorrect std::move in DNSServiceResolver constructor. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/41502\"\u003e#41502\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[RR and WRR] enable change to connect from a random index. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/41472\"\u003e#41472\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[xds] Implement gRFC A101. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/41051\"\u003e#41051\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eC++\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[C++] Add SNI override option to C++ channel credentials options API. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/41460\"\u003e#41460\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eC#\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[C# tools] Option to append Async to server side method names \u003ca href=\"https://redirect.github.com/grpc/grpc/issues/39010\"\u003e#39010\u003c/a\u003e. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/39797\"\u003e#39797\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eObjective-C\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[Fix][Compiler] Plugins fall back to the edition 2023 for older protobuf. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/41357\"\u003e#41357\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePHP\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[PHP] Disable php infinite recursion check for callback from Core to PHP. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/41835\"\u003e#41835\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[PHP] Fix runtime error with PHp8.5 alpha because zend_exception_get_defaul…. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/40337\"\u003e#40337\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePython\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[Python] Fix \u003ccode\u003eGRPC_TRACE\u003c/code\u003e not working when absl log initialized in cython. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/41814\"\u003e#41814\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRevert \u0026quot;[Python] Align GRPC_ENABLE_FORK_SUPPORT env defaults in core and python (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/41455\"\u003e#41455\u003c/a\u003e)\u0026quot;. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/41769\"\u003e#41769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Python] Fix AsyncIO Server maximum_concurrent_rpcs enforcement preventing negative active_rpcs count. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/41532\"\u003e#41532\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Python] Docs: correct \u003ccode\u003egrpc.Compression\u003c/code\u003e references. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/41705\"\u003e#41705\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Python] [Typeguard] Part 4 - Add Typeguard to AIO stack in tests . (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/40226\"\u003e#40226\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 href=\"https://github.com/grpc/grpc/commit/f5e2d6e856176c2f6b7691032adfefe21e5f64c1\"\u003e\u003ccode\u003ef5e2d6e\u003c/code\u003e\u003c/a\u003e [Release] Bump version to 1.80.0 (on v1.80.x branch) (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/41857\"\u003e#41857\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/938cfecaebfc28b5e6bcdb95d55aba3962d9b55b\"\u003e\u003ccode\u003e938cfec\u003c/code\u003e\u003c/a\u003e [subchannel connection scaling] fix when we reset backoff (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/41935\"\u003e#41935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/91778bec667d7310864420f2b32aeb2e41e1b51c\"\u003e\u003ccode\u003e91778be\u003c/code\u003e\u003c/a\u003e [Backport][v1.80.x][Python] New \u003ccode\u003e_create\u003c/code\u003e method for aio.Metadata (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/41888\"\u003e#41888\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/f10b9f26933703c5fe3e080f50ef19c858d773e0\"\u003e\u003ccode\u003ef10b9f2\u003c/code\u003e\u003c/a\u003e [bzlmod] upgrade rules_swift to avoid BCR CI breakage on Windows with bazel 7...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/be4c1c55b69493868241bfffd4bc318d3d592656\"\u003e\u003ccode\u003ebe4c1c5\u003c/code\u003e\u003c/a\u003e [subchannel] fix crash in connection scaling code (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/41853\"\u003e#41853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/a71df73eafb18fa0210a13dd6a2ce2cb6594d427\"\u003e\u003ccode\u003ea71df73\u003c/code\u003e\u003c/a\u003e [Release] Bump version to 1.80.0-pre1 (on v1.80.x branch) (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/41844\"\u003e#41844\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/3ca09e4818f4362e75c9c224f1d4c2065db75a0a\"\u003e\u003ccode\u003e3ca09e4\u003c/code\u003e\u003c/a\u003e [Python] Fix GRPC_TRACE and add test to check the GRPC_TRACE logs print (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/41814\"\u003e#41814\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/260c6fd37c502e984836a446c5d90e4a1298036d\"\u003e\u003ccode\u003e260c6fd\u003c/code\u003e\u003c/a\u003e [PHP] Disable php infinite recursion check for callback from Core to PHP (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/41\"\u003e#41\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/50957c5c47de1c85637fc9dafe6d4eb4c1224f6b\"\u003e\u003ccode\u003e50957c5\u003c/code\u003e\u003c/a\u003e [Flakiness] Delete flaky iomgr fd_conservation_posix_test and create an Event...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/e1e1d0a8150b5178d4b75e15f4856a4d825a8999\"\u003e\u003ccode\u003ee1e1d0a\u003c/code\u003e\u003c/a\u003e [Bzlmod] Turn off bzlmod for PSM python tests. (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/41810\"\u003e#41810\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/grpc/grpc/compare/v1.71.0...v1.80.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gunicorn` from 23.0.0 to 26.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/benoitc/gunicorn/releases\"\u003egunicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.0.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eEventlet worker removed\u003c/strong\u003e: The \u003ccode\u003eeventlet\u003c/code\u003e worker class has been dropped. Migrate to \u003ccode\u003egevent\u003c/code\u003e, \u003ccode\u003egthread\u003c/code\u003e, or \u003ccode\u003etornado\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eASGI Framework Compatibility Suite\u003c/strong\u003e: New end-to-end compatibility test harness covering Starlette, FastAPI, Litestar, Quart, Sanic, and BlackSheep. Current grid passes 438/444 tests (98%).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eASGI Test Suite Expansion\u003c/strong\u003e: 134 additional ASGI unit tests covering protocol semantics, lifespan, websockets, and chunked framing.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eHTTP/1.1 Request-Target Validation\u003c/strong\u003e (RFC 9112 sections 3.2.3, 3.2.4):\n\u003cul\u003e\n\u003cli\u003eReject \u003ccode\u003eauthority-form\u003c/code\u003e request-target outside \u003ccode\u003eCONNECT\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eReject \u003ccode\u003easterisk-form\u003c/code\u003e request-target outside \u003ccode\u003eOPTIONS\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eReject \u003ccode\u003erelative-reference\u003c/code\u003e request-targets\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eHeader Field Hardening\u003c/strong\u003e (RFC 9110):\n\u003cul\u003e\n\u003cli\u003eReject control characters in header field-value (section 5.5)\u003c/li\u003e\n\u003cli\u003eReject forbidden trailer field-names (section 6.5.1)\u003c/li\u003e\n\u003cli\u003eReject \u003ccode\u003eContent-Length\u003c/code\u003e list form (RFC 9112 section 6.3)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRequest Smuggling Hardening\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eTighten keepalive gate and scope \u003ccode\u003efinish_body\u003c/code\u003e byte cap\u003c/li\u003e\n\u003cli\u003eKeep \u003ccode\u003e_body_receiver\u003c/code\u003e alive across the keepalive smuggling gate so pipelined requests cannot re-enter a closed body\u003c/li\u003e\n\u003cli\u003eAddress parser/protocol findings from a six-point WSGI/ASGI audit\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ePROXY Protocol (ASGI)\u003c/strong\u003e: Enforce \u003ccode\u003eproxy_allow_ips\u003c/code\u003e and tighten v1/v2 parsing in the ASGI callback parser.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eConnection Draining\u003c/strong\u003e: Drain the connection on close per RFC 9112 section 9.6 to prevent reset-on-close truncation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eBody Framing on HEAD/204/304\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eKeep \u003ccode\u003eContent-Length\u003c/code\u003e on HEAD and 304 responses (\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3621\"\u003e#3621\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop body framing on HEAD/204/304 even when the framework set it\u003c/li\u003e\n\u003cli\u003eWarn once when an ASGI app emits a body for a no-body response\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eHTTP/2 ASGI\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e_handle_stream_ended\u003c/code\u003e to set \u003ccode\u003e_body_complete\u003c/code\u003e in the async HTTP/2 handler so request bodies finalize correctly on stream end\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eInvalidChunkExtension\u003c/code\u003e mapping and fast-parser support in ASGI tests (\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3565\"\u003e#3565\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eHTTP/1.1 100-Continue\u003c/strong\u003e: Stop adding \u003ccode\u003eTransfer-Encoding: chunked\u003c/code\u003e to 100-Continue interim responses.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eWebSocket Close Handshake\u003c/strong\u003e (RFC 6455):\n\u003cul\u003e\n\u003cli\u003eComply with the close handshake state machine\u003c/li\u003e\n\u003cli\u003eClose the transport after the close handshake completes\u003c/li\u003e\n\u003cli\u003eFix binary send when the \u003ccode\u003etext\u003c/code\u003e key is \u003ccode\u003eNone\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eEarly Hints\u003c/strong\u003e: Validate headers in the \u003ccode\u003eearly_hints\u003c/code\u003e callback to match \u003ccode\u003eprocess_headers\u003c/code\u003e; pass only the header name to \u003ccode\u003eInvalidHeader\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3588\"\u003e#3588\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eASGI Framework Fixes\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eFix ASGI disconnect handling for Django-style apps\u003c/li\u003e\n\u003cli\u003eFix Litestar request handling (use raw ASGI receive for body/headers)\u003c/li\u003e\n\u003cli\u003eFix Litestar HTTP endpoints for compatibility tests\u003c/li\u003e\n\u003cli\u003eFix Quart headers endpoint to normalize keys to lowercase\u003c/li\u003e\n\u003cli\u003eFix Quart WebSocket close test app (missing \u003ccode\u003eaccept()\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix duplicate \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header for BlackSheep streaming\u003c/li\u003e\n\u003c/ul\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 href=\"https://github.com/benoitc/gunicorn/commit/5d819cf36040f6cc6175fcc804d703fb899509dd\"\u003e\u003ccode\u003e5d819cf\u003c/code\u003e\u003c/a\u003e release: 26.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/b45c70df105f7d5dcbc5abfb732804d6464edc21\"\u003e\u003ccode\u003eb45c70d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3611\"\u003e#3611\u003c/a\u003e from zc-mattcen/docs-typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/99c8d48acf453deb5c49fe12e195dbc00d888d1e\"\u003e\u003ccode\u003e99c8d48\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3623\"\u003e#3623\u003c/a\u003e from benoitc/chore/drop-eventlet-add-h2-uvloop-test-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/5a655af50f20e005dd9e32e6078dc82fa45f3d4b\"\u003e\u003ccode\u003e5a655af\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3622\"\u003e#3622\u003c/a\u003e from benoitc/test/docker-port-and-ipv4-fixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/201df19a8011c0a1d6a0e75ebe22e89d48eb935e\"\u003e\u003ccode\u003e201df19\u003c/code\u003e\u003c/a\u003e chore: remove eventlet worker; add h2 and uvloop to test deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/f4ac8e1f1bf1d365e77f41915da55bec31873f84\"\u003e\u003ccode\u003ef4ac8e1\u003c/code\u003e\u003c/a\u003e test: pass action name to dirty client and stabilize after TTOU spam\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/54d38afddf1f0db0c15b5f4ff63f3c7bfad96961\"\u003e\u003ccode\u003e54d38af\u003c/code\u003e\u003c/a\u003e test: unblock docker fixtures on macOS hosts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/68843c8893dd938456f0a2da62085ab5776f8871\"\u003e\u003ccode\u003e68843c8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3621\"\u003e#3621\u003c/a\u003e from benoitc/fix/asgi-preserve-content-length-on-hea...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/31f2618f733cc0c78690df63f4e344aaf3f56b20\"\u003e\u003ccode\u003e31f2618\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3620\"\u003e#3620\u003c/a\u003e from benoitc/fix/asgi-proxy-protocol-trust-and-parsing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/41ec7527dbd8a9e52728477700707ad40e41d9dc\"\u003e\u003ccode\u003e41ec752\u003c/code\u003e\u003c/a\u003e fix: keep Content-Length on HEAD and 304 responses\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/benoitc/gunicorn/compare/23.0.0...26.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pika` from 1.3.2 to 1.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pika/pika/releases\"\u003epika's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.4.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pypi.org/project/pika/1.4.0/\"\u003ehttps://pypi.org/project/pika/1.4.0/\u003c/a\u003e | \u003ca href=\"https://github.com/pika/pika/milestone/23?closed=1\"\u003eGitHub milestone\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: add python3.10 support and make code python3.7+ by \u003ca href=\"https://github.com/vinitkumar\"\u003e\u003ccode\u003e@​vinitkumar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1351\"\u003epika/pika#1351\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typo in example docstring by \u003ca href=\"https://github.com/kinoute\"\u003e\u003ccode\u003e@​kinoute\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1396\"\u003epika/pika#1396\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixing pika v1.0.0 breaking change (order of parameters) for the `cha… by \u003ca href=\"https://github.com/mprinc\"\u003e\u003ccode\u003e@​mprinc\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1393\"\u003epika/pika#1393\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Python 3.11 to various places by \u003ca href=\"https://github.com/lukebakken\"\u003e\u003ccode\u003e@​lukebakken\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1399\"\u003epika/pika#1399\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocumentation improvements by \u003ca href=\"https://github.com/hcmturner\"\u003e\u003ccode\u003e@​hcmturner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1403\"\u003epika/pika#1403\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix typo by \u003ca href=\"https://github.com/khadkarajesh\"\u003e\u003ccode\u003e@​khadkarajesh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1404\"\u003epika/pika#1404\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate example to use python3 syntax by \u003ca href=\"https://github.com/AleksaC\"\u003e\u003ccode\u003e@​AleksaC\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1408\"\u003epika/pika#1408\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix exchange type enum type by \u003ca href=\"https://github.com/liortct\"\u003e\u003ccode\u003e@​liortct\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1410\"\u003epika/pika#1410\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd more connections to the adapters by \u003ca href=\"https://github.com/dgoeries\"\u003e\u003ccode\u003e@​dgoeries\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1405\"\u003epika/pika#1405\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix typo by \u003ca href=\"https://github.com/uwe\"\u003e\u003ccode\u003e@​uwe\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1414\"\u003epika/pika#1414\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeature \u003ca href=\"https://redirect.github.com/pika/pika/issues/1363\"\u003e#1363\u003c/a\u003e -- Bump examples python version to 3 by \u003ca href=\"https://github.com/alfawal\"\u003e\u003ccode\u003e@​alfawal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1416\"\u003epika/pika#1416\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAttempt to re-enable GeventConnection on Windows by \u003ca href=\"https://github.com/lukebakken\"\u003e\u003ccode\u003e@​lukebakken\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1417\"\u003epika/pika#1417\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd examples of using client_properties to URLParameters and ConnectionParameters by \u003ca href=\"https://github.com/johanrhodin\"\u003e\u003ccode\u003e@​johanrhodin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1436\"\u003epika/pika#1436\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMisc Windows CI updates by \u003ca href=\"https://github.com/lukebakken\"\u003e\u003ccode\u003e@​lukebakken\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1438\"\u003epika/pika#1438\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse sys.platform instead of platform.system() by \u003ca href=\"https://github.com/cvijdea-bd\"\u003e\u003ccode\u003e@​cvijdea-bd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1467\"\u003epika/pika#1467\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eList Python 3.12 as supported by \u003ca href=\"https://github.com/lukebakken\"\u003e\u003ccode\u003e@​lukebakken\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1474\"\u003epika/pika#1474\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShrink the compatibility module and remove Python \u0026lt;3.7 support by \u003ca href=\"https://github.com/alfawal\"\u003e\u003ccode\u003e@​alfawal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1441\"\u003epika/pika#1441\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eexample: Remove unnecessary guard by \u003ca href=\"https://github.com/jpmckinney\"\u003e\u003ccode\u003e@​jpmckinney\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1435\"\u003epika/pika#1435\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDifferentiate release types by \u003ccode\u003egithub.event.release.prerelease\u003c/code\u003e by \u003ca href=\"https://github.com/lukebakken\"\u003e\u003ccode\u003e@​lukebakken\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1477\"\u003epika/pika#1477\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ebasic_consumer_threaded\u003c/code\u003e example by \u003ca href=\"https://github.com/leogallot\"\u003e\u003ccode\u003e@​leogallot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1507\"\u003epika/pika#1507\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd description for the example blocking_consume_recover_multiple_hosts by \u003ca href=\"https://github.com/federicsp\"\u003e\u003ccode\u003e@​federicsp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1512\"\u003epika/pika#1512\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix tests with Python 3.14, except RuntimeError from asyncio.get_event_loop by \u003ca href=\"https://github.com/hroncok\"\u003e\u003ccode\u003e@​hroncok\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1524\"\u003epika/pika#1524\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate ConnectionParameters doc by \u003ca href=\"https://github.com/ryoung9550\"\u003e\u003ccode\u003e@​ryoung9550\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1494\"\u003epika/pika#1494\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate versions by \u003ca href=\"https://github.com/lukebakken\"\u003e\u003ccode\u003e@​lukebakken\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1514\"\u003epika/pika#1514\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003especify your own consumer_tag when using consume() method of BlockingChannel by \u003ca href=\"https://github.com/ivan-eguidazu\"\u003e\u003ccode\u003e@​ivan-eguidazu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1485\"\u003epika/pika#1485\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eremoval of pika.compat.dictkeys() by \u003ca href=\"https://github.com/a-detiste\"\u003e\u003ccode\u003e@​a-detiste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1492\"\u003epika/pika#1492\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd all public APIs to \u003ccode\u003e__all__\u003c/code\u003e by \u003ca href=\"https://github.com/augustelalande\"\u003e\u003ccode\u003e@​augustelalande\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1476\"\u003epika/pika#1476\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eConvert utcnow() and utcfromtimestamp() by \u003ca href=\"https://github.com/mh21\"\u003e\u003ccode\u003e@​mh21\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1484\"\u003epika/pika#1484\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Issue # 1530: advertise exchange_exchange_bindings  by \u003ca href=\"https://github.com/kenliao94\"\u003e\u003ccode\u003e@​kenliao94\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1540\"\u003epika/pika#1540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eJpaluska/add threadsafe publisher example by \u003ca href=\"https://github.com/jpaluska\"\u003e\u003ccode\u003e@​jpaluska\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1546\"\u003epika/pika#1546\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd python 3.14 to CI and drop 3.9 by \u003ca href=\"https://github.com/alonfaraj\"\u003e\u003ccode\u003e@​alonfaraj\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1549\"\u003epika/pika#1549\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: replace 3 bare except clauses with except Exception by \u003ca href=\"https://github.com/haosenwang1018\"\u003e\u003ccode\u003e@​haosenwang1018\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1545\"\u003epika/pika#1545\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the github-actions group with 4 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1552\"\u003epika/pika#1552\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eruff\u003c/code\u003e lint check to CI (\u003ca href=\"https://redirect.github.com/pika/pika/issues/1371\"\u003eGH-1371\u003c/a\u003e) by \u003ca href=\"https://github.com/lukebakken\"\u003e\u003ccode\u003e@​lukebakken\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1551\"\u003epika/pika#1551\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove dead Code Climate config files by \u003ca href=\"https://github.com/lukebakken\"\u003e\u003ccode\u003e@​lukebakken\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1553\"\u003epika/pika#1553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: Add return value documentation for Channel methods (\u003ca href=\"https://redirect.github.com/pika/pika/issues/1522\"\u003e#1522\u003c/a\u003e) by \u003ca href=\"https://github.com/suchitd\"\u003e\u003ccode\u003e@​suchitd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1555\"\u003epika/pika#1555\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eBlockingIOError\u003c/code\u003e from \u003ccode\u003e_read_interrupt\u003c/code\u003e on Windows (\u003ca href=\"https://redirect.github.com/pika/pika/issues/1314\"\u003eGH-1314\u003c/a\u003e) by \u003ca href=\"https://github.com/lukebakken\"\u003e\u003ccode\u003e@​lukebakken\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1554\"\u003epika/pika#1554\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImplement tests compatibility patch for RabbitMQ 4.3  by \u003ca href=\"https://github.com/alonfaraj\"\u003e\u003ccode\u003e@​alonfaraj\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1548\"\u003epika/pika#1548\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the github-actions group with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1557\"\u003epika/pika#1557\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMigrate to pytest by \u003ca href=\"https://github.com/alonfaraj\"\u003e\u003ccode\u003e@​alonfaraj\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1550\"\u003epika/pika#1550\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix asyncio.get_event_loop() deprecation in _AsyncioIOServicesAdapter by \u003ca href=\"https://github.com/geomarceau\"\u003e\u003ccode\u003e@​geomarceau\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1544\"\u003epika/pika#1544\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop more Python 2 compatibility code by \u003ca href=\"https://github.com/lukebakken\"\u003e\u003ccode\u003e@​lukebakken\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1561\"\u003epika/pika#1561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAlign Python versions metadata and docs  by \u003ca href=\"https://github.com/alonfaraj\"\u003e\u003ccode\u003e@​alonfaraj\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1556\"\u003epika/pika#1556\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLegacy file fixes by \u003ca href=\"https://github.com/alonfaraj\"\u003e\u003ccode\u003e@​alonfaraj\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1562\"\u003epika/pika#1562\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd AGENTS.md with AI agent guidelines by \u003ca href=\"https://github.com/lukebakken\"\u003e\u003ccode\u003e@​lukebakken\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1560\"\u003epika/pika#1560\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix field table type decoding to match RabbitMQ wire format by \u003ca href=\"https://github.com/lukebakken\"\u003e\u003ccode\u003e@​lukebakken\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pika/pika/pull/1566\"\u003epika/pika#1566\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pika/pika/blob/main/CHANGELOG.md\"\u003epika's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/pika/pika/tree/1.4.0\"\u003e1.4.0\u003c/a\u003e (2026-05-06)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pika/pika/compare/1.4.0b0...1.4.0\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eImplemented enhancements:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnforce yapf/google formatting in CI \u003ca href=\"https://redirect.github.com/pika/pika/issues/1558\"\u003e#1558\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Hatch dev environment and scripts \u003ca href=\"https://redirect.github.com/pika/pika/pull/1579\"\u003e#1579\u003c/a\u003e (\u003ca href=\"https://github.com/lukebakken\"\u003elukebakken\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop more Python 2 compatibility code \u003ca href=\"https://redirect.github.com/pika/pika/pull/1561\"\u003e#1561\u003c/a\u003e (\u003ca href=\"https://github.com/lukebakken\"\u003elukebakken\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eClosed issues:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Hatch scripts to standardize developer commands \u003ca href=\"https://redirect.github.com/pika/pika/issues/1578\"\u003e#1578\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix outdated and broken documentation across the project \u003ca href=\"https://redirect.github.com/pika/pika/issues/1568\"\u003e#1568\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Codecov default branch and badge \u003ca href=\"https://redirect.github.com/pika/pika/issues/1563\"\u003e#1563\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGitHub actions workflows and test code need updates for RabbitMQ 4.3 \u003ca href=\"https://redirect.github.com/pika/pika/issues/1547\"\u003e#1547\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edatetime.datetime.utcfromtimestamp() is deprecated \u003ca href=\"https://redirect.github.com/pika/pika/issues/1539\"\u003e#1539\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eURLParameters这个类有bug \u003ca href=\"https://redirect.github.com/pika/pika/issues/1533\"\u003e#1533\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCustom transport \u003ca href=\"https://redirect.github.com/pika/pika/issues/1532\"\u003e#1532\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ex-delay value is being returned in the header as a UINT64 and not a SINT16 \u003ca href=\"https://redirect.github.com/pika/pika/issues/1531\"\u003e#1531\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePika should advertise the \u003ccode\u003eexchange_exchange_bindings\u003c/code\u003e client capability \u003ca href=\"https://redirect.github.com/pika/pika/issues/1530\"\u003e#1530\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMissing type annotations \u003ca href=\"https://redirect.github.com/pika/pika/issues/1523\"\u003e#1523\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eThere is no info about return type of queue_declare() method of pika.channel \u003ca href=\"https://redirect.github.com/pika/pika/issues/1522\"\u003e#1522\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGetting the user who sent the message \u003ca href=\"https://redirect.github.com/pika/pika/issues/1510\"\u003e#1510\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhere is examples/consume_recover_retry.py ? \u003ca href=\"https://redirect.github.com/pika/pika/issues/1499\"\u003e#1499\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eType Hint Issue with arguments parameter in queue_declare method of BlockingChannel Class - (expected \u0026quot;DeclareOk | None\u0026quot;  [arg-type]) \u003ca href=\"https://redirect.github.com/pika/pika/issues/1482\"\u003e#1482\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003equeue_declare does not receive the callback at random times \u003ca href=\"https://redirect.github.com/pika/pika/issues/1480\"\u003e#1480\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eThere is no current event loop in thread \u003ca href=\"https://redirect.github.com/pika/pika/issues/1479\"\u003e#1479\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCannot find reference 'exceptions' in '__init__.pyi'  \u003ca href=\"https://redirect.github.com/pika/pika/issues/1473\"\u003e#1473\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eConvert to \u003ccode\u003epytest\u003c/code\u003e \u003ca href=\"https://redirect.github.com/pika/pika/issues/1469\"\u003e#1469\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd a CI lint check using \u003ccode\u003eruff\u003c/code\u003e and fix all findings \u003ca href=\"https://redirect.github.com/pika/pika/issues/1371\"\u003e#1371\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for proxy configuration (Socks5) \u003ca href=\"https://redirect.github.com/pika/pika/issues/1359\"\u003e#1359\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBlockingIOError: [WinError 10035] A non-blocking socket operation could not be completed immediately \u003ca href=\"https://redirect.github.com/pika/pika/issues/1314\"\u003e#1314\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eMerged pull requests:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate outdated documentation across the pika project \u003ca href=\"https://redirect.github.com/pika/pika/pull/1577\"\u003e#1577\u003c/a\u003e (\u003ca href=\"https://github.com/suchitd\"\u003esuchitd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix TypeError in select_connection \u003ca href=\"https://redirect.github.com/pika/pika/pull/1575\"\u003e#1575\u003c/a\u003e (\u003ca href=\"https://github.com/suchitd\"\u003esuchitd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport Python 3.7+ in CI and fix \u003ccode\u003etyping_extensions\u003c/code\u003e import \u003ca href=\"https://redirect.github.com/pika/pika/pull/1574\"\u003e#1574\u003c/a\u003e (\u003ca href=\"https://github.com/lukebakken\"\u003elukebakken\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eyapf\u003c/code\u003e formatter enforcement \u003ca href=\"https://redirect.github.com/pika/pika/pull/1573\"\u003e#1573\u003c/a\u003e (\u003ca href=\"https://github.com/alonfaraj\"\u003ealonfaraj\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReplace \u003ccode\u003ePIKA_TEST_TLS\u003c/code\u003e env with pytest flag \u003ca href=\"https://redirect.github.com/pika/pika/pull/1572\"\u003e#1572\u003c/a\u003e (\u003ca href=\"https://github.com/alonfaraj\"\u003ealonfaraj\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix field table type decoding to match RabbitMQ wire format \u003ca href=\"https://redirect.github.com/pika/pika/pull/1566\"\u003e#1566\u003c/a\u003e (\u003ca href=\"https://github.com/lukebakken\"\u003elukebakken\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLegacy file fixes \u003ca href=\"https://redirect.github.com/pika/pika/pull/1562\"\u003e#1562\u003c/a\u003e (\u003ca href=\"https://github.com/alonfaraj\"\u003ealonfaraj\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd AGENTS.md with AI agent guidelines \u003ca href=\"https://redirect.github.com/pika/pika/pull/1560\"\u003e#1560\u003c/a\u003e (\u003ca href=\"https://github.com/lukebakken\"\u003elukebakken\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump the github-actions group with 2 updates \u003ca href=\"https://redirect.github.com/pika/pika/pull/1557\"\u003e#1557\u003c/a\u003e (\u003ca href=\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAlign Python versions metadata and docs  \u003ca href=\"https://redirect.github.com/pika/pika/pull/1556\"\u003e#1556\u003c/a\u003e (\u003ca href=\"https://github.com/alonfaraj\"\u003ealonfaraj\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocs: Add return value documentation for Channel methods (\u003ca href=\"https://redirect.github.com/pika/pika/issues/1522\"\u003e#1522\u003c/a\u003e) \u003ca href=\"https://redirect.github.com/pika/pika/pull/1555\"\u003e#1555\u003c/a\u003e (\u003ca href=\"https://github.com/suchitd\"\u003esuchitd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eBlockingIOError\u003c/code\u003e from \u003ccode\u003e_read_interrupt\u003c/code\u003e on Windows (\u003ca href=\"https://redirect.github.com/pika/pika/issues/1314\"\u003eGH-1314\u003c/a\u003e) \u003ca href=\"https://redirect.github.com/pika/pika/pull/1554\"\u003e#1554\u003c/a\u003e (\u003ca href=\"https://github.com/lukebakken\"\u003elukebakken\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove dead Code Climate config files \u003ca href=\"https://redirect.github.com/pika/pika/pull/1553\"\u003e#1553\u003c/a\u003e (\u003ca href=\"https://github.com/lukebakken\"\u003elukebakken\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump the github-actions group with 4 updates \u003ca href=\"https://redirect.github.com/pika/pika/pull/1552\"\u003e#1552\u003c/a\u003e (\u003ca href=\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pika/pika/commit/305fbe60088790a2648580078b4808f138e325d7\"\u003e\u003ccode\u003e305fbe6\u003c/code\u003e\u003c/a\u003e pika 1.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pika/pika/commit/9a3a6e51d17b2b87b29fb8dc48256e79bfdfea58\"\u003e\u003ccode\u003e9a3a6e5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pika/pika/issues/1577\"\u003e#1577\u003c/a\u003e from pika/doc/project-scope-update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pika/pika/commit/f750ce3a60d7a0cb5cf0fcf68ddb68190935b720\"\u003e\u003ccode\u003ef750ce3\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into doc/project-scope-update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pika/pika/commit/ccfe924f5e15b5b1c88384135a64d0f9a6254685\"\u003e\u003ccode\u003eccfe924\u003c/code\u003e\u003c/a\u003e Ensure that pip is run the same way in each workflow.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pika/pika/commit/47129ca63f282a6b2e8335645236a0fa0b27c0ae\"\u003e\u003ccode\u003e47129ca\u003c/code\u003e\u003c/a\u003e Caching pip artifacts actually does not accomplish anything.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pika/pika/commit/0a721f75c7eda0923a4390e544341a737d6a7815\"\u003e\u003ccode\u003e0a721f7\u003c/code\u003e\u003c/a\u003e Fix copyright year and document \u003ccode\u003elegacy-python.yaml\u003c/code\u003e workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pika/pika/commit/f7f51dbd069201a0ff07140cbd3511a36555e398\"\u003e\u003ccode\u003ef7f51db\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into doc/project-scope-update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pika/pika/commit/6e6283352e302c8e25dd5151e1a0164901ff8902\"\u003e\u003ccode\u003e6e62833\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pika/pika/issues/1579\"\u003e#1579\u003c/a\u003e from pika/feature/gh-1578-hatch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pika/pika/commit/3d038ad4cf36708a0e19547e5eaccfdd776ef024\"\u003e\u003ccode\u003e3d038ad\u003c/code\u003e\u003c/a\u003e Remove test-requirements.txt and all references to it, since it is superseded...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pika/pika/commit/540db57e418fa58927cff1a3dd4b8aad123dc4c2\"\u003e\u003ccode\u003e540db57\u003c/code\u003e\u003c/a\u003e Fix formatting issue in legacy-python CI workflow for virtualenv installation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pika/pika/compare/1.3.2...1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyyaml` from 6.0.2 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/yaml/pyyaml/releases\"\u003epyyaml's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14 and free-threading (experimental).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ehttps://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\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 href=\"https://github.com/yaml/pyyaml/blob/6.0.3/CHANGES\"\u003epyyaml's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e6.0.3 (2025-09-25)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/yaml/pyyaml/pull/864\"\u003eyaml/pyyaml#864\u003c/a\u003e -- Support for Python 3.14 and free-threading (experimental)\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 href=\"https://github.com/yaml/pyyaml/commit/49790e73684bebad1df05ef8d828fa12f685bffb\"\u003e\u003ccode\u003e49790e7\u003c/code\u003e\u003c/a\u003e Release 6.0.3 (\u003ca href=\"https://redirect.github.com/yaml/pyyaml/issues/889\"\u003e#889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.33.0 to 2.34.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\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 to avoid invariance issues with \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling \u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"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 href=\"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 \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"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 removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"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 \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"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 implementations\nweren't being properly detected as Iterables. (\u003ca href=\"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=\"https://github.com/k223kim\"\u003e\u003ccode\u003e@​k223kim\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"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 href=\"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\u003ch2\u003ev2.34.0\u003c/h2\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. \u003cstrong\u003eWe believe types are comprehensive but if you find issues, please\nreport them to the \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003epinned tracking issue\u003c/a\u003e.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\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 href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\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 to 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 code. (\u003ca href=\"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 \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"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 removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"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 \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"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 implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. We believe types are comprehensive but if you find issues, please\nreport them to the pinned tracking issue.\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\nproxy_bypass implementation has been updated with CPython's fix from\nbpo-39057. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer incorrectly strips duplicate leading slashes in\nURI paths. This should address user issues with specific presigned\nURLs. Note the full fix requires urllib3 2.7.0+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7315\"\u003e#7315\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 href=\"https://github.com/psf/requests/commit/6e83187b8feb273ed4c6cdab5efd8d54901dfab3\"\u003e\u003ccode\u003e6e83187\u003c/code\u003e\u003c/a\u003e v2.34.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/84d10f0be83e8f6aeca8a05230c52216431c4d0b\"\u003e\u003ccode\u003e84d10f0\u003c/code\u003e\u003c/a\u003e Move Request.headers back to Mapping (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b7b549b54571d03950b16afd2d01bc6ff0348224\"\u003e\u003ccode\u003eb7b549b\u003c/code\u003e\u003c/a\u003e v2.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e511bc72777a94c45d004e010c597925092e1efe\"\u003e\u003ccode\u003ee511bc7\u003c/code\u003e\u003c/a\u003e Fix mutability issues with headers input types (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/5691f596134c2feb121e595c77a0178921fcce61\"\u003e\u003ccode\u003e5691f59\u003c/code\u003e\u003c/a\u003e Update JsonType containers to read-based collections (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2144213c307691710c9d665700860fc4993c3035\"\u003e\u003ccode\u003e2144213\u003c/code\u003e\u003c/a\u003e Constrain Response.reason to str (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6404f345e562d962abe6700a1c357ec1e7e18232\"\u003e\u003ccode\u003e6404f34\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eprepare_body\u003c/code\u003e stream detection for \u003ccode\u003e__getattr__\u003c/code\u003e-based file wrappers (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7\"\u003e#7\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0b401c76b6e80a4eecf3c690085b2553f6e261ca\"\u003e\u003ccode\u003e0b401c7\u003c/code\u003e\u003c/a\u003e v2.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/86b378d3f60f828daa13ca50aa82e287ff7b66b4\"\u003e\u003ccode\u003e86b378d\u003c/code\u003e\u003c/a\u003e Align Session.get parameters with requests.get (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7429\"\u003e#7429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/a4f9a5999bdb9bf2d6e7c8aa973b28cacb17134f\"\u003e\u003ccode\u003ea4f9a59\u003c/code\u003e\u003c/a\u003e Port bpo-39057 to Requests (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.33.0...v2.34.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `structlog` from 25.2.0 to 25.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/hynek/structlog/releases\"\u003estructlog's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.5.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cp\u003eHuge release! There's plenty of important little bug fixes and new features, but the headliner is definitely the improved ergonomics of \u003ccode\u003estructlog.dev.ConsoleRenderer\u003c/code\u003e. We have finally accepted that local development has different priorities than production and made it both mutable (with automatic re-configuration) and also easily retrievable (\u003ccode\u003ecr = ConsoleRenderer.get_active()\u003c/code\u003e). This allows you, for example, to disable Rich exception formatting as easily as \u003ccode\u003estructlog.dev.ConsoleRenderer.get_active().exception_formatter = structlog.dev.plain_traceback\u003c/code\u003e. Please check out the \u003ca href=\"https://www.structlog.org/en/stable/console-output.html\"\u003eupdated docs\u003c/a\u003e!\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eFull changelog below!\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eSpecial Thanks\u003c/h2\u003e\n\u003cp\u003eThis release would not be possible without my generous sponsors! Thank you to all of you making sustainable maintenance possible! If \u003cem\u003eyou\u003c/em\u003e would like to join them, go to \u003ca href=\"https://github.com/sponsors/hynek\"\u003ehttps://github.com/sponsors/hynek\u003c/a\u003e and check out the sweet perks!\u003c/p\u003e\n\u003ch3\u003eAbove and Beyond\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://www.variomedia.de/\"\u003eVariomedia AG\u003c/a\u003e (@\u003ca href=\"https://github.com/variomedia\"\u003evariomedia\u003c/a\u003e), \u003ca href=\"https://www.tidelift.com/\"\u003eTidelift\u003c/a\u003e (@\u003ca href=\"https://github.com/tidelift\"\u003etidelift\u003c/a\u003e), \u003ca href=\"https://www.thanks.dev\"\u003ethanks.dev\u003c/a\u003e (@\u003ca href=\"https://github.com/thnxdev\"\u003ethnxdev\u003c/a\u003e), \u003ca href=\"https://privacy-solutions.org\"\u003ePrivacy Solutions GmbH\u003c/a\u003e (@\u003ca href=\"https://github.com/privacy-solutions\"\u003eprivacy-solutions\u003c/a\u003e), \u003ca href=\"https://quesma.com/\"\u003eQuesma\u003c/a\u003e (\u003ca href=\"https://github.com/QuesmaOrg\"\u003e\u003ccode\u003e@​QuesmaOrg\u003c/code\u003e\u003c/a\u003e), \u003ca href=\"http://filepreviews.io/\"\u003eFilePreviews\u003c/a\u003e (@\u003ca href=\"https://gi...\n\n_Description has been truncated_","html_url":"https://github.com/ONSdigital/census31-eq-questionnaire-runner/pull/6","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ONSdigital%2Fcensus31-eq-questionnaire-runner/issues/6","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/6/packages"}},{"old_version":"2.0.28","new_version":"2.0.31","update_type":"patch","path":null,"pr_created_at":"2026-04-10T07:17:18.000Z","version_change":"2.0.28 → 2.0.31","issue":{"uuid":"4237330891","node_id":"PR_kwDODRkoPc7RX1lV","number":1867,"state":"open","title":"Bump the production-dependencies group across 1 directory with 23 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-10T07:17:18.000Z","updated_at":"2026-04-24T09:00:30.347Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"production-dependencies","update_count":23,"packages":[{"name":"flask","old_version":"3.1.1","new_version":"3.1.3","repository_url":"https://github.com/pallets/flask"},{"name":"google-cloud-datastore","old_version":"2.20.2","new_version":"2.21.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"grpcio","old_version":"1.71.0","new_version":"1.80.0","repository_url":"https://github.com/grpc/grpc"},{"name":"gunicorn","old_version":"23.0.0","new_version":"25.3.0","repository_url":"https://github.com/benoitc/gunicorn"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"requests","old_version":"2.33.0","new_version":"2.33.1","repository_url":"https://github.com/psf/requests"},{"name":"structlog","old_version":"25.2.0","new_version":"25.5.0","repository_url":"https://github.com/hynek/structlog"},{"name":"ua-parser","old_version":"1.0.1","new_version":"1.0.2","repository_url":"https://github.com/ua-parser/uap-python"},{"name":"boto3","old_version":"1.37.23","new_version":"1.42.87","repository_url":"https://github.com/boto/boto3"},{"name":"humanize","old_version":"4.12.2","new_version":"4.15.0","repository_url":"https://github.com/python-humanize/humanize"},{"name":"marshmallow","old_version":"3.26.2","new_version":"4.3.0","repository_url":"https://github.com/marshmallow-code/marshmallow"},{"name":"google-cloud-storage","old_version":"3.1.0","new_version":"3.10.1","repository_url":"https://github.com/googleapis/python-storage"},{"name":"jsonpointer","old_version":"3.0.0","new_version":"3.1.1","repository_url":"https://github.com/stefankoegl/python-json-pointer"},{"name":"redis","old_version":"7.1.0","new_version":"7.4.0","repository_url":"https://github.com/redis/redis-py"},{"name":"flask-compress","old_version":"1.17","new_version":"1.24","repository_url":"https://github.com/colour-science/flask-compress"},{"name":"uwsgi","old_version":"2.0.28","new_version":"2.0.31"},{"name":"email-validator","old_version":"2.2.0","new_version":"2.3.0","repository_url":"https://github.com/JoshData/python-email-validator"},{"name":"google-cloud-pubsub","old_version":"2.29.0","new_version":"2.37.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-tasks","old_version":"2.19.2","new_version":"2.22.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"simplejson","old_version":"3.20.1","new_version":"3.20.2","repository_url":"https://github.com/simplejson/simplejson"},{"name":"markupsafe","old_version":"3.0.2","new_version":"3.0.3","repository_url":"https://github.com/pallets/markupsafe"},{"name":"cachetools","old_version":"6.2.2","new_version":"7.0.5","repository_url":"https://github.com/tkem/cachetools"},{"name":"gevent","old_version":"25.9.1","new_version":"26.4.0","repository_url":"https://github.com/gevent/gevent"}],"path":null,"ecosystem":"pip"},"body":"Bumps the production-dependencies group with 23 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [flask](https://github.com/pallets/flask) | `3.1.1` | `3.1.3` |\n| [google-cloud-datastore](https://github.com/googleapis/google-cloud-python) | `2.20.2` | `2.21.0` |\n| [grpcio](https://github.com/grpc/grpc) | `1.71.0` | `1.80.0` |\n| [gunicorn](https://github.com/benoitc/gunicorn) | `23.0.0` | `25.3.0` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [requests](https://github.com/psf/requests) | `2.33.0` | `2.33.1` |\n| [structlog](https://github.com/hynek/structlog) | `25.2.0` | `25.5.0` |\n| [ua-parser](https://github.com/ua-parser/uap-python) | `1.0.1` | `1.0.2` |\n| [boto3](https://github.com/boto/boto3) | `1.37.23` | `1.42.87` |\n| [humanize](https://github.com/python-humanize/humanize) | `4.12.2` | `4.15.0` |\n| [marshmallow](https://github.com/marshmallow-code/marshmallow) | `3.26.2` | `4.3.0` |\n| [google-cloud-storage](https://github.com/googleapis/python-storage) | `3.1.0` | `3.10.1` |\n| [jsonpointer](https://github.com/stefankoegl/python-json-pointer) | `3.0.0` | `3.1.1` |\n| [redis](https://github.com/redis/redis-py) | `7.1.0` | `7.4.0` |\n| [flask-compress](https://github.com/colour-science/flask-compress) | `1.17` | `1.24` |\n| [uwsgi](https://uwsgi-docs.readthedocs.io/en/latest/) | `2.0.28` | `2.0.31` |\n| [email-validator](https://github.com/JoshData/python-email-validator) | `2.2.0` | `2.3.0` |\n| [google-cloud-pubsub](https://github.com/googleapis/google-cloud-python) | `2.29.0` | `2.37.0` |\n| [google-cloud-tasks](https://github.com/googleapis/google-cloud-python) | `2.19.2` | `2.22.0` |\n| [simplejson](https://github.com/simplejson/simplejson) | `3.20.1` | `3.20.2` |\n| [markupsafe](https://github.com/pallets/markupsafe) | `3.0.2` | `3.0.3` |\n| [cachetools](https://github.com/tkem/cachetools) | `6.2.2` | `7.0.5` |\n| [gevent](https://github.com/gevent/gevent) | `25.9.1` | `26.4.0` |\n\n\nUpdates `flask` from 3.1.1 to 3.1.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/flask/releases\"\u003eflask's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.1.3\u003c/h2\u003e\n\u003cp\u003eThis is the Flask 3.1.3 security fix release, which fixes a security issue but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/Flask/3.1.3/\"\u003ehttps://pypi.org/project/Flask/3.1.3/\u003c/a\u003e\nChanges: \u003ca href=\"https://flask.palletsprojects.com/page/changes/#version-3-1-3\"\u003ehttps://flask.palletsprojects.com/page/changes/#version-3-1-3\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe session is marked as accessed for operations that only access the keys but not the values, such as \u003ccode\u003ein\u003c/code\u003e and \u003ccode\u003elen\u003c/code\u003e. \u003ca href=\"https://github.com/pallets/flask/security/advisories/GHSA-68rp-wp8r-4726\"\u003eGHSA-68rp-wp8r-4726\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.1.2\u003c/h2\u003e\n\u003cp\u003eThis is the Flask 3.1.2 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/Flask/3.1.2/\"\u003ehttps://pypi.org/project/Flask/3.1.2/\u003c/a\u003e\nChanges: \u003ca href=\"https://flask.palletsprojects.com/page/changes/#version-3-1-2\"\u003ehttps://flask.palletsprojects.com/page/changes/#version-3-1-2\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/flask/milestone/38?closed=1\"\u003ehttps://github.com/pallets/flask/milestone/38?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003estream_with_context\u003c/code\u003e does not fail inside async views. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5774\"\u003e#5774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen using \u003ccode\u003efollow_redirects\u003c/code\u003e in the test client, the final state of \u003ccode\u003esession\u003c/code\u003e is correct. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5786\"\u003e#5786\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelax type hint for passing bytes IO to \u003ccode\u003esend_file\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5776\"\u003e#5776\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 href=\"https://github.com/pallets/flask/blob/main/CHANGES.rst\"\u003eflask's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.1.3\u003c/h2\u003e\n\u003cp\u003eReleased 2026-02-18\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe session is marked as accessed for operations that only access the keys\nbut not the values, such as \u003ccode\u003ein\u003c/code\u003e and \u003ccode\u003elen\u003c/code\u003e. :ghsa:\u003ccode\u003e68rp-wp8r-4726\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.1.2\u003c/h2\u003e\n\u003cp\u003eReleased 2025-08-19\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003estream_with_context\u003c/code\u003e does not fail inside async views. :issue:\u003ccode\u003e5774\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eWhen using \u003ccode\u003efollow_redirects\u003c/code\u003e in the test client, the final state\nof \u003ccode\u003esession\u003c/code\u003e is correct. :issue:\u003ccode\u003e5786\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRelax type hint for passing bytes IO to \u003ccode\u003esend_file\u003c/code\u003e. :issue:\u003ccode\u003e5776\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 href=\"https://github.com/pallets/flask/commit/22d924701a6ae2e4cd01e9a15bbaf3946094af65\"\u003e\u003ccode\u003e22d9247\u003c/code\u003e\u003c/a\u003e release version 3.1.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/089cb86dd22bff589a4eafb7ab8e42dc357623b4\"\u003e\u003ccode\u003e089cb86\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/c17f379390731543eea33a570a47bd4ef76a54fa\"\u003e\u003ccode\u003ec17f379\u003c/code\u003e\u003c/a\u003e request context tracks session access\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/27be9338405382445a7cb01151e084559b98d602\"\u003e\u003ccode\u003e27be933\u003c/code\u003e\u003c/a\u003e start version 3.1.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/4e652d3f68b90d50aa2301d3b7e68c3fafd9251d\"\u003e\u003ccode\u003e4e652d3\u003c/code\u003e\u003c/a\u003e Abort if the instance folder cannot be created (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5903\"\u003e#5903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/3d03098a97ddc6a908aa4a50c2ef7381f8297d0a\"\u003e\u003ccode\u003e3d03098\u003c/code\u003e\u003c/a\u003e Abort if the instance folder cannot be created\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/407eb76b27884848383a37c7274654f0271e4bc4\"\u003e\u003ccode\u003e407eb76\u003c/code\u003e\u003c/a\u003e document using gevent for async (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5900\"\u003e#5900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/ac5664d2281533eacafd64f5cc7d5edcdaccab60\"\u003e\u003ccode\u003eac5664d\u003c/code\u003e\u003c/a\u003e document using gevent for async\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/4f79d5b59a56bc4356a97f2e81a35f98cb18d7b3\"\u003e\u003ccode\u003e4f79d5b\u003c/code\u003e\u003c/a\u003e Increase required flit_core version to 3.11 (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5865\"\u003e#5865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/fe3b215d3ade4db68262dae1a3cdc464a1fc524f\"\u003e\u003ccode\u003efe3b215\u003c/code\u003e\u003c/a\u003e Increase required flit_core version to 3.11\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/flask/compare/3.1.1...3.1.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-datastore` from 2.20.2 to 2.21.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/blob/main/packages/google-cloud-documentai/CHANGELOG.md\"\u003egoogle-cloud-datastore's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-documentai-v2.20.2...google-cloud-documentai-v2.21.0\"\u003e2.21.0\u003c/a\u003e (2023-12-07)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for python 3.12 (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/fb6f9dbfadfe1a8ca3b236e0cae5c85cf2862f3e\"\u003efb6f9db\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIntroduce compatibility with native namespace packages (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/fb6f9dbfadfe1a8ca3b236e0cae5c85cf2862f3e\"\u003efb6f9db\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRequire proto-plus \u0026gt;= 1.22.3 (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/fb6f9dbfadfe1a8ca3b236e0cae5c85cf2862f3e\"\u003efb6f9db\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eretry_async\u003c/code\u003e instead of \u003ccode\u003eretry\u003c/code\u003e in async client (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/fb6f9dbfadfe1a8ca3b236e0cae5c85cf2862f3e\"\u003efb6f9db\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 href=\"https://github.com/googleapis/google-cloud-python/commit/c60ded47847b04b2536f19c1610b5592b7952d6a\"\u003e\u003ccode\u003ec60ded4\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20260108T181058Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/15005\"\u003e#15005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c0e3e9d221c3b8cd6d99503fadbb8e643db1e325\"\u003e\u003ccode\u003ec0e3e9d\u003c/code\u003e\u003c/a\u003e chore: disable treat warnings as errors (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/15008\"\u003e#15008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/45d4cee9e0e48a209b2d9292be29a15125548458\"\u003e\u003ccode\u003e45d4cee\u003c/code\u003e\u003c/a\u003e docs(samples): Update BigQuery Storage Arrow samples batching logic (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14961\"\u003e#14961\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/45149baca6064be265db1b653abb405c298a2b41\"\u003e\u003ccode\u003e45149ba\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20260108T162506Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/15001\"\u003e#15001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/d58a9ba338df3df1afca11e155fe449c32631179\"\u003e\u003ccode\u003ed58a9ba\u003c/code\u003e\u003c/a\u003e test: Add 'cryptography' 'cachetools' to test deps for bigquery-storage (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14999\"\u003e#14999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/10289465a87988b9bf35a85893f26ea372ad717b\"\u003e\u003ccode\u003e1028946\u003c/code\u003e\u003c/a\u003e feat: add v1 api for google-cloud-maintenance-api (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14998\"\u003e#14998\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/b3cb4de3ce50c3ec55af2b132d756252a32641f3\"\u003e\u003ccode\u003eb3cb4de\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260107T084051Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14995\"\u003e#14995\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/17cc12897e6afdf3f3131531c50a8226a3f57c0f\"\u003e\u003ccode\u003e17cc128\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20251231T091651Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14991\"\u003e#14991\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c353aa5bcc937ef9399c8efc90492dadbcf01aa2\"\u003e\u003ccode\u003ec353aa5\u003c/code\u003e\u003c/a\u003e chore: librarian update image pull request: 20251219T024955Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14985\"\u003e#14985\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/f38453832a2bb0226c389c30df13d072d1642377\"\u003e\u003ccode\u003ef384538\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20251217T215552Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14980\"\u003e#14980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-documentai-v2.20.2...google-cloud-iam-v2.21.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `grpcio` from 1.71.0 to 1.80.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/grpc/grpc/releases\"\u003egrpcio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v1.80.0\u003c/h2\u003e\n\u003cp\u003eThis is release 1.80.0 (\u003ca href=\"https://github.com/grpc/grpc/blob/master/doc/g_stands_for.md\"\u003eglimmering\u003c/a\u003e) of gRPC Core.\u003c/p\u003e\n\u003cp\u003eFor gRPC documentation, see \u003ca href=\"https://grpc.io/\"\u003egrpc.io\u003c/a\u003e. For previous releases, see \u003ca href=\"https://github.com/grpc/grpc/releases\"\u003eReleases\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis release contains refinements, improvements, and bug fixes, with highlights listed below.\u003c/p\u003e\n\u003ch2\u003eCore\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[ssl] Implement TLS private key signer in Python. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/41701\"\u003e#41701\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[TLS Credentials]: Private Key Offload Implementation. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/41606\"\u003e#41606\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix max sockaddr struct size on OpenBSD. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/40454\"\u003e#40454\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[core] Enable EventEngine for Python by default, and EventEngine fork support in Python and Ruby. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/41432\"\u003e#41432\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[TLS Credentials]: Create InMemoryCertificateProvider to update certificates independently. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/41484\"\u003e#41484\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Ruby] Build/test ruby 4.0 and build native gems with Ruby 4.0 support. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/41324\"\u003e#41324\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[EventEngine] Remove an incorrect std::move in DNSServiceResolver constructor. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/41502\"\u003e#41502\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[RR and WRR] enable change to connect from a random index. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/41472\"\u003e#41472\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[xds] Implement gRFC A101. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/41051\"\u003e#41051\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eC++\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[C++] Add SNI override option to C++ channel credentials options API. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/41460\"\u003e#41460\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eC#\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[C# tools] Option to append Async to server side method names \u003ca href=\"https://redirect.github.com/grpc/grpc/issues/39010\"\u003e#39010\u003c/a\u003e. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/39797\"\u003e#39797\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eObjective-C\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[Fix][Compiler] Plugins fall back to the edition 2023 for older protobuf. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/41357\"\u003e#41357\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePHP\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[PHP] Disable php infinite recursion check for callback from Core to PHP. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/41835\"\u003e#41835\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[PHP] Fix runtime error with PHp8.5 alpha because zend_exception_get_defaul…. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/40337\"\u003e#40337\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePython\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[Python] Fix \u003ccode\u003eGRPC_TRACE\u003c/code\u003e not working when absl log initialized in cython. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/41814\"\u003e#41814\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRevert \u0026quot;[Python] Align GRPC_ENABLE_FORK_SUPPORT env defaults in core and python (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/41455\"\u003e#41455\u003c/a\u003e)\u0026quot;. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/41769\"\u003e#41769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Python] Fix AsyncIO Server maximum_concurrent_rpcs enforcement preventing negative active_rpcs count. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/41532\"\u003e#41532\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Python] Docs: correct \u003ccode\u003egrpc.Compression\u003c/code\u003e references. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/41705\"\u003e#41705\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Python] [Typeguard] Part 4 - Add Typeguard to AIO stack in tests . (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/40226\"\u003e#40226\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 href=\"https://github.com/grpc/grpc/commit/f5e2d6e856176c2f6b7691032adfefe21e5f64c1\"\u003e\u003ccode\u003ef5e2d6e\u003c/code\u003e\u003c/a\u003e [Release] Bump version to 1.80.0 (on v1.80.x branch) (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/41857\"\u003e#41857\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/938cfecaebfc28b5e6bcdb95d55aba3962d9b55b\"\u003e\u003ccode\u003e938cfec\u003c/code\u003e\u003c/a\u003e [subchannel connection scaling] fix when we reset backoff (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/41935\"\u003e#41935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/91778bec667d7310864420f2b32aeb2e41e1b51c\"\u003e\u003ccode\u003e91778be\u003c/code\u003e\u003c/a\u003e [Backport][v1.80.x][Python] New \u003ccode\u003e_create\u003c/code\u003e method for aio.Metadata (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/41888\"\u003e#41888\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/f10b9f26933703c5fe3e080f50ef19c858d773e0\"\u003e\u003ccode\u003ef10b9f2\u003c/code\u003e\u003c/a\u003e [bzlmod] upgrade rules_swift to avoid BCR CI breakage on Windows with bazel 7...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/be4c1c55b69493868241bfffd4bc318d3d592656\"\u003e\u003ccode\u003ebe4c1c5\u003c/code\u003e\u003c/a\u003e [subchannel] fix crash in connection scaling code (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/41853\"\u003e#41853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/a71df73eafb18fa0210a13dd6a2ce2cb6594d427\"\u003e\u003ccode\u003ea71df73\u003c/code\u003e\u003c/a\u003e [Release] Bump version to 1.80.0-pre1 (on v1.80.x branch) (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/41844\"\u003e#41844\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/3ca09e4818f4362e75c9c224f1d4c2065db75a0a\"\u003e\u003ccode\u003e3ca09e4\u003c/code\u003e\u003c/a\u003e [Python] Fix GRPC_TRACE and add test to check the GRPC_TRACE logs print (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/41814\"\u003e#41814\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/260c6fd37c502e984836a446c5d90e4a1298036d\"\u003e\u003ccode\u003e260c6fd\u003c/code\u003e\u003c/a\u003e [PHP] Disable php infinite recursion check for callback from Core to PHP (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/41\"\u003e#41\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/50957c5c47de1c85637fc9dafe6d4eb4c1224f6b\"\u003e\u003ccode\u003e50957c5\u003c/code\u003e\u003c/a\u003e [Flakiness] Delete flaky iomgr fd_conservation_posix_test and create an Event...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/e1e1d0a8150b5178d4b75e15f4856a4d825a8999\"\u003e\u003ccode\u003ee1e1d0a\u003c/code\u003e\u003c/a\u003e [Bzlmod] Turn off bzlmod for PSM python tests. (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/41810\"\u003e#41810\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/grpc/grpc/compare/v1.71.0...v1.80.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gunicorn` from 23.0.0 to 25.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/benoitc/gunicorn/releases\"\u003egunicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eGunicorn 25.3.0\u003c/h2\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eHTTP/2 ASGI Body Duplication\u003c/strong\u003e: Fix request body being received twice in HTTP/2\nASGI requests, causing JSON parsing errors with \u0026quot;Extra data\u0026quot; messages\n(\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3558\"\u003e#3558\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eASGI Chunked EOF Handling\u003c/strong\u003e: Add \u003ccode\u003efinish()\u003c/code\u003e method to callback parser to handle\nchunked encoding edge case where connection closes before final CRLF after zero-chunk\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eHTTP/2 Documentation\u003c/strong\u003e: Fix \u003ccode\u003ehttp_protocols\u003c/code\u003e examples to use comma-separated string\ninstead of list syntax (\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3561\"\u003e#3561\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eChunked Encoding\u003c/strong\u003e: Reject chunk extensions containing bare CR bytes per RFC 9112\n(\u003ca href=\"https://github.com/benoitc/gunicorn/discussions/3556\"\u003e#3556\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eRequest Line Limit\u003c/strong\u003e: Fix \u003ccode\u003e--limit-request-line 0\u003c/code\u003e to mean unlimited as documented,\ninstead of using default maximum. Works with both Python and fast C parser.\n(\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3563\"\u003e#3563\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eASGI Parser Header Validation\u003c/strong\u003e: Add security checks per RFC 9110/9112:\n\u003cul\u003e\n\u003cli\u003eReject duplicate Content-Length headers\u003c/li\u003e\n\u003cli\u003eReject requests with both Content-Length and Transfer-Encoding\u003c/li\u003e\n\u003cli\u003eReject chunked transfer encoding in HTTP/1.0\u003c/li\u003e\n\u003cli\u003eReject stacked chunked encoding\u003c/li\u003e\n\u003cli\u003eValidate Transfer-Encoding values\u003c/li\u003e\n\u003cli\u003eStrict chunk size validation\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eFast HTTP Parser\u003c/strong\u003e: Update to gunicorn_h1c \u0026gt;= 0.6.3 for \u003ccode\u003easgi_headers\u003c/code\u003e property\nand \u003ccode\u003eInvalidChunkExtension\u003c/code\u003e validation for bare CR rejection\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eASGI PROXY Protocol\u003c/strong\u003e: Add PROXY protocol v1/v2 support to callback parser\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eDocker Images\u003c/strong\u003e: Update to Python 3.14\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eGunicorn 25.2.0\u003c/h2\u003e\n\u003ch3\u003eNew Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFast HTTP Parser (gunicorn_h1c 0.4.1)\u003c/strong\u003e: Integrate new exception types and limit parameters from gunicorn_h1c 0.4.1 for both WSGI and ASGI workers\n\u003cul\u003e\n\u003cli\u003eRequires gunicorn_h1c \u0026gt;= 0.4.1 for \u003ccode\u003ehttp_parser='fast'\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFalls back to Python parser in \u003ccode\u003eauto\u003c/code\u003e mode if version not met\u003c/li\u003e\n\u003cli\u003eProper HTTP status codes for limit errors (414, 431)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003euWSGI Async Workers\u003c/strong\u003e: Fix \u003ccode\u003eInvalidUWSGIHeader: incomplete header\u003c/code\u003e error when using gevent or gthread workers with uwsgi protocol behind nginx. (\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3552\"\u003e#3552\u003c/a\u003e, [PR \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3554\"\u003e#3554\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/pull/3554\"\u003ebenoitc/gunicorn#3554\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 href=\"https://github.com/benoitc/gunicorn/commit/9bce72cfc3985aba7e0c47bf3c00fa681b2847e4\"\u003e\u003ccode\u003e9bce72c\u003c/code\u003e\u003c/a\u003e Update changelog with missing 25.3.0 changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/2a15fdb93ab136e5776692d620852f481c89d610\"\u003e\u003ccode\u003e2a15fdb\u003c/code\u003e\u003c/a\u003e Fix pylint isinstance-second-argument-not-valid-type warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/8d08aaa2cbd38fdfa2ca6fb94094c47b9c16730a\"\u003e\u003ccode\u003e8d08aaa\u003c/code\u003e\u003c/a\u003e Fix --limit-request-line 0 to mean unlimited\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/d40a37454736e40916eb51e35895f1c22c0cd34a\"\u003e\u003ccode\u003ed40a374\u003c/code\u003e\u003c/a\u003e Fix pytest-asyncio configuration and treq_asgi hex escapes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/da8bd4850ac0f2d0df215390dad88392eb538d74\"\u003e\u003ccode\u003eda8bd48\u003c/code\u003e\u003c/a\u003e Remove unused AsyncRequest class\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/b00f125755ec3f509a3e82dc5568d9f2d8bddba7\"\u003e\u003ccode\u003eb00f125\u003c/code\u003e\u003c/a\u003e Integrate gunicorn_h1c 0.6.3 with InvalidChunkExtension support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/bdb2ebd5a4913fff1e92800f3763e4a879526d3e\"\u003e\u003ccode\u003ebdb2ebd\u003c/code\u003e\u003c/a\u003e Reject chunk extensions with bare CR bytes (RFC 9112)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/7057fc9f89f0ce4d9ac01a12ea2f39768fb32be6\"\u003e\u003ccode\u003e7057fc9\u003c/code\u003e\u003c/a\u003e Fix http_protocols documentation to use string syntax\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/d43acb8fe0910b6669c163e2f4a439e464eab012\"\u003e\u003ccode\u003ed43acb8\u003c/code\u003e\u003c/a\u003e Update to gunicorn_h1c \u0026gt;= 0.6.2 for asgi_headers support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/cbd27e82a238cb1326336c6aa4b8ae058e2c9ff9\"\u003e\u003ccode\u003ecbd27e8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3559\"\u003e#3559\u003c/a\u003e from benleembruggen/fix/http2-asgi-body-duplication\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/benoitc/gunicorn/compare/23.0.0...25.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyyaml` from 6.0.2 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/yaml/pyyaml/releases\"\u003epyyaml's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14 and free-threading (experimental).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ehttps://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\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 href=\"https://github.com/yaml/pyyaml/blob/6.0.3/CHANGES\"\u003epyyaml's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e6.0.3 (2025-09-25)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/yaml/pyyaml/pull/864\"\u003eyaml/pyyaml#864\u003c/a\u003e -- Support for Python 3.14 and free-threading (experimental)\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 href=\"https://github.com/yaml/pyyaml/commit/49790e73684bebad1df05ef8d828fa12f685bffb\"\u003e\u003ccode\u003e49790e7\u003c/code\u003e\u003c/a\u003e Release 6.0.3 (\u003ca href=\"https://redirect.github.com/yaml/pyyaml/issues/889\"\u003e#889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.33.0 to 2.33.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.1\u003c/h2\u003e\n\u003ch2\u003e2.33.1 (2026-03-30)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed test cleanup for CVE-2026-25645 to avoid leaving unnecessary\nfiles in the tmp directory. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed Content-Type header parsing for malformed values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved error consistency for malformed header values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\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=\"https://github.com/ferdnyc\"\u003e\u003ccode\u003e@​ferdnyc\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7277\"\u003epsf/requests#7277\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2331-2026-03-30\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2331-2026-03-30\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 href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.1 (2026-03-30)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed test cleanup for CVE-2026-25645 to avoid leaving unnecessary\nfiles in the tmp directory. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed Content-Type header parsing for malformed values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved error consistency for malformed header values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\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 href=\"https://github.com/psf/requests/commit/111d2b77790bf49943c0dfa09b365371c24aec7e\"\u003e\u003ccode\u003e111d2b7\u003c/code\u003e\u003c/a\u003e v2.33.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/f0198e6dfc431a2293dc16e1b1e8fcddc910a7f3\"\u003e\u003ccode\u003ef0198e6\u003c/code\u003e\u003c/a\u003e Fix malformed value parsing for Content-Type (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc7dd0fc4d56e808bcdd85ac2d797b3107c89259\"\u003e\u003ccode\u003ebc7dd0f\u003c/code\u003e\u003c/a\u003e Fix cosmetic header validity parsing regex (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/4443b1a847b190010c2972a658924b98b5db6360\"\u003e\u003ccode\u003e4443b1a\u003c/code\u003e\u003c/a\u003e Fix unintended test extra (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7306\"\u003e#7306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/389eea58dfb2f2ee096421a812e3af29c0298951\"\u003e\u003ccode\u003e389eea5\u003c/code\u003e\u003c/a\u003e Cleanup extracted file after extract_zipped_path test (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/7407309c8a8a73aa2f4337184025d440bbedab7a\"\u003e\u003ccode\u003e7407309\u003c/code\u003e\u003c/a\u003e Packaging: DRY out extras definition (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7277\"\u003e#7277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/psf/requests/compare/v2.33.0...v2.33.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `structlog` from 25.2.0 to 25.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/hynek/structlog/releases\"\u003estructlog's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.5.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cp\u003eHuge release! There's plenty of important little bug fixes and new features, but the headliner is definitely the improved ergonomics of \u003ccode\u003estructlog.dev.ConsoleRenderer\u003c/code\u003e. We have finally accepted that local development has different priorities than production and made it both mutable (with automatic re-configuration) and also easily retrievable (\u003ccode\u003ecr = ConsoleRenderer.get_active()\u003c/code\u003e). This allows you, for example, to disable Rich exception formatting as easily as \u003ccode\u003estructlog.dev.ConsoleRenderer.get_active().exception_formatter = structlog.dev.plain_traceback\u003c/code\u003e. Please check out the \u003ca href=\"https://www.structlog.org/en/stable/console-output.html\"\u003eupdated docs\u003c/a\u003e!\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eFull changelog below!\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eSpecial Thanks\u003c/h2\u003e\n\u003cp\u003eThis release would not be possible without my generous sponsors! Thank you to all of you making sustainable maintenance possible! If \u003cem\u003eyou\u003c/em\u003e would like to join them, go to \u003ca href=\"https://github.com/sponsors/hynek\"\u003ehttps://github.com/sponsors/hynek\u003c/a\u003e and check out the sweet perks!\u003c/p\u003e\n\u003ch3\u003eAbove and Beyond\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://www.variomedia.de/\"\u003eVariomedia AG\u003c/a\u003e (@\u003ca href=\"https://github.com/variomedia\"\u003evariomedia\u003c/a\u003e), \u003ca href=\"https://www.tidelift.com/\"\u003eTidelift\u003c/a\u003e (@\u003ca href=\"https://github.com/tidelift\"\u003etidelift\u003c/a\u003e), \u003ca href=\"https://www.thanks.dev\"\u003ethanks.dev\u003c/a\u003e (@\u003ca href=\"https://github.com/thnxdev\"\u003ethnxdev\u003c/a\u003e), \u003ca href=\"https://privacy-solutions.org\"\u003ePrivacy Solutions GmbH\u003c/a\u003e (@\u003ca href=\"https://github.com/privacy-solutions\"\u003eprivacy-solutions\u003c/a\u003e), \u003ca href=\"https://quesma.com/\"\u003eQuesma\u003c/a\u003e (\u003ca href=\"https://github.com/QuesmaOrg\"\u003e\u003ccode\u003e@​QuesmaOrg\u003c/code\u003e\u003c/a\u003e), \u003ca href=\"http://filepreviews.io/\"\u003eFilePreviews\u003c/a\u003e (@\u003ca href=\"https://github.com/filepreviews\"\u003efilepreviews\u003c/a\u003e), \u003ca href=\"https://www.lambdatest.com\"\u003eLambdaTest\u003c/a\u003e (@\u003ca href=\"https://github.com/LambdaTest-Inc\"\u003eLambdaTest-Inc\u003c/a\u003e), \u003ca href=\"https://doist.com/\"\u003eDoist\u003c/a\u003e (@\u003ca href=\"https://github.com/Doist\"\u003eDoist\u003c/a\u003e), Daniel Fortunov (@\u003ca href=\"https://github.com/asqui\"\u003easqui\u003c/a\u003e), and Kevin P. Fleming (@\u003ca href=\"https://github.com/kpfleming\"\u003ekpfleming\u003c/a\u003e).\u003c/p\u003e\n\u003ch3\u003eMaintenance Sustainers\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://buttondown.com\"\u003eButtondown\u003c/a\u003e (@\u003ca href=\"https://github.com/buttondown\"\u003ebuttondown\u003c/a\u003e), Jeff McCarrell (@\u003ca href=\"https://github.com/jmccarrell\"\u003ejmccarrell\u003c/a\u003e), \u003ca href=\"https://christopher.xyz\"\u003eChristopher Dignam\u003c/a\u003e (@\u003ca href=\"https://github.com/chdsbd\"\u003echdsbd\u003c/a\u003e), Magnus Watn (@\u003ca href=\"https://github.com/magnuswatn\"\u003emagnuswatn\u003c/a\u003e), \u003ca href=\"https://cra.mr\"\u003eDavid Cramer\u003c/a\u003e (@\u003ca href=\"https://github.com/dcramer\"\u003edcramer\u003c/a\u003e), Jesse Snyder (@\u003ca href=\"https://github.com/jessesnyder\"\u003ejessesnyder\u003c/a\u003e), \u003ca href=\"https://rivolaks.com\"\u003eRivo Laks\u003c/a\u003e (@\u003ca href=\"https://github.com/rivol\"\u003erivol\u003c/a\u003e), \u003ca href=\"https://polar.sh\"\u003ePolar\u003c/a\u003e (@\u003ca href=\"https://github.com/polarsource\"\u003epolarsource\u003c/a\u003e), \u003ca href=\"https://www.miketheman.net\"\u003eMike Fiedler\u003c/a\u003e (@\u003ca href=\"https://github.com/miketheman\"\u003emiketheman\u003c/a\u003e), Duncan Hill (@\u003ca href=\"https://github.com/cricalix\"\u003ecricalix\u003c/a\u003e), Colin Marquardt (@\u003ca href=\"https://github.com/cmarqu\"\u003ecmarqu\u003c/a\u003e), \u003ca href=\"https://blog.journeythatcounts.nl\"\u003ePieter Swinkels\u003c/a\u003e (@\u003ca href=\"https://github.com/swinkels\"\u003eswinkels\u003c/a\u003e), Nick Libertini (@\u003ca href=\"https://github.com/libertininick\"\u003elibertininick\u003c/a\u003e), \u003ca href=\"https://bmdphd.info/\"\u003eBrian M. Dennis\u003c/a\u003e (@\u003ca href=\"https://github.com/crossjam\"\u003ecrossjam\u003c/a\u003e), Celebrity News AG (@\u003ca href=\"https://github.com/celebritynewsag\"\u003ecelebritynewsag\u003c/a\u003e), \u003ca href=\"https://westervelt.com\"\u003eThe Westervelt Company\u003c/a\u003e (@\u003ca href=\"https://github.com/westerveltco\"\u003ewesterveltco\u003c/a\u003e), \u003ca href=\"https://slafs.net\"\u003eSławomir Ehlert\u003c/a\u003e (@\u003ca href=\"https://github.com/slafs\"\u003eslafs\u003c/a\u003e), Mostafa Khalil (@\u003ca href=\"https://github.com/khadrawy\"\u003ekhadrawy\u003c/a\u003e), \u003ca href=\"https://fmularczyk.pl\"\u003eFilip Mularczyk\u003c/a\u003e (@\u003ca href=\"https://github.com/mukiblejlok\"\u003emukiblejlok\u003c/a\u003e), Thomas Klinger (@\u003ca href=\"https://github.com/thmsklngr\"\u003ethmsklngr\u003c/a\u003e), \u003ca href=\"https://poehlmann.io\"\u003eAndreas Poehlmann\u003c/a\u003e (@\u003ca href=\"https://github.com/ap--\"\u003eap--\u003c/a\u003e), \u003ca href=\"https://atbigelow.com\"\u003eAugust Trapper Bigelow\u003c/a\u003e (@\u003ca href=\"https://github.com/atbigelow\"\u003eatbigelow\u003c/a\u003e), \u003ca href=\"https://noumenal.es/\"\u003eCarlton Gibson\u003c/a\u003e (@\u003ca href=\"https://github.com/carltongibson\"\u003ecarltongibson\u003c/a\u003e), \u003ca href=\"https://roboflow.com\"\u003eRoboflow\u003c/a\u003e (@\u003ca href=\"https://github.com/roboflow\"\u003eroboflow\u003c/a\u003e), and Jeff McCarrell (@\u003ca href=\"https://github.com/jmccarrell\"\u003ejmccarrell\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003eFull Changelog\u003c/h2\u003e\n\u003ch3\u003eDeprecated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003estructlog.dev.ConsoleRenderer()\u003c/code\u003e's \u003cem\u003epad_event\u003c/em\u003e argument has been renamed to \u003cem\u003epad_event_to\u003c/em\u003e to differentiate it from the boolean \u003cem\u003epad_level\u003c/em\u003e argument. \u003cem\u003epad_event\u003c/em\u003e is now deprecated.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003estructlog.dev.ConsoleRenderer.get_active()\u003c/code\u003e that returns the currently active \u003ccode\u003estructlog.dev.ConsoleRenderer()\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/hynek/structlog/pull/749\"\u003e#749\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003estructlog.dev.ConsoleRenderer()\u003c/code\u003e now supports setting the \u003ccode\u003eexception_formatter\u003c/code\u003e attribute.\u003c/p\u003e\n\u003cp\u003eYou can now disable the pretty-printing of exceptions by setting it to \u003ccode\u003estructlog.dev.plain_traceback\u003c/code\u003e:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecr = structlog.dev.ConsoleRenderer.get_active()\r\ncr.exception_formatter = structlog.dev.plain_traceback\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eSame goes for \u003cem\u003esort_keys\u003c/em\u003e, \u003cem\u003ecolumns\u003c/em\u003e, \u003cem\u003ecolors\u003c/em\u003e, \u003cem\u003eforce_colors\u003c/em\u003e, \u003cem\u003elevel_styles\u003c/em\u003e, \u003cem\u003epad_event_to\u003c/em\u003e, \u003cem\u003eevent_key\u003c/em\u003e, \u003cem\u003etimestamp_key\u003c/em\u003e, and \u003cem\u003erepr_native_str\u003c/em\u003e.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/hynek/structlog/pull/749\"\u003e#749\u003c/a\u003e \u003ca href=\"https://redirect.github.com/hynek/structlog/pull/756\"\u003e#756\u003c/a\u003e \u003ca href=\"https://redirect.github.com/hynek/structlog/pull/757\"\u003e#757\u003c/a\u003e \u003ca href=\"https://redirect.github.com/hynek/structlog/pull/759\"\u003e#759\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003estructlog.dev.ConsoleRenderer.get_default_column_styles()\u003c/code\u003e for reuse the default column styles. \u003ca href=\"https://redirect.github.com/hynek/structlog/pull/741\"\u003e#741\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003estructlog.testing.capture_logs()\u003c/code\u003e now optionally accepts \u003cem\u003eprocessors\u003c/em\u003e to apply before capture. \u003ca href=\"https://redirect.github.com/hynek/structlog/pull/728\"\u003e#728\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 href=\"https://github.com/hynek/structlog/blob/main/CHANGELOG.md\"\u003estructlog's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/hynek/structlog/compare/25.4.0...25.5.0\"\u003e25.5.0\u003c/a\u003e - 2025-10-27\u003c/h2\u003e\n\u003ch3\u003eDeprecated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003estructlog.dev.ConsoleRenderer()\u003c/code\u003e's \u003cem\u003epad_event\u003c/em\u003e argument has been renamed to \u003cem\u003epad_event_to\u003c/em\u003e to differentiate it from the boolean \u003cem\u003epad_level\u003c/em\u003e argument.\n\u003cem\u003epad_event\u003c/em\u003e is now deprecated.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003estructlog.dev.ConsoleRenderer.get_active()\u003c/code\u003e that returns the currently active \u003ccode\u003estructlog.dev.ConsoleRenderer()\u003c/code\u003e.\n\u003ca href=\"https://redirect.github.com/hynek/structlog/pull/749\"\u003e#749\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003estructlog.dev.ConsoleRenderer()\u003c/code\u003e now supports setting the \u003ccode\u003eexception_formatter\u003c/code\u003e attribute.\u003c/p\u003e\n\u003cp\u003eYou can now disable the pretty-printing of exceptions by setting it to \u003ccode\u003estructlog.dev.plain_traceback\u003c/code\u003e:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecr = structlog.dev.ConsoleRenderer.get_active()\ncr.exception_formatter = structlog.dev.plain_traceback\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eSame goes for \u003cem\u003esort_keys\u003c/em\u003e, \u003cem\u003ecolumns\u003c/em\u003e, \u003cem\u003ecolors\u003c/em\u003e, \u003cem\u003eforce_colors\u003c/em\u003e, \u003cem\u003elevel_styles\u003c/em\u003e, \u003cem\u003epad_event_to\u003c/em\u003e, \u003cem\u003eevent_key\u003c/em\u003e, \u003cem\u003etimestamp_key\u003c/em\u003e, and \u003cem\u003erepr_native_str\u003c/em\u003e.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/hynek/structlog/pull/749\"\u003e#749\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/hynek/structlog/pull/756\"\u003e#756\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/hynek/structlog/pull/757\"\u003e#757\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/hynek/structlog/pull/759\"\u003e#759\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003estructlog.dev.ConsoleRenderer.get_default_column_styles()\u003c/code\u003e for reuse the default column styles.\n\u003ca href=\"https://redirect.github.com/hynek/structlog/pull/741\"\u003e#741\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003estructlog.testing.capture_logs()\u003c/code\u003e now optionally accepts \u003cem\u003eprocessors\u003c/em\u003e to apply before capture.\n\u003ca href=\"https://redirect.github.com/hynek/structlog/pull/728\"\u003e#728\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003estructlog.dev.RichTracebackFormatter\u003c/code\u003e now exposes the upstream \u003cem\u003ecode_width\u003c/em\u003e parameter.\nDefault \u003cem\u003ewidth\u003c/em\u003e is now \u003ccode\u003eNone\u003c/code\u003e for full terminal width.\nFull terminal width is now handled by Rich itself, bringing support for reflow and \u003ccode\u003eCOLUMN\u003c/code\u003e environment variable.\nPassing \u003ccode\u003e-1\u003c/code\u003e for \u003cem\u003ewidth\u003c/em\u003e is now deprecated and automatically replaced by \u003ccode\u003eNone\u003c/code\u003e.\n\u003ca href=\"https://redirect.github.com/hynek/structlog/pull/717\"\u003e#717\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eNative loggers now allow the passing of a dictionary for dictionary-based interpolation \u003ccode\u003elog.info(\u0026quot;hello %(name)s!\u0026quot;, {\u0026quot;name\u0026quot;: \u0026quot;world\u0026quot;})\u003c/code\u003e.\n\u003ca href=\"https://redirect.github.com/hynek/structlog/pull/748\"\u003e#748\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eOn Python 3.11+, \u003ccode\u003estructlog.processors.CallsiteParameterAdder\u003c/code\u003e now supports \u003ccode\u003eCallsiteParameter.QUAL_NAME\u003c/code\u003e that adds the qualified name of the callsite, including scope and class names.\nThis is only available for \u003cem\u003estructlog\u003c/em\u003e-originated events since the standard library has no equivalent.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003estructlog.stdlib.LoggerFactory\u003c/code\u003e now supports the \u003cem\u003estacklevel\u003c/em\u003e parameter.\n\u003ca href=\"https://redirect.github.com/hynek/structlog/pull/763\"\u003e#763\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\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/structlog/commit/c0ef9e09e7a536cae65e33c1ac1c8b4e6a6f7511\"\u003e\u003ccode\u003ec0ef9e0\u003c/code\u003e\u003c/a\u003e Prepare 25.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/structlog/commit/9cb662fe32046f92f08346c58089a2dcba7cb4bf\"\u003e\u003ccode\u003e9cb662f\u003c/code\u003e\u003c/a\u003e docs: nit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/structlog/commit/5400612735ad07bbe8ee9f2279f3040aa2e69ca4\"\u003e\u003ccode\u003e5400612\u003c/code\u003e\u003c/a\u003e docs/stdlib: add warning about ProcessorFormatter\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/structlog/commit/1c2c19aa19c8f30330b76465b7a0d9993b9e8360\"\u003e\u003ccode\u003e1c2c19a\u003c/code\u003e\u003c/a\u003e Try validating pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/structlog/commit/aca10f23dd12bd9e14cfe712f1ce66c9cb5f4400\"\u003e\u003ccode\u003eaca10f2\u003c/code\u003e\u003c/a\u003e Drop pretend dependency (\u003ca href=\"https://redirect.github.com/hynek/structlog/issues/766\"\u003e#766\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/structlog/commit/3800d401db2c682c7c83b2d3eec38d81c9791f4d\"\u003e\u003ccode\u003e3800d40\u003c/code\u003e\u003c/a\u003e docs: use native\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/structlog/commit/ecaa15ac6b166ebca9f2b4f5cfdb4c4ec138a602\"\u003e\u003ccode\u003eecaa15a\u003c/code\u003e\u003c/a\u003e stdlib: add support for stacklevel (\u003ca href=\"https://redirect.github.com/hynek/structlog/issues/763\"\u003e#763\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/structlog/commit/7f7a221aed6bbff3c13cefd7effe14cc4f0cfc24\"\u003e\u003ccode\u003e7f7a221\u003c/code\u003e\u003c/a\u003e update dev (\u003ca href=\"https://redirect.github.com/hynek/structlog/issues/765\"\u003e#765\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/structlog/commit/5acfc85e3c3fa821dc65b55a226900d40dc0831c\"\u003e\u003ccode\u003e5acfc85\u003c/code\u003e\u003c/a\u003e docs: 5% bigger still\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/structlog/commit/c102862e3f30de84c898c4501418dede15056c6d\"\u003e\u003ccode\u003ec102862\u003c/code\u003e\u003c/a\u003e docs: bigger font\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/hynek/structlog/compare/25.2.0...25.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ua-parser` from 1.0.1 to 1.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ua-parser/uap-python/releases\"\u003eua-parser's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eua-parser 1.0.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed bug in yaml and json loaders, mostly (but not exclusively) affecting windows (non-ascii regex files would fail to parse)\u003c/li\u003e\n\u003cli\u003eAdded caching by default to the regex and re2 resolvers.\u003c/li\u003e\n\u003cli\u003eDropped Python 3.9\u003c/li\u003e\n\u003cli\u003eAdded support for Python 3.13, 3.14, 3.14t, graal25\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 href=\"https://github.com/ua-parser/uap-python/commit/2179269a30d695cda0c9d59067d64fa47171a187\"\u003e\u003ccode\u003e2179269\u003c/code\u003e\u003c/a\u003e Fix release job's condition\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ua-parser/uap-python/commit/f7aa24d80f9d5f8eed1e08ca5a264af5c61a3681\"\u003e\u003ccode\u003ef7aa24d\u003c/code\u003e\u003c/a\u003e Bump versions in preparation for new releases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ua-parser/uap-python/commit/f5ba8dbe8f997f3180bd5ec0cca3e38ea113b2ba\"\u003e\u003ccode\u003ef5ba8db\u003c/code\u003e\u003c/a\u003e Update docs for \u003ca href=\"https://redirect.github.com/ua-parser/uap-python/issues/302\"\u003e#302\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ua-parser/uap-python/commit/c85e4e3d4cdf54200bb8eca5c14c682e052650f8\"\u003e\u003ccode\u003ec85e4e3\u003c/code\u003e\u003c/a\u003e Always cache resolvers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ua-parser/uap-python/commit/fa30fada2f63685082b24ab25acc19f82f8b6ed1\"\u003e\u003ccode\u003efa30fad\u003c/code\u003e\u003c/a\u003e Improve caching\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ua-parser/uap-python/commit/39531862fe74f53e2b14a94056bacf6a227e16b7\"\u003e\u003ccode\u003e3953186\u003c/code\u003e\u003c/a\u003e Modernize dataclasses use\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ua-parser/uap-python/commit/0188997e9eaacfea9982e29e604e3e4ba4da1cce\"\u003e\u003ccode\u003e0188997\u003c/code\u003e\u003c/a\u003e Fix readme (3.9 support was dropped by \u003ca href=\"https://redirect.github.com/ua-parser/uap-python/issues/285\"\u003e#285\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ua-parser/uap-python/commit/891837c725d47a1e7913513eb410f9e58befdabc\"\u003e\u003ccode\u003e891837c\u003c/code\u003e\u003c/a\u003e Remove setuptools-scm from build requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ua-parser/uap-python/commit/84206d860c09c73e9617f876ed4913cd2bfff4a6\"\u003e\u003ccode\u003e84206d8\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eproject.license\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ua-parser/uap-python/commit/6d891a6f8f8bc4f419220fb56b12b1fc15ae4349\"\u003e\u003ccode\u003e6d891a6\u003c/code\u003e\u003c/a\u003e Remove license classifier\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ua-parser/uap-python/compare/1.0.1...1.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `boto3` from 1.37.23 to 1.42.87\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/8d65320e4df23b56f3dc5b09ad75d95bcc85382b\"\u003e\u003ccode\u003e8d65320\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.87'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/aff7ae57451834a94a1ba027b3bce741612e3d09\"\u003e\u003ccode\u003eaff7ae5\u003c/code\u003e\u003c/a\u003e Bumping version to 1.42.87\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/a58071d342a6c659814e6baca5d353d0c311a5e5\"\u003e\u003ccode\u003ea58071d\u003c/code\u003e\u003c/a\u003e Add changelog entries from botocore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/bf26a45aa2447dfee29ab904b99eeda523c20874\"\u003e\u003ccode\u003ebf26a45\u003c/code\u003e\u003c/a\u003e Add boto3 version clarification for login with console credentials (\u003ca href=\"https://redirect.github.com/boto/boto3/issues/4758\"\u003e#4758\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/a4315bc80b83e8cf59e8582eef0e75f79fc01e4a\"\u003e\u003ccode\u003ea4315bc\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.86'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/8f0be8d174a0523018093fde6cbe236f5889cc37\"\u003e\u003ccode\u003e8f0be8d\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.86' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/f78bb8a98d3ae1f449505f99dd050932db96da66\"\u003e\u003ccode\u003ef78bb8a\u003c/code\u003e\u003c/a\u003e Bumping version to 1.42.86\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/db209b52a0591d13c55127c374c24c42aa558cee\"\u003e\u003ccode\u003edb209b5\u003c/code\u003e\u003c/a\u003e Add changelog entries from botocore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/499ee750eb6d5bd5ea8ecb9ce5081db5b84f2e93\"\u003e\u003ccode\u003e499ee75\u003c/code\u003e\u003c/a\u003e Allow SSEC bucket decryption in s3 integ tests (\u003ca href=\"https://redirect.github.com/boto/boto3/issues/4759\"\u003e#4759\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/c24d93e592ef5b06d9943253aea3a2e94d762f88\"\u003e\u003ccode\u003ec24d93e\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.85'\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boto/boto3/compare/1.37.23...1.42.87\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `humanize` from 4.12.2 to 4.15.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-humanize/humanize/releases\"\u003ehumanize's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.15.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd locale support for decimal separator in \u003ccode\u003eintword\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/287\"\u003e#287\u003c/a\u003e) \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.15 (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/275\"\u003e#275\u003c/a\u003e) \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplace pre-commit with prek (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/276\"\u003e#276\u003c/a\u003e) \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003enaturaldelta\u003c/code\u003e: round the value to nearest unit that makes sense (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/272\"\u003e#272\u003c/a\u003e) \u003ca href=\"https://github.com/dangillet\"\u003e\u003ccode\u003e@​dangillet\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix plural form for \u003ccode\u003eintword\u003c/code\u003e and improve performance (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/273\"\u003e#273\u003c/a\u003e) \u003ca href=\"https://github.com/dangillet\"\u003e\u003ccode\u003e@​dangillet\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace \u003ccode\u003eException\u003c/code\u003e with more specific \u003ccode\u003eFileNotFoundError\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/286\"\u003e#286\u003c/a\u003e) \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.14.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Uzbek language (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/264\"\u003e#264\u003c/a\u003e) \u003ca href=\"https://github.com/sSimuSs\"\u003e\u003ccode\u003e@​sSimuSs\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/268\"\u003e#268\u003c/a\u003e) \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.13.0\u003c/h2\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimise \u003ccode\u003enaturalsize\u003c/code\u003e algorithm by using \u003ccode\u003emath.log\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/253\"\u003e#253\u003c/a\u003e) \u003ca href=\"https://github.com/Zaczero\"\u003e\u003ccode\u003e@​Zaczero\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eprecisedelta\u003c/code\u003e rounding (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/254\"\u003e#254\u003c/a\u003e) \u003ca href=\"https://github.com/dangillet\"\u003e\u003ccode\u003e@​dangillet\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.12.3\u003c/h2\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression in \u003ccode\u003enaturalsize\u003c/code\u003e for \u003ccode\u003efloat\u003c/code\u003e and \u003ccode\u003estr\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/250\"\u003e#250\u003c/a\u003e) \u003ca href=\"https://github.com/loicleyendecker\"\u003e\u003ccode\u003e@​loicleyendecker\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprovements for French translation (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/248\"\u003e#248\u003c/a\u003e) \u003ca href=\"https://github.com/merwok\"\u003e\u003ccode\u003e@​merwok\u003c/code\u003e\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 href=\"https://github.com/python-humanize/humanize/commit/2ddb5903cdc1c7e6eb6b083f4f99f73db50aecd9\"\u003e\u003ccode\u003e2ddb590\u003c/code\u003e\u003c/a\u003e Replace \u003ccode\u003eException\u003c/code\u003e with more specific \u003ccode\u003eFileNotFoundError\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/286\"\u003e#286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-humanize/humanize/commit/e87f2e25660d3af2ea553ea8dc63bff99652bc94\"\u003e\u003ccode\u003ee87f2e2\u003c/code\u003e\u003c/a\u003e Add locale support for decimal separator in \u003ccode\u003eintword\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-humanize/humanize/commit/717518400d6709cf7e9bebe4a9424eb3b1ebd60d\"\u003e\u003ccode\u003e7175184\u003c/code\u003e\u003c/a\u003e Add locale support for decimal separator in intword\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-humanize/humanize/commit/25269993e7ef021edaba620c96827ca21cc13d7e\"\u003e\u003ccode\u003e2526999\u003c/code\u003e\u003c/a\u003e Update config (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/285\"\u003e#285\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-humanize/humanize/commit/ba532d9ae45d1da89f3687259324365dc187ebca\"\u003e\u003ccode\u003eba532d9\u003c/code\u003e\u003c/a\u003e Replace Exception with more specific FileNotFoundError\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-humanize/humanize/commit/bdc49ea831cb3a79ba0155a57f27259cabb8cafd\"\u003e\u003ccode\u003ebdc49ea\u003c/code\u003e\u003c/a\u003e Don't ignore UP038, it's been removed from Ruff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-humanize/humanize/commit/86f116bda6698c3e03e0db5f7fcfd929a4ba9ad4\"\u003e\u003ccode\u003e86f116b\u003c/code\u003e\u003c/a\u003e Add seven-day cooldown to Renovate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-humanize/humanize/commit/e3f7116924dad455a87e85a5d7b8b7a07460fd57\"\u003e\u003ccode\u003ee3f7116\u003c/code\u003e\u003c/a\u003e No need for setup-python with prek-action\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-humanize/humanize/commit/3dca143f7884b928632f68449423d914531ca267\"\u003e\u003ccode\u003e3dca143\u003c/code\u003e\u003c/a\u003e \u003ccode\u003enaturaldelta\u003c/code\u003e: round the value to nearest unit that makes sense (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/272\"\u003e#272\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-humanize/humanize/commit/bac6f269d7f51adcd62840db969c0a40fec8fd70\"\u003e\u003ccode\u003ebac6f26\u003c/code\u003e\u003c/a\u003e Apply suggestion from \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-humanize/humanize/compare/4.12.2...4.15.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `marshmallow` from 3.26.2 to 4.3.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/marshmallow-code/marshmallow/blob/dev/CHANGELOG.rst\"\u003emarshmallow's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.3.0 (2026-04-03)\u003c/h2\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre_load\u003c/code\u003e and \u003ccode\u003epost_load\u003c/code\u003e parameters to \u003ccode\u003emarshmallow.fields.Field\u003c/code\u003e for\nfield-level pre- and post-processing (:issue:\u003ccode\u003e2787\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eTyping: improvements to \u003ccode\u003emarshmallow.validate\u003c/code\u003e (:pr:\u003ccode\u003e2940\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.2.4 (2026-04-02)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003emarshmallow.validate.URL\u003c/code\u003e and \u003ccode\u003emarshmallow.validate.Email\u003c/code\u003e accept Internationalized Domain Names (IDNs) (:issue:\u003ccode\u003e2821\u003c/code\u003e, :issue:\u003ccode\u003e2936\u003c/code\u003e).\n\u003ccode\u003emarshmallow.validate.Email\u003c/code\u003e also correctly rejects IDN domains with leading/trailing hyphens.\nThanks :user:\u003ccode\u003etouhidurrr\u003c/code\u003e for the report.\u003c/li\u003e\n\u003cli\u003eTyping: Fix typing of \u003ccode\u003enested\u003c/code\u003e in \u003ccode\u003emarshmallow.fields.Nested\u003c/code\u003e (:pr:\u003ccode\u003e2935\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.2.3 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMake \u003ccode\u003emarshmallow.fields.Number\u003c/code\u003e and \u003ccode\u003emarshmallow.fields.Mapping\u003c/code\u003e abstract base classes to\nprevent using them within Schemas (:issue:\u003ccode\u003e2924\u003c/code\u003e). Thanks :user:\u003ccode\u003eMartingaleCoda\u003c/code\u003e for reporting.\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003erequired\u003c/code\u003e to be set on \u003ccode\u003emarshmallow.fields.Contant\u003c/code\u003e (:issue:\u003ccode\u003e2900\u003c/code\u003e).\nThanks :user:\u003ccode\u003enosnickid\u003c/code\u003e for the report and :user:\u003ccode\u003eworksbyfriday\u003c/code\u003e for the PR.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003emarshmallow.validate.OneOf\u003c/code\u003e emitting extra pairs when labels outnumber choices (:issue:\u003ccode\u003e2869\u003c/code\u003e).\nThanks: user:\u003ccode\u003eT90REAL\u003c/code\u003e for the report and :user:\u003ccode\u003erstar327\u003c/code\u003e for the PR.\u003c/li\u003e\n\u003cli\u003eFix behavior when passing a dot-delimited attribute name to \u003ccode\u003epartial\u003c/code\u003e for a key with \u003ccode\u003edata_key\u003c/code\u003e set (:pr:\u003ccode\u003e2903\u003c/code\u003e).\nThanks :user:\u003ccode\u003ebysiber\u003c/code\u003e for the PR.\u003c/li\u003e\n\u003cli\u003eFix Enum field by-name lookup to only return actual members (:pr:\u003ccode\u003e2902\u003c/code\u003e).\nThanks :user:\u003ccode\u003ebysiber\u003c/code\u003e for the PR.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emarshmallow.fields.DateTime\u003c/code\u003e with \u003ccode\u003eformat=\u0026quot;timestamp_ms\u0026quot;\u003c/code\u003e properly\nrejects bool values (:pr:\u003ccode\u003e2904\u003c/code\u003e). Thanks :user:\u003ccode\u003ebysiber\u003c/code\u003e for the PR.\u003c/li\u003e\n\u003cli\u003eFix typing of \u003ccode\u003eerror_messages\u003c/code\u003e argument to \u003ccode\u003emarshmallow.fields.Field\u003c/code\u003e (:pr:\u003ccode\u003e1636\u003c/code\u003e).\nThanks :user:\u003ccode\u003erepole\u003c/code\u003e for reporting and :user:\u003ccode\u003edhruvildarji\u003c/code\u003e for the PR.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eOther changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eipaddress.*\u003c/code\u003e to \u003ccode\u003emarshmallow.Schema.TYPE_MAPPING\u003c/code\u003e (:issue:\u003ccode\u003e1695\u003c/code\u003e).\nThanks :user:\u003ccode\u003eliberforce\u003c/code\u003e for the suggestion and :user:\u003ccode\u003edhruvildarji\u003c/code\u003e for the PR.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.2.2 (2026-02-04)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix behavior of \u003ccode\u003efields.Contant(None)\u003c/code\u003e (:issue:\u003ccode\u003e2868\u003c/code\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 href=\"https://github.com/marshmallow-code/marshmallow/commit/b596fdb0d1bda68ae400ab29e1f1bde2f06900b3\"\u003e\u003ccode\u003eb596fdb\u003c/code\u003e\u003c/a\u003e Bump version and update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/256f0aabbc18232219e33854999372cfe1643f52\"\u003e\u003ccode\u003e256f0aa\u003c/code\u003e\u003c/a\u003e Add pre/post_load parameters to Field (\u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2799\"\u003e#2799\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/c847ad47a3f1235021bd2624b10c255a936ed107\"\u003e\u003ccode\u003ec847ad4\u003c/code\u003e\u003c/a\u003e Typing improvements to marshmallow.validate (\u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/eb863228f5273244c19388fb6161ffdb90cb04d1\"\u003e\u003ccode\u003eeb86322\u003c/code\u003e\u003c/a\u003e Remove redundant docs job (\u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2939\"\u003e#2939\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/a44ad62a876d2e9330d0e370b438bafb058676d4\"\u003e\u003ccode\u003ea44ad62\u003c/code\u003e\u003c/a\u003e Avoid infinite recursion in nesting docs (\u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2938\"\u003e#2938\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/3360e34a2da480eba03ae07bd4b15f0859027bf8\"\u003e\u003ccode\u003e3360e34\u003c/code\u003e\u003c/a\u003e Bump version and update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/7b9ce45ac906c2597ac0acb7416e01e80218b546\"\u003e\u003ccode\u003e7b9ce45\u003c/code\u003e\u003c/a\u003e Fix changelog typos and update releasing docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/f07eadc87dfac25ed505d5cd9d186920f2682733\"\u003e\u003ccode\u003ef07eadc\u003c/code\u003e\u003c/a\u003e Fix validate.Email to accept IDNs (\u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2937\"\u003e#2937\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/4acb783c73130f762aa5b0df6b65ff7685d5ff2c\"\u003e\u003ccode\u003e4acb783\u003c/code\u003e\u003c/a\u003e Fix Unreachable Warning (\u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2935\"\u003e#2935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/3492fae7b31d310814ad16fcddad5c7717d54949\"\u003e\u003ccode\u003e3492fae\u003c/code\u003e\u003c/a\u003e Remove redundant python-version (\u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2932\"\u003e#2932\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/marshmallow-code/marshmallow/compare/3.26.2...4.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-storage` from 3.1.0 to 3.10.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-storage/releases\"\u003egoogle-cloud-storage's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-cloud-storage: v3.10.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-storage/compare/v3.10.0...v3.10.1\"\u003e3.10.1\u003c/a\u003e (2026-03-23)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eraise ValueError if api_endpoint is unset when using AnonymousCredentials in AsyncGrpcClient.  (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1778\"\u003e#1778\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/17828ea3\"\u003e17828ea3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogle-cloud-storage: v3.10.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-storage/compare/v3.9.0...v3.10.0\"\u003e3.10.0\u003c/a\u003e (2026-03-18)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[Bucket Encryption Enforcement] add support for bucket encryption enforcement config (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1742\"\u003e#1742\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/2a6e8b00e4e6ff57460373f8e628fd363be47811\"\u003e2a6e8b00e4e6ff57460373f8e628fd363be47811\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerf Improvments\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[Rapid Buckets Reads] Use raw proto access for read resumption strategy (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1764\"\u003e#1764\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/14cfd61ce35365a409650981239ef742cdf375fb\"\u003e14cfd61ce35365a409650981239ef742cdf375fb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Rapid Buckets Benchmarks] init mp pool \u0026amp; grpc client once, use os.sched_setaffinity (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1751\"\u003e#1751\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/a9eb82c1b9b3c6ae5717d47b76284ed0deb5f769\"\u003ea9eb82c1b9b3c6ae5717d47b76284ed0deb5f769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Rapid Buckets Writes] don't flush at every append, results in bad perf (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1746\"\u003e#1746\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/ab62d728ac7d7be3c4fe9a99d72e35ead310805a\"\u003eab62d728ac7d7be3c4fe9a99d72e35ead310805a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[Windows] skip downloading blobs whose name contain \u003ccode\u003e\u0026quot;:\u0026quot; \u003c/code\u003e eg: \u003ccode\u003eC:\u003c/code\u003e \u003ccode\u003eD:\u003c/code\u003e etc when application runs in Windows. (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1774\"\u003e#1774\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/558198823ed51918db9c0137715d1e7f5b593975\"\u003e558198823ed51918db9c0137715d1e7f5b593975\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Path Traversal] Prevent path traversal in \u003ccode\u003edownload_many_to_path\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1768\"\u003e#1768\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/700fec3bf7aa37bd5ea4b163cc3f9e8e6892bd5a\"\u003e700fec3bf7aa37bd5ea4b163cc3f9e8e6892bd5a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Rapid Buckets] pass token correctly, '\u0026amp;' instead of ',' (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1756\"\u003e#1756\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/d8dd1e074d2431de9b45e0103181dce749a447a0\"\u003ed8dd1e074d2431de9b45e0103181dce749a447a0\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogle-cloud-storage 3.9.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-storage/compare/v3.8.0...v3.9.0\"\u003e3.9.0\u003c/a\u003e (2026-02-02)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eupdate generation for MRD (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1730\"\u003e#1730\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/08bc7082\"\u003e08bc7082\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eadd get_object method for async grpc client (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1735\"\u003e#1735\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/0e5ec29b\"\u003e0e5ec29b\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd micro-benchmarks for reads comparing standard (regional) vs rapid (zonal) buckets. (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1697\"\u003e#1697\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/1917649f\"\u003e1917649f\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd support for opening via \u003ccode\u003ewrite_handle\u003c/code\u003e and fix \u003ccode\u003ewrite_handle\u003c/code\u003e type (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1715\"\u003e#1715\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/2bc15fa5\"\u003e2bc15fa5\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eadd samples for appendable objects writes and reads (\u003ca href=\"https://github.com/googleapis/python-storage/commit/2e1a1eb5\"\u003e2e1a1eb5\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eadd samples for appendable objects writes and reads (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1705\"\u003e#1705\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/2e1a1eb5\"\u003e2e1a1eb5\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eadd context manager to mrd (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1724\"\u003e#1724\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/5ac2808a\"\u003e5ac2808a\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMove Zonal Buckets features of \u003ccode\u003e_experimental\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1728\"\u003e#1728\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/74c9ecc5\"\u003e74c9ecc5\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eadd default user agent for grpc (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1726\"\u003e#1726\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/7b319469\"\u003e7b319469\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 href=\"https://github.com/googleapis/python-storage/blob/main/CHANGELOG.md\"\u003egoogle-cloud-storage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-storage/compare/v3.10.0...v3.10.1\"\u003e3.10.1\u003c/a\u003e (2026-03-23)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eraise ValueError if api_endpoint is unset when using AnonymousCredentials in AsyncGrpcClient.  (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1778\"\u003e#1778\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/17828ea316872938a98a6360b10a2495c54bbbcb\"\u003e17828ea316872938a98a6360b10a2495c54bbbcb\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-storage/compare/v3.9.0...v3.10.0\"\u003e3.10.0\u003c/a\u003e (2026-03-18)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[Bucket Encryption Enforcement] add support for bucket encryption enforcement config (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1742\"\u003e#1742\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/2a6e8b00e4e6ff57460373f8e628fd363be47811\"\u003e2a6e8b00e4e6ff57460373f8e628fd363be47811\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerf Improvments\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[Rapid Buckets Reads] Use raw proto access for read resumption strategy (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1764\"\u003e#1764\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/14cfd61ce35365a409650981239ef742cdf375fb\"\u003e14cfd61ce35365a409650981239ef742cdf375fb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Rapid Buckets Benchmarks] init mp pool \u0026amp; grpc client once, use os.sched_setaffinity (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1751\"\u003e#1751\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/a9eb82c1b9b3c6ae5717d47b76284ed0deb5f769\"\u003ea9eb82c1b9b3c6ae5717d47b76284ed0deb5f769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Rapid Buckets Writes] don't flush at every append, results in bad perf (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1746\"\u003e#1746\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/ab62d728ac7d7be3c4fe9a99d72e35ead310805a\"\u003eab62d728ac7d7be3c4fe9a99d72e35ead310805a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[Windows] skip downloading blobs whose name contain \u003ccode\u003e\u0026quot;:\u0026quot; \u003c/code\u003e eg: \u003ccode\u003eC:\u003c/code\u003e \u003ccode\u003eD:\u003c/code\u003e etc when application runs in Windows. (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1774\"\u003e#1774\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/558198823ed51918db9c0137715d1e7f5b593975\"\u003e558198823ed51918db9c0137715d1e7f5b593975\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Path Traversal] Prevent path traversal in \u003ccode\u003edownload_many_to_path\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1768\"\u003e#1768\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/700fec3bf7aa37bd5ea4b163cc3f9e8e6892bd5a\"\u003e700fec3bf7aa37bd5ea4b163cc3f9e8e6892bd5a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Rapid Buckets] pass token correctly, '\u0026amp;' instead of ',' (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1756\"\u003e#1756\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/d8dd1e074d2431de9b45e0103181dce749a447a0\"\u003ed8dd1e074d2431de9b45e0103181dce749a447a0\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-storage/compare/v3.8.0...v3.9.0\"\u003e3.9.0\u003c/a\u003e (2026-02-02)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd get_object method for async grpc client (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1735\"\u003e#1735\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/0e5ec29bc6a31b77bcfba4254cef5bffb199095c\"\u003e0e5ec29bc6a31b77bcfba4254cef5bffb199095c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eexpose \u003ccode\u003eDELETE_OBJECT\u003c/code\u003e   in \u003ccode\u003eAsyncGrpcClient\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1718\"\u003e#1718\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/c8dd7a0b124c395b7b60189ee78f47aba8d51f7d\"\u003ec8dd7a0b124c395b7b60189ee78f47aba8d51f7d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate generation for MRD (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1730\"\u003e#1730\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/08bc7082db7392f13bc8...\n\n_Description has been truncated_","html_url":"https://github.com/ONSdigital/eq-questionnaire-runner/pull/1867","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ONSdigital%2Feq-questionnaire-runner/issues/1867","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1867/packages"}},{"old_version":"2.0.30","new_version":"2.0.31","update_type":"patch","path":null,"pr_created_at":"2026-01-19T07:22:57.000Z","version_change":"2.0.30 → 2.0.31","issue":{"uuid":"3828367906","node_id":"PR_kwDOQDraYs698EM9","number":12,"state":"open","title":"deps: bump the prod-deps group across 1 directory with 37 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-01-19T07:22:57.000Z","updated_at":"2026-01-26T08:12:43.469Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps: bump","group_name":"prod-deps","update_count":37,"packages":[{"name":"django","old_version":"4.2.24","new_version":"6.0.1","repository_url":"https://github.com/django/django"},{"name":"psycopg2-binary","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"celery","old_version":"5.5.3","new_version":"5.6.2","repository_url":"https://github.com/celery/celery"},{"name":"hiredis","old_version":"3.2.1","new_version":"3.3.0","repository_url":"https://github.com/redis/hiredis-py"},{"name":"brotli","old_version":"1.1.0","new_version":"1.2.0","repository_url":"https://github.com/google/brotli"},{"name":"django-compressor","old_version":"4.5.1","new_version":"4.6.0","repository_url":"https://github.com/django-compressor/django-compressor"},{"name":"django-pint","old_version":"0.7.3","new_version":"1.0.3","repository_url":"https://github.com/CarliJoy/django-pint"},{"name":"django-post-office","old_version":"3.10.1","new_version":"3.11.0","repository_url":"https://github.com/ui/django-post_office"},{"name":"drf-yasg","old_version":"1.21.10","new_version":"1.21.14","repository_url":"https://github.com/axnsan12/drf-yasg"},{"name":"jellyfish","old_version":"1.2.0","new_version":"1.2.1"},{"name":"markdown","old_version":"3.9","new_version":"3.10","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"xlsxwriter","old_version":"3.2.5","new_version":"3.2.9","repository_url":"https://github.com/jmcnamara/XlsxWriter"},{"name":"xmltodict","old_version":"0.15.1","new_version":"1.0.2","repository_url":"https://github.com/martinblech/xmltodict"},{"name":"xmlschema","old_version":"4.1.0","new_version":"4.3.1","repository_url":"https://github.com/sissaschool/xmlschema"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"shapely","old_version":"2.0.7","new_version":"2.1.2","repository_url":"https://github.com/shapely/shapely"},{"name":"django-treebeard","old_version":"4.7.1","new_version":"4.8.0","repository_url":"https://github.com/django-treebeard/django-treebeard"},{"name":"django-two-factor-auth","old_version":"1.17.0","new_version":"1.18.1"},{"name":"importlib-metadata","old_version":"8.7.0","new_version":"8.7.1","repository_url":"https://github.com/python/importlib_metadata"},{"name":"boto3","old_version":"1.40.27","new_version":"1.42.30","repository_url":"https://github.com/boto/boto3"},{"name":"django-ses","old_version":"4.4.0","new_version":"4.6.0","repository_url":"https://github.com/django-ses/django-ses"},{"name":"uwsgi","old_version":"2.0.30","new_version":"2.0.31"},{"name":"coverage","old_version":"7.10.6","new_version":"7.13.1","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"coveralls","old_version":"4.0.1","new_version":"4.0.2","repository_url":"https://github.com/TheKevJames/coveralls-python"},{"name":"tox","old_version":"4.30.2","new_version":"4.34.1","repository_url":"https://github.com/tox-dev/tox"},{"name":"psutil","old_version":"7.0.0","new_version":"7.2.1","repository_url":"https://github.com/giampaolo/psutil"},{"name":"faker","old_version":"37.6.0","new_version":"40.1.2","repository_url":"https://github.com/joke2k/faker"},{"name":"vcrpy","old_version":"7.0.0","new_version":"8.1.1","repository_url":"https://github.com/kevin1024/vcrpy"},{"name":"pytest","old_version":"8.4.2","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pre-commit","old_version":"4.3.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"sphinx","old_version":"7.4.7","new_version":"9.1.0","repository_url":"https://github.com/sphinx-doc/sphinx"},{"name":"sphinxcontrib-spelling","old_version":"8.0.0","new_version":"8.0.2","repository_url":"https://github.com/sphinx-contrib/spelling"},{"name":"sphinx-rtd-theme","old_version":"3.0.2","new_version":"3.1.0","repository_url":"https://github.com/readthedocs/sphinx_rtd_theme"},{"name":"docutils","old_version":"0.21.2","new_version":"0.22.4","repository_url":"https://github.com/rtfd/recommonmark"},{"name":"hypothesis","old_version":"6.138.15","new_version":"6.150.2","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"django-debug-toolbar","old_version":"6.0.0","new_version":"6.1.0","repository_url":"https://github.com/django-commons/django-debug-toolbar"}],"path":null,"ecosystem":"pip"},"body":"Bumps the prod-deps group with 37 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [django](https://github.com/django/django) | `4.2.24` | `6.0.1` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [celery](https://github.com/celery/celery) | `5.5.3` | `5.6.2` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.2.1` | `3.3.0` |\n| [brotli](https://github.com/google/brotli) | `1.1.0` | `1.2.0` |\n| [django-compressor](https://github.com/django-compressor/django-compressor) | `4.5.1` | `4.6.0` |\n| [django-pint](https://github.com/CarliJoy/django-pint) | `0.7.3` | `1.0.3` |\n| [django-post-office](https://github.com/ui/django-post_office) | `3.10.1` | `3.11.0` |\n| [drf-yasg](https://github.com/axnsan12/drf-yasg) | `1.21.10` | `1.21.14` |\n| [jellyfish](https://jellyfish.jpt.sh/) | `1.2.0` | `1.2.1` |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.9` | `3.10` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [xlsxwriter](https://github.com/jmcnamara/XlsxWriter) | `3.2.5` | `3.2.9` |\n| [xmltodict](https://github.com/martinblech/xmltodict) | `0.15.1` | `1.0.2` |\n| [xmlschema](https://github.com/sissaschool/xmlschema) | `4.1.0` | `4.3.1` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [shapely](https://github.com/shapely/shapely) | `2.0.7` | `2.1.2` |\n| [django-treebeard](https://github.com/django-treebeard/django-treebeard) | `4.7.1` | `4.8.0` |\n| [django-two-factor-auth[phonenumbers]](https://github.com/jazzband/django-two-factor-auth) | `1.17.0` | `1.18.1` |\n| [importlib-metadata](https://github.com/python/importlib_metadata) | `8.7.0` | `8.7.1` |\n| [boto3](https://github.com/boto/boto3) | `1.40.27` | `1.42.30` |\n| [django-ses](https://github.com/django-ses/django-ses) | `4.4.0` | `4.6.0` |\n| [uwsgi](https://uwsgi-docs.readthedocs.io/en/latest/) | `2.0.30` | `2.0.31` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.13.1` |\n| [coveralls](https://github.com/TheKevJames/coveralls-python) | `4.0.1` | `4.0.2` |\n| [tox](https://github.com/tox-dev/tox) | `4.30.2` | `4.34.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.1` |\n| [faker](https://github.com/joke2k/faker) | `37.6.0` | `40.1.2` |\n| [vcrpy](https://github.com/kevin1024/vcrpy) | `7.0.0` | `8.1.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.2` | `9.0.2` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.3.0` | `4.5.1` |\n| [sphinx](https://github.com/sphinx-doc/sphinx) | `7.4.7` | `9.1.0` |\n| [sphinxcontrib-spelling](https://github.com/sphinx-contrib/spelling) | `8.0.0` | `8.0.2` |\n| [sphinx-rtd-theme](https://github.com/readthedocs/sphinx_rtd_theme) | `3.0.2` | `3.1.0` |\n| [docutils](https://github.com/rtfd/recommonmark) | `0.21.2` | `0.22.4` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.138.15` | `6.150.2` |\n| [django-debug-toolbar](https://github.com/django-commons/django-debug-toolbar) | `6.0.0` | `6.1.0` |\n\n\nUpdates `django` from 4.2.24 to 6.0.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/85eb963c5297fb285aecf4a90c97141a1b9c5bee\"\u003e\u003ccode\u003e85eb963\u003c/code\u003e\u003c/a\u003e [6.0.x] Bumped version for 6.0.1 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/ac4a5509e3a6f2e1099ea659e0c1eb3ed4e9e00f\"\u003e\u003ccode\u003eac4a550\u003c/code\u003e\u003c/a\u003e [6.0.x] Added release date for 6.0.1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/dcfc5b04ee8af8284e772a2f3619cd8affb1c07a\"\u003e\u003ccode\u003edcfc5b0\u003c/code\u003e\u003c/a\u003e [6.0.x] Added release date for 5.2.10.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/42bab76258162e1df77d080aa69cac5d803ae90a\"\u003e\u003ccode\u003e42bab76\u003c/code\u003e\u003c/a\u003e [6.0.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36843\"\u003e#36843\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django/django/issues/36793\"\u003e#36793\u003c/a\u003e -- Reverted \u0026quot;Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/27489\"\u003e#27489\u003c/a\u003e -- Renamed permissions...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/764af478be8c25c186d27031c50c9a1d0697781b\"\u003e\u003ccode\u003e764af47\u003c/code\u003e\u003c/a\u003e [6.0.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/33647\"\u003e#33647\u003c/a\u003e -- Fixed silent data truncation in bulk_create on Postgres.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/b7b5465b1c026dda7de646fca15ca1e97886d021\"\u003e\u003ccode\u003eb7b5465\u003c/code\u003e\u003c/a\u003e [6.0.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36829\"\u003e#36829\u003c/a\u003e -- Reverted value of ClearableFileInput.use_fieldset to ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/90daa655486c7fc69e9dad41c5e96f00339a3b9b\"\u003e\u003ccode\u003e90daa65\u003c/code\u003e\u003c/a\u003e [6.0.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/30515\"\u003e#30515\u003c/a\u003e -- Documented resolve_url() in docs/topics/http/shortcut...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/d35daf8600a66c0ff20e36f82969df61a7fc4981\"\u003e\u003ccode\u003ed35daf8\u003c/code\u003e\u003c/a\u003e [6.0.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36796\"\u003e#36796\u003c/a\u003e -- Handled lazy routes correctly in RoutePattern.match().\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/16107ab710dc23d5ea0aa17da6bf29fe89b61bb0\"\u003e\u003ccode\u003e16107ab\u003c/code\u003e\u003c/a\u003e [6.0.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/36810\"\u003e#36810\u003c/a\u003e -- Avoided infinite recursion in LazyNonce.\u003cstrong\u003erepr\u003c/strong\u003e().\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/774543ed4feb37916071e81c0d0b81ba514333fa\"\u003e\u003ccode\u003e774543e\u003c/code\u003e\u003c/a\u003e [6.0.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36305\"\u003e#36305\u003c/a\u003e -- Added documentation indentation guidelines to contrib...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/4.2.24...6.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2-binary` from 2.9.10 to 2.9.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2-binary's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix building when pg_config returns an empty string (:ticket:\u003ccode\u003e[#1599](https://github.com/psycopg/psycopg2/issues/1599)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eWheel package bundled with OpenSSL 1.1.1v.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.6\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\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 href=\"https://github.com/psycopg/psycopg2/commit/fd9ae8cad2bcfc3e7e9410e7b6f07cda8f4f05ec\"\u003e\u003ccode\u003efd9ae8c\u003c/code\u003e\u003c/a\u003e chore: bump to version 2.9.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d923840546942534f0956d9202f914fd9feac5fd\"\u003e\u003ccode\u003ed923840\u003c/code\u003e\u003c/a\u003e chore: update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d42dc7169d3cd93517e282e9ef5dc2a2b40650a2\"\u003e\u003ccode\u003ed42dc71\u003c/code\u003e\u003c/a\u003e Merge branch 'fix-1791'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4fde6560c32f06ad1304404c9f7f86148dcc4be0\"\u003e\u003ccode\u003e4fde656\u003c/code\u003e\u003c/a\u003e fix: avoid failed assert passing more arguments than placeholders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/8308c19d6af0d904b313997539ed33415990a74e\"\u003e\u003ccode\u003e8308c19\u003c/code\u003e\u003c/a\u003e fix: drop warning about the use of deprecated PyWeakref_GetObject function\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1a1eabf098a3374409bb2ab4b594777b900f396d\"\u003e\u003ccode\u003e1a1eabf\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/github-script from 7 to 8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/897af8b38beda851d7257dfc525129e37c0ec9e0\"\u003e\u003ccode\u003e897af8b\u003c/code\u003e\u003c/a\u003e build(deps): bump peter-evans/repository-dispatch from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ceefd305117113ca10e383a626e87ba0796f3638\"\u003e\u003ccode\u003eceefd30\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4dc585430cabe94cee96c5a9de0265d0f55370f1\"\u003e\u003ccode\u003e4dc5854\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1945788dcf6172bb1b9328ebc3587ccf0e6a659c\"\u003e\u003ccode\u003e1945788\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1802\"\u003e#1802\u003c/a\u003e from edgarrmondragon/cp314-wheels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.10...2.9.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `celery` from 5.5.3 to 5.6.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/celery/celery/releases\"\u003ecelery's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.6.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix recursive WorkController instantiation in DjangoWorkerFixup + AttributeError when pool_cls is a string by \u003ca href=\"https://github.com/bruunotrindade\"\u003e\u003ccode\u003e@​bruunotrindade\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10045\"\u003ecelery/celery#10045\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix: Revoked tasks now immediately update backend status to REVOKED by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9869\"\u003ecelery/celery#9869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare for release: v5.6.2 by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10049\"\u003ecelery/celery#10049\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=\"https://github.com/bruunotrindade\"\u003e\u003ccode\u003e@​bruunotrindade\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10045\"\u003ecelery/celery#10045\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/celery/celery/compare/v5.6.1...v5.6.2\"\u003ehttps://github.com/celery/celery/compare/v5.6.1...v5.6.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.6.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix Redis Sentinel ACL authentication support by \u003ca href=\"https://github.com/anthonykuzmich7\"\u003e\u003ccode\u003e@​anthonykuzmich7\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10013\"\u003ecelery/celery#10013\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Broker heartbeats not sent during graceful shutdown by \u003ca href=\"https://github.com/weetster\"\u003e\u003ccode\u003e@​weetster\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9986\"\u003ecelery/celery#9986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs \u003ca href=\"https://redirect.github.com/celery/celery/issues/5410\"\u003e#5410\u003c/a\u003e -- Document confirm_publish broker transport option by \u003ca href=\"https://github.com/JaeHyuckSa\"\u003e\u003ccode\u003e@​JaeHyuckSa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10016\"\u003ecelery/celery#10016\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eclose DB pools only in prefork mode by \u003ca href=\"https://github.com/petrprikryl\"\u003e\u003ccode\u003e@​petrprikryl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10020\"\u003ecelery/celery#10020\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Avoid unnecessary Django database connection creation during cleanup by \u003ca href=\"https://github.com/snopoke\"\u003e\u003ccode\u003e@​snopoke\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10015\"\u003ecelery/celery#10015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ereliable prefork detection by \u003ca href=\"https://github.com/petrprikryl\"\u003e\u003ccode\u003e@​petrprikryl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10023\"\u003ecelery/celery#10023\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebetter coverage by \u003ca href=\"https://github.com/petrprikryl\"\u003e\u003ccode\u003e@​petrprikryl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10029\"\u003ecelery/celery#10029\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: clarify \u003ccode\u003eresult_extended\u003c/code\u003e vs periodic task metadata and show \u003ccode\u003eheaders[\u0026quot;periodic_task_name\u0026quot;]\u003c/code\u003e example by \u003ca href=\"https://github.com/SpaceShaman\"\u003e\u003ccode\u003e@​SpaceShaman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10030\"\u003ecelery/celery#10030\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStop importing pytest_subtests by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10032\"\u003ecelery/celery#10032\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly use exceptiongroup backport for Python \u0026lt; 3.11 by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10033\"\u003ecelery/celery#10033\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare for release: v5.6.1 by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10037\"\u003ecelery/celery#10037\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=\"https://github.com/anthonykuzmich7\"\u003e\u003ccode\u003e@​anthonykuzmich7\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10013\"\u003ecelery/celery#10013\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/weetster\"\u003e\u003ccode\u003e@​weetster\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9986\"\u003ecelery/celery#9986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JaeHyuckSa\"\u003e\u003ccode\u003e@​JaeHyuckSa\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10016\"\u003ecelery/celery#10016\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/snopoke\"\u003e\u003ccode\u003e@​snopoke\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10015\"\u003ecelery/celery#10015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SpaceShaman\"\u003e\u003ccode\u003e@​SpaceShaman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10030\"\u003ecelery/celery#10030\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/celery/celery/compare/v5.6.0...v5.6.1\"\u003ehttps://github.com/celery/celery/compare/v5.6.0...v5.6.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.6.0\u003c/h2\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003ch2\u003eKey Highlights\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.celeryq.dev/en/stable/history/whatsnew-5.6.html\"\u003eWhat's new in Celery 5.6\u003c/a\u003e for a complete overview or read the main highlights below.\u003c/p\u003e\n\u003ch3\u003ePython 3.9 Minimum Version\u003c/h3\u003e\n\u003cp\u003eCelery 5.6.0 drops support for Python 3.8 (EOL). The minimum required Python version is now 3.9. Users still on Python 3.8 must upgrade their Python version before upgrading to Celery 5.6.0.\u003c/p\u003e\n\u003cp\u003eAdditionally, this release includes initial support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eSQS: Reverted to \u003ccode\u003epycurl\u003c/code\u003e from \u003ccode\u003eurllib3\u003c/code\u003e\u003c/h3\u003e\n\u003cp\u003eThe switch from \u003ccode\u003epycurl\u003c/code\u003e to \u003ccode\u003eurllib3\u003c/code\u003e for the SQS transport (introduced in Celery 5.5.0 via Kombu) has been reverted due to critical issues affecting SQS users.\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 href=\"https://github.com/celery/celery/blob/main/Changelog.rst\"\u003ecelery's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.6.2\u003c/h1\u003e\n\u003cp\u003e:release-date: 2026-01-04\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eWhat's Changed\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Fix recursive WorkController instantiation in DjangoWorkerFixup + AttributeError when pool_cls is a string ([#10045](https://github.com/celery/celery/issues/10045))\n- Bugfix: Revoked tasks now immediately update backend status to REVOKED ([#9869](https://github.com/celery/celery/issues/9869))\n- Prepare for release: v5.6.2 ([#10049](https://github.com/celery/celery/issues/10049))\n\u003cp\u003e.. _version-5.6.1:\u003c/p\u003e\n\u003ch1\u003e5.6.1\u003c/h1\u003e\n\u003cp\u003e:release-date: 2025-12-29\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eWhat's Changed\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix Redis Sentinel ACL authentication support (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10013\"\u003e#10013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: Broker heartbeats not sent during graceful shutdown (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9986\"\u003e#9986\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edocs \u003ca href=\"https://redirect.github.com/celery/celery/issues/5410\"\u003e#5410\u003c/a\u003e -- Document confirm_publish broker transport option (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10016\"\u003e#10016\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclose DB pools only in prefork mode (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10020\"\u003e#10020\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: Avoid unnecessary Django database connection creation during cleanup (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10015\"\u003e#10015\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereliable prefork detection (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10023\"\u003e#10023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebetter coverage (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10029\"\u003e#10029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocs: clarify \u003ccode\u003eresult_extended\u003c/code\u003e vs periodic task metadata and show \u003ccode\u003eheaders[\u0026quot;periodic_task_name\u0026quot;]\u003c/code\u003e example (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10030\"\u003e#10030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStop importing pytest_subtests (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10032\"\u003e#10032\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOnly use exceptiongroup backport for Python \u0026lt; 3.11 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10033\"\u003e#10033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrepare for release: v5.6.1 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10037\"\u003e#10037\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _version-5.6.0:\u003c/p\u003e\n\u003ch1\u003e5.6.0\u003c/h1\u003e\n\u003cp\u003e:release-date: 2025-11-30\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003cp\u003eKey Highlights\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nSee :ref:`whatsnew-5.6` for a complete overview or read the main highlights below.\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt; \n\u003c/code\u003e\u003c/pre\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 href=\"https://github.com/celery/celery/commit/6a43c846f183ef0cbade24f4b9a8f7a6ea113b44\"\u003e\u003ccode\u003e6a43c84\u003c/code\u003e\u003c/a\u003e Prepare for release: v5.6.2 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10049\"\u003e#10049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/333a82f746734151c5cbe848916085455b0a3748\"\u003e\u003ccode\u003e333a82f\u003c/code\u003e\u003c/a\u003e Bugfix: Revoked tasks now immediately update backend status to REVOKED (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9869\"\u003e#9869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/9d6ab110d947270c4edf0b42454266d2954e653d\"\u003e\u003ccode\u003e9d6ab11\u003c/code\u003e\u003c/a\u003e Fix recursive WorkController instantiation in DjangoWorkerFixup + AttributeEr...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/21dbc73f81d2fae058de49e665afaa1cd92da5c0\"\u003e\u003ccode\u003e21dbc73\u003c/code\u003e\u003c/a\u003e Prepare for release: v5.6.1 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10037\"\u003e#10037\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/ba20bed7723c684d12ddd62d6a7c0c0d901b3351\"\u003e\u003ccode\u003eba20bed\u003c/code\u003e\u003c/a\u003e Only use exceptiongroup backport for Python \u0026lt; 3.11 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10033\"\u003e#10033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/21675299bc2d10c648448ec5221136e07c1eec1a\"\u003e\u003ccode\u003e2167529\u003c/code\u003e\u003c/a\u003e Stop importing pytest_subtests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/0527296acb1f1790788301d4395ba6d5ce2a9704\"\u003e\u003ccode\u003e0527296\u003c/code\u003e\u003c/a\u003e Bump google-cloud-firestore from 2.21.0 to 2.22.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/5f8659bdba4561796d66e938a1e2c71d4489562f\"\u003e\u003ccode\u003e5f8659b\u003c/code\u003e\u003c/a\u003e Clarify 'result_extended' setting usage in tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/f19db7008682c782d85e69b5ce736970491752ea\"\u003e\u003ccode\u003ef19db70\u003c/code\u003e\u003c/a\u003e Bump mypy from 1.19.0 to 1.19.1 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10028\"\u003e#10028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/6da72bde60553a1c350eef1e17d834d004ed099d\"\u003e\u003ccode\u003e6da72bd\u003c/code\u003e\u003c/a\u003e better coverage (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10029\"\u003e#10029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/celery/celery/compare/v5.5.3...v5.6.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `hiredis` from 3.2.1 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/hiredis-py/releases\"\u003ehiredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.3.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e by \u003ca href=\"https://github.com/zweizeichen\"\u003e\u003ccode\u003e@​zweizeichen\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\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 href=\"https://github.com/redis/hiredis-py/commit/187d0f387afed58a955a42ea8c5467100871f98b\"\u003e\u003ccode\u003e187d0f3\u003c/code\u003e\u003c/a\u003e Version 3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/3efcf037edc5a9f7abfaedbd3f60b2a03feb4787\"\u003e\u003ccode\u003e3efcf03\u003c/code\u003e\u003c/a\u003e Add Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/215\"\u003e#215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/966cede2c0ca0a8ac4fe0786571e5c230f39c36e\"\u003e\u003ccode\u003e966cede\u003c/code\u003e\u003c/a\u003e Fix assertion in reader.c (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/212\"\u003e#212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/78def309e58126fdaacb66e6fd40df9c46494062\"\u003e\u003ccode\u003e78def30\u003c/code\u003e\u003c/a\u003e Bump version to 3.3.0-dev\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/redis/hiredis-py/compare/v3.2.1...v3.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `brotli` from 1.1.0 to 1.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/google/brotli/releases\"\u003ebrotli's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.0\u003c/h2\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\u003c/li\u003e\n\u003cli\u003eCLI: \u003ccode\u003ebrcat\u003c/code\u003e alias; allow decoding concatenated brotli streams\u003c/li\u003e\n\u003cli\u003ekt: pure Kotlin decoder\u003c/li\u003e\n\u003cli\u003ecgo: support \u0026quot;raw\u0026quot; dictionaries\u003c/li\u003e\n\u003cli\u003ebuild: Bazel modules\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: dropped \u003ccode\u003efinalize()\u003c/code\u003e for native entities\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: in \u003ccode\u003ecompress\u003c/code\u003e pass correct length to native encoder\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebuild: install man pages\u003c/li\u003e\n\u003cli\u003ebuild: updated / fixed / refined Bazel buildfiles\u003c/li\u003e\n\u003cli\u003eencoder: faster encoding\u003c/li\u003e\n\u003cli\u003ecgo: link via pkg-config\u003c/li\u003e\n\u003cli\u003epython: modernize extension / allow multi-phase module initialization\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edecoder / encoder: static tables use \u0026quot;small\u0026quot; model (allows 2GiB+ binaries)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.0 RC2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed (compared to RC1)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epick changes from Debian patch by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1349\"\u003egoogle/brotli#1349\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epick changes from Alpine patch by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1348\"\u003egoogle/brotli#1348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epick VCPKG patches by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1350\"\u003egoogle/brotli#1350\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix copy-paste in Java decoder by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1357\"\u003egoogle/brotli#1357\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.0 RC1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eIMPORTANT\u003c/strong\u003e: though this is a pre-release for v1.2.0, it is expected that some changes will be added before release; most notably concerning build files: patches applied by Alpine, Debian, Conan, VCPKG will be partially/fully integrated.\u003c/p\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\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 href=\"https://github.com/google/brotli/blob/master/CHANGELOG.md\"\u003ebrotli's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.2.0] - 2025-10-27\u003c/h2\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\u003c/li\u003e\n\u003cli\u003eCLI: \u003ccode\u003ebrcat\u003c/code\u003e alias; allow decoding concatenated brotli streams\u003c/li\u003e\n\u003cli\u003ekt: pure Kotlin decoder\u003c/li\u003e\n\u003cli\u003ecgo: support \u0026quot;raw\u0026quot; dictionaries\u003c/li\u003e\n\u003cli\u003ebuild: Bazel modules\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: dropped \u003ccode\u003efinalize()\u003c/code\u003e for native entities\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: in \u003ccode\u003ecompress\u003c/code\u003e pass correct length to native encoder\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebuild: install man pages\u003c/li\u003e\n\u003cli\u003ebuild: updated / fixed / refined Bazel buildfiles\u003c/li\u003e\n\u003cli\u003eencoder: faster encoding\u003c/li\u003e\n\u003cli\u003ecgo: link via pkg-config\u003c/li\u003e\n\u003cli\u003epython: modernize extension / allow multi-phase module initialization\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edecoder / encoder: static tables use \u0026quot;small\u0026quot; model (allows 2GiB+ binaries)\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 href=\"https://github.com/google/brotli/commit/028fb5a23661f123017c060daa546b55cf4bde29\"\u003e\u003ccode\u003e028fb5a\u003c/code\u003e\u003c/a\u003e release v1.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/390de5b472ec8c40a7b8e5029e47fd6493f7a755\"\u003e\u003ccode\u003e390de5b\u003c/code\u003e\u003c/a\u003e build and test csharp decoder\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/3499acbb7ac7818c1b929a8c9c5c5f8a634751da\"\u003e\u003ccode\u003e3499acb\u003c/code\u003e\u003c/a\u003e regenerate go/kt/js/ts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/8ca2312c61f1f5853be0708f9b1d6a6ad002d2a4\"\u003e\u003ccode\u003e8ca2312\u003c/code\u003e\u003c/a\u003e fix release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/ee771daf20bab6533cbc629407c50cff1c87d9f1\"\u003e\u003ccode\u003eee771da\u003c/code\u003e\u003c/a\u003e fix copy-paste in Java decoder\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/42aee3289154cb3e8db1c7a8ebfa639c857578b9\"\u003e\u003ccode\u003e42aee32\u003c/code\u003e\u003c/a\u003e try to fix release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/392c06bac05cc1d098ab105cbbda766f19853d92\"\u003e\u003ccode\u003e392c06b\u003c/code\u003e\u003c/a\u003e redesign release resource uploading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/1964cdb1b9e16a2a0c27fbd3b2a3bccb2c1a8294\"\u003e\u003ccode\u003e1964cdb\u003c/code\u003e\u003c/a\u003e ramp up all GH actions plugins\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/61605b1cb34ba84ae71c13b383d850a59cac85b2\"\u003e\u003ccode\u003e61605b1\u003c/code\u003e\u003c/a\u003e pick VCPKG patches\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/4b0f27b6f985b4301ad5cec4a31b9792ecf252bc\"\u003e\u003ccode\u003e4b0f27b\u003c/code\u003e\u003c/a\u003e pick changes from Alpine patch\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/google/brotli/compare/go/cbrotli/v1.1.0...v1.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-compressor` from 4.5.1 to 4.6.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-compressor/django-compressor/blob/develop/docs/changelog.txt\"\u003edjango-compressor's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003ev4.6 (2025-11-10)\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003eFull list of changes from v4.5.1 \u0026lt;https://github.com/django-compressor/django-compressor/compare/4.5.1...4.6\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed compatibility with latest BS4.\u003c/li\u003e\n\u003cli\u003eRemoved top pin for rcssmin and rjsmin dependencies.\u003c/li\u003e\n\u003cli\u003eAvoid compressing the same node concurrently in offline compression.\u003c/li\u003e\n\u003cli\u003eAvoid use of deprecated ast.Constant.s\u003c/li\u003e\n\u003cli\u003eOfficially support Django 6.0\u003c/li\u003e\n\u003cli\u003eOfficially support Django 5.2\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Django 5.0\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 3.9.\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 3.8.\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 href=\"https://github.com/django-compressor/django-compressor/commit/3ada994897cf982f97fc4c934be42eb1e0b71b9a\"\u003e\u003ccode\u003e3ada994\u003c/code\u003e\u003c/a\u003e Prepare 4.6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/1baa82a6cf6942eb12007217f26195a95df727e2\"\u003e\u003ccode\u003e1baa82a\u003c/code\u003e\u003c/a\u003e Remove CI testing for EOL Django 5.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/8706a52b740e7555abefc8fba1eaae1986ded1a5\"\u003e\u003ccode\u003e8706a52\u003c/code\u003e\u003c/a\u003e Add CI testing for Python 3.14 and Django 6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/7be9ce2cefedf59302207728e383fa7811232d59\"\u003e\u003ccode\u003e7be9ce2\u003c/code\u003e\u003c/a\u003e Bump brotli, lxml, and coverage test dependencies.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/d6fd8136febd1ba409b366c7471db8763522d91d\"\u003e\u003ccode\u003ed6fd813\u003c/code\u003e\u003c/a\u003e Remove test version pinning for rcssmin and rjsmin.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/2b46e7d1724109ebb5db49b76f008dc039f0a9db\"\u003e\u003ccode\u003e2b46e7d\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1307\"\u003e#1307\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/b97bb05836eb6a42d2746d43792e9d13f041b615\"\u003e\u003ccode\u003eb97bb05\u003c/code\u003e\u003c/a\u003e Disable bs4's multi valued attributes (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1296\"\u003e#1296\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/4e5433076300508e1c3648da3345ae606386eb3f\"\u003e\u003ccode\u003e4e54330\u003c/code\u003e\u003c/a\u003e Migrate packaging to pyproject.toml (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1313\"\u003e#1313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/872f8d52ce51957bccf4a91338d177c2ea4a3908\"\u003e\u003ccode\u003e872f8d5\u003c/code\u003e\u003c/a\u003e Remove version pinning for rcssmin and rjsmin (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1312\"\u003e#1312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/cc38666efb13c6e0b355cf273f56b783d7157e29\"\u003e\u003ccode\u003ecc38666\u003c/code\u003e\u003c/a\u003e Drop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1311\"\u003e#1311\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-compressor/django-compressor/compare/4.5.1...4.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-pint` from 0.7.3 to 1.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/CarliJoy/django-pint/releases\"\u003edjango-pint's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.0.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCorrect minimal Django version to 5.2 in pyproject.toml\u003c/li\u003e\n\u003cli\u003eFix documentation builds\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFix PyPI signatures\u003c/h2\u003e\n\u003cp\u003eFix broken pipeline for PyPI Sigstore uploads. No source code changes.\u003c/p\u003e\n\u003ch2\u003ev1.0.1\u003c/h2\u003e\n\u003cp\u003eFix a problem with the release pipeline. No source code changes.\u003c/p\u003e\n\u003ch2\u003ev1.0.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMakefile for easier dev setup by \u003ca href=\"https://github.com/mmarras\"\u003e\u003ccode\u003e@​mmarras\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CarliJoy/django-pint/pull/100\"\u003eCarliJoy/django-pint#100\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etry unit conversion instead of literal dimensionality check \u003ca href=\"https://redirect.github.com/CarliJoy/django-pint/issues/99\"\u003e#99\u003c/a\u003e by \u003ca href=\"https://github.com/mmarras\"\u003e\u003ccode\u003e@​mmarras\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CarliJoy/django-pint/pull/101\"\u003eCarliJoy/django-pint#101\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003econvert numeric types to str before calling Decimal by \u003ca href=\"https://github.com/SamuelJennings\"\u003e\u003ccode\u003e@​SamuelJennings\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CarliJoy/django-pint/pull/108\"\u003eCarliJoy/django-pint#108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMigrate to pyproject and ruff by \u003ca href=\"https://github.com/CarliJoy\"\u003e\u003ccode\u003e@​CarliJoy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CarliJoy/django-pint/pull/118\"\u003eCarliJoy/django-pint#118\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=\"https://github.com/mmarras\"\u003e\u003ccode\u003e@​mmarras\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/CarliJoy/django-pint/pull/100\"\u003eCarliJoy/django-pint#100\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Adiorz\"\u003e\u003ccode\u003e@​Adiorz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/CarliJoy/django-pint/pull/117\"\u003eCarliJoy/django-pint#117\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/CarliJoy/django-pint/compare/v0.7.3...v1.0.0\"\u003ehttps://github.com/CarliJoy/django-pint/compare/v0.7.3...v1.0.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 href=\"https://github.com/CarliJoy/django-pint/blob/main/CHANGELOG.rst\"\u003edjango-pint's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eVersion 1.0.3\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eCorrect minimal Django version to 5.2 in pyproject.toml\u003c/li\u003e\n\u003cli\u003eFix documentation builds\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eVersion 1.0.2\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix broken pipeline for PyPI Sigstore uploads. No source code changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eVersion 1.0.1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix Problem in Publish Pipeline using old upload-artifact (no source code changes)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eVersion 1.0.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eStart following \u003ccode\u003eSemVer \u0026lt;https://semver.org/spec/v2.0.0.html\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003eConvert numeric types to str before calling Decimal \u003ccode\u003e[#101](https://github.com/CarliJoy/django-pint/issues/101) by @mmarra \u0026lt;https://github.com/CarliJoy/django-pint/pull/101\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003eTry unit conversion instead of literal dimensionality check \u003ccode\u003e[#108](https://github.com/CarliJoy/django-pint/issues/108)  by @SamuelJennings \u0026lt;https://github.com/CarliJoy/django-pint/pull/108\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8 and 3.9 and Django 3.2\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.12, 3.13 and 3.14 and Django 6.0 \u003ccode\u003e[#116](https://github.com/CarliJoy/django-pint/issues/116) by @Adiorz \u0026lt;https://github.com/CarliJoy/django-pint/pull/117\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003eModernize project setup: Use \u003ccode\u003epyproject.toml\u003c/code\u003e only and \u003ccode\u003eruff\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eVersion 0.7.2\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix conversion of number input to DecimalField (\u003ccode\u003eissue [#106](https://github.com/CarliJoy/django-pint/issues/106) \u0026lt;https://github.com/CarliJoy/django-pint/issues/106\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eVersion 0.7.1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix wrong unit display in widget (\u003ccode\u003eissue [#43](https://github.com/CarliJoy/django-pint/issues/43) \u0026lt;https://github.com/CarliJoy/django-pint/issues/43\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eVersion 0.7.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003edrop support for Django (\u0026lt;3.2) and Python Versions (\u0026lt;3.7) as they reached EOL\u003c/li\u003e\n\u003cli\u003eadd \u003ccode\u003ePositiveIntegerQuantityField\u003c/code\u003e (\u003ccode\u003emerge request [#39](https://github.com/CarliJoy/django-pint/issues/39) from jwygoda\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003efix display of negative and scientific numbers in Widget (\u003ccode\u003emerger request [#41](https://github.com/CarliJoy/django-pint/issues/41) from mikeford3\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eVersion 0.6.3\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix error with Django 3.2 (\u003ccode\u003eissue [#36](https://github.com/CarliJoy/django-pint/issues/36)\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eremove PrecisionError\u003c/li\u003e\n\u003cli\u003erestructure function a bit, add more type annotations\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eVersion 0.6.2\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eonly a internal technical release as the PyPi token had to be removed\ndue to security breach before and no new token was set before\nreleasing 0.6.1\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eVersion 0.6.1\u003c/h1\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 href=\"https://github.com/CarliJoy/django-pint/commit/67fa3b9f7af927bedf810fc8694d72452b17fbed\"\u003e\u003ccode\u003e67fa3b9\u003c/code\u003e\u003c/a\u003e Fix minimal django version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CarliJoy/django-pint/commit/cdccb655abc7988dda9d1df95ce2087fb78c9c83\"\u003e\u003ccode\u003ecdccb65\u003c/code\u003e\u003c/a\u003e Fix docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CarliJoy/django-pint/commit/dbc1df925da844c730945c2d580317353aa610d3\"\u003e\u003ccode\u003edbc1df9\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CarliJoy/django-pint/commit/d8912bec27d2f8edcb3debd6aa0fc8883c1e8312\"\u003e\u003ccode\u003ed8912be\u003c/code\u003e\u003c/a\u003e Publish Pipeline: Use newer version of sigstore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CarliJoy/django-pint/commit/26d263a1d4f0b6d1bf1c04e7824560188d8448d5\"\u003e\u003ccode\u003e26d263a\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CarliJoy/django-pint/commit/bf21c31770a0cb82714221f59d3f57e93f852ca5\"\u003e\u003ccode\u003ebf21c31\u003c/code\u003e\u003c/a\u003e Fix publish pipeline: Use upload artifacts version 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CarliJoy/django-pint/commit/3a079f2b24145052178a4a6bcdb53d091c6d3786\"\u003e\u003ccode\u003e3a079f2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/CarliJoy/django-pint/issues/118\"\u003e#118\u003c/a\u003e from CarliJoy/migrate_to_pyproject_and_ruff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CarliJoy/django-pint/commit/a302da5319f8f88f64ead260a645942392d36532\"\u003e\u003ccode\u003ea302da5\u003c/code\u003e\u003c/a\u003e prepare new release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CarliJoy/django-pint/commit/68b6277a88d1540777c1aefc787ab7530eb2d5d4\"\u003e\u003ccode\u003e68b6277\u003c/code\u003e\u003c/a\u003e Modernize: use pyproject.toml only and ruff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CarliJoy/django-pint/commit/599410c070a277699e750ad27dc5ebb765a832d5\"\u003e\u003ccode\u003e599410c\u003c/code\u003e\u003c/a\u003e feat: upgrade python up to 3.14 and django up to 6.0 (\u003ca href=\"https://redirect.github.com/CarliJoy/django-pint/issues/117\"\u003e#117\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/CarliJoy/django-pint/compare/v0.7.3...v1.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-post-office` from 3.10.1 to 3.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ui/django-post_office/releases\"\u003edjango-post-office's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded Python 3.14 and Django 6.0 compatibility. Thanks \u003ca href=\"https://github.com/selwin\"\u003e\u003ccode\u003e@​selwin\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eReplaced \u003ccode\u003ebleach\u003c/code\u003e with \u003ccode\u003enh3\u003c/code\u003e for HTML sanitization. \u003ccode\u003ebleach\u003c/code\u003e has been deprecated since 2023. Thanks \u003ca href=\"https://github.com/selwin\"\u003e\u003ccode\u003e@​selwin\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eSESWebhookHandler\u003c/code\u003e and \u003ccode\u003eSparkPostWebhookHandler\u003c/code\u003e for handling webhook events (beta feature). Thanks \u003ca href=\"https://github.com/selwin\"\u003e\u003ccode\u003e@​selwin\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eOptimized the way templates are fetched during email delivery. Thanks \u003ca href=\"https://github.com/selwin\"\u003e\u003ccode\u003e@​selwin\u003c/code\u003e\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 href=\"https://github.com/ui/django-post_office/blob/master/CHANGELOG.md\"\u003edjango-post-office's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003eUnreleased\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplaced \u003ccode\u003ebleach\u003c/code\u003e with \u003ccode\u003enh3\u003c/code\u003e for HTML sanitization. \u003ccode\u003ebleach\u003c/code\u003e has been deprecated since 2023. Thanks \u003ca href=\"https://github.com/selwin\"\u003e\u003ccode\u003e@​selwin\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eSESWebhookHandler\u003c/code\u003e and \u003ccode\u003eSparkPostWebhookHandler\u003c/code\u003e for handling webhook events (beta feature). Thanks \u003ca href=\"https://github.com/selwin\"\u003e\u003ccode\u003e@​selwin\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eOptimized the way templates are fetched during email delivery. Thanks \u003ca href=\"https://github.com/selwin\"\u003e\u003ccode\u003e@​selwin\u003c/code\u003e\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 href=\"https://github.com/ui/django-post_office/commit/825af68a79bce78acb18c945d1f3acd5935a975b\"\u003e\u003ccode\u003e825af68\u003c/code\u003e\u003c/a\u003e Bump version to 3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/99be3b50a904d84f35fecb14f6c64575611a2e8a\"\u003e\u003ccode\u003e99be3b5\u003c/code\u003e\u003c/a\u003e Delete publish.yml (\u003ca href=\"https://redirect.github.com/ui/django-post_office/issues/513\"\u003e#513\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/a360b7946a0b8a777e0764ab7423749f7686716b\"\u003e\u003ccode\u003ea360b79\u003c/code\u003e\u003c/a\u003e Improve tests (\u003ca href=\"https://redirect.github.com/ui/django-post_office/issues/509\"\u003e#509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/fe7c583512845d31685245b783a502bfc221c0c6\"\u003e\u003ccode\u003efe7c583\u003c/code\u003e\u003c/a\u003e Python314 fix (\u003ca href=\"https://redirect.github.com/ui/django-post_office/issues/511\"\u003e#511\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/0556f5eaaffbbbb29bd3db2ad0c2ef2086595971\"\u003e\u003ccode\u003e0556f5e\u003c/code\u003e\u003c/a\u003e Updated test.yml so tests don't get triggered twice (\u003ca href=\"https://redirect.github.com/ui/django-post_office/issues/512\"\u003e#512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/00ddbc165e597af2967fa3fcd3f34a66d0659ae3\"\u003e\u003ccode\u003e00ddbc1\u003c/code\u003e\u003c/a\u003e Webhooks (\u003ca href=\"https://redirect.github.com/ui/django-post_office/issues/510\"\u003e#510\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/936d1ac816ffd3cf734bd77f0bb7ec17082793f3\"\u003e\u003ccode\u003e936d1ac\u003c/code\u003e\u003c/a\u003e Updated README.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/91fbc6c28be60288961521520581d20745b3320c\"\u003e\u003ccode\u003e91fbc6c\u003c/code\u003e\u003c/a\u003e Webhook handlers (\u003ca href=\"https://redirect.github.com/ui/django-post_office/issues/505\"\u003e#505\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/0f68aaf444779682ea3d8806a5f46dea1a753e08\"\u003e\u003ccode\u003e0f68aaf\u003c/code\u003e\u003c/a\u003e Merge branch 'webhooks'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/5b7fdf9989517b1e740cc725ae635833dc376a12\"\u003e\u003ccode\u003e5b7fdf9\u003c/code\u003e\u003c/a\u003e Move tests (\u003ca href=\"https://redirect.github.com/ui/django-post_office/issues/508\"\u003e#508\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ui/django-post_office/compare/v3.10.1...v3.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `drf-yasg` from 1.21.10 to 1.21.14\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/axnsan12/drf-yasg/releases\"\u003edrf-yasg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.21.14\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix missing swagger-ui sourcemaps (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/950\"\u003e#950\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003e1.21.12\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Bring the bundled swagger ui up to date (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/944\"\u003e#944\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update the logout button to use a POST request. (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/945\"\u003e#945\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a live demo domain (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/946\"\u003e#946\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Handle annotations that are not available at runtime (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/941\"\u003e#941\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003e1.21.11\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/917\"\u003e#917\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/916\"\u003e#916\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/926\"\u003e#926\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/922\"\u003e#922\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/928\"\u003e#928\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/923\"\u003e#923\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/848\"\u003e#848\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/903\"\u003e#903\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 href=\"https://github.com/axnsan12/drf-yasg/blob/master/docs/changelog.rst\"\u003edrf-yasg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e#########\nChangelog\n#########\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.14\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.13\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix missing swagger-ui sourcemaps (:pr:\u003ccode\u003e950\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.12\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Bring the bundled swagger ui up to date (:pr:\u003ccode\u003e944\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update the logout button to use a POST request. (:pr:\u003ccode\u003e945\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a live demo domain (:pr:\u003ccode\u003e946\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Handle annotations that are not available at runtime (:pr:\u003ccode\u003e941\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.11\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (:pr:\u003ccode\u003e917\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (:pr:\u003ccode\u003e916\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (:pr:\u003ccode\u003e926\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (:pr:\u003ccode\u003e922\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (:pr:\u003ccode\u003e928\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (:pr:\u003ccode\u003e923\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (:pr:\u003ccode\u003e848\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (:pr:\u003ccode\u003e903\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.10\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix type hints when using postponed evaluation of annotations (PEP-563) (:pr:\u003ccode\u003e840\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update JSON \u0026amp; YAML renderers to not use a \u0026quot;.\u0026quot; in their format string (:pr:\u003ccode\u003e911\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix lint errors when comparing types with == instead of is (:pr:\u003ccode\u003e868\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update swagger-ui-dist to address CVE-2021-46708 (:pr:\u003ccode\u003e904\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.9\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Added support for zoneinfo object fields (:pr:\u003ccode\u003e908\u003c/code\u003e)\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/7dceb2783db31631785cd15866c9b44540accf9f\"\u003e\u003ccode\u003e7dceb27\u003c/code\u003e\u003c/a\u003e Add version 1.21.14 details to the changelog (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/952\"\u003e#952\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/763cdd6473eb963ad36987088e697cfd4f744acc\"\u003e\u003ccode\u003e763cdd6\u003c/code\u003e\u003c/a\u003e Add version 1.21.13 details to the changelog (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/951\"\u003e#951\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/a0559fcacd996b76fbbb5ea0d70aa5c314f06e0c\"\u003e\u003ccode\u003ea0559fc\u003c/code\u003e\u003c/a\u003e Add missing swagger-ui sourcemaps (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/950\"\u003e#950\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/2bf74d0789b40aafa638c8fc1d4e25ea8340f530\"\u003e\u003ccode\u003e2bf74d0\u003c/code\u003e\u003c/a\u003e Add version 1.21.12 details to the changelog (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/948\"\u003e#948\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/b421e89667932159562652d3639368667e5d89d9\"\u003e\u003ccode\u003eb421e89\u003c/code\u003e\u003c/a\u003e swagger ui fix (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/944\"\u003e#944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/40fee2bd8be59bb1b112419fdb79cd9a09745306\"\u003e\u003ccode\u003e40fee2b\u003c/code\u003e\u003c/a\u003e Add live demo domain and environment variables (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/946\"\u003e#946\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/1785b84fe129382595790f390f2b983f62b45271\"\u003e\u003ccode\u003e1785b84\u003c/code\u003e\u003c/a\u003e Update logout button to use POST request. (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/945\"\u003e#945\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/0522cc1d9b12df97c2b01cb94ad1587933e8d52c\"\u003e\u003ccode\u003e0522cc1\u003c/code\u003e\u003c/a\u003e Rename github actions files to .yaml (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/942\"\u003e#942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/3a381234c9a6986bbd44867632ff3cdc78ffe352\"\u003e\u003ccode\u003e3a38123\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 in the github-actions group (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/943\"\u003e#943\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/b252a0d8f8f87b9ef6417827ae631cf11a6262a1\"\u003e\u003ccode\u003eb252a0d\u003c/code\u003e\u003c/a\u003e Handle annotations not available at runtime (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/941\"\u003e#941\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/axnsan12/drf-yasg/compare/1.21.10...1.21.14\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jellyfish` from 1.2.0 to 1.2.1\n\nUpdates `markdown` from 3.9 to 3.10\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/releases\"\u003emarkdown's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.10.0\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\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 href=\"https://github.com/Python-Markdown/markdown/blob/master/docs/changelog.md\"\u003emarkdown's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003etitle: Changelog\ntoc_depth: 2\u003c/p\u003e\n\u003ch1\u003ePython-Markdown Changelog\u003c/h1\u003e\n\u003cp\u003eAll notable changes to this project will be documented in this file.\u003c/p\u003e\n\u003cp\u003eThe format is based on \u003ca href=\"https://keepachangelog.com/en/1.1.0/\"\u003eKeep a Changelog\u003c/a\u003e,\nand this project adheres to the\n\u003ca href=\"https://packaging.python.org/en/latest/specifications/version-specifiers/\"\u003ePython Version Specification\u003c/a\u003e.\nSee the \u003ca href=\"https://github.com/Python-Markdown/markdown/blob/master/docs/contributing.md\"\u003eContributing Guide\u003c/a\u003e for details.\u003c/p\u003e\n\u003ch2\u003e[Unreleased]\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure nested elements inside inline comments are properly unescaped (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1571\"\u003e#1571\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eMake the docs build successfully with mkdocstrings-python 2.0 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1575\"\u003e#1575\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix infinite loop when multiple bogus or unclosed HTML comments appear in input (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1578\"\u003e#1578\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.10.0] - 2025-11-03\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.9.0] - 2025-09-04\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFootnotes are now ordered by the occurrence of their references in the\ndocument. A new configuration option for the footnotes extension,\n\u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e, has been added to support restoring the previous\nbehavior of ordering footnotes by the occurrence of definitions (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1367\"\u003e#1367\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure inline processing iterates through elements in document order (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1546\"\u003e#1546\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix handling of incomplete HTML tags in code spans in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1547\"\u003e#1547\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.8.2] - 2025-06-19\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/22e89c1fc346f72218a10e392a0c3b4731912522\"\u003e\u003ccode\u003e22e89c1\u003c/code\u003e\u003c/a\u003e Bump version to 3.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/c138aea5139a6aceae05bb957e866d9ce7577b94\"\u003e\u003ccode\u003ec138aea\u003c/code\u003e\u003c/a\u003e + PY314 - PY39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/746f7f527b15f63845253e3b86947b806ef1b98f\"\u003e\u003ccode\u003e746f7f5\u003c/code\u003e\u003c/a\u003e cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/a5ee2b4aad05531898ab8fd726c7ece31ddadf8b\"\u003e\u003ccode\u003ea5ee2b4\u003c/code\u003e\u003c/a\u003e Revert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/5354daf618149f92580a1407c036115753c5df73\"\u003e\u003ccode\u003e5354daf\u003c/code\u003e\u003c/a\u003e Fix an HTML comment parsing case that can cause an infinite loop\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Python-Markdown/markdown/compare/3.9.0...3.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyyaml` from 6.0.2 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/yaml/pyyaml/releases\"\u003epyyaml's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14 and free-threading (experimental).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ehttps://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\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 href=\"https://github.com/yaml/pyyaml/blob/6.0.3/CHANGES\"\u003epyyaml's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e6.0.3 (2025-09-25)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/yaml/pyyaml/pull/864\"\u003eyaml/pyyaml#864\u003c/a\u003e -- Support for Python 3.14 and free-threading (experimental)\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 href=\"https://github.com/yaml/pyyaml/commit/49790e73684bebad1df05ef8d828fa12f685bffb\"\u003e\u003ccode\u003e49790e7\u003c/code\u003e\u003c/a\u003e Release 6.0.3 (\u003ca href=\"https://redirect.github.com/yaml/pyyaml/issues/889\"\u003e#889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xlsxwriter` from 3.2.5 to 3.2.9\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jmcnamara/XlsxWriter/blob/main/Changes\"\u003exlsxwriter's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.2.9 - September 16 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved the \u003ccode\u003epy.typed\u003c/code\u003e file since it was causing a lot of downstream CI\nfailures where consumers weren't handling the xlsxwriter types correctly or\ntaking them into account.\u003c/p\u003e\n\u003cp\u003eThe file will be re-added once the xlsxwriter typing is more comprehensive.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.2.8 - September 14 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003emypy\u003c/code\u003e implicit export error caused by the \u003ccode\u003eWorkbook()\u003c/code\u003e type\nannotations changes in v3.2.7 and v3.2.6.\u003c/p\u003e\n\u003cp\u003e:issue:\u003ccode\u003e1154\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.2.7 - September 13 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed typing issue in \u003ccode\u003eWorkbook()\u003c/code\u003e constructor.\u003c/p\u003e\n\u003cp\u003e:issue:\u003ccode\u003e1152\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.2.6 - September 12 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded an option to position custom data labels in the same way that the data\nlabels can be positioned for the entire series.\u003c/p\u003e\n\u003cp\u003e:feature:\u003ccode\u003e1147\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd border, fill, gradient and pattern formatting options for\nchart titles and also chart axis titles.\u003c/p\u003e\n\u003cp\u003e:feature:\u003ccode\u003e957\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd additional type annotations. This is an ongoing refactoring.\u003c/p\u003e\n\u003cp\u003e:feature:\u003ccode\u003e1123\u003c/code\u003e.\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 href=\"https://github.com/jmcnamara/XlsxWriter/commit/e943bee8c9cdf0661cfdb83d5497e0725390e41e\"\u003e\u003ccode\u003ee943bee\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/392bd9e6572785394c6553e2d4f7ae2bb80782f4\"\u003e\u003ccode\u003e392bd9e\u003c/code\u003e\u003c/a\u003e typing: remove py.typed file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/eb99afecdd0050209835f9f237d580dc53e42afa\"\u003e\u003ccode\u003eeb99afe\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/5ec29826d5e398bb5adebaabafbeb9d443a6ed8c\"\u003e\u003ccode\u003e5ec2982\u003c/code\u003e\u003c/a\u003e workbook: add explicit export for mypy compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/ca85cbb03a5898c9e7b66c78ac67a365e7f53002\"\u003e\u003ccode\u003eca85cbb\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/3710251aaaa9524ee302ec04608bfc1b577d4ba5\"\u003e\u003ccode\u003e3710251\u003c/code\u003e\u003c/a\u003e typing: add more supported types to Workbook() constructor\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/27db7a14672bfe1a18f29dfbab646aa0149a369b\"\u003e\u003ccode\u003e27db7a1\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/f05067654b42283557c3621e411b6fbadb7051b6\"\u003e\u003ccode\u003ef050676\u003c/code\u003e\u003c/a\u003e docs: add CI spell check\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/60f708cc1e10c0c66ae870be4f350f45a9d3ecc8\"\u003e\u003ccode\u003e60f708c\u003c/code\u003e\u003c/a\u003e chart: add axis title formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/53dc08e5d240310c88bbfce8d1a42330ae256535\"\u003e\u003ccode\u003e53dc08e\u003c/code\u003e\u003c/a\u003e chart: add chart title formatting options\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jmcnamara/XlsxWriter/compare/RELEASE_3.2.5...RELEASE_3.2.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xmltodict` from 0.15.1 to 1.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/martinblech/xmltodict/releases\"\u003exmltodict's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.0.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.1...v1.0.2\"\u003e1.0.2\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eallow DOCTYPE with disable_entities=True (default) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/25b61a41f580cfc211df07c5fbbf603bd8eb5a5f\"\u003e25b61a4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.0...v1.0.1\"\u003e1.0.1\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efail closed when entities disabled (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c986d2d37a93d45fcc059b09063d9d9c45a655ec\"\u003ec986d2d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003evalidate XML comments (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/3d4d2d3a4cd0f68d1211dba549010261fa87b969\"\u003e3d4d2d3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd SECURITY.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/64130233c8fea272a5f82f2f585e1593523ec1b1\"\u003e6413023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify behavior for empty lists (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2025b5cb5e64fc9c4d54b8644187a0a193bdd0ed\"\u003e2025b5c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify process_comments docs (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/6b464fce284a93dbb292f3d063c9f310a478a014\"\u003e6b464fc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify strip whitespace comment behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/b3e22032d21cc387d6cecf3930116e8fdc3151cf\"\u003eb3e2203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ecreate AGENTS.md for coding agents (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/0da66ee797ced7479312aecef92c6a25e235007c\"\u003e0da66ee\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace travis with actions badge (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2576b94c918fbd154489a95dbbb3feda8bd3cbd8\"\u003e2576b94\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate CONTRIBUTING.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/db3918057cf125af989a1263d52df8df5ef8c642\"\u003edb39180\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v0.15.1...v1.0.0\"\u003e1.0.0\u003c/a\u003e (2025-09-12)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emodernize for Python 3.9+; drop legacy compat paths\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add limited XML comment round-trip; unify \u003ccode\u003e_emit\u003c/code\u003e behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/e43537eee61c20ef50f0e4242eb9223de7a6aefd\"\u003ee43537e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add selective \u003ccode\u003eforce_cdata\u003c/code\u003e support (bool/tuple/callable) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/a497fedb7d6103d68af155543ac3337a73778b19\"\u003ea497fed\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/375\"\u003e#375\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003enamespaces:\u003c/strong\u003e attach \u003ccode\u003e[@xmlns](https://github.com/xmlns)\u003c/code\u003e to declaring element when process_namespaces=True (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/f0322e578184421693434902547f330f4f0a44c3\"\u003ef0322e5\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/163\"\u003e#163\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e avoid parent accumulation at item_depth; add regression tests (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/220240c5eb2d12b75adf26cc84ec9c803ce8bb2b\"\u003e220240c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e handle non-string \u003ccode\u003e#text\u003c/code\u003e with attributes; unify value conversion (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/927a025ae8a62cbb542d5caff38b29161a2096fa\"\u003e927a025\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/366\"\u003e#366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e skip empty lists to keep pretty/compact outputs consistent (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/ab4c86fed24dc8ef0e932a524edfb01c6453ecf6\"\u003eab4c86f\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/martinblech/xmltodict/blob/master/CHANGELOG.md\"\u003exmltodict's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.1...v1.0.2\"\u003e1.0.2\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eallow DOCTYPE with disable_entities=True (def...\n\n_Description has been truncated_","html_url":"https://github.com/chrislkl/seed/pull/12","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrislkl%2Fseed/issues/12","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/12/packages"}},{"old_version":"2.0.30","new_version":"2.0.31","update_type":"patch","path":null,"pr_created_at":"2026-01-05T06:31:59.000Z","version_change":"2.0.30 → 2.0.31","issue":{"uuid":"3780341937","node_id":"PR_kwDOQDraYs67eXHd","number":11,"state":"closed","title":"deps: bump the prod-deps group across 1 directory with 35 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-01-19T07:20:56.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-05T06:31:59.000Z","updated_at":"2026-01-19T07:20:58.000Z","time_to_close":1212537,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps: bump","group_name":"prod-deps","update_count":35,"packages":[{"name":"django","old_version":"4.2.24","new_version":"6.0","repository_url":"https://github.com/django/django"},{"name":"psycopg2-binary","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"celery","old_version":"5.5.3","new_version":"5.6.2","repository_url":"https://github.com/celery/celery"},{"name":"hiredis","old_version":"3.2.1","new_version":"3.3.0","repository_url":"https://github.com/redis/hiredis-py"},{"name":"brotli","old_version":"1.1.0","new_version":"1.2.0","repository_url":"https://github.com/google/brotli"},{"name":"django-compressor","old_version":"4.5.1","new_version":"4.6.0","repository_url":"https://github.com/django-compressor/django-compressor"},{"name":"django-post-office","old_version":"3.10.1","new_version":"3.11.0","repository_url":"https://github.com/ui/django-post_office"},{"name":"drf-yasg","old_version":"1.21.10","new_version":"1.21.11","repository_url":"https://github.com/axnsan12/drf-yasg"},{"name":"jellyfish","old_version":"1.2.0","new_version":"1.2.1"},{"name":"markdown","old_version":"3.9","new_version":"3.10","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"xlsxwriter","old_version":"3.2.5","new_version":"3.2.9","repository_url":"https://github.com/jmcnamara/XlsxWriter"},{"name":"xmltodict","old_version":"0.15.1","new_version":"1.0.2","repository_url":"https://github.com/martinblech/xmltodict"},{"name":"xmlschema","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/sissaschool/xmlschema"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"shapely","old_version":"2.0.7","new_version":"2.1.2","repository_url":"https://github.com/shapely/shapely"},{"name":"django-treebeard","old_version":"4.7.1","new_version":"4.8.0","repository_url":"https://github.com/django-treebeard/django-treebeard"},{"name":"django-two-factor-auth","old_version":"1.17.0","new_version":"1.18.1"},{"name":"importlib-metadata","old_version":"8.7.0","new_version":"8.7.1","repository_url":"https://github.com/python/importlib_metadata"},{"name":"boto3","old_version":"1.40.27","new_version":"1.42.21","repository_url":"https://github.com/boto/boto3"},{"name":"django-ses","old_version":"4.4.0","new_version":"4.5.0","repository_url":"https://github.com/django-ses/django-ses"},{"name":"uwsgi","old_version":"2.0.30","new_version":"2.0.31"},{"name":"coverage","old_version":"7.10.6","new_version":"7.13.1","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"coveralls","old_version":"4.0.1","new_version":"4.0.2","repository_url":"https://github.com/TheKevJames/coveralls-python"},{"name":"tox","old_version":"4.30.2","new_version":"4.33.0","repository_url":"https://github.com/tox-dev/tox"},{"name":"psutil","old_version":"7.0.0","new_version":"7.2.1","repository_url":"https://github.com/giampaolo/psutil"},{"name":"faker","old_version":"37.6.0","new_version":"40.1.0","repository_url":"https://github.com/joke2k/faker"},{"name":"vcrpy","old_version":"7.0.0","new_version":"8.1.1","repository_url":"https://github.com/kevin1024/vcrpy"},{"name":"pytest","old_version":"8.4.2","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pre-commit","old_version":"4.3.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"sphinx","old_version":"7.4.7","new_version":"9.1.0","repository_url":"https://github.com/sphinx-doc/sphinx"},{"name":"sphinxcontrib-spelling","old_version":"8.0.0","new_version":"8.0.2","repository_url":"https://github.com/sphinx-contrib/spelling"},{"name":"docutils","old_version":"0.21.2","new_version":"0.22.4","repository_url":"https://github.com/rtfd/recommonmark"},{"name":"hypothesis","old_version":"6.138.15","new_version":"6.148.13","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"django-debug-toolbar","old_version":"6.0.0","new_version":"6.1.0","repository_url":"https://github.com/django-commons/django-debug-toolbar"}],"path":null,"ecosystem":"pip"},"body":"Bumps the prod-deps group with 35 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [django](https://github.com/django/django) | `4.2.24` | `6.0` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [celery](https://github.com/celery/celery) | `5.5.3` | `5.6.2` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.2.1` | `3.3.0` |\n| [brotli](https://github.com/google/brotli) | `1.1.0` | `1.2.0` |\n| [django-compressor](https://github.com/django-compressor/django-compressor) | `4.5.1` | `4.6.0` |\n| [django-post-office](https://github.com/ui/django-post_office) | `3.10.1` | `3.11.0` |\n| [drf-yasg](https://github.com/axnsan12/drf-yasg) | `1.21.10` | `1.21.11` |\n| [jellyfish](https://jellyfish.jpt.sh/) | `1.2.0` | `1.2.1` |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.9` | `3.10` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [xlsxwriter](https://github.com/jmcnamara/XlsxWriter) | `3.2.5` | `3.2.9` |\n| [xmltodict](https://github.com/martinblech/xmltodict) | `0.15.1` | `1.0.2` |\n| [xmlschema](https://github.com/sissaschool/xmlschema) | `4.1.0` | `4.2.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [shapely](https://github.com/shapely/shapely) | `2.0.7` | `2.1.2` |\n| [django-treebeard](https://github.com/django-treebeard/django-treebeard) | `4.7.1` | `4.8.0` |\n| [django-two-factor-auth[phonenumbers]](https://github.com/jazzband/django-two-factor-auth) | `1.17.0` | `1.18.1` |\n| [importlib-metadata](https://github.com/python/importlib_metadata) | `8.7.0` | `8.7.1` |\n| [boto3](https://github.com/boto/boto3) | `1.40.27` | `1.42.21` |\n| [django-ses](https://github.com/django-ses/django-ses) | `4.4.0` | `4.5.0` |\n| [uwsgi](https://uwsgi-docs.readthedocs.io/en/latest/) | `2.0.30` | `2.0.31` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.13.1` |\n| [coveralls](https://github.com/TheKevJames/coveralls-python) | `4.0.1` | `4.0.2` |\n| [tox](https://github.com/tox-dev/tox) | `4.30.2` | `4.33.0` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.1` |\n| [faker](https://github.com/joke2k/faker) | `37.6.0` | `40.1.0` |\n| [vcrpy](https://github.com/kevin1024/vcrpy) | `7.0.0` | `8.1.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.2` | `9.0.2` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.3.0` | `4.5.1` |\n| [sphinx](https://github.com/sphinx-doc/sphinx) | `7.4.7` | `9.1.0` |\n| [sphinxcontrib-spelling](https://github.com/sphinx-contrib/spelling) | `8.0.0` | `8.0.2` |\n| [docutils](https://github.com/rtfd/recommonmark) | `0.21.2` | `0.22.4` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.138.15` | `6.148.13` |\n| [django-debug-toolbar](https://github.com/django-commons/django-debug-toolbar) | `6.0.0` | `6.1.0` |\n\n\nUpdates `django` from 4.2.24 to 6.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/36b5f39d9372147f0e758f590e35ee2b2bc317dd\"\u003e\u003ccode\u003e36b5f39\u003c/code\u003e\u003c/a\u003e [6.0.x] Bumped version for 6.0 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/4f46d1f43345da90037aab1c238d81058b61515b\"\u003e\u003ccode\u003e4f46d1f\u003c/code\u003e\u003c/a\u003e [6.0.x] Updated man page for Django 6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/a9f5ca5c58df7b662ad23ba9a39619c41a7e39ff\"\u003e\u003ccode\u003ea9f5ca5\u003c/code\u003e\u003c/a\u003e [6.0.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/35859\"\u003e#35859\u003c/a\u003e -- Clarified Tasks ref and topics docs regarding availabl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/45f9e0e969257c0938fec4b51b9b0264aa49bd25\"\u003e\u003ccode\u003e45f9e0e\u003c/code\u003e\u003c/a\u003e [6.0.x] Finalized release notes for Django 6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/ac44a55c80a918c30a4f5f03becd4cf01500bbb6\"\u003e\u003ccode\u003eac44a55\u003c/code\u003e\u003c/a\u003e [6.0.x] Made cosmetic edits to docs/releases/6.0.txt.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/00575b79312c719a6b37035067095e2d679bb5d7\"\u003e\u003ccode\u003e00575b7\u003c/code\u003e\u003c/a\u003e [6.0.x] Updated translations from Transifex.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/8414487569431f14e3da0c90185f03267a118160\"\u003e\u003ccode\u003e8414487\u003c/code\u003e\u003c/a\u003e [6.0.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/35444\"\u003e#35444\u003c/a\u003e -- Fixed typo in PostgreSQL StringAgg deprecation warning.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/1f8f36ee794aba06246f3a3e48a3fefadff019ea\"\u003e\u003ccode\u003e1f8f36e\u003c/code\u003e\u003c/a\u003e [6.0.x] Added CVE-2025-13372 and CVE-2025-64460 to security archive.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/224fc79c02366158be05beaaa18ad557b0c9096a\"\u003e\u003ccode\u003e224fc79\u003c/code\u003e\u003c/a\u003e [6.0.x] Added stub release notes for 5.2.10.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/1dbd07a608e495a0c229edaaf84d58d8976313b5\"\u003e\u003ccode\u003e1dbd07a\u003c/code\u003e\u003c/a\u003e [6.0.x] Fixed CVE-2025-64460 -- Corrected quadratic inner text accumulation i...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/4.2.24...6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2-binary` from 2.9.10 to 2.9.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2-binary's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix building when pg_config returns an empty string (:ticket:\u003ccode\u003e[#1599](https://github.com/psycopg/psycopg2/issues/1599)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eWheel package bundled with OpenSSL 1.1.1v.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.6\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\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 href=\"https://github.com/psycopg/psycopg2/commit/fd9ae8cad2bcfc3e7e9410e7b6f07cda8f4f05ec\"\u003e\u003ccode\u003efd9ae8c\u003c/code\u003e\u003c/a\u003e chore: bump to version 2.9.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d923840546942534f0956d9202f914fd9feac5fd\"\u003e\u003ccode\u003ed923840\u003c/code\u003e\u003c/a\u003e chore: update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d42dc7169d3cd93517e282e9ef5dc2a2b40650a2\"\u003e\u003ccode\u003ed42dc71\u003c/code\u003e\u003c/a\u003e Merge branch 'fix-1791'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4fde6560c32f06ad1304404c9f7f86148dcc4be0\"\u003e\u003ccode\u003e4fde656\u003c/code\u003e\u003c/a\u003e fix: avoid failed assert passing more arguments than placeholders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/8308c19d6af0d904b313997539ed33415990a74e\"\u003e\u003ccode\u003e8308c19\u003c/code\u003e\u003c/a\u003e fix: drop warning about the use of deprecated PyWeakref_GetObject function\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1a1eabf098a3374409bb2ab4b594777b900f396d\"\u003e\u003ccode\u003e1a1eabf\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/github-script from 7 to 8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/897af8b38beda851d7257dfc525129e37c0ec9e0\"\u003e\u003ccode\u003e897af8b\u003c/code\u003e\u003c/a\u003e build(deps): bump peter-evans/repository-dispatch from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ceefd305117113ca10e383a626e87ba0796f3638\"\u003e\u003ccode\u003eceefd30\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4dc585430cabe94cee96c5a9de0265d0f55370f1\"\u003e\u003ccode\u003e4dc5854\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1945788dcf6172bb1b9328ebc3587ccf0e6a659c\"\u003e\u003ccode\u003e1945788\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1802\"\u003e#1802\u003c/a\u003e from edgarrmondragon/cp314-wheels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.10...2.9.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `celery` from 5.5.3 to 5.6.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/celery/celery/releases\"\u003ecelery's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.6.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix recursive WorkController instantiation in DjangoWorkerFixup + AttributeError when pool_cls is a string by \u003ca href=\"https://github.com/bruunotrindade\"\u003e\u003ccode\u003e@​bruunotrindade\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10045\"\u003ecelery/celery#10045\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix: Revoked tasks now immediately update backend status to REVOKED by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9869\"\u003ecelery/celery#9869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare for release: v5.6.2 by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10049\"\u003ecelery/celery#10049\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=\"https://github.com/bruunotrindade\"\u003e\u003ccode\u003e@​bruunotrindade\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10045\"\u003ecelery/celery#10045\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/celery/celery/compare/v5.6.1...v5.6.2\"\u003ehttps://github.com/celery/celery/compare/v5.6.1...v5.6.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.6.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix Redis Sentinel ACL authentication support by \u003ca href=\"https://github.com/anthonykuzmich7\"\u003e\u003ccode\u003e@​anthonykuzmich7\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10013\"\u003ecelery/celery#10013\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Broker heartbeats not sent during graceful shutdown by \u003ca href=\"https://github.com/weetster\"\u003e\u003ccode\u003e@​weetster\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9986\"\u003ecelery/celery#9986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs \u003ca href=\"https://redirect.github.com/celery/celery/issues/5410\"\u003e#5410\u003c/a\u003e -- Document confirm_publish broker transport option by \u003ca href=\"https://github.com/JaeHyuckSa\"\u003e\u003ccode\u003e@​JaeHyuckSa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10016\"\u003ecelery/celery#10016\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eclose DB pools only in prefork mode by \u003ca href=\"https://github.com/petrprikryl\"\u003e\u003ccode\u003e@​petrprikryl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10020\"\u003ecelery/celery#10020\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Avoid unnecessary Django database connection creation during cleanup by \u003ca href=\"https://github.com/snopoke\"\u003e\u003ccode\u003e@​snopoke\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10015\"\u003ecelery/celery#10015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ereliable prefork detection by \u003ca href=\"https://github.com/petrprikryl\"\u003e\u003ccode\u003e@​petrprikryl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10023\"\u003ecelery/celery#10023\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebetter coverage by \u003ca href=\"https://github.com/petrprikryl\"\u003e\u003ccode\u003e@​petrprikryl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10029\"\u003ecelery/celery#10029\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: clarify \u003ccode\u003eresult_extended\u003c/code\u003e vs periodic task metadata and show \u003ccode\u003eheaders[\u0026quot;periodic_task_name\u0026quot;]\u003c/code\u003e example by \u003ca href=\"https://github.com/SpaceShaman\"\u003e\u003ccode\u003e@​SpaceShaman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10030\"\u003ecelery/celery#10030\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStop importing pytest_subtests by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10032\"\u003ecelery/celery#10032\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly use exceptiongroup backport for Python \u0026lt; 3.11 by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10033\"\u003ecelery/celery#10033\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare for release: v5.6.1 by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10037\"\u003ecelery/celery#10037\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=\"https://github.com/anthonykuzmich7\"\u003e\u003ccode\u003e@​anthonykuzmich7\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10013\"\u003ecelery/celery#10013\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/weetster\"\u003e\u003ccode\u003e@​weetster\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9986\"\u003ecelery/celery#9986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JaeHyuckSa\"\u003e\u003ccode\u003e@​JaeHyuckSa\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10016\"\u003ecelery/celery#10016\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/snopoke\"\u003e\u003ccode\u003e@​snopoke\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10015\"\u003ecelery/celery#10015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SpaceShaman\"\u003e\u003ccode\u003e@​SpaceShaman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10030\"\u003ecelery/celery#10030\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/celery/celery/compare/v5.6.0...v5.6.1\"\u003ehttps://github.com/celery/celery/compare/v5.6.0...v5.6.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.6.0\u003c/h2\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003ch2\u003eKey Highlights\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.celeryq.dev/en/stable/history/whatsnew-5.6.html\"\u003eWhat's new in Celery 5.6\u003c/a\u003e for a complete overview or read the main highlights below.\u003c/p\u003e\n\u003ch3\u003ePython 3.9 Minimum Version\u003c/h3\u003e\n\u003cp\u003eCelery 5.6.0 drops support for Python 3.8 (EOL). The minimum required Python version is now 3.9. Users still on Python 3.8 must upgrade their Python version before upgrading to Celery 5.6.0.\u003c/p\u003e\n\u003cp\u003eAdditionally, this release includes initial support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eSQS: Reverted to \u003ccode\u003epycurl\u003c/code\u003e from \u003ccode\u003eurllib3\u003c/code\u003e\u003c/h3\u003e\n\u003cp\u003eThe switch from \u003ccode\u003epycurl\u003c/code\u003e to \u003ccode\u003eurllib3\u003c/code\u003e for the SQS transport (introduced in Celery 5.5.0 via Kombu) has been reverted due to critical issues affecting SQS users.\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 href=\"https://github.com/celery/celery/blob/main/Changelog.rst\"\u003ecelery's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.6.2\u003c/h1\u003e\n\u003cp\u003e:release-date: 2026-01-04\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eWhat's Changed\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Fix recursive WorkController instantiation in DjangoWorkerFixup + AttributeError when pool_cls is a string ([#10045](https://github.com/celery/celery/issues/10045))\n- Bugfix: Revoked tasks now immediately update backend status to REVOKED ([#9869](https://github.com/celery/celery/issues/9869))\n- Prepare for release: v5.6.2 ([#10049](https://github.com/celery/celery/issues/10049))\n\u003cp\u003e.. _version-5.6.1:\u003c/p\u003e\n\u003ch1\u003e5.6.1\u003c/h1\u003e\n\u003cp\u003e:release-date: 2025-12-29\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eWhat's Changed\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix Redis Sentinel ACL authentication support (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10013\"\u003e#10013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: Broker heartbeats not sent during graceful shutdown (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9986\"\u003e#9986\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edocs \u003ca href=\"https://redirect.github.com/celery/celery/issues/5410\"\u003e#5410\u003c/a\u003e -- Document confirm_publish broker transport option (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10016\"\u003e#10016\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclose DB pools only in prefork mode (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10020\"\u003e#10020\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: Avoid unnecessary Django database connection creation during cleanup (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10015\"\u003e#10015\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereliable prefork detection (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10023\"\u003e#10023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebetter coverage (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10029\"\u003e#10029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocs: clarify \u003ccode\u003eresult_extended\u003c/code\u003e vs periodic task metadata and show \u003ccode\u003eheaders[\u0026quot;periodic_task_name\u0026quot;]\u003c/code\u003e example (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10030\"\u003e#10030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStop importing pytest_subtests (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10032\"\u003e#10032\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOnly use exceptiongroup backport for Python \u0026lt; 3.11 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10033\"\u003e#10033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrepare for release: v5.6.1 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10037\"\u003e#10037\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _version-5.6.0:\u003c/p\u003e\n\u003ch1\u003e5.6.0\u003c/h1\u003e\n\u003cp\u003e:release-date: 2025-11-30\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003cp\u003eKey Highlights\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nSee :ref:`whatsnew-5.6` for a complete overview or read the main highlights below.\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt; \n\u003c/code\u003e\u003c/pre\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 href=\"https://github.com/celery/celery/commit/6a43c846f183ef0cbade24f4b9a8f7a6ea113b44\"\u003e\u003ccode\u003e6a43c84\u003c/code\u003e\u003c/a\u003e Prepare for release: v5.6.2 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10049\"\u003e#10049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/333a82f746734151c5cbe848916085455b0a3748\"\u003e\u003ccode\u003e333a82f\u003c/code\u003e\u003c/a\u003e Bugfix: Revoked tasks now immediately update backend status to REVOKED (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9869\"\u003e#9869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/9d6ab110d947270c4edf0b42454266d2954e653d\"\u003e\u003ccode\u003e9d6ab11\u003c/code\u003e\u003c/a\u003e Fix recursive WorkController instantiation in DjangoWorkerFixup + AttributeEr...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/21dbc73f81d2fae058de49e665afaa1cd92da5c0\"\u003e\u003ccode\u003e21dbc73\u003c/code\u003e\u003c/a\u003e Prepare for release: v5.6.1 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10037\"\u003e#10037\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/ba20bed7723c684d12ddd62d6a7c0c0d901b3351\"\u003e\u003ccode\u003eba20bed\u003c/code\u003e\u003c/a\u003e Only use exceptiongroup backport for Python \u0026lt; 3.11 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10033\"\u003e#10033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/21675299bc2d10c648448ec5221136e07c1eec1a\"\u003e\u003ccode\u003e2167529\u003c/code\u003e\u003c/a\u003e Stop importing pytest_subtests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/0527296acb1f1790788301d4395ba6d5ce2a9704\"\u003e\u003ccode\u003e0527296\u003c/code\u003e\u003c/a\u003e Bump google-cloud-firestore from 2.21.0 to 2.22.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/5f8659bdba4561796d66e938a1e2c71d4489562f\"\u003e\u003ccode\u003e5f8659b\u003c/code\u003e\u003c/a\u003e Clarify 'result_extended' setting usage in tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/f19db7008682c782d85e69b5ce736970491752ea\"\u003e\u003ccode\u003ef19db70\u003c/code\u003e\u003c/a\u003e Bump mypy from 1.19.0 to 1.19.1 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10028\"\u003e#10028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/6da72bde60553a1c350eef1e17d834d004ed099d\"\u003e\u003ccode\u003e6da72bd\u003c/code\u003e\u003c/a\u003e better coverage (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10029\"\u003e#10029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/celery/celery/compare/v5.5.3...v5.6.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `hiredis` from 3.2.1 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/hiredis-py/releases\"\u003ehiredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.3.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e by \u003ca href=\"https://github.com/zweizeichen\"\u003e\u003ccode\u003e@​zweizeichen\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\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 href=\"https://github.com/redis/hiredis-py/commit/187d0f387afed58a955a42ea8c5467100871f98b\"\u003e\u003ccode\u003e187d0f3\u003c/code\u003e\u003c/a\u003e Version 3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/3efcf037edc5a9f7abfaedbd3f60b2a03feb4787\"\u003e\u003ccode\u003e3efcf03\u003c/code\u003e\u003c/a\u003e Add Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/215\"\u003e#215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/966cede2c0ca0a8ac4fe0786571e5c230f39c36e\"\u003e\u003ccode\u003e966cede\u003c/code\u003e\u003c/a\u003e Fix assertion in reader.c (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/212\"\u003e#212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/78def309e58126fdaacb66e6fd40df9c46494062\"\u003e\u003ccode\u003e78def30\u003c/code\u003e\u003c/a\u003e Bump version to 3.3.0-dev\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/redis/hiredis-py/compare/v3.2.1...v3.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `brotli` from 1.1.0 to 1.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/google/brotli/releases\"\u003ebrotli's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.0\u003c/h2\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\u003c/li\u003e\n\u003cli\u003eCLI: \u003ccode\u003ebrcat\u003c/code\u003e alias; allow decoding concatenated brotli streams\u003c/li\u003e\n\u003cli\u003ekt: pure Kotlin decoder\u003c/li\u003e\n\u003cli\u003ecgo: support \u0026quot;raw\u0026quot; dictionaries\u003c/li\u003e\n\u003cli\u003ebuild: Bazel modules\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: dropped \u003ccode\u003efinalize()\u003c/code\u003e for native entities\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: in \u003ccode\u003ecompress\u003c/code\u003e pass correct length to native encoder\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebuild: install man pages\u003c/li\u003e\n\u003cli\u003ebuild: updated / fixed / refined Bazel buildfiles\u003c/li\u003e\n\u003cli\u003eencoder: faster encoding\u003c/li\u003e\n\u003cli\u003ecgo: link via pkg-config\u003c/li\u003e\n\u003cli\u003epython: modernize extension / allow multi-phase module initialization\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edecoder / encoder: static tables use \u0026quot;small\u0026quot; model (allows 2GiB+ binaries)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.0 RC2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed (compared to RC1)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epick changes from Debian patch by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1349\"\u003egoogle/brotli#1349\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epick changes from Alpine patch by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1348\"\u003egoogle/brotli#1348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epick VCPKG patches by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1350\"\u003egoogle/brotli#1350\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix copy-paste in Java decoder by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1357\"\u003egoogle/brotli#1357\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.0 RC1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eIMPORTANT\u003c/strong\u003e: though this is a pre-release for v1.2.0, it is expected that some changes will be added before release; most notably concerning build files: patches applied by Alpine, Debian, Conan, VCPKG will be partially/fully integrated.\u003c/p\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\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 href=\"https://github.com/google/brotli/blob/master/CHANGELOG.md\"\u003ebrotli's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.2.0] - 2025-10-27\u003c/h2\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\u003c/li\u003e\n\u003cli\u003eCLI: \u003ccode\u003ebrcat\u003c/code\u003e alias; allow decoding concatenated brotli streams\u003c/li\u003e\n\u003cli\u003ekt: pure Kotlin decoder\u003c/li\u003e\n\u003cli\u003ecgo: support \u0026quot;raw\u0026quot; dictionaries\u003c/li\u003e\n\u003cli\u003ebuild: Bazel modules\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: dropped \u003ccode\u003efinalize()\u003c/code\u003e for native entities\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: in \u003ccode\u003ecompress\u003c/code\u003e pass correct length to native encoder\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebuild: install man pages\u003c/li\u003e\n\u003cli\u003ebuild: updated / fixed / refined Bazel buildfiles\u003c/li\u003e\n\u003cli\u003eencoder: faster encoding\u003c/li\u003e\n\u003cli\u003ecgo: link via pkg-config\u003c/li\u003e\n\u003cli\u003epython: modernize extension / allow multi-phase module initialization\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edecoder / encoder: static tables use \u0026quot;small\u0026quot; model (allows 2GiB+ binaries)\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 href=\"https://github.com/google/brotli/commit/028fb5a23661f123017c060daa546b55cf4bde29\"\u003e\u003ccode\u003e028fb5a\u003c/code\u003e\u003c/a\u003e release v1.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/390de5b472ec8c40a7b8e5029e47fd6493f7a755\"\u003e\u003ccode\u003e390de5b\u003c/code\u003e\u003c/a\u003e build and test csharp decoder\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/3499acbb7ac7818c1b929a8c9c5c5f8a634751da\"\u003e\u003ccode\u003e3499acb\u003c/code\u003e\u003c/a\u003e regenerate go/kt/js/ts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/8ca2312c61f1f5853be0708f9b1d6a6ad002d2a4\"\u003e\u003ccode\u003e8ca2312\u003c/code\u003e\u003c/a\u003e fix release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/ee771daf20bab6533cbc629407c50cff1c87d9f1\"\u003e\u003ccode\u003eee771da\u003c/code\u003e\u003c/a\u003e fix copy-paste in Java decoder\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/42aee3289154cb3e8db1c7a8ebfa639c857578b9\"\u003e\u003ccode\u003e42aee32\u003c/code\u003e\u003c/a\u003e try to fix release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/392c06bac05cc1d098ab105cbbda766f19853d92\"\u003e\u003ccode\u003e392c06b\u003c/code\u003e\u003c/a\u003e redesign release resource uploading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/1964cdb1b9e16a2a0c27fbd3b2a3bccb2c1a8294\"\u003e\u003ccode\u003e1964cdb\u003c/code\u003e\u003c/a\u003e ramp up all GH actions plugins\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/61605b1cb34ba84ae71c13b383d850a59cac85b2\"\u003e\u003ccode\u003e61605b1\u003c/code\u003e\u003c/a\u003e pick VCPKG patches\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/4b0f27b6f985b4301ad5cec4a31b9792ecf252bc\"\u003e\u003ccode\u003e4b0f27b\u003c/code\u003e\u003c/a\u003e pick changes from Alpine patch\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/google/brotli/compare/go/cbrotli/v1.1.0...v1.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-compressor` from 4.5.1 to 4.6.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-compressor/django-compressor/blob/develop/docs/changelog.txt\"\u003edjango-compressor's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003ev4.6 (2025-11-10)\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003eFull list of changes from v4.5.1 \u0026lt;https://github.com/django-compressor/django-compressor/compare/4.5.1...4.6\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed compatibility with latest BS4.\u003c/li\u003e\n\u003cli\u003eRemoved top pin for rcssmin and rjsmin dependencies.\u003c/li\u003e\n\u003cli\u003eAvoid compressing the same node concurrently in offline compression.\u003c/li\u003e\n\u003cli\u003eAvoid use of deprecated ast.Constant.s\u003c/li\u003e\n\u003cli\u003eOfficially support Django 6.0\u003c/li\u003e\n\u003cli\u003eOfficially support Django 5.2\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Django 5.0\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 3.9.\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 3.8.\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 href=\"https://github.com/django-compressor/django-compressor/commit/3ada994897cf982f97fc4c934be42eb1e0b71b9a\"\u003e\u003ccode\u003e3ada994\u003c/code\u003e\u003c/a\u003e Prepare 4.6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/1baa82a6cf6942eb12007217f26195a95df727e2\"\u003e\u003ccode\u003e1baa82a\u003c/code\u003e\u003c/a\u003e Remove CI testing for EOL Django 5.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/8706a52b740e7555abefc8fba1eaae1986ded1a5\"\u003e\u003ccode\u003e8706a52\u003c/code\u003e\u003c/a\u003e Add CI testing for Python 3.14 and Django 6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/7be9ce2cefedf59302207728e383fa7811232d59\"\u003e\u003ccode\u003e7be9ce2\u003c/code\u003e\u003c/a\u003e Bump brotli, lxml, and coverage test dependencies.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/d6fd8136febd1ba409b366c7471db8763522d91d\"\u003e\u003ccode\u003ed6fd813\u003c/code\u003e\u003c/a\u003e Remove test version pinning for rcssmin and rjsmin.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/2b46e7d1724109ebb5db49b76f008dc039f0a9db\"\u003e\u003ccode\u003e2b46e7d\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1307\"\u003e#1307\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/b97bb05836eb6a42d2746d43792e9d13f041b615\"\u003e\u003ccode\u003eb97bb05\u003c/code\u003e\u003c/a\u003e Disable bs4's multi valued attributes (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1296\"\u003e#1296\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/4e5433076300508e1c3648da3345ae606386eb3f\"\u003e\u003ccode\u003e4e54330\u003c/code\u003e\u003c/a\u003e Migrate packaging to pyproject.toml (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1313\"\u003e#1313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/872f8d52ce51957bccf4a91338d177c2ea4a3908\"\u003e\u003ccode\u003e872f8d5\u003c/code\u003e\u003c/a\u003e Remove version pinning for rcssmin and rjsmin (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1312\"\u003e#1312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/cc38666efb13c6e0b355cf273f56b783d7157e29\"\u003e\u003ccode\u003ecc38666\u003c/code\u003e\u003c/a\u003e Drop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1311\"\u003e#1311\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-compressor/django-compressor/compare/4.5.1...4.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-post-office` from 3.10.1 to 3.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ui/django-post_office/releases\"\u003edjango-post-office's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded Python 3.14 and Django 6.0 compatibility. Thanks \u003ca href=\"https://github.com/selwin\"\u003e\u003ccode\u003e@​selwin\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eReplaced \u003ccode\u003ebleach\u003c/code\u003e with \u003ccode\u003enh3\u003c/code\u003e for HTML sanitization. \u003ccode\u003ebleach\u003c/code\u003e has been deprecated since 2023. Thanks \u003ca href=\"https://github.com/selwin\"\u003e\u003ccode\u003e@​selwin\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eSESWebhookHandler\u003c/code\u003e and \u003ccode\u003eSparkPostWebhookHandler\u003c/code\u003e for handling webhook events (beta feature). Thanks \u003ca href=\"https://github.com/selwin\"\u003e\u003ccode\u003e@​selwin\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eOptimized the way templates are fetched during email delivery. Thanks \u003ca href=\"https://github.com/selwin\"\u003e\u003ccode\u003e@​selwin\u003c/code\u003e\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 href=\"https://github.com/ui/django-post_office/blob/master/CHANGELOG.md\"\u003edjango-post-office's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003eUnreleased\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplaced \u003ccode\u003ebleach\u003c/code\u003e with \u003ccode\u003enh3\u003c/code\u003e for HTML sanitization. \u003ccode\u003ebleach\u003c/code\u003e has been deprecated since 2023. Thanks \u003ca href=\"https://github.com/selwin\"\u003e\u003ccode\u003e@​selwin\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eSESWebhookHandler\u003c/code\u003e and \u003ccode\u003eSparkPostWebhookHandler\u003c/code\u003e for handling webhook events (beta feature). Thanks \u003ca href=\"https://github.com/selwin\"\u003e\u003ccode\u003e@​selwin\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eOptimized the way templates are fetched during email delivery. Thanks \u003ca href=\"https://github.com/selwin\"\u003e\u003ccode\u003e@​selwin\u003c/code\u003e\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 href=\"https://github.com/ui/django-post_office/commit/825af68a79bce78acb18c945d1f3acd5935a975b\"\u003e\u003ccode\u003e825af68\u003c/code\u003e\u003c/a\u003e Bump version to 3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/99be3b50a904d84f35fecb14f6c64575611a2e8a\"\u003e\u003ccode\u003e99be3b5\u003c/code\u003e\u003c/a\u003e Delete publish.yml (\u003ca href=\"https://redirect.github.com/ui/django-post_office/issues/513\"\u003e#513\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/a360b7946a0b8a777e0764ab7423749f7686716b\"\u003e\u003ccode\u003ea360b79\u003c/code\u003e\u003c/a\u003e Improve tests (\u003ca href=\"https://redirect.github.com/ui/django-post_office/issues/509\"\u003e#509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/fe7c583512845d31685245b783a502bfc221c0c6\"\u003e\u003ccode\u003efe7c583\u003c/code\u003e\u003c/a\u003e Python314 fix (\u003ca href=\"https://redirect.github.com/ui/django-post_office/issues/511\"\u003e#511\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/0556f5eaaffbbbb29bd3db2ad0c2ef2086595971\"\u003e\u003ccode\u003e0556f5e\u003c/code\u003e\u003c/a\u003e Updated test.yml so tests don't get triggered twice (\u003ca href=\"https://redirect.github.com/ui/django-post_office/issues/512\"\u003e#512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/00ddbc165e597af2967fa3fcd3f34a66d0659ae3\"\u003e\u003ccode\u003e00ddbc1\u003c/code\u003e\u003c/a\u003e Webhooks (\u003ca href=\"https://redirect.github.com/ui/django-post_office/issues/510\"\u003e#510\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/936d1ac816ffd3cf734bd77f0bb7ec17082793f3\"\u003e\u003ccode\u003e936d1ac\u003c/code\u003e\u003c/a\u003e Updated README.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/91fbc6c28be60288961521520581d20745b3320c\"\u003e\u003ccode\u003e91fbc6c\u003c/code\u003e\u003c/a\u003e Webhook handlers (\u003ca href=\"https://redirect.github.com/ui/django-post_office/issues/505\"\u003e#505\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/0f68aaf444779682ea3d8806a5f46dea1a753e08\"\u003e\u003ccode\u003e0f68aaf\u003c/code\u003e\u003c/a\u003e Merge branch 'webhooks'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/5b7fdf9989517b1e740cc725ae635833dc376a12\"\u003e\u003ccode\u003e5b7fdf9\u003c/code\u003e\u003c/a\u003e Move tests (\u003ca href=\"https://redirect.github.com/ui/django-post_office/issues/508\"\u003e#508\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ui/django-post_office/compare/v3.10.1...v3.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `drf-yasg` from 1.21.10 to 1.21.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/axnsan12/drf-yasg/releases\"\u003edrf-yasg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.21.11\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/917\"\u003e#917\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/916\"\u003e#916\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/926\"\u003e#926\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/922\"\u003e#922\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/928\"\u003e#928\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/923\"\u003e#923\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/848\"\u003e#848\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/903\"\u003e#903\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 href=\"https://github.com/axnsan12/drf-yasg/blob/master/docs/changelog.rst\"\u003edrf-yasg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e#########\nChangelog\n#########\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.11\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (:pr:\u003ccode\u003e917\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (:pr:\u003ccode\u003e916\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (:pr:\u003ccode\u003e926\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (:pr:\u003ccode\u003e922\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (:pr:\u003ccode\u003e928\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (:pr:\u003ccode\u003e923\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (:pr:\u003ccode\u003e848\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (:pr:\u003ccode\u003e903\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.10\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix type hints when using postponed evaluation of annotations (PEP-563) (:pr:\u003ccode\u003e840\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update JSON \u0026amp; YAML renderers to not use a \u0026quot;.\u0026quot; in their format string (:pr:\u003ccode\u003e911\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix lint errors when comparing types with == instead of is (:pr:\u003ccode\u003e868\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update swagger-ui-dist to address CVE-2021-46708 (:pr:\u003ccode\u003e904\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.9\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Added support for zoneinfo object fields (:pr:\u003ccode\u003e908\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.8\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Python 3.11 and 3.12 support (:pr:\u003ccode\u003e891\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix pkg_resources version lookups for Python 3.9+ (:pr:\u003ccode\u003e891\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.7\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cem\u003eRelease date: Jul 20, 2023\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Added \u003ccode\u003edrf_yasg.inspectors.query.DrfAPICompatInspector\u003c/code\u003e (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Added \u003ccode\u003eDrfAPICompatInspector\u003c/code\u003e to serve as a replacement \u003ccode\u003eCoreAPICompatInspector\u003c/code\u003e (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow \u003ccode\u003eDEFAULT_SPEC_RENDERERS\u003c/code\u003e default renderers to be overriden in the settings (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fixed redoc source mapping (:pr:\u003ccode\u003e859\u003c/code\u003e)\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/f8cb2db70ca42fb709565f89fdd152b614dc865d\"\u003e\u003ccode\u003ef8cb2db\u003c/code\u003e\u003c/a\u003e Add version 1.21.11 details to the changelog (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/939\"\u003e#939\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/0c6d08d5ebc52e802e5e1acbabbadfe179d4087d\"\u003e\u003ccode\u003e0c6d08d\u003c/code\u003e\u003c/a\u003e Update the ruff lint rules (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/920\"\u003e#920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/055a74dc10128fd55a48f7f74f6b58ffcc48e83d\"\u003e\u003ccode\u003e055a74d\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 in the github-actions group (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/937\"\u003e#937\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/a8813ace8e39cc2c28a916053c74415e10db1425\"\u003e\u003ccode\u003ea8813ac\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 in the github-actions group (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/936\"\u003e#936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/9f4b44943ad930e23e979b80090102dfca1d588b\"\u003e\u003ccode\u003e9f4b449\u003c/code\u003e\u003c/a\u003e Restore the live demo and replace heroku with apprunner (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/935\"\u003e#935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/298325122e11aeba87e6c8f16604e45d870649e7\"\u003e\u003ccode\u003e2983251\u003c/code\u003e\u003c/a\u003e fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/a74689370c393432debbe6285b3afb3e462aee58\"\u003e\u003ccode\u003ea746893\u003c/code\u003e\u003c/a\u003e allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/916\"\u003e#916\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/e747ad6db413c2d20c3eab79739e22ffde5930c7\"\u003e\u003ccode\u003ee747ad6\u003c/code\u003e\u003c/a\u003e Fixes issue with filter parameters not appearing in Swagger after upgrading t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/ee3c871501dad5f0585c8c62ac0659fedab999a1\"\u003e\u003ccode\u003eee3c871\u003c/code\u003e\u003c/a\u003e update Python, Django, and DRF versions \u0026amp; packaging configuration (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/922\"\u003e#922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/be6eeedcbebcb45151a9d18018d880d1fcdcf143\"\u003e\u003ccode\u003ebe6eeed\u003c/code\u003e\u003c/a\u003e Remove usage of pkg_resources (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/928\"\u003e#928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/axnsan12/drf-yasg/compare/1.21.10...1.21.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jellyfish` from 1.2.0 to 1.2.1\n\nUpdates `markdown` from 3.9 to 3.10\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/releases\"\u003emarkdown's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.10.0\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\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 href=\"https://github.com/Python-Markdown/markdown/blob/master/docs/changelog.md\"\u003emarkdown's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003etitle: Changelog\ntoc_depth: 2\u003c/p\u003e\n\u003ch1\u003ePython-Markdown Changelog\u003c/h1\u003e\n\u003cp\u003eAll notable changes to this project will be documented in this file.\u003c/p\u003e\n\u003cp\u003eThe format is based on \u003ca href=\"https://keepachangelog.com/en/1.1.0/\"\u003eKeep a Changelog\u003c/a\u003e,\nand this project adheres to the\n\u003ca href=\"https://packaging.python.org/en/latest/specifications/version-specifiers/\"\u003ePython Version Specification\u003c/a\u003e.\nSee the \u003ca href=\"https://github.com/Python-Markdown/markdown/blob/master/docs/contributing.md\"\u003eContributing Guide\u003c/a\u003e for details.\u003c/p\u003e\n\u003ch2\u003e[Unreleased]\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure nested elements inside inline comments are properly unescaped (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1571\"\u003e#1571\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eMake the docs build successfully with mkdocstrings-python 2.0 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1575\"\u003e#1575\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix infinite loop when multiple bogus or unclosed HTML comments appear in input (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1578\"\u003e#1578\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.10.0] - 2025-11-03\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.9.0] - 2025-09-04\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFootnotes are now ordered by the occurrence of their references in the\ndocument. A new configuration option for the footnotes extension,\n\u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e, has been added to support restoring the previous\nbehavior of ordering footnotes by the occurrence of definitions (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1367\"\u003e#1367\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure inline processing iterates through elements in document order (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1546\"\u003e#1546\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix handling of incomplete HTML tags in code spans in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1547\"\u003e#1547\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.8.2] - 2025-06-19\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/22e89c1fc346f72218a10e392a0c3b4731912522\"\u003e\u003ccode\u003e22e89c1\u003c/code\u003e\u003c/a\u003e Bump version to 3.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/c138aea5139a6aceae05bb957e866d9ce7577b94\"\u003e\u003ccode\u003ec138aea\u003c/code\u003e\u003c/a\u003e + PY314 - PY39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/746f7f527b15f63845253e3b86947b806ef1b98f\"\u003e\u003ccode\u003e746f7f5\u003c/code\u003e\u003c/a\u003e cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/a5ee2b4aad05531898ab8fd726c7ece31ddadf8b\"\u003e\u003ccode\u003ea5ee2b4\u003c/code\u003e\u003c/a\u003e Revert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/5354daf618149f92580a1407c036115753c5df73\"\u003e\u003ccode\u003e5354daf\u003c/code\u003e\u003c/a\u003e Fix an HTML comment parsing case that can cause an infinite loop\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Python-Markdown/markdown/compare/3.9.0...3.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyyaml` from 6.0.2 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/yaml/pyyaml/releases\"\u003epyyaml's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14 and free-threading (experimental).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ehttps://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\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 href=\"https://github.com/yaml/pyyaml/blob/6.0.3/CHANGES\"\u003epyyaml's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e6.0.3 (2025-09-25)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/yaml/pyyaml/pull/864\"\u003eyaml/pyyaml#864\u003c/a\u003e -- Support for Python 3.14 and free-threading (experimental)\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 href=\"https://github.com/yaml/pyyaml/commit/49790e73684bebad1df05ef8d828fa12f685bffb\"\u003e\u003ccode\u003e49790e7\u003c/code\u003e\u003c/a\u003e Release 6.0.3 (\u003ca href=\"https://redirect.github.com/yaml/pyyaml/issues/889\"\u003e#889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xlsxwriter` from 3.2.5 to 3.2.9\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jmcnamara/XlsxWriter/blob/main/Changes\"\u003exlsxwriter's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.2.9 - September 16 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved the \u003ccode\u003epy.typed\u003c/code\u003e file since it was causing a lot of downstream CI\nfailures where consumers weren't handling the xlsxwriter types correctly or\ntaking them into account.\u003c/p\u003e\n\u003cp\u003eThe file will be re-added once the xlsxwriter typing is more comprehensive.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.2.8 - September 14 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003emypy\u003c/code\u003e implicit export error caused by the \u003ccode\u003eWorkbook()\u003c/code\u003e type\nannotations changes in v3.2.7 and v3.2.6.\u003c/p\u003e\n\u003cp\u003e:issue:\u003ccode\u003e1154\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.2.7 - September 13 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed typing issue in \u003ccode\u003eWorkbook()\u003c/code\u003e constructor.\u003c/p\u003e\n\u003cp\u003e:issue:\u003ccode\u003e1152\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.2.6 - September 12 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded an option to position custom data labels in the same way that the data\nlabels can be positioned for the entire series.\u003c/p\u003e\n\u003cp\u003e:feature:\u003ccode\u003e1147\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd border, fill, gradient and pattern formatting options for\nchart titles and also chart axis titles.\u003c/p\u003e\n\u003cp\u003e:feature:\u003ccode\u003e957\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd additional type annotations. This is an ongoing refactoring.\u003c/p\u003e\n\u003cp\u003e:feature:\u003ccode\u003e1123\u003c/code\u003e.\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 href=\"https://github.com/jmcnamara/XlsxWriter/commit/e943bee8c9cdf0661cfdb83d5497e0725390e41e\"\u003e\u003ccode\u003ee943bee\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/392bd9e6572785394c6553e2d4f7ae2bb80782f4\"\u003e\u003ccode\u003e392bd9e\u003c/code\u003e\u003c/a\u003e typing: remove py.typed file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/eb99afecdd0050209835f9f237d580dc53e42afa\"\u003e\u003ccode\u003eeb99afe\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/5ec29826d5e398bb5adebaabafbeb9d443a6ed8c\"\u003e\u003ccode\u003e5ec2982\u003c/code\u003e\u003c/a\u003e workbook: add explicit export for mypy compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/ca85cbb03a5898c9e7b66c78ac67a365e7f53002\"\u003e\u003ccode\u003eca85cbb\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/3710251aaaa9524ee302ec04608bfc1b577d4ba5\"\u003e\u003ccode\u003e3710251\u003c/code\u003e\u003c/a\u003e typing: add more supported types to Workbook() constructor\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/27db7a14672bfe1a18f29dfbab646aa0149a369b\"\u003e\u003ccode\u003e27db7a1\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/f05067654b42283557c3621e411b6fbadb7051b6\"\u003e\u003ccode\u003ef050676\u003c/code\u003e\u003c/a\u003e docs: add CI spell check\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/60f708cc1e10c0c66ae870be4f350f45a9d3ecc8\"\u003e\u003ccode\u003e60f708c\u003c/code\u003e\u003c/a\u003e chart: add axis title formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/53dc08e5d240310c88bbfce8d1a42330ae256535\"\u003e\u003ccode\u003e53dc08e\u003c/code\u003e\u003c/a\u003e chart: add chart title formatting options\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jmcnamara/XlsxWriter/compare/RELEASE_3.2.5...RELEASE_3.2.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xmltodict` from 0.15.1 to 1.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/martinblech/xmltodict/releases\"\u003exmltodict's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.0.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.1...v1.0.2\"\u003e1.0.2\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eallow DOCTYPE with disable_entities=True (default) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/25b61a41f580cfc211df07c5fbbf603bd8eb5a5f\"\u003e25b61a4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.0...v1.0.1\"\u003e1.0.1\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efail closed when entities disabled (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c986d2d37a93d45fcc059b09063d9d9c45a655ec\"\u003ec986d2d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003evalidate XML comments (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/3d4d2d3a4cd0f68d1211dba549010261fa87b969\"\u003e3d4d2d3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd SECURITY.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/64130233c8fea272a5f82f2f585e1593523ec1b1\"\u003e6413023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify behavior for empty lists (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2025b5cb5e64fc9c4d54b8644187a0a193bdd0ed\"\u003e2025b5c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify process_comments docs (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/6b464fce284a93dbb292f3d063c9f310a478a014\"\u003e6b464fc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify strip whitespace comment behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/b3e22032d21cc387d6cecf3930116e8fdc3151cf\"\u003eb3e2203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ecreate AGENTS.md for coding agents (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/0da66ee797ced7479312aecef92c6a25e235007c\"\u003e0da66ee\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace travis with actions badge (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2576b94c918fbd154489a95dbbb3feda8bd3cbd8\"\u003e2576b94\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate CONTRIBUTING.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/db3918057cf125af989a1263d52df8df5ef8c642\"\u003edb39180\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v0.15.1...v1.0.0\"\u003e1.0.0\u003c/a\u003e (2025-09-12)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emodernize for Python 3.9+; drop legacy compat paths\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add limited XML comment round-trip; unify \u003ccode\u003e_emit\u003c/code\u003e behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/e43537eee61c20ef50f0e4242eb9223de7a6aefd\"\u003ee43537e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add selective \u003ccode\u003eforce_cdata\u003c/code\u003e support (bool/tuple/callable) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/a497fedb7d6103d68af155543ac3337a73778b19\"\u003ea497fed\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/375\"\u003e#375\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003enamespaces:\u003c/strong\u003e attach \u003ccode\u003e[@xmlns](https://github.com/xmlns)\u003c/code\u003e to declaring element when process_namespaces=True (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/f0322e578184421693434902547f330f4f0a44c3\"\u003ef0322e5\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/163\"\u003e#163\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e avoid parent accumulation at item_depth; add regression tests (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/220240c5eb2d12b75adf26cc84ec9c803ce8bb2b\"\u003e220240c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e handle non-string \u003ccode\u003e#text\u003c/code\u003e with attributes; unify value conversion (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/927a025ae8a62cbb542d5caff38b29161a2096fa\"\u003e927a025\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/366\"\u003e#366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e skip empty lists to keep pretty/compact outputs consistent (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/ab4c86fed24dc8ef0e932a524edfb01c6453ecf6\"\u003eab4c86f\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/martinblech/xmltodict/blob/master/CHANGELOG.md\"\u003exmltodict's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.1...v1.0.2\"\u003e1.0.2\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eallow DOCTYPE with disable_entities=True (default) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/25b61a41f580cfc211df07c5fbbf603bd8eb5a5f\"\u003e25b61a4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.0...v1.0.1\"\u003e1.0.1\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efail closed when entities disabled (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c986d2d37a93d45fcc059b09063d9d9c45a655ec\"\u003ec986d2d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003evalidate XML comments (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/3d4d2d3a4cd0f68d1211dba549010261fa87b969\"\u003e3d4d2d3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd SECURITY.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/64130233c8fea272a5f82f2f585e1593523ec1b1\"\u003e6413023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify behavior for empty lists (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2025b5cb5e64fc9c4d54b8644187a0a193bdd0ed\"\u003e2025b5c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify process_comments docs (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/6b464fce284a93dbb292f3d063c9f310a478a014\"\u003e6b464fc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify strip whitespace comment behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/b3e22032d21cc387d6cecf3930116e8fdc3151cf\"\u003eb3e2203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ecreate AGENTS.md for coding agents (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/0da66ee797ced7479312aecef92c6a25e235007c\"\u003e0da66ee\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace travis with actions badge (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2576b94c918fbd154489a95dbbb3feda8bd3cbd8\"\u003e2576b94\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate CONTRIBUTING.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/db3918057cf125af989a1263d52df8df5ef8c642\"\u003edb39180\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v0.15.1...v1.0.0\"\u003e1.0.0\u003c/a\u003e (2025-09-12)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emodernize for Python 3.9+; drop legacy compat paths\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add limited XML comment round-trip; unify \u003ccode\u003e_emit\u003c/code\u003e behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/e43537eee61c20ef50f0e4242eb9223de7a6aefd\"\u003ee43537e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add selective \u003ccode\u003eforce_cdata\u003c/code\u003e support (bool/tuple/callable) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/a497fedb7d6103d68af155543ac3337a73778b19\"\u003ea497fed\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/375\"\u003e#375\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003enamespaces:\u003c/strong\u003e attach \u003ccode\u003e[@xmlns](https://github.com/xmlns)\u003c/code\u003e to declaring element when process_namespaces=True (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/f0322e578184421693434902547f330f4f0a44c3\"\u003ef0322e5\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/163\"\u003e#163\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e avoid parent accumulation at item_depth; add regression tests (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/220240c5eb2d12b75adf26cc84ec9c803ce8bb2b\"\u003e220240c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e handle non-string \u003ccode\u003e#text\u003c/code\u003e with attributes; unify value conversion (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/927a025ae8a62cbb542d5caff38b29161a2096fa\"\u003e927a025\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/366\"\u003e#366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e skip empty lists to keep pretty/compact outputs consistent (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/ab4c86fed24dc8ef0e932a524edfb01c6453ecf6\"\u003eab4c86f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eReverts\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove initial Release Drafter config (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c0b74ed58f933bffd160c60a58620f672710ff7c\"\u003ec0b74ed\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 href=\"https://github.com/martinblech/xmltodict/commit/d079849136b031c471ec96a168ad7859ed5994ff\"\u003e\u003ccode\u003ed079849\u003c/code\u003e\u003c/a\u003e chore(master): release 1.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/25b61a41f580cfc211df07c5fbbf603bd8eb5a5f\"\u003e\u003ccode\u003e25b61a4\u003c/code\u003e\u003c/a\u003e fix: allow DOCTYPE with disable_entities=True (default)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/a2a9ab7e0692a62f64d97ff12553d0d53368c854\"\u003e\u003ccode\u003ea2a9ab7\u003c/code\u003e\u003c/a\u003e ci(publish): allow uploading release assets\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/656e6af9543e640fda7e96d6bdd6e693756687be\"\u003e\u003ccode\u003e656e6af\u003c/code\u003e\u003c/a\u003e chore(master): release 1.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c986d2d37a93d45fcc059b09063d9d9c45a655ec\"\u003e\u003ccode\u003ec986d2d\u003c/code\u003e\u003c/a\u003e fix: fail closed when entities disabled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/3d4d2d3a4cd0f68d1211dba549010261fa87b969\"\u003e\u003ccode\u003e3d4d2d3\u003c/code\u003e\u003c/a\u003e fix: validate XML comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/b4a5f2a3f04aff68384486e957632c8438396fd6\"\u003e\u003ccode\u003eb4a5f2a\u003c/code\u003e\u003c/a\u003e refactor: remove jython-specific parsing branches\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/6b464fce284a93dbb292f3d063c9f310a478a014\"\u003e\u003ccode\u003e6b464fc\u003c/code\u003e\u003c/a\u003e docs: clarify process_comments docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/34daa304d443e49113d195294d99c6f58ce4714c\"\u003e\u003ccode\u003e34daa30\u003c/code\u003e\u003c/a\u003e refactor: remove unused helper functions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2025b5cb5e64fc9c4d54b8644187a0a193bdd0ed\"\u003e\u003ccode\u003e2025b5c\u003c/code\u003e\u003c/a\u003e docs: clarify behavior for empty lists\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/martinblech/xmltodict/compare/v0.15.1...v1.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xmlschema` from 4.1.0 to 4.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sissaschool/xmlschema/releases\"\u003exmlschema's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.2.0 (2025-10-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd arguments validation for schemas and validation methods (by validation contexts)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSchemaSettings\u003c/code\u003e dataclass for storing read-only settings for schema instances\nand for managing package default settings\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eblock\u003c/em\u003e argument to \u003ccode\u003eXMLResource\u003c/code\u003e class (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/464\"\u003e#464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_SCHEMA_SOURCES\u003c/em\u003e package limit (\u003ccode\u003e1000\u003c/code\u003e, applied to \u003ccode\u003eXsdGlobals\u003c/code\u003e global maps instances)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_XML_ELEMENTS\u003c/em\u003e package limit (\u003ccode\u003e1,000,000\u003c/code\u003e, applied to non-lazy \u003ccode\u003eXMLResource\u003c/code\u003e instances)\u003c/li\u003e\n\u003cli\u003eReduce \u003cem\u003eMAX_XML_DEPTH\u003c/em\u003e limit to 1000 and apply it to all \u003ccode\u003eXMLResource\u003c/code\u003e instances\u003c/li\u003e\n\u003cli\u003eFix for substitute match in case of unexpected child (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\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 href=\"https://github.com/sissaschool/xmlschema/blob/master/CHANGELOG.rst\"\u003exmlschema's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ccode\u003ev4.2.0\u003c/code\u003e_ (2025-10-14)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd arguments validation for schemas and validation methods (by validation contexts)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSchemaSettings\u003c/code\u003e dataclass for storing read-only settings for schema instances\nand for managing package default settings\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eblock\u003c/em\u003e argument to \u003ccode\u003eXMLResource\u003c/code\u003e class (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/464\"\u003e#464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_SCHEMA_SOURCES\u003c/em\u003e package limit (\u003ccode\u003e1000\u003c/code\u003e, applied to \u003ccode\u003eXsdGlobals\u003c/code\u003e global maps instances)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_XML_ELEMENTS\u003c/em\u003e package limit (\u003ccode\u003e1,000,000\u003c/code\u003e, applied to non-lazy \u003ccode\u003eXMLResource\u003c/code\u003e instances)\u003c/li\u003e\n\u003cli\u003eReduce \u003cem\u003eMAX_XML_DEPTH\u003c/em\u003e limit to 1000 and apply it to all \u003ccode\u003eXMLResource\u003c/code\u003e instances\u003c/li\u003e\n\u003cli\u003eFix for substitute match in case of unexpected child (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\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 href=\"https://github.com/sissaschool/xmlschema/commit/2783030fcdcd5307563822906862a9e7088931b2\"\u003e\u003ccode\u003e2783030\u003c/code\u003e\u003c/a\u003e Bump minor release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/...\n\n_Description has been truncated_","html_url":"https://github.com/chrislkl/seed/pull/11","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrislkl%2Fseed/issues/11","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/11/packages"}},{"old_version":"2.0.30","new_version":"2.0.31","update_type":"patch","path":null,"pr_created_at":"2025-12-22T06:28:36.000Z","version_change":"2.0.30 → 2.0.31","issue":{"uuid":"3752501390","node_id":"PR_kwDOQDraYs66Ev1g","number":10,"state":"closed","title":"deps: bump the prod-deps group across 1 directory with 34 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-01-05T06:30:08.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-22T06:28:36.000Z","updated_at":"2026-01-05T06:30:10.000Z","time_to_close":1209692,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps: bump","group_name":"prod-deps","update_count":34,"packages":[{"name":"django","old_version":"4.2.24","new_version":"6.0","repository_url":"https://github.com/django/django"},{"name":"psycopg2-binary","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"celery","old_version":"5.5.3","new_version":"5.6.0","repository_url":"https://github.com/celery/celery"},{"name":"hiredis","old_version":"3.2.1","new_version":"3.3.0","repository_url":"https://github.com/redis/hiredis-py"},{"name":"brotli","old_version":"1.1.0","new_version":"1.2.0","repository_url":"https://github.com/google/brotli"},{"name":"django-compressor","old_version":"4.5.1","new_version":"4.6.0","repository_url":"https://github.com/django-compressor/django-compressor"},{"name":"drf-yasg","old_version":"1.21.10","new_version":"1.21.11","repository_url":"https://github.com/axnsan12/drf-yasg"},{"name":"jellyfish","old_version":"1.2.0","new_version":"1.2.1"},{"name":"markdown","old_version":"3.9","new_version":"3.10","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"xlsxwriter","old_version":"3.2.5","new_version":"3.2.9","repository_url":"https://github.com/jmcnamara/XlsxWriter"},{"name":"xmltodict","old_version":"0.15.1","new_version":"1.0.2","repository_url":"https://github.com/martinblech/xmltodict"},{"name":"xmlschema","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/sissaschool/xmlschema"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"shapely","old_version":"2.0.7","new_version":"2.1.2","repository_url":"https://github.com/shapely/shapely"},{"name":"django-treebeard","old_version":"4.7.1","new_version":"4.8.0","repository_url":"https://github.com/django-treebeard/django-treebeard"},{"name":"django-two-factor-auth","old_version":"1.17.0","new_version":"1.18.1"},{"name":"importlib-metadata","old_version":"8.7.0","new_version":"8.7.1","repository_url":"https://github.com/python/importlib_metadata"},{"name":"boto3","old_version":"1.40.27","new_version":"1.42.14","repository_url":"https://github.com/boto/boto3"},{"name":"django-ses","old_version":"4.4.0","new_version":"4.5.0","repository_url":"https://github.com/django-ses/django-ses"},{"name":"uwsgi","old_version":"2.0.30","new_version":"2.0.31"},{"name":"coverage","old_version":"7.10.6","new_version":"7.13.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"coveralls","old_version":"4.0.1","new_version":"4.0.2","repository_url":"https://github.com/TheKevJames/coveralls-python"},{"name":"tox","old_version":"4.30.2","new_version":"4.32.0","repository_url":"https://github.com/tox-dev/tox"},{"name":"psutil","old_version":"7.0.0","new_version":"7.1.3","repository_url":"https://github.com/giampaolo/psutil"},{"name":"faker","old_version":"37.6.0","new_version":"39.0.0","repository_url":"https://github.com/joke2k/faker"},{"name":"vcrpy","old_version":"7.0.0","new_version":"8.1.0","repository_url":"https://github.com/kevin1024/vcrpy"},{"name":"pytest","old_version":"8.4.2","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pre-commit","old_version":"4.3.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"sphinx","old_version":"7.4.7","new_version":"9.0.4","repository_url":"https://github.com/sphinx-doc/sphinx"},{"name":"sphinxcontrib-spelling","old_version":"8.0.0","new_version":"8.0.2","repository_url":"https://github.com/sphinx-contrib/spelling"},{"name":"docutils","old_version":"0.21.2","new_version":"0.22.4","repository_url":"https://github.com/rtfd/recommonmark"},{"name":"hypothesis","old_version":"6.138.15","new_version":"6.148.7","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"django-debug-toolbar","old_version":"6.0.0","new_version":"6.1.0","repository_url":"https://github.com/django-commons/django-debug-toolbar"}],"path":null,"ecosystem":"pip"},"body":"Bumps the prod-deps group with 34 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [django](https://github.com/django/django) | `4.2.24` | `6.0` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [celery](https://github.com/celery/celery) | `5.5.3` | `5.6.0` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.2.1` | `3.3.0` |\n| [brotli](https://github.com/google/brotli) | `1.1.0` | `1.2.0` |\n| [django-compressor](https://github.com/django-compressor/django-compressor) | `4.5.1` | `4.6.0` |\n| [drf-yasg](https://github.com/axnsan12/drf-yasg) | `1.21.10` | `1.21.11` |\n| [jellyfish](https://jellyfish.jpt.sh/) | `1.2.0` | `1.2.1` |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.9` | `3.10` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [xlsxwriter](https://github.com/jmcnamara/XlsxWriter) | `3.2.5` | `3.2.9` |\n| [xmltodict](https://github.com/martinblech/xmltodict) | `0.15.1` | `1.0.2` |\n| [xmlschema](https://github.com/sissaschool/xmlschema) | `4.1.0` | `4.2.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [shapely](https://github.com/shapely/shapely) | `2.0.7` | `2.1.2` |\n| [django-treebeard](https://github.com/django-treebeard/django-treebeard) | `4.7.1` | `4.8.0` |\n| [django-two-factor-auth[phonenumbers]](https://github.com/jazzband/django-two-factor-auth) | `1.17.0` | `1.18.1` |\n| [importlib-metadata](https://github.com/python/importlib_metadata) | `8.7.0` | `8.7.1` |\n| [boto3](https://github.com/boto/boto3) | `1.40.27` | `1.42.14` |\n| [django-ses](https://github.com/django-ses/django-ses) | `4.4.0` | `4.5.0` |\n| [uwsgi](https://uwsgi-docs.readthedocs.io/en/latest/) | `2.0.30` | `2.0.31` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.13.0` |\n| [coveralls](https://github.com/TheKevJames/coveralls-python) | `4.0.1` | `4.0.2` |\n| [tox](https://github.com/tox-dev/tox) | `4.30.2` | `4.32.0` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.1.3` |\n| [faker](https://github.com/joke2k/faker) | `37.6.0` | `39.0.0` |\n| [vcrpy](https://github.com/kevin1024/vcrpy) | `7.0.0` | `8.1.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.2` | `9.0.2` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.3.0` | `4.5.1` |\n| [sphinx](https://github.com/sphinx-doc/sphinx) | `7.4.7` | `9.0.4` |\n| [sphinxcontrib-spelling](https://github.com/sphinx-contrib/spelling) | `8.0.0` | `8.0.2` |\n| [docutils](https://github.com/rtfd/recommonmark) | `0.21.2` | `0.22.4` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.138.15` | `6.148.7` |\n| [django-debug-toolbar](https://github.com/django-commons/django-debug-toolbar) | `6.0.0` | `6.1.0` |\n\n\nUpdates `django` from 4.2.24 to 6.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/36b5f39d9372147f0e758f590e35ee2b2bc317dd\"\u003e\u003ccode\u003e36b5f39\u003c/code\u003e\u003c/a\u003e [6.0.x] Bumped version for 6.0 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/4f46d1f43345da90037aab1c238d81058b61515b\"\u003e\u003ccode\u003e4f46d1f\u003c/code\u003e\u003c/a\u003e [6.0.x] Updated man page for Django 6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/a9f5ca5c58df7b662ad23ba9a39619c41a7e39ff\"\u003e\u003ccode\u003ea9f5ca5\u003c/code\u003e\u003c/a\u003e [6.0.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/35859\"\u003e#35859\u003c/a\u003e -- Clarified Tasks ref and topics docs regarding availabl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/45f9e0e969257c0938fec4b51b9b0264aa49bd25\"\u003e\u003ccode\u003e45f9e0e\u003c/code\u003e\u003c/a\u003e [6.0.x] Finalized release notes for Django 6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/ac44a55c80a918c30a4f5f03becd4cf01500bbb6\"\u003e\u003ccode\u003eac44a55\u003c/code\u003e\u003c/a\u003e [6.0.x] Made cosmetic edits to docs/releases/6.0.txt.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/00575b79312c719a6b37035067095e2d679bb5d7\"\u003e\u003ccode\u003e00575b7\u003c/code\u003e\u003c/a\u003e [6.0.x] Updated translations from Transifex.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/8414487569431f14e3da0c90185f03267a118160\"\u003e\u003ccode\u003e8414487\u003c/code\u003e\u003c/a\u003e [6.0.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/35444\"\u003e#35444\u003c/a\u003e -- Fixed typo in PostgreSQL StringAgg deprecation warning.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/1f8f36ee794aba06246f3a3e48a3fefadff019ea\"\u003e\u003ccode\u003e1f8f36e\u003c/code\u003e\u003c/a\u003e [6.0.x] Added CVE-2025-13372 and CVE-2025-64460 to security archive.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/224fc79c02366158be05beaaa18ad557b0c9096a\"\u003e\u003ccode\u003e224fc79\u003c/code\u003e\u003c/a\u003e [6.0.x] Added stub release notes for 5.2.10.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/1dbd07a608e495a0c229edaaf84d58d8976313b5\"\u003e\u003ccode\u003e1dbd07a\u003c/code\u003e\u003c/a\u003e [6.0.x] Fixed CVE-2025-64460 -- Corrected quadratic inner text accumulation i...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/4.2.24...6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2-binary` from 2.9.10 to 2.9.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2-binary's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix building when pg_config returns an empty string (:ticket:\u003ccode\u003e[#1599](https://github.com/psycopg/psycopg2/issues/1599)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eWheel package bundled with OpenSSL 1.1.1v.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.6\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\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 href=\"https://github.com/psycopg/psycopg2/commit/fd9ae8cad2bcfc3e7e9410e7b6f07cda8f4f05ec\"\u003e\u003ccode\u003efd9ae8c\u003c/code\u003e\u003c/a\u003e chore: bump to version 2.9.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d923840546942534f0956d9202f914fd9feac5fd\"\u003e\u003ccode\u003ed923840\u003c/code\u003e\u003c/a\u003e chore: update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d42dc7169d3cd93517e282e9ef5dc2a2b40650a2\"\u003e\u003ccode\u003ed42dc71\u003c/code\u003e\u003c/a\u003e Merge branch 'fix-1791'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4fde6560c32f06ad1304404c9f7f86148dcc4be0\"\u003e\u003ccode\u003e4fde656\u003c/code\u003e\u003c/a\u003e fix: avoid failed assert passing more arguments than placeholders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/8308c19d6af0d904b313997539ed33415990a74e\"\u003e\u003ccode\u003e8308c19\u003c/code\u003e\u003c/a\u003e fix: drop warning about the use of deprecated PyWeakref_GetObject function\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1a1eabf098a3374409bb2ab4b594777b900f396d\"\u003e\u003ccode\u003e1a1eabf\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/github-script from 7 to 8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/897af8b38beda851d7257dfc525129e37c0ec9e0\"\u003e\u003ccode\u003e897af8b\u003c/code\u003e\u003c/a\u003e build(deps): bump peter-evans/repository-dispatch from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ceefd305117113ca10e383a626e87ba0796f3638\"\u003e\u003ccode\u003eceefd30\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4dc585430cabe94cee96c5a9de0265d0f55370f1\"\u003e\u003ccode\u003e4dc5854\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1945788dcf6172bb1b9328ebc3587ccf0e6a659c\"\u003e\u003ccode\u003e1945788\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1802\"\u003e#1802\u003c/a\u003e from edgarrmondragon/cp314-wheels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.10...2.9.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `celery` from 5.5.3 to 5.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/celery/celery/releases\"\u003ecelery's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.6.0\u003c/h2\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003ch2\u003eKey Highlights\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.celeryq.dev/en/stable/history/whatsnew-5.6.html\"\u003eWhat's new in Celery 5.6\u003c/a\u003e for a complete overview or read the main highlights below.\u003c/p\u003e\n\u003ch3\u003ePython 3.9 Minimum Version\u003c/h3\u003e\n\u003cp\u003eCelery 5.6.0 drops support for Python 3.8 (EOL). The minimum required Python version is now 3.9. Users still on Python 3.8 must upgrade their Python version before upgrading to Celery 5.6.0.\u003c/p\u003e\n\u003cp\u003eAdditionally, this release includes initial support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eSQS: Reverted to \u003ccode\u003epycurl\u003c/code\u003e from \u003ccode\u003eurllib3\u003c/code\u003e\u003c/h3\u003e\n\u003cp\u003eThe switch from \u003ccode\u003epycurl\u003c/code\u003e to \u003ccode\u003eurllib3\u003c/code\u003e for the SQS transport (introduced in Celery 5.5.0 via Kombu) has been reverted due to critical issues affecting SQS users.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/auvipy\"\u003e\u003ccode\u003e@​auvipy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9620\"\u003ecelery/celery#9620\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eSecurity Fix: Broker Credential Leak Prevention\u003c/h3\u003e\n\u003cp\u003eFixed a security issue where broker URLs containing passwords were being logged in plaintext by the delayed delivery mechanism. Broker credentials are now properly sanitized in all log output.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/giancarloromeo\"\u003e\u003ccode\u003e@​giancarloromeo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9997\"\u003ecelery/celery#9997\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eMemory Leak Fixes\u003c/h3\u003e\n\u003cp\u003eTwo significant memory leaks have been fixed in this release:\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eException Handling Memory Leak\u003c/strong\u003e: Fixed a critical memory leak in task exception handling that was particularly severe on Python 3.11+ due to enhanced traceback data. The fix properly breaks reference cycles in tracebacks to allow garbage collection.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/jaiganeshs21\"\u003e\u003ccode\u003e@​jaiganeshs21\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9799\"\u003ecelery/celery#9799\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ePending Result Memory Leak\u003c/strong\u003e: Fixed a memory leak where \u003ccode\u003eAsyncResult\u003c/code\u003e subscriptions were not being cleaned up when results were forgotten.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/tsoos99dev\"\u003e\u003ccode\u003e@​tsoos99dev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9806\"\u003ecelery/celery#9806\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eETA Task Memory Limit\u003c/h3\u003e\n\u003cp\u003eNew configuration option \u003ccode\u003eworker_eta_task_limit\u003c/code\u003e to prevent out-of-memory crashes when workers fetch large numbers of ETA or countdown tasks. Previously, workers could exhaust available memory when the broker contained many scheduled tasks.\u003c/p\u003e\n\u003cp\u003eExample usage:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eapp.conf.worker_eta_task_limit = 1000\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/sashu2310\"\u003e\u003ccode\u003e@​sashu2310\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9853\"\u003ecelery/celery#9853\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eQueue Type Selection for Auto-created Queues\u003c/h3\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 href=\"https://github.com/celery/celery/blob/main/Changelog.rst\"\u003ecelery's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.6.0\u003c/h1\u003e\n\u003cp\u003e:release-date: 2025-11-30\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003cp\u003eKey Highlights\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nSee :ref:`whatsnew-5.6` for a complete overview or read the main highlights below.\n\u003ch2\u003ePython 3.9 Minimum Version\u003c/h2\u003e\n\u003cp\u003eCelery 5.6.0 drops support for Python 3.8 (EOL). The minimum required Python\nversion is now 3.9. Users still on Python 3.8 must upgrade their Python version\nbefore upgrading to Celery 5.6.0.\u003c/p\u003e\n\u003cp\u003eAdditionally, this release includes initial support for Python 3.14.\u003c/p\u003e\n\u003ch2\u003eSQS: Reverted to \u003ccode\u003epycurl\u003c/code\u003e from \u003ccode\u003eurllib3\u003c/code\u003e\u003c/h2\u003e\n\u003cp\u003eThe switch from \u003ccode\u003epycurl\u003c/code\u003e to \u003ccode\u003eurllib3\u003c/code\u003e for the SQS transport (introduced in\nCelery 5.5.0 via Kombu) has been reverted due to critical issues affecting SQS\nusers:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eProcessing throughput dropped from ~100 tasks/sec to ~3/sec in some environments\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUnknownOperationException\u003c/code\u003e errors causing container crash loops\u003c/li\u003e\n\u003cli\u003eSilent message processing failures with no error logs\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eUsers of the SQS transport must ensure \u003ccode\u003epycurl\u003c/code\u003e is installed. If you removed\n\u003ccode\u003epycurl\u003c/code\u003e after upgrading to Celery 5.5.0, you will need to reinstall it.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ccode\u003e@auvipy \u0026amp;lt;https://github.com/auvipy\u0026amp;gt;\u003c/code\u003e_ in\n\u003ccode\u003e[#9620](https://github.com/celery/celery/issues/9620) \u0026amp;lt;https://github.com/celery/celery/pull/9620\u0026amp;gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003ch2\u003eSecurity Fix: Broker Credential Leak Prevention\u003c/h2\u003e\n\u003cp\u003eFixed a security issue where broker URLs containing passwords were being logged\nin plaintext by the delayed delivery mechanism. Broker credentials are now\nproperly sanitized in all log output.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ccode\u003e@giancarloromeo \u0026amp;lt;https://github.com/giancarloromeo\u0026amp;gt;\u003c/code\u003e_ in\n\u003ccode\u003e[#9997](https://github.com/celery/celery/issues/9997) \u0026amp;lt;https://github.com/celery/celery/pull/9997\u0026amp;gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003cp\u003eMemory Leak Fixes\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\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 href=\"https://github.com/celery/celery/commit/cca11164860a1bee6ad8626c27a683b482f741eb\"\u003e\u003ccode\u003ecca1116\u003c/code\u003e\u003c/a\u003e Prepare for release: v5.6.0 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10010\"\u003e#10010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/1133f22181bb22223d39c0060973695c6af55643\"\u003e\u003ccode\u003e1133f22\u003c/code\u003e\u003c/a\u003e Bump mypy from 1.14.1 to 1.19.0 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10008\"\u003e#10008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/0932d2c06e001903b90638f7c40a14f5407c9801\"\u003e\u003ccode\u003e0932d2c\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10007\"\u003e#10007\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/b446910f18860531b089d6c39f974265cc24a589\"\u003e\u003ccode\u003eb446910\u003c/code\u003e\u003c/a\u003e Prepare for (pre) release: v5.6.0rc2 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10005\"\u003e#10005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/3f0f0fe7ea6a67a696d0a750644b552559ae368e\"\u003e\u003ccode\u003e3f0f0fe\u003c/code\u003e\u003c/a\u003e asynpool: Don't return from inside a finally block (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10000\"\u003e#10000\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/95d05527c0e1fff5c1a38877ba87592983a7f993\"\u003e\u003ccode\u003e95d0552\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10003\"\u003e#10003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/f32b92f0e481601e9cc9f1212a4feced3f48e1a0\"\u003e\u003ccode\u003ef32b92f\u003c/code\u003e\u003c/a\u003e Add Py39-314t to CI (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9999\"\u003e#9999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/63c1910221d9fb8c1931ff62c80c4c37232b2d58\"\u003e\u003ccode\u003e63c1910\u003c/code\u003e\u003c/a\u003e Don't fail task on timeout during cold shutdown (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9678\"\u003e#9678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/30649dbd41308fc8eef79b2aae179a908eaa7a51\"\u003e\u003ccode\u003e30649db\u003c/code\u003e\u003c/a\u003e Fix log leaking broker credentials (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9997\"\u003e#9997\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/929412e2d4d328e337be3f177ca99fff10ab9bdc\"\u003e\u003ccode\u003e929412e\u003c/code\u003e\u003c/a\u003e Remove Python 4.0 version condition for pytest dependencies (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9993\"\u003e#9993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/celery/celery/compare/v5.5.3...v5.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `hiredis` from 3.2.1 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/hiredis-py/releases\"\u003ehiredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.3.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e by \u003ca href=\"https://github.com/zweizeichen\"\u003e\u003ccode\u003e@​zweizeichen\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\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 href=\"https://github.com/redis/hiredis-py/commit/187d0f387afed58a955a42ea8c5467100871f98b\"\u003e\u003ccode\u003e187d0f3\u003c/code\u003e\u003c/a\u003e Version 3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/3efcf037edc5a9f7abfaedbd3f60b2a03feb4787\"\u003e\u003ccode\u003e3efcf03\u003c/code\u003e\u003c/a\u003e Add Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/215\"\u003e#215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/966cede2c0ca0a8ac4fe0786571e5c230f39c36e\"\u003e\u003ccode\u003e966cede\u003c/code\u003e\u003c/a\u003e Fix assertion in reader.c (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/212\"\u003e#212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/78def309e58126fdaacb66e6fd40df9c46494062\"\u003e\u003ccode\u003e78def30\u003c/code\u003e\u003c/a\u003e Bump version to 3.3.0-dev\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/redis/hiredis-py/compare/v3.2.1...v3.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `brotli` from 1.1.0 to 1.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/google/brotli/releases\"\u003ebrotli's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.0\u003c/h2\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\u003c/li\u003e\n\u003cli\u003eCLI: \u003ccode\u003ebrcat\u003c/code\u003e alias; allow decoding concatenated brotli streams\u003c/li\u003e\n\u003cli\u003ekt: pure Kotlin decoder\u003c/li\u003e\n\u003cli\u003ecgo: support \u0026quot;raw\u0026quot; dictionaries\u003c/li\u003e\n\u003cli\u003ebuild: Bazel modules\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: dropped \u003ccode\u003efinalize()\u003c/code\u003e for native entities\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: in \u003ccode\u003ecompress\u003c/code\u003e pass correct length to native encoder\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebuild: install man pages\u003c/li\u003e\n\u003cli\u003ebuild: updated / fixed / refined Bazel buildfiles\u003c/li\u003e\n\u003cli\u003eencoder: faster encoding\u003c/li\u003e\n\u003cli\u003ecgo: link via pkg-config\u003c/li\u003e\n\u003cli\u003epython: modernize extension / allow multi-phase module initialization\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edecoder / encoder: static tables use \u0026quot;small\u0026quot; model (allows 2GiB+ binaries)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.0 RC2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed (compared to RC1)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epick changes from Debian patch by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1349\"\u003egoogle/brotli#1349\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epick changes from Alpine patch by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1348\"\u003egoogle/brotli#1348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epick VCPKG patches by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1350\"\u003egoogle/brotli#1350\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix copy-paste in Java decoder by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1357\"\u003egoogle/brotli#1357\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.0 RC1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eIMPORTANT\u003c/strong\u003e: though this is a pre-release for v1.2.0, it is expected that some changes will be added before release; most notably concerning build files: patches applied by Alpine, Debian, Conan, VCPKG will be partially/fully integrated.\u003c/p\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\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 href=\"https://github.com/google/brotli/blob/master/CHANGELOG.md\"\u003ebrotli's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.2.0] - 2025-10-27\u003c/h2\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\u003c/li\u003e\n\u003cli\u003eCLI: \u003ccode\u003ebrcat\u003c/code\u003e alias; allow decoding concatenated brotli streams\u003c/li\u003e\n\u003cli\u003ekt: pure Kotlin decoder\u003c/li\u003e\n\u003cli\u003ecgo: support \u0026quot;raw\u0026quot; dictionaries\u003c/li\u003e\n\u003cli\u003ebuild: Bazel modules\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: dropped \u003ccode\u003efinalize()\u003c/code\u003e for native entities\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: in \u003ccode\u003ecompress\u003c/code\u003e pass correct length to native encoder\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebuild: install man pages\u003c/li\u003e\n\u003cli\u003ebuild: updated / fixed / refined Bazel buildfiles\u003c/li\u003e\n\u003cli\u003eencoder: faster encoding\u003c/li\u003e\n\u003cli\u003ecgo: link via pkg-config\u003c/li\u003e\n\u003cli\u003epython: modernize extension / allow multi-phase module initialization\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edecoder / encoder: static tables use \u0026quot;small\u0026quot; model (allows 2GiB+ binaries)\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 href=\"https://github.com/google/brotli/commit/028fb5a23661f123017c060daa546b55cf4bde29\"\u003e\u003ccode\u003e028fb5a\u003c/code\u003e\u003c/a\u003e release v1.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/390de5b472ec8c40a7b8e5029e47fd6493f7a755\"\u003e\u003ccode\u003e390de5b\u003c/code\u003e\u003c/a\u003e build and test csharp decoder\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/3499acbb7ac7818c1b929a8c9c5c5f8a634751da\"\u003e\u003ccode\u003e3499acb\u003c/code\u003e\u003c/a\u003e regenerate go/kt/js/ts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/8ca2312c61f1f5853be0708f9b1d6a6ad002d2a4\"\u003e\u003ccode\u003e8ca2312\u003c/code\u003e\u003c/a\u003e fix release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/ee771daf20bab6533cbc629407c50cff1c87d9f1\"\u003e\u003ccode\u003eee771da\u003c/code\u003e\u003c/a\u003e fix copy-paste in Java decoder\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/42aee3289154cb3e8db1c7a8ebfa639c857578b9\"\u003e\u003ccode\u003e42aee32\u003c/code\u003e\u003c/a\u003e try to fix release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/392c06bac05cc1d098ab105cbbda766f19853d92\"\u003e\u003ccode\u003e392c06b\u003c/code\u003e\u003c/a\u003e redesign release resource uploading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/1964cdb1b9e16a2a0c27fbd3b2a3bccb2c1a8294\"\u003e\u003ccode\u003e1964cdb\u003c/code\u003e\u003c/a\u003e ramp up all GH actions plugins\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/61605b1cb34ba84ae71c13b383d850a59cac85b2\"\u003e\u003ccode\u003e61605b1\u003c/code\u003e\u003c/a\u003e pick VCPKG patches\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/4b0f27b6f985b4301ad5cec4a31b9792ecf252bc\"\u003e\u003ccode\u003e4b0f27b\u003c/code\u003e\u003c/a\u003e pick changes from Alpine patch\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/google/brotli/compare/go/cbrotli/v1.1.0...v1.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-compressor` from 4.5.1 to 4.6.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-compressor/django-compressor/blob/develop/docs/changelog.txt\"\u003edjango-compressor's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003ev4.6 (2025-11-10)\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003eFull list of changes from v4.5.1 \u0026lt;https://github.com/django-compressor/django-compressor/compare/4.5.1...4.6\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed compatibility with latest BS4.\u003c/li\u003e\n\u003cli\u003eRemoved top pin for rcssmin and rjsmin dependencies.\u003c/li\u003e\n\u003cli\u003eAvoid compressing the same node concurrently in offline compression.\u003c/li\u003e\n\u003cli\u003eAvoid use of deprecated ast.Constant.s\u003c/li\u003e\n\u003cli\u003eOfficially support Django 6.0\u003c/li\u003e\n\u003cli\u003eOfficially support Django 5.2\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Django 5.0\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 3.9.\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 3.8.\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 href=\"https://github.com/django-compressor/django-compressor/commit/3ada994897cf982f97fc4c934be42eb1e0b71b9a\"\u003e\u003ccode\u003e3ada994\u003c/code\u003e\u003c/a\u003e Prepare 4.6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/1baa82a6cf6942eb12007217f26195a95df727e2\"\u003e\u003ccode\u003e1baa82a\u003c/code\u003e\u003c/a\u003e Remove CI testing for EOL Django 5.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/8706a52b740e7555abefc8fba1eaae1986ded1a5\"\u003e\u003ccode\u003e8706a52\u003c/code\u003e\u003c/a\u003e Add CI testing for Python 3.14 and Django 6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/7be9ce2cefedf59302207728e383fa7811232d59\"\u003e\u003ccode\u003e7be9ce2\u003c/code\u003e\u003c/a\u003e Bump brotli, lxml, and coverage test dependencies.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/d6fd8136febd1ba409b366c7471db8763522d91d\"\u003e\u003ccode\u003ed6fd813\u003c/code\u003e\u003c/a\u003e Remove test version pinning for rcssmin and rjsmin.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/2b46e7d1724109ebb5db49b76f008dc039f0a9db\"\u003e\u003ccode\u003e2b46e7d\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1307\"\u003e#1307\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/b97bb05836eb6a42d2746d43792e9d13f041b615\"\u003e\u003ccode\u003eb97bb05\u003c/code\u003e\u003c/a\u003e Disable bs4's multi valued attributes (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1296\"\u003e#1296\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/4e5433076300508e1c3648da3345ae606386eb3f\"\u003e\u003ccode\u003e4e54330\u003c/code\u003e\u003c/a\u003e Migrate packaging to pyproject.toml (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1313\"\u003e#1313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/872f8d52ce51957bccf4a91338d177c2ea4a3908\"\u003e\u003ccode\u003e872f8d5\u003c/code\u003e\u003c/a\u003e Remove version pinning for rcssmin and rjsmin (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1312\"\u003e#1312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/cc38666efb13c6e0b355cf273f56b783d7157e29\"\u003e\u003ccode\u003ecc38666\u003c/code\u003e\u003c/a\u003e Drop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1311\"\u003e#1311\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-compressor/django-compressor/compare/4.5.1...4.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `drf-yasg` from 1.21.10 to 1.21.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/axnsan12/drf-yasg/releases\"\u003edrf-yasg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.21.11\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/917\"\u003e#917\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/916\"\u003e#916\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/926\"\u003e#926\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/922\"\u003e#922\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/928\"\u003e#928\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/923\"\u003e#923\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/848\"\u003e#848\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/903\"\u003e#903\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 href=\"https://github.com/axnsan12/drf-yasg/blob/master/docs/changelog.rst\"\u003edrf-yasg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e#########\nChangelog\n#########\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.11\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (:pr:\u003ccode\u003e917\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (:pr:\u003ccode\u003e916\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (:pr:\u003ccode\u003e926\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (:pr:\u003ccode\u003e922\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (:pr:\u003ccode\u003e928\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (:pr:\u003ccode\u003e923\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (:pr:\u003ccode\u003e848\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (:pr:\u003ccode\u003e903\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.10\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix type hints when using postponed evaluation of annotations (PEP-563) (:pr:\u003ccode\u003e840\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update JSON \u0026amp; YAML renderers to not use a \u0026quot;.\u0026quot; in their format string (:pr:\u003ccode\u003e911\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix lint errors when comparing types with == instead of is (:pr:\u003ccode\u003e868\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update swagger-ui-dist to address CVE-2021-46708 (:pr:\u003ccode\u003e904\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.9\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Added support for zoneinfo object fields (:pr:\u003ccode\u003e908\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.8\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Python 3.11 and 3.12 support (:pr:\u003ccode\u003e891\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix pkg_resources version lookups for Python 3.9+ (:pr:\u003ccode\u003e891\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.7\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cem\u003eRelease date: Jul 20, 2023\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Added \u003ccode\u003edrf_yasg.inspectors.query.DrfAPICompatInspector\u003c/code\u003e (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Added \u003ccode\u003eDrfAPICompatInspector\u003c/code\u003e to serve as a replacement \u003ccode\u003eCoreAPICompatInspector\u003c/code\u003e (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow \u003ccode\u003eDEFAULT_SPEC_RENDERERS\u003c/code\u003e default renderers to be overriden in the settings (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fixed redoc source mapping (:pr:\u003ccode\u003e859\u003c/code\u003e)\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/f8cb2db70ca42fb709565f89fdd152b614dc865d\"\u003e\u003ccode\u003ef8cb2db\u003c/code\u003e\u003c/a\u003e Add version 1.21.11 details to the changelog (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/939\"\u003e#939\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/0c6d08d5ebc52e802e5e1acbabbadfe179d4087d\"\u003e\u003ccode\u003e0c6d08d\u003c/code\u003e\u003c/a\u003e Update the ruff lint rules (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/920\"\u003e#920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/055a74dc10128fd55a48f7f74f6b58ffcc48e83d\"\u003e\u003ccode\u003e055a74d\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 in the github-actions group (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/937\"\u003e#937\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/a8813ace8e39cc2c28a916053c74415e10db1425\"\u003e\u003ccode\u003ea8813ac\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 in the github-actions group (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/936\"\u003e#936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/9f4b44943ad930e23e979b80090102dfca1d588b\"\u003e\u003ccode\u003e9f4b449\u003c/code\u003e\u003c/a\u003e Restore the live demo and replace heroku with apprunner (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/935\"\u003e#935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/298325122e11aeba87e6c8f16604e45d870649e7\"\u003e\u003ccode\u003e2983251\u003c/code\u003e\u003c/a\u003e fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/a74689370c393432debbe6285b3afb3e462aee58\"\u003e\u003ccode\u003ea746893\u003c/code\u003e\u003c/a\u003e allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/916\"\u003e#916\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/e747ad6db413c2d20c3eab79739e22ffde5930c7\"\u003e\u003ccode\u003ee747ad6\u003c/code\u003e\u003c/a\u003e Fixes issue with filter parameters not appearing in Swagger after upgrading t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/ee3c871501dad5f0585c8c62ac0659fedab999a1\"\u003e\u003ccode\u003eee3c871\u003c/code\u003e\u003c/a\u003e update Python, Django, and DRF versions \u0026amp; packaging configuration (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/922\"\u003e#922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/be6eeedcbebcb45151a9d18018d880d1fcdcf143\"\u003e\u003ccode\u003ebe6eeed\u003c/code\u003e\u003c/a\u003e Remove usage of pkg_resources (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/928\"\u003e#928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/axnsan12/drf-yasg/compare/1.21.10...1.21.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jellyfish` from 1.2.0 to 1.2.1\n\nUpdates `markdown` from 3.9 to 3.10\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/releases\"\u003emarkdown's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.10.0\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\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 href=\"https://github.com/Python-Markdown/markdown/blob/master/docs/changelog.md\"\u003emarkdown's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003etitle: Changelog\ntoc_depth: 2\u003c/p\u003e\n\u003ch1\u003ePython-Markdown Changelog\u003c/h1\u003e\n\u003cp\u003eAll notable changes to this project will be documented in this file.\u003c/p\u003e\n\u003cp\u003eThe format is based on \u003ca href=\"https://keepachangelog.com/en/1.1.0/\"\u003eKeep a Changelog\u003c/a\u003e,\nand this project adheres to the\n\u003ca href=\"https://packaging.python.org/en/latest/specifications/version-specifiers/\"\u003ePython Version Specification\u003c/a\u003e.\nSee the \u003ca href=\"https://github.com/Python-Markdown/markdown/blob/master/docs/contributing.md\"\u003eContributing Guide\u003c/a\u003e for details.\u003c/p\u003e\n\u003ch2\u003e[Unreleased]\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure nested elements inside inline comments are properly unescaped (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1571\"\u003e#1571\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eMake the docs build successfully with mkdocstrings-python 2.0 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1575\"\u003e#1575\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.10.0] - 2025-11-03\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.9.0] - 2025-09-04\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFootnotes are now ordered by the occurrence of their references in the\ndocument. A new configuration option for the footnotes extension,\n\u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e, has been added to support restoring the previous\nbehavior of ordering footnotes by the occurrence of definitions (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1367\"\u003e#1367\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure inline processing iterates through elements in document order (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1546\"\u003e#1546\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix handling of incomplete HTML tags in code spans in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1547\"\u003e#1547\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.8.2] - 2025-06-19\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/22e89c1fc346f72218a10e392a0c3b4731912522\"\u003e\u003ccode\u003e22e89c1\u003c/code\u003e\u003c/a\u003e Bump version to 3.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/c138aea5139a6aceae05bb957e866d9ce7577b94\"\u003e\u003ccode\u003ec138aea\u003c/code\u003e\u003c/a\u003e + PY314 - PY39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/746f7f527b15f63845253e3b86947b806ef1b98f\"\u003e\u003ccode\u003e746f7f5\u003c/code\u003e\u003c/a\u003e cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/a5ee2b4aad05531898ab8fd726c7ece31ddadf8b\"\u003e\u003ccode\u003ea5ee2b4\u003c/code\u003e\u003c/a\u003e Revert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/5354daf618149f92580a1407c036115753c5df73\"\u003e\u003ccode\u003e5354daf\u003c/code\u003e\u003c/a\u003e Fix an HTML comment parsing case that can cause an infinite loop\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Python-Markdown/markdown/compare/3.9.0...3.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyyaml` from 6.0.2 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/yaml/pyyaml/releases\"\u003epyyaml's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14 and free-threading (experimental).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ehttps://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\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 href=\"https://github.com/yaml/pyyaml/blob/6.0.3/CHANGES\"\u003epyyaml's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e6.0.3 (2025-09-25)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/yaml/pyyaml/pull/864\"\u003eyaml/pyyaml#864\u003c/a\u003e -- Support for Python 3.14 and free-threading (experimental)\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 href=\"https://github.com/yaml/pyyaml/commit/49790e73684bebad1df05ef8d828fa12f685bffb\"\u003e\u003ccode\u003e49790e7\u003c/code\u003e\u003c/a\u003e Release 6.0.3 (\u003ca href=\"https://redirect.github.com/yaml/pyyaml/issues/889\"\u003e#889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xlsxwriter` from 3.2.5 to 3.2.9\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jmcnamara/XlsxWriter/blob/main/Changes\"\u003exlsxwriter's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.2.9 - September 16 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved the \u003ccode\u003epy.typed\u003c/code\u003e file since it was causing a lot of downstream CI\nfailures where consumers weren't handling the xlsxwriter types correctly or\ntaking them into account.\u003c/p\u003e\n\u003cp\u003eThe file will be re-added once the xlsxwriter typing is more comprehensive.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.2.8 - September 14 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003emypy\u003c/code\u003e implicit export error caused by the \u003ccode\u003eWorkbook()\u003c/code\u003e type\nannotations changes in v3.2.7 and v3.2.6.\u003c/p\u003e\n\u003cp\u003e:issue:\u003ccode\u003e1154\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.2.7 - September 13 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed typing issue in \u003ccode\u003eWorkbook()\u003c/code\u003e constructor.\u003c/p\u003e\n\u003cp\u003e:issue:\u003ccode\u003e1152\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.2.6 - September 12 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded an option to position custom data labels in the same way that the data\nlabels can be positioned for the entire series.\u003c/p\u003e\n\u003cp\u003e:feature:\u003ccode\u003e1147\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd border, fill, gradient and pattern formatting options for\nchart titles and also chart axis titles.\u003c/p\u003e\n\u003cp\u003e:feature:\u003ccode\u003e957\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd additional type annotations. This is an ongoing refactoring.\u003c/p\u003e\n\u003cp\u003e:feature:\u003ccode\u003e1123\u003c/code\u003e.\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 href=\"https://github.com/jmcnamara/XlsxWriter/commit/e943bee8c9cdf0661cfdb83d5497e0725390e41e\"\u003e\u003ccode\u003ee943bee\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/392bd9e6572785394c6553e2d4f7ae2bb80782f4\"\u003e\u003ccode\u003e392bd9e\u003c/code\u003e\u003c/a\u003e typing: remove py.typed file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/eb99afecdd0050209835f9f237d580dc53e42afa\"\u003e\u003ccode\u003eeb99afe\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/5ec29826d5e398bb5adebaabafbeb9d443a6ed8c\"\u003e\u003ccode\u003e5ec2982\u003c/code\u003e\u003c/a\u003e workbook: add explicit export for mypy compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/ca85cbb03a5898c9e7b66c78ac67a365e7f53002\"\u003e\u003ccode\u003eca85cbb\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/3710251aaaa9524ee302ec04608bfc1b577d4ba5\"\u003e\u003ccode\u003e3710251\u003c/code\u003e\u003c/a\u003e typing: add more supported types to Workbook() constructor\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/27db7a14672bfe1a18f29dfbab646aa0149a369b\"\u003e\u003ccode\u003e27db7a1\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/f05067654b42283557c3621e411b6fbadb7051b6\"\u003e\u003ccode\u003ef050676\u003c/code\u003e\u003c/a\u003e docs: add CI spell check\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/60f708cc1e10c0c66ae870be4f350f45a9d3ecc8\"\u003e\u003ccode\u003e60f708c\u003c/code\u003e\u003c/a\u003e chart: add axis title formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/53dc08e5d240310c88bbfce8d1a42330ae256535\"\u003e\u003ccode\u003e53dc08e\u003c/code\u003e\u003c/a\u003e chart: add chart title formatting options\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jmcnamara/XlsxWriter/compare/RELEASE_3.2.5...RELEASE_3.2.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xmltodict` from 0.15.1 to 1.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/martinblech/xmltodict/releases\"\u003exmltodict's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.0.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.1...v1.0.2\"\u003e1.0.2\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eallow DOCTYPE with disable_entities=True (default) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/25b61a41f580cfc211df07c5fbbf603bd8eb5a5f\"\u003e25b61a4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.0...v1.0.1\"\u003e1.0.1\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efail closed when entities disabled (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c986d2d37a93d45fcc059b09063d9d9c45a655ec\"\u003ec986d2d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003evalidate XML comments (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/3d4d2d3a4cd0f68d1211dba549010261fa87b969\"\u003e3d4d2d3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd SECURITY.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/64130233c8fea272a5f82f2f585e1593523ec1b1\"\u003e6413023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify behavior for empty lists (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2025b5cb5e64fc9c4d54b8644187a0a193bdd0ed\"\u003e2025b5c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify process_comments docs (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/6b464fce284a93dbb292f3d063c9f310a478a014\"\u003e6b464fc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify strip whitespace comment behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/b3e22032d21cc387d6cecf3930116e8fdc3151cf\"\u003eb3e2203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ecreate AGENTS.md for coding agents (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/0da66ee797ced7479312aecef92c6a25e235007c\"\u003e0da66ee\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace travis with actions badge (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2576b94c918fbd154489a95dbbb3feda8bd3cbd8\"\u003e2576b94\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate CONTRIBUTING.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/db3918057cf125af989a1263d52df8df5ef8c642\"\u003edb39180\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v0.15.1...v1.0.0\"\u003e1.0.0\u003c/a\u003e (2025-09-12)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emodernize for Python 3.9+; drop legacy compat paths\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add limited XML comment round-trip; unify \u003ccode\u003e_emit\u003c/code\u003e behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/e43537eee61c20ef50f0e4242eb9223de7a6aefd\"\u003ee43537e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add selective \u003ccode\u003eforce_cdata\u003c/code\u003e support (bool/tuple/callable) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/a497fedb7d6103d68af155543ac3337a73778b19\"\u003ea497fed\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/375\"\u003e#375\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003enamespaces:\u003c/strong\u003e attach \u003ccode\u003e[@xmlns](https://github.com/xmlns)\u003c/code\u003e to declaring element when process_namespaces=True (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/f0322e578184421693434902547f330f4f0a44c3\"\u003ef0322e5\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/163\"\u003e#163\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e avoid parent accumulation at item_depth; add regression tests (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/220240c5eb2d12b75adf26cc84ec9c803ce8bb2b\"\u003e220240c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e handle non-string \u003ccode\u003e#text\u003c/code\u003e with attributes; unify value conversion (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/927a025ae8a62cbb542d5caff38b29161a2096fa\"\u003e927a025\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/366\"\u003e#366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e skip empty lists to keep pretty/compact outputs consistent (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/ab4c86fed24dc8ef0e932a524edfb01c6453ecf6\"\u003eab4c86f\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/martinblech/xmltodict/blob/master/CHANGELOG.md\"\u003exmltodict's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.1...v1.0.2\"\u003e1.0.2\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eallow DOCTYPE with disable_entities=True (default) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/25b61a41f580cfc211df07c5fbbf603bd8eb5a5f\"\u003e25b61a4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.0...v1.0.1\"\u003e1.0.1\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efail closed when entities disabled (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c986d2d37a93d45fcc059b09063d9d9c45a655ec\"\u003ec986d2d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003evalidate XML comments (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/3d4d2d3a4cd0f68d1211dba549010261fa87b969\"\u003e3d4d2d3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd SECURITY.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/64130233c8fea272a5f82f2f585e1593523ec1b1\"\u003e6413023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify behavior for empty lists (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2025b5cb5e64fc9c4d54b8644187a0a193bdd0ed\"\u003e2025b5c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify process_comments docs (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/6b464fce284a93dbb292f3d063c9f310a478a014\"\u003e6b464fc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify strip whitespace comment behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/b3e22032d21cc387d6cecf3930116e8fdc3151cf\"\u003eb3e2203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ecreate AGENTS.md for coding agents (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/0da66ee797ced7479312aecef92c6a25e235007c\"\u003e0da66ee\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace travis with actions badge (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2576b94c918fbd154489a95dbbb3feda8bd3cbd8\"\u003e2576b94\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate CONTRIBUTING.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/db3918057cf125af989a1263d52df8df5ef8c642\"\u003edb39180\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v0.15.1...v1.0.0\"\u003e1.0.0\u003c/a\u003e (2025-09-12)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emodernize for Python 3.9+; drop legacy compat paths\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add limited XML comment round-trip; unify \u003ccode\u003e_emit\u003c/code\u003e behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/e43537eee61c20ef50f0e4242eb9223de7a6aefd\"\u003ee43537e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add selective \u003ccode\u003eforce_cdata\u003c/code\u003e support (bool/tuple/callable) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/a497fedb7d6103d68af155543ac3337a73778b19\"\u003ea497fed\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/375\"\u003e#375\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003enamespaces:\u003c/strong\u003e attach \u003ccode\u003e[@xmlns](https://github.com/xmlns)\u003c/code\u003e to declaring element when process_namespaces=True (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/f0322e578184421693434902547f330f4f0a44c3\"\u003ef0322e5\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/163\"\u003e#163\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e avoid parent accumulation at item_depth; add regression tests (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/220240c5eb2d12b75adf26cc84ec9c803ce8bb2b\"\u003e220240c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e handle non-string \u003ccode\u003e#text\u003c/code\u003e with attributes; unify value conversion (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/927a025ae8a62cbb542d5caff38b29161a2096fa\"\u003e927a025\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/366\"\u003e#366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e skip empty lists to keep pretty/compact outputs consistent (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/ab4c86fed24dc8ef0e932a524edfb01c6453ecf6\"\u003eab4c86f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eReverts\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove initial Release Drafter config (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c0b74ed58f933bffd160c60a58620f672710ff7c\"\u003ec0b74ed\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 href=\"https://github.com/martinblech/xmltodict/commit/d079849136b031c471ec96a168ad7859ed5994ff\"\u003e\u003ccode\u003ed079849\u003c/code\u003e\u003c/a\u003e chore(master): release 1.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/25b61a41f580cfc211df07c5fbbf603bd8eb5a5f\"\u003e\u003ccode\u003e25b61a4\u003c/code\u003e\u003c/a\u003e fix: allow DOCTYPE with disable_entities=True (default)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/a2a9ab7e0692a62f64d97ff12553d0d53368c854\"\u003e\u003ccode\u003ea2a9ab7\u003c/code\u003e\u003c/a\u003e ci(publish): allow uploading release assets\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/656e6af9543e640fda7e96d6bdd6e693756687be\"\u003e\u003ccode\u003e656e6af\u003c/code\u003e\u003c/a\u003e chore(master): release 1.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c986d2d37a93d45fcc059b09063d9d9c45a655ec\"\u003e\u003ccode\u003ec986d2d\u003c/code\u003e\u003c/a\u003e fix: fail closed when entities disabled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/3d4d2d3a4cd0f68d1211dba549010261fa87b969\"\u003e\u003ccode\u003e3d4d2d3\u003c/code\u003e\u003c/a\u003e fix: validate XML comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/b4a5f2a3f04aff68384486e957632c8438396fd6\"\u003e\u003ccode\u003eb4a5f2a\u003c/code\u003e\u003c/a\u003e refactor: remove jython-specific parsing branches\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/6b464fce284a93dbb292f3d063c9f310a478a014\"\u003e\u003ccode\u003e6b464fc\u003c/code\u003e\u003c/a\u003e docs: clarify process_comments docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/34daa304d443e49113d195294d99c6f58ce4714c\"\u003e\u003ccode\u003e34daa30\u003c/code\u003e\u003c/a\u003e refactor: remove unused helper functions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2025b5cb5e64fc9c4d54b8644187a0a193bdd0ed\"\u003e\u003ccode\u003e2025b5c\u003c/code\u003e\u003c/a\u003e docs: clarify behavior for empty lists\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/martinblech/xmltodict/compare/v0.15.1...v1.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xmlschema` from 4.1.0 to 4.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sissaschool/xmlschema/releases\"\u003exmlschema's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.2.0 (2025-10-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd arguments validation for schemas and validation methods (by validation contexts)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSchemaSettings\u003c/code\u003e dataclass for storing read-only settings for schema instances\nand for managing package default settings\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eblock\u003c/em\u003e argument to \u003ccode\u003eXMLResource\u003c/code\u003e class (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/464\"\u003e#464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_SCHEMA_SOURCES\u003c/em\u003e package limit (\u003ccode\u003e1000\u003c/code\u003e, applied to \u003ccode\u003eXsdGlobals\u003c/code\u003e global maps instances)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_XML_ELEMENTS\u003c/em\u003e package limit (\u003ccode\u003e1,000,000\u003c/code\u003e, applied to non-lazy \u003ccode\u003eXMLResource\u003c/code\u003e instances)\u003c/li\u003e\n\u003cli\u003eReduce \u003cem\u003eMAX_XML_DEPTH\u003c/em\u003e limit to 1000 and apply it to all \u003ccode\u003eXMLResource\u003c/code\u003e instances\u003c/li\u003e\n\u003cli\u003eFix for substitute match in case of unexpected child (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\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 href=\"https://github.com/sissaschool/xmlschema/blob/master/CHANGELOG.rst\"\u003exmlschema's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ccode\u003ev4.2.0\u003c/code\u003e_ (2025-10-14)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd arguments validation for schemas and validation methods (by validation contexts)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSchemaSettings\u003c/code\u003e dataclass for storing read-only settings for schema instances\nand for managing package default settings\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eblock\u003c/em\u003e argument to \u003ccode\u003eXMLResource\u003c/code\u003e class (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/464\"\u003e#464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_SCHEMA_SOURCES\u003c/em\u003e package limit (\u003ccode\u003e1000\u003c/code\u003e, applied to \u003ccode\u003eXsdGlobals\u003c/code\u003e global maps instances)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_XML_ELEMENTS\u003c/em\u003e package limit (\u003ccode\u003e1,000,000\u003c/code\u003e, applied to non-lazy \u003ccode\u003eXMLResource\u003c/code\u003e instances)\u003c/li\u003e\n\u003cli\u003eReduce \u003cem\u003eMAX_XML_DEPTH\u003c/em\u003e limit to 1000 and apply it to all \u003ccode\u003eXMLResource\u003c/code\u003e instances\u003c/li\u003e\n\u003cli\u003eFix for substitute match in case of unexpected child (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\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 href=\"https://github.com/sissaschool/xmlschema/commit/2783030fcdcd5307563822906862a9e7088931b2\"\u003e\u003ccode\u003e2783030\u003c/code\u003e\u003c/a\u003e Bump minor release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/7c77a12f0fe16c8da0256a0f13281a03e4a0f717\"\u003e\u003ccode\u003e7c77a12\u003c/code\u003e\u003c/a\u003e Include publiccode.yml validation workflow for CI and README changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/04c19d54d4578f34a0c04d6cc82daa8d3ef9d90c\"\u003e\u003ccode\u003e04c19d5\u003c/code\u003e\u003c/a\u003e Fix XsdGroup.match_element (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/dd4f279e56b8a5ce89f78a6c88337f5032af0b2f\"\u003e\u003ccode\u003edd4f279\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/463\"\u003e#463\u003c/a\u003e from publiccode-pr-bot/chore/add-publiccode-parser-ac...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/1bd7aa6eebf4947e7ae76e47a2f706b58fed22cd\"\u003e\u003ccode\u003e1bd7aa6\u003c/code\u003e\u003c/a\u003e Update GitHub workflow for CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/76b0f67e900777166bcd3773cc109efae933682d\"\u003e\u003ccode\u003e76b0f67\u003c/code\u003e\u003c/a\u003e Patch mypy tests with protocols\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/28727bb0af89f129d59772550c6998164c37aeff\"\u003e\u003ccode\u003e28727bb\u003c/code\u003e\u003c/a\u003e Update docs and release info\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/e4131eaf6bc1a223292f3f19e78573a4317d131a\"\u003e\u003ccode\u003ee4131ea\u003c/code\u003e\u003c/a\u003e Add from_settings() class method to schemas\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/0aea8debef13b62156e7297bdc54198057ea3611\"\u003e\u003ccode\u003e0aea8de\u003c/code\u003e\u003c/a\u003e Rewrite validation contexts as normal classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/d443d7ba0e3de8fad6d6df8f314b12735af4bac3\"\u003e\u003ccode\u003ed443d7b\u003c/code\u003e\u003c/a\u003e Full validation of context arguments\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sissaschool/xmlschema/compare/v4.1.0...v4.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lark` from 1.2.2 to 1.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lark-parser/lark/releases\"\u003elark's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.3.1 - Bugfix + source build now contains complete project data\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix: Restore support for custom input, alongside text and TextSlice by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1562\"\u003elark-parser/lark#1562\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep sdist in sync with git (include all files in source build, including docs, tests and examples) by \u003ca href=\"https://github.com/chanicpanic\"\u003e\u003ccode\u003e@​chanicpanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1561\"\u003elark-parser/lark#1561\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/lark-parser/lark/compare/1.3.0...1.3.1\"\u003ehttps://github.com/lark-parser/lark/compare/1.3.0...1.3.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e1.3.0 - Introduces text-slices, Earley fix, and various small improvements\u003c/h2\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLark can now parse in sections of strings, using \u003ccode\u003eTextSlice\u003c/code\u003e, as a faster alternative to creating a \u0026quot;copy-slice\u0026quot; with \u003ccode\u003es[i:j]\u003c/code\u003e. \u003ca href=\"https://lark-parser.readthedocs.io/en/latest/classes.html#lark.utils.TextSlice\"\u003eLearn more\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded support to \u003ccode\u003ematch\u003c/code\u003e on Tree instances\u003c/li\u003e\n\u003cli\u003eWhen serializing a Lark instance, added the option to include the grammar object (before compilation).\u003c/li\u003e\n\u003cli\u003eAdded convenience method \u003ccode\u003eTree.find_token()\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix of an edge case in Earley related to representation of ambiguity.\u003c/li\u003e\n\u003cli\u003eBugfixes in the standalone parser related to imports\u003c/li\u003e\n\u003cli\u003eBugfix in indenter - now dedents always contain line information\u003c/li\u003e\n\u003cli\u003eVarious small bugfixes (see PR list below)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFull list of PRs\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDocs: Rephrase v_args() documentation to underline it only applies to Transformer classes by \u003ca href=\"https://github.com/skepppy\"\u003e\u003ccode\u003e@​skepppy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1458\"\u003elark-parser/lark#1458\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTiny refactor for PR \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1451\"\u003e#1451\u003c/a\u003e by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1459\"\u003elark-parser/lark#1459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEarley: share nodes created by the scanner with the completer by \u003ca href=\"https://github.com/chanicpanic\"\u003e\u003ccode\u003e@​chanicpanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1451\"\u003elark-parser/lark#1451\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter error in Lark.parse when using on_error when parser!=lalr (issue \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1311\"\u003e#1311\u003c/a\u003e) by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1460\"\u003elark-parser/lark#1460\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eSymbol.__eq__\u003c/code\u003e to return false when comparing with None by \u003ca href=\"https://github.com/weaversam8\"\u003e\u003ccode\u003e@​weaversam8\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1481\"\u003elark-parser/lark#1481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMention internal/external transformers in the documentation by \u003ca href=\"https://github.com/odanoburu\"\u003e\u003ccode\u003e@​odanoburu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1486\"\u003elark-parser/lark#1486\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Tree.find_token() method by \u003ca href=\"https://github.com/makukha\"\u003e\u003ccode\u003e@​makukha\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1467\"\u003elark-parser/lark#1467\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eType \u003ccode\u003eTerminal.__init__\u003c/code\u003e by \u003ca href=\"https://github.com/Liam-DeVoe\"\u003e\u003ccode\u003e@​Liam-DeVoe\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1503\"\u003elark-parser/lark#1503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd guidance on handling comments in languages with significant indentation by \u003ca href=\"https://github.com/nchammas\"\u003e\u003ccode\u003e@​nchammas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1502\"\u003elark-parser/lark#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Small fix for PR 1507 by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1508\"\u003elark-parser/lark#1508\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd note on binding power of numeric quantifiers by \u003ca href=\"https://github.com/414owen\"\u003e\u003ccode\u003e@​414owen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1507\"\u003elark-parser/lark#1507\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrap functools.partial in staticmethod() to add compatibility with Python 3.14 by \u003ca href=\"https://github.com/hrnciar\"\u003e\u003ccode\u003e@​hrnciar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1483\"\u003elark-parser/lark#1483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix generic type of Transformer_InPlaceRecursive by \u003ca href=\"https://github.com/lbhm\"\u003e\u003ccode\u003e@​lbhm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1518\"\u003elark-parser/lark#1518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded TextSlice; Lark can now parse/lex a text-slice by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1452\"\u003elark-parser/lark#1452\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport match on tree by \u003ca href=\"https://github.com/colmmurphyxyz\"\u003e\u003ccode\u003e@​colmmurphyxyz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1521\"\u003elark-parser/lark#1521\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: Updated link of DSL article to a new version by \u003ca href=\"https://github.com/erezs...\n\n_Description has been truncated_","html_url":"https://github.com/chrislkl/seed/pull/10","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrislkl%2Fseed/issues/10","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/10/packages"}},{"old_version":"2.0.30","new_version":"2.0.31","update_type":"patch","path":null,"pr_created_at":"2025-12-22T05:25:15.000Z","version_change":"2.0.30 → 2.0.31","issue":{"uuid":"3752379755","node_id":"PR_kwDOAYRY2s66EV9Z","number":5157,"state":"closed","title":"deps: bump the prod-deps group across 1 directory with 34 updates","user":"dependabot[bot]","labels":["Maintenance"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-01-05T05:21:28.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-22T05:25:15.000Z","updated_at":"2026-01-05T05:21:29.000Z","time_to_close":1209373,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps: bump","group_name":"prod-deps","update_count":34,"packages":[{"name":"django","old_version":"4.2.26","new_version":"6.0","repository_url":"https://github.com/django/django"},{"name":"psycopg2-binary","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"celery","old_version":"5.5.3","new_version":"5.6.0","repository_url":"https://github.com/celery/celery"},{"name":"hiredis","old_version":"3.2.1","new_version":"3.3.0","repository_url":"https://github.com/redis/hiredis-py"},{"name":"brotli","old_version":"1.1.0","new_version":"1.2.0","repository_url":"https://github.com/google/brotli"},{"name":"django-compressor","old_version":"4.5.1","new_version":"4.6.0","repository_url":"https://github.com/django-compressor/django-compressor"},{"name":"drf-yasg","old_version":"1.21.10","new_version":"1.21.11","repository_url":"https://github.com/axnsan12/drf-yasg"},{"name":"jellyfish","old_version":"1.2.0","new_version":"1.2.1"},{"name":"markdown","old_version":"3.9","new_version":"3.10","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"xlsxwriter","old_version":"3.2.8","new_version":"3.2.9","repository_url":"https://github.com/jmcnamara/XlsxWriter"},{"name":"xmlschema","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/sissaschool/xmlschema"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"simple-salesforce","old_version":"1.12.8","new_version":"1.12.9","repository_url":"https://github.com/simple-salesforce/simple-salesforce"},{"name":"shapely","old_version":"2.0.7","new_version":"2.1.2","repository_url":"https://github.com/shapely/shapely"},{"name":"django-treebeard","old_version":"4.7.1","new_version":"4.8.0","repository_url":"https://github.com/django-treebeard/django-treebeard"},{"name":"django-two-factor-auth","old_version":"1.17.0","new_version":"1.18.1"},{"name":"importlib-metadata","old_version":"8.7.0","new_version":"8.7.1","repository_url":"https://github.com/python/importlib_metadata"},{"name":"boto3","old_version":"1.40.30","new_version":"1.42.14","repository_url":"https://github.com/boto/boto3"},{"name":"django-ses","old_version":"4.4.0","new_version":"4.5.0","repository_url":"https://github.com/django-ses/django-ses"},{"name":"uwsgi","old_version":"2.0.30","new_version":"2.0.31"},{"name":"coverage","old_version":"7.10.6","new_version":"7.13.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"coveralls","old_version":"4.0.1","new_version":"4.0.2","repository_url":"https://github.com/TheKevJames/coveralls-python"},{"name":"tox","old_version":"4.30.2","new_version":"4.32.0","repository_url":"https://github.com/tox-dev/tox"},{"name":"psutil","old_version":"7.0.0","new_version":"7.1.3","repository_url":"https://github.com/giampaolo/psutil"},{"name":"faker","old_version":"37.6.0","new_version":"39.0.0","repository_url":"https://github.com/joke2k/faker"},{"name":"vcrpy","old_version":"7.0.0","new_version":"8.1.0","repository_url":"https://github.com/kevin1024/vcrpy"},{"name":"pytest","old_version":"8.4.2","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pre-commit","old_version":"4.3.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"sphinx","old_version":"7.4.7","new_version":"9.0.4","repository_url":"https://github.com/sphinx-doc/sphinx"},{"name":"sphinxcontrib-spelling","old_version":"8.0.0","new_version":"8.0.2","repository_url":"https://github.com/sphinx-contrib/spelling"},{"name":"docutils","old_version":"0.21.2","new_version":"0.22.4","repository_url":"https://github.com/rtfd/recommonmark"},{"name":"hypothesis","old_version":"6.138.16","new_version":"6.148.7","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"django-debug-toolbar","old_version":"6.0.0","new_version":"6.1.0","repository_url":"https://github.com/django-commons/django-debug-toolbar"}],"path":null,"ecosystem":"pip"},"body":"Bumps the prod-deps group with 34 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [django](https://github.com/django/django) | `4.2.26` | `6.0` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [celery](https://github.com/celery/celery) | `5.5.3` | `5.6.0` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.2.1` | `3.3.0` |\n| [brotli](https://github.com/google/brotli) | `1.1.0` | `1.2.0` |\n| [django-compressor](https://github.com/django-compressor/django-compressor) | `4.5.1` | `4.6.0` |\n| [drf-yasg](https://github.com/axnsan12/drf-yasg) | `1.21.10` | `1.21.11` |\n| [jellyfish](https://jellyfish.jpt.sh/) | `1.2.0` | `1.2.1` |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.9` | `3.10` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [xlsxwriter](https://github.com/jmcnamara/XlsxWriter) | `3.2.8` | `3.2.9` |\n| [xmlschema](https://github.com/sissaschool/xmlschema) | `4.1.0` | `4.2.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [simple-salesforce](https://github.com/simple-salesforce/simple-salesforce) | `1.12.8` | `1.12.9` |\n| [shapely](https://github.com/shapely/shapely) | `2.0.7` | `2.1.2` |\n| [django-treebeard](https://github.com/django-treebeard/django-treebeard) | `4.7.1` | `4.8.0` |\n| [django-two-factor-auth[phonenumbers]](https://github.com/jazzband/django-two-factor-auth) | `1.17.0` | `1.18.1` |\n| [importlib-metadata](https://github.com/python/importlib_metadata) | `8.7.0` | `8.7.1` |\n| [boto3](https://github.com/boto/boto3) | `1.40.30` | `1.42.14` |\n| [django-ses](https://github.com/django-ses/django-ses) | `4.4.0` | `4.5.0` |\n| [uwsgi](https://uwsgi-docs.readthedocs.io/en/latest/) | `2.0.30` | `2.0.31` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.13.0` |\n| [coveralls](https://github.com/TheKevJames/coveralls-python) | `4.0.1` | `4.0.2` |\n| [tox](https://github.com/tox-dev/tox) | `4.30.2` | `4.32.0` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.1.3` |\n| [faker](https://github.com/joke2k/faker) | `37.6.0` | `39.0.0` |\n| [vcrpy](https://github.com/kevin1024/vcrpy) | `7.0.0` | `8.1.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.2` | `9.0.2` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.3.0` | `4.5.1` |\n| [sphinx](https://github.com/sphinx-doc/sphinx) | `7.4.7` | `9.0.4` |\n| [sphinxcontrib-spelling](https://github.com/sphinx-contrib/spelling) | `8.0.0` | `8.0.2` |\n| [docutils](https://github.com/rtfd/recommonmark) | `0.21.2` | `0.22.4` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.138.16` | `6.148.7` |\n| [django-debug-toolbar](https://github.com/django-commons/django-debug-toolbar) | `6.0.0` | `6.1.0` |\n\n\nUpdates `django` from 4.2.26 to 6.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/36b5f39d9372147f0e758f590e35ee2b2bc317dd\"\u003e\u003ccode\u003e36b5f39\u003c/code\u003e\u003c/a\u003e [6.0.x] Bumped version for 6.0 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/4f46d1f43345da90037aab1c238d81058b61515b\"\u003e\u003ccode\u003e4f46d1f\u003c/code\u003e\u003c/a\u003e [6.0.x] Updated man page for Django 6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/a9f5ca5c58df7b662ad23ba9a39619c41a7e39ff\"\u003e\u003ccode\u003ea9f5ca5\u003c/code\u003e\u003c/a\u003e [6.0.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/35859\"\u003e#35859\u003c/a\u003e -- Clarified Tasks ref and topics docs regarding availabl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/45f9e0e969257c0938fec4b51b9b0264aa49bd25\"\u003e\u003ccode\u003e45f9e0e\u003c/code\u003e\u003c/a\u003e [6.0.x] Finalized release notes for Django 6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/ac44a55c80a918c30a4f5f03becd4cf01500bbb6\"\u003e\u003ccode\u003eac44a55\u003c/code\u003e\u003c/a\u003e [6.0.x] Made cosmetic edits to docs/releases/6.0.txt.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/00575b79312c719a6b37035067095e2d679bb5d7\"\u003e\u003ccode\u003e00575b7\u003c/code\u003e\u003c/a\u003e [6.0.x] Updated translations from Transifex.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/8414487569431f14e3da0c90185f03267a118160\"\u003e\u003ccode\u003e8414487\u003c/code\u003e\u003c/a\u003e [6.0.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/35444\"\u003e#35444\u003c/a\u003e -- Fixed typo in PostgreSQL StringAgg deprecation warning.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/1f8f36ee794aba06246f3a3e48a3fefadff019ea\"\u003e\u003ccode\u003e1f8f36e\u003c/code\u003e\u003c/a\u003e [6.0.x] Added CVE-2025-13372 and CVE-2025-64460 to security archive.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/224fc79c02366158be05beaaa18ad557b0c9096a\"\u003e\u003ccode\u003e224fc79\u003c/code\u003e\u003c/a\u003e [6.0.x] Added stub release notes for 5.2.10.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/1dbd07a608e495a0c229edaaf84d58d8976313b5\"\u003e\u003ccode\u003e1dbd07a\u003c/code\u003e\u003c/a\u003e [6.0.x] Fixed CVE-2025-64460 -- Corrected quadratic inner text accumulation i...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/4.2.26...6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2-binary` from 2.9.10 to 2.9.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2-binary's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix building when pg_config returns an empty string (:ticket:\u003ccode\u003e[#1599](https://github.com/psycopg/psycopg2/issues/1599)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eWheel package bundled with OpenSSL 1.1.1v.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.6\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\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 href=\"https://github.com/psycopg/psycopg2/commit/fd9ae8cad2bcfc3e7e9410e7b6f07cda8f4f05ec\"\u003e\u003ccode\u003efd9ae8c\u003c/code\u003e\u003c/a\u003e chore: bump to version 2.9.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d923840546942534f0956d9202f914fd9feac5fd\"\u003e\u003ccode\u003ed923840\u003c/code\u003e\u003c/a\u003e chore: update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d42dc7169d3cd93517e282e9ef5dc2a2b40650a2\"\u003e\u003ccode\u003ed42dc71\u003c/code\u003e\u003c/a\u003e Merge branch 'fix-1791'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4fde6560c32f06ad1304404c9f7f86148dcc4be0\"\u003e\u003ccode\u003e4fde656\u003c/code\u003e\u003c/a\u003e fix: avoid failed assert passing more arguments than placeholders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/8308c19d6af0d904b313997539ed33415990a74e\"\u003e\u003ccode\u003e8308c19\u003c/code\u003e\u003c/a\u003e fix: drop warning about the use of deprecated PyWeakref_GetObject function\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1a1eabf098a3374409bb2ab4b594777b900f396d\"\u003e\u003ccode\u003e1a1eabf\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/github-script from 7 to 8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/897af8b38beda851d7257dfc525129e37c0ec9e0\"\u003e\u003ccode\u003e897af8b\u003c/code\u003e\u003c/a\u003e build(deps): bump peter-evans/repository-dispatch from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ceefd305117113ca10e383a626e87ba0796f3638\"\u003e\u003ccode\u003eceefd30\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4dc585430cabe94cee96c5a9de0265d0f55370f1\"\u003e\u003ccode\u003e4dc5854\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1945788dcf6172bb1b9328ebc3587ccf0e6a659c\"\u003e\u003ccode\u003e1945788\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1802\"\u003e#1802\u003c/a\u003e from edgarrmondragon/cp314-wheels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.10...2.9.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `celery` from 5.5.3 to 5.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/celery/celery/releases\"\u003ecelery's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.6.0\u003c/h2\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003ch2\u003eKey Highlights\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.celeryq.dev/en/stable/history/whatsnew-5.6.html\"\u003eWhat's new in Celery 5.6\u003c/a\u003e for a complete overview or read the main highlights below.\u003c/p\u003e\n\u003ch3\u003ePython 3.9 Minimum Version\u003c/h3\u003e\n\u003cp\u003eCelery 5.6.0 drops support for Python 3.8 (EOL). The minimum required Python version is now 3.9. Users still on Python 3.8 must upgrade their Python version before upgrading to Celery 5.6.0.\u003c/p\u003e\n\u003cp\u003eAdditionally, this release includes initial support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eSQS: Reverted to \u003ccode\u003epycurl\u003c/code\u003e from \u003ccode\u003eurllib3\u003c/code\u003e\u003c/h3\u003e\n\u003cp\u003eThe switch from \u003ccode\u003epycurl\u003c/code\u003e to \u003ccode\u003eurllib3\u003c/code\u003e for the SQS transport (introduced in Celery 5.5.0 via Kombu) has been reverted due to critical issues affecting SQS users.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/auvipy\"\u003e\u003ccode\u003e@​auvipy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9620\"\u003ecelery/celery#9620\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eSecurity Fix: Broker Credential Leak Prevention\u003c/h3\u003e\n\u003cp\u003eFixed a security issue where broker URLs containing passwords were being logged in plaintext by the delayed delivery mechanism. Broker credentials are now properly sanitized in all log output.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/giancarloromeo\"\u003e\u003ccode\u003e@​giancarloromeo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9997\"\u003ecelery/celery#9997\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eMemory Leak Fixes\u003c/h3\u003e\n\u003cp\u003eTwo significant memory leaks have been fixed in this release:\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eException Handling Memory Leak\u003c/strong\u003e: Fixed a critical memory leak in task exception handling that was particularly severe on Python 3.11+ due to enhanced traceback data. The fix properly breaks reference cycles in tracebacks to allow garbage collection.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/jaiganeshs21\"\u003e\u003ccode\u003e@​jaiganeshs21\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9799\"\u003ecelery/celery#9799\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ePending Result Memory Leak\u003c/strong\u003e: Fixed a memory leak where \u003ccode\u003eAsyncResult\u003c/code\u003e subscriptions were not being cleaned up when results were forgotten.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/tsoos99dev\"\u003e\u003ccode\u003e@​tsoos99dev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9806\"\u003ecelery/celery#9806\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eETA Task Memory Limit\u003c/h3\u003e\n\u003cp\u003eNew configuration option \u003ccode\u003eworker_eta_task_limit\u003c/code\u003e to prevent out-of-memory crashes when workers fetch large numbers of ETA or countdown tasks. Previously, workers could exhaust available memory when the broker contained many scheduled tasks.\u003c/p\u003e\n\u003cp\u003eExample usage:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eapp.conf.worker_eta_task_limit = 1000\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/sashu2310\"\u003e\u003ccode\u003e@​sashu2310\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9853\"\u003ecelery/celery#9853\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eQueue Type Selection for Auto-created Queues\u003c/h3\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 href=\"https://github.com/celery/celery/blob/main/Changelog.rst\"\u003ecelery's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.6.0\u003c/h1\u003e\n\u003cp\u003e:release-date: 2025-11-30\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003cp\u003eKey Highlights\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nSee :ref:`whatsnew-5.6` for a complete overview or read the main highlights below.\n\u003ch2\u003ePython 3.9 Minimum Version\u003c/h2\u003e\n\u003cp\u003eCelery 5.6.0 drops support for Python 3.8 (EOL). The minimum required Python\nversion is now 3.9. Users still on Python 3.8 must upgrade their Python version\nbefore upgrading to Celery 5.6.0.\u003c/p\u003e\n\u003cp\u003eAdditionally, this release includes initial support for Python 3.14.\u003c/p\u003e\n\u003ch2\u003eSQS: Reverted to \u003ccode\u003epycurl\u003c/code\u003e from \u003ccode\u003eurllib3\u003c/code\u003e\u003c/h2\u003e\n\u003cp\u003eThe switch from \u003ccode\u003epycurl\u003c/code\u003e to \u003ccode\u003eurllib3\u003c/code\u003e for the SQS transport (introduced in\nCelery 5.5.0 via Kombu) has been reverted due to critical issues affecting SQS\nusers:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eProcessing throughput dropped from ~100 tasks/sec to ~3/sec in some environments\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUnknownOperationException\u003c/code\u003e errors causing container crash loops\u003c/li\u003e\n\u003cli\u003eSilent message processing failures with no error logs\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eUsers of the SQS transport must ensure \u003ccode\u003epycurl\u003c/code\u003e is installed. If you removed\n\u003ccode\u003epycurl\u003c/code\u003e after upgrading to Celery 5.5.0, you will need to reinstall it.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ccode\u003e@auvipy \u0026amp;lt;https://github.com/auvipy\u0026amp;gt;\u003c/code\u003e_ in\n\u003ccode\u003e[#9620](https://github.com/celery/celery/issues/9620) \u0026amp;lt;https://github.com/celery/celery/pull/9620\u0026amp;gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003ch2\u003eSecurity Fix: Broker Credential Leak Prevention\u003c/h2\u003e\n\u003cp\u003eFixed a security issue where broker URLs containing passwords were being logged\nin plaintext by the delayed delivery mechanism. Broker credentials are now\nproperly sanitized in all log output.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ccode\u003e@giancarloromeo \u0026amp;lt;https://github.com/giancarloromeo\u0026amp;gt;\u003c/code\u003e_ in\n\u003ccode\u003e[#9997](https://github.com/celery/celery/issues/9997) \u0026amp;lt;https://github.com/celery/celery/pull/9997\u0026amp;gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003cp\u003eMemory Leak Fixes\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\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 href=\"https://github.com/celery/celery/commit/cca11164860a1bee6ad8626c27a683b482f741eb\"\u003e\u003ccode\u003ecca1116\u003c/code\u003e\u003c/a\u003e Prepare for release: v5.6.0 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10010\"\u003e#10010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/1133f22181bb22223d39c0060973695c6af55643\"\u003e\u003ccode\u003e1133f22\u003c/code\u003e\u003c/a\u003e Bump mypy from 1.14.1 to 1.19.0 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10008\"\u003e#10008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/0932d2c06e001903b90638f7c40a14f5407c9801\"\u003e\u003ccode\u003e0932d2c\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10007\"\u003e#10007\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/b446910f18860531b089d6c39f974265cc24a589\"\u003e\u003ccode\u003eb446910\u003c/code\u003e\u003c/a\u003e Prepare for (pre) release: v5.6.0rc2 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10005\"\u003e#10005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/3f0f0fe7ea6a67a696d0a750644b552559ae368e\"\u003e\u003ccode\u003e3f0f0fe\u003c/code\u003e\u003c/a\u003e asynpool: Don't return from inside a finally block (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10000\"\u003e#10000\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/95d05527c0e1fff5c1a38877ba87592983a7f993\"\u003e\u003ccode\u003e95d0552\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10003\"\u003e#10003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/f32b92f0e481601e9cc9f1212a4feced3f48e1a0\"\u003e\u003ccode\u003ef32b92f\u003c/code\u003e\u003c/a\u003e Add Py39-314t to CI (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9999\"\u003e#9999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/63c1910221d9fb8c1931ff62c80c4c37232b2d58\"\u003e\u003ccode\u003e63c1910\u003c/code\u003e\u003c/a\u003e Don't fail task on timeout during cold shutdown (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9678\"\u003e#9678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/30649dbd41308fc8eef79b2aae179a908eaa7a51\"\u003e\u003ccode\u003e30649db\u003c/code\u003e\u003c/a\u003e Fix log leaking broker credentials (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9997\"\u003e#9997\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/929412e2d4d328e337be3f177ca99fff10ab9bdc\"\u003e\u003ccode\u003e929412e\u003c/code\u003e\u003c/a\u003e Remove Python 4.0 version condition for pytest dependencies (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9993\"\u003e#9993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/celery/celery/compare/v5.5.3...v5.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `hiredis` from 3.2.1 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/hiredis-py/releases\"\u003ehiredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.3.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e by \u003ca href=\"https://github.com/zweizeichen\"\u003e\u003ccode\u003e@​zweizeichen\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\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 href=\"https://github.com/redis/hiredis-py/commit/187d0f387afed58a955a42ea8c5467100871f98b\"\u003e\u003ccode\u003e187d0f3\u003c/code\u003e\u003c/a\u003e Version 3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/3efcf037edc5a9f7abfaedbd3f60b2a03feb4787\"\u003e\u003ccode\u003e3efcf03\u003c/code\u003e\u003c/a\u003e Add Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/215\"\u003e#215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/966cede2c0ca0a8ac4fe0786571e5c230f39c36e\"\u003e\u003ccode\u003e966cede\u003c/code\u003e\u003c/a\u003e Fix assertion in reader.c (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/212\"\u003e#212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/78def309e58126fdaacb66e6fd40df9c46494062\"\u003e\u003ccode\u003e78def30\u003c/code\u003e\u003c/a\u003e Bump version to 3.3.0-dev\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/redis/hiredis-py/compare/v3.2.1...v3.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `brotli` from 1.1.0 to 1.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/google/brotli/releases\"\u003ebrotli's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.0\u003c/h2\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\u003c/li\u003e\n\u003cli\u003eCLI: \u003ccode\u003ebrcat\u003c/code\u003e alias; allow decoding concatenated brotli streams\u003c/li\u003e\n\u003cli\u003ekt: pure Kotlin decoder\u003c/li\u003e\n\u003cli\u003ecgo: support \u0026quot;raw\u0026quot; dictionaries\u003c/li\u003e\n\u003cli\u003ebuild: Bazel modules\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: dropped \u003ccode\u003efinalize()\u003c/code\u003e for native entities\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: in \u003ccode\u003ecompress\u003c/code\u003e pass correct length to native encoder\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebuild: install man pages\u003c/li\u003e\n\u003cli\u003ebuild: updated / fixed / refined Bazel buildfiles\u003c/li\u003e\n\u003cli\u003eencoder: faster encoding\u003c/li\u003e\n\u003cli\u003ecgo: link via pkg-config\u003c/li\u003e\n\u003cli\u003epython: modernize extension / allow multi-phase module initialization\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edecoder / encoder: static tables use \u0026quot;small\u0026quot; model (allows 2GiB+ binaries)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.0 RC2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed (compared to RC1)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epick changes from Debian patch by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1349\"\u003egoogle/brotli#1349\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epick changes from Alpine patch by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1348\"\u003egoogle/brotli#1348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epick VCPKG patches by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1350\"\u003egoogle/brotli#1350\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix copy-paste in Java decoder by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1357\"\u003egoogle/brotli#1357\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.0 RC1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eIMPORTANT\u003c/strong\u003e: though this is a pre-release for v1.2.0, it is expected that some changes will be added before release; most notably concerning build files: patches applied by Alpine, Debian, Conan, VCPKG will be partially/fully integrated.\u003c/p\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\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 href=\"https://github.com/google/brotli/blob/master/CHANGELOG.md\"\u003ebrotli's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.2.0] - 2025-10-27\u003c/h2\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\u003c/li\u003e\n\u003cli\u003eCLI: \u003ccode\u003ebrcat\u003c/code\u003e alias; allow decoding concatenated brotli streams\u003c/li\u003e\n\u003cli\u003ekt: pure Kotlin decoder\u003c/li\u003e\n\u003cli\u003ecgo: support \u0026quot;raw\u0026quot; dictionaries\u003c/li\u003e\n\u003cli\u003ebuild: Bazel modules\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: dropped \u003ccode\u003efinalize()\u003c/code\u003e for native entities\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: in \u003ccode\u003ecompress\u003c/code\u003e pass correct length to native encoder\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebuild: install man pages\u003c/li\u003e\n\u003cli\u003ebuild: updated / fixed / refined Bazel buildfiles\u003c/li\u003e\n\u003cli\u003eencoder: faster encoding\u003c/li\u003e\n\u003cli\u003ecgo: link via pkg-config\u003c/li\u003e\n\u003cli\u003epython: modernize extension / allow multi-phase module initialization\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edecoder / encoder: static tables use \u0026quot;small\u0026quot; model (allows 2GiB+ binaries)\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 href=\"https://github.com/google/brotli/commit/028fb5a23661f123017c060daa546b55cf4bde29\"\u003e\u003ccode\u003e028fb5a\u003c/code\u003e\u003c/a\u003e release v1.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/390de5b472ec8c40a7b8e5029e47fd6493f7a755\"\u003e\u003ccode\u003e390de5b\u003c/code\u003e\u003c/a\u003e build and test csharp decoder\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/3499acbb7ac7818c1b929a8c9c5c5f8a634751da\"\u003e\u003ccode\u003e3499acb\u003c/code\u003e\u003c/a\u003e regenerate go/kt/js/ts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/8ca2312c61f1f5853be0708f9b1d6a6ad002d2a4\"\u003e\u003ccode\u003e8ca2312\u003c/code\u003e\u003c/a\u003e fix release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/ee771daf20bab6533cbc629407c50cff1c87d9f1\"\u003e\u003ccode\u003eee771da\u003c/code\u003e\u003c/a\u003e fix copy-paste in Java decoder\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/42aee3289154cb3e8db1c7a8ebfa639c857578b9\"\u003e\u003ccode\u003e42aee32\u003c/code\u003e\u003c/a\u003e try to fix release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/392c06bac05cc1d098ab105cbbda766f19853d92\"\u003e\u003ccode\u003e392c06b\u003c/code\u003e\u003c/a\u003e redesign release resource uploading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/1964cdb1b9e16a2a0c27fbd3b2a3bccb2c1a8294\"\u003e\u003ccode\u003e1964cdb\u003c/code\u003e\u003c/a\u003e ramp up all GH actions plugins\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/61605b1cb34ba84ae71c13b383d850a59cac85b2\"\u003e\u003ccode\u003e61605b1\u003c/code\u003e\u003c/a\u003e pick VCPKG patches\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/4b0f27b6f985b4301ad5cec4a31b9792ecf252bc\"\u003e\u003ccode\u003e4b0f27b\u003c/code\u003e\u003c/a\u003e pick changes from Alpine patch\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/google/brotli/compare/go/cbrotli/v1.1.0...v1.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-compressor` from 4.5.1 to 4.6.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-compressor/django-compressor/blob/develop/docs/changelog.txt\"\u003edjango-compressor's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003ev4.6 (2025-11-10)\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003eFull list of changes from v4.5.1 \u0026lt;https://github.com/django-compressor/django-compressor/compare/4.5.1...4.6\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed compatibility with latest BS4.\u003c/li\u003e\n\u003cli\u003eRemoved top pin for rcssmin and rjsmin dependencies.\u003c/li\u003e\n\u003cli\u003eAvoid compressing the same node concurrently in offline compression.\u003c/li\u003e\n\u003cli\u003eAvoid use of deprecated ast.Constant.s\u003c/li\u003e\n\u003cli\u003eOfficially support Django 6.0\u003c/li\u003e\n\u003cli\u003eOfficially support Django 5.2\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Django 5.0\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 3.9.\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 3.8.\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 href=\"https://github.com/django-compressor/django-compressor/commit/3ada994897cf982f97fc4c934be42eb1e0b71b9a\"\u003e\u003ccode\u003e3ada994\u003c/code\u003e\u003c/a\u003e Prepare 4.6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/1baa82a6cf6942eb12007217f26195a95df727e2\"\u003e\u003ccode\u003e1baa82a\u003c/code\u003e\u003c/a\u003e Remove CI testing for EOL Django 5.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/8706a52b740e7555abefc8fba1eaae1986ded1a5\"\u003e\u003ccode\u003e8706a52\u003c/code\u003e\u003c/a\u003e Add CI testing for Python 3.14 and Django 6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/7be9ce2cefedf59302207728e383fa7811232d59\"\u003e\u003ccode\u003e7be9ce2\u003c/code\u003e\u003c/a\u003e Bump brotli, lxml, and coverage test dependencies.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/d6fd8136febd1ba409b366c7471db8763522d91d\"\u003e\u003ccode\u003ed6fd813\u003c/code\u003e\u003c/a\u003e Remove test version pinning for rcssmin and rjsmin.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/2b46e7d1724109ebb5db49b76f008dc039f0a9db\"\u003e\u003ccode\u003e2b46e7d\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1307\"\u003e#1307\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/b97bb05836eb6a42d2746d43792e9d13f041b615\"\u003e\u003ccode\u003eb97bb05\u003c/code\u003e\u003c/a\u003e Disable bs4's multi valued attributes (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1296\"\u003e#1296\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/4e5433076300508e1c3648da3345ae606386eb3f\"\u003e\u003ccode\u003e4e54330\u003c/code\u003e\u003c/a\u003e Migrate packaging to pyproject.toml (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1313\"\u003e#1313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/872f8d52ce51957bccf4a91338d177c2ea4a3908\"\u003e\u003ccode\u003e872f8d5\u003c/code\u003e\u003c/a\u003e Remove version pinning for rcssmin and rjsmin (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1312\"\u003e#1312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/cc38666efb13c6e0b355cf273f56b783d7157e29\"\u003e\u003ccode\u003ecc38666\u003c/code\u003e\u003c/a\u003e Drop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1311\"\u003e#1311\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-compressor/django-compressor/compare/4.5.1...4.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `drf-yasg` from 1.21.10 to 1.21.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/axnsan12/drf-yasg/releases\"\u003edrf-yasg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.21.11\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/917\"\u003e#917\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/916\"\u003e#916\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/926\"\u003e#926\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/922\"\u003e#922\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/928\"\u003e#928\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/923\"\u003e#923\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/848\"\u003e#848\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/903\"\u003e#903\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 href=\"https://github.com/axnsan12/drf-yasg/blob/master/docs/changelog.rst\"\u003edrf-yasg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e#########\nChangelog\n#########\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.11\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (:pr:\u003ccode\u003e917\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (:pr:\u003ccode\u003e916\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (:pr:\u003ccode\u003e926\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (:pr:\u003ccode\u003e922\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (:pr:\u003ccode\u003e928\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (:pr:\u003ccode\u003e923\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (:pr:\u003ccode\u003e848\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (:pr:\u003ccode\u003e903\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.10\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix type hints when using postponed evaluation of annotations (PEP-563) (:pr:\u003ccode\u003e840\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update JSON \u0026amp; YAML renderers to not use a \u0026quot;.\u0026quot; in their format string (:pr:\u003ccode\u003e911\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix lint errors when comparing types with == instead of is (:pr:\u003ccode\u003e868\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update swagger-ui-dist to address CVE-2021-46708 (:pr:\u003ccode\u003e904\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.9\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Added support for zoneinfo object fields (:pr:\u003ccode\u003e908\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.8\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Python 3.11 and 3.12 support (:pr:\u003ccode\u003e891\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix pkg_resources version lookups for Python 3.9+ (:pr:\u003ccode\u003e891\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.7\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cem\u003eRelease date: Jul 20, 2023\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Added \u003ccode\u003edrf_yasg.inspectors.query.DrfAPICompatInspector\u003c/code\u003e (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Added \u003ccode\u003eDrfAPICompatInspector\u003c/code\u003e to serve as a replacement \u003ccode\u003eCoreAPICompatInspector\u003c/code\u003e (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow \u003ccode\u003eDEFAULT_SPEC_RENDERERS\u003c/code\u003e default renderers to be overriden in the settings (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fixed redoc source mapping (:pr:\u003ccode\u003e859\u003c/code\u003e)\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/f8cb2db70ca42fb709565f89fdd152b614dc865d\"\u003e\u003ccode\u003ef8cb2db\u003c/code\u003e\u003c/a\u003e Add version 1.21.11 details to the changelog (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/939\"\u003e#939\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/0c6d08d5ebc52e802e5e1acbabbadfe179d4087d\"\u003e\u003ccode\u003e0c6d08d\u003c/code\u003e\u003c/a\u003e Update the ruff lint rules (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/920\"\u003e#920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/055a74dc10128fd55a48f7f74f6b58ffcc48e83d\"\u003e\u003ccode\u003e055a74d\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 in the github-actions group (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/937\"\u003e#937\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/a8813ace8e39cc2c28a916053c74415e10db1425\"\u003e\u003ccode\u003ea8813ac\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 in the github-actions group (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/936\"\u003e#936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/9f4b44943ad930e23e979b80090102dfca1d588b\"\u003e\u003ccode\u003e9f4b449\u003c/code\u003e\u003c/a\u003e Restore the live demo and replace heroku with apprunner (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/935\"\u003e#935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/298325122e11aeba87e6c8f16604e45d870649e7\"\u003e\u003ccode\u003e2983251\u003c/code\u003e\u003c/a\u003e fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/a74689370c393432debbe6285b3afb3e462aee58\"\u003e\u003ccode\u003ea746893\u003c/code\u003e\u003c/a\u003e allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/916\"\u003e#916\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/e747ad6db413c2d20c3eab79739e22ffde5930c7\"\u003e\u003ccode\u003ee747ad6\u003c/code\u003e\u003c/a\u003e Fixes issue with filter parameters not appearing in Swagger after upgrading t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/ee3c871501dad5f0585c8c62ac0659fedab999a1\"\u003e\u003ccode\u003eee3c871\u003c/code\u003e\u003c/a\u003e update Python, Django, and DRF versions \u0026amp; packaging configuration (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/922\"\u003e#922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/be6eeedcbebcb45151a9d18018d880d1fcdcf143\"\u003e\u003ccode\u003ebe6eeed\u003c/code\u003e\u003c/a\u003e Remove usage of pkg_resources (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/928\"\u003e#928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/axnsan12/drf-yasg/compare/1.21.10...1.21.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jellyfish` from 1.2.0 to 1.2.1\n\nUpdates `markdown` from 3.9 to 3.10\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/releases\"\u003emarkdown's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.10.0\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\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 href=\"https://github.com/Python-Markdown/markdown/blob/master/docs/changelog.md\"\u003emarkdown's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003etitle: Changelog\ntoc_depth: 2\u003c/p\u003e\n\u003ch1\u003ePython-Markdown Changelog\u003c/h1\u003e\n\u003cp\u003eAll notable changes to this project will be documented in this file.\u003c/p\u003e\n\u003cp\u003eThe format is based on \u003ca href=\"https://keepachangelog.com/en/1.1.0/\"\u003eKeep a Changelog\u003c/a\u003e,\nand this project adheres to the\n\u003ca href=\"https://packaging.python.org/en/latest/specifications/version-specifiers/\"\u003ePython Version Specification\u003c/a\u003e.\nSee the \u003ca href=\"https://github.com/Python-Markdown/markdown/blob/master/docs/contributing.md\"\u003eContributing Guide\u003c/a\u003e for details.\u003c/p\u003e\n\u003ch2\u003e[Unreleased]\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure nested elements inside inline comments are properly unescaped (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1571\"\u003e#1571\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eMake the docs build successfully with mkdocstrings-python 2.0 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1575\"\u003e#1575\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.10.0] - 2025-11-03\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.9.0] - 2025-09-04\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFootnotes are now ordered by the occurrence of their references in the\ndocument. A new configuration option for the footnotes extension,\n\u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e, has been added to support restoring the previous\nbehavior of ordering footnotes by the occurrence of definitions (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1367\"\u003e#1367\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure inline processing iterates through elements in document order (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1546\"\u003e#1546\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix handling of incomplete HTML tags in code spans in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1547\"\u003e#1547\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.8.2] - 2025-06-19\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/22e89c1fc346f72218a10e392a0c3b4731912522\"\u003e\u003ccode\u003e22e89c1\u003c/code\u003e\u003c/a\u003e Bump version to 3.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/c138aea5139a6aceae05bb957e866d9ce7577b94\"\u003e\u003ccode\u003ec138aea\u003c/code\u003e\u003c/a\u003e + PY314 - PY39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/746f7f527b15f63845253e3b86947b806ef1b98f\"\u003e\u003ccode\u003e746f7f5\u003c/code\u003e\u003c/a\u003e cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/a5ee2b4aad05531898ab8fd726c7ece31ddadf8b\"\u003e\u003ccode\u003ea5ee2b4\u003c/code\u003e\u003c/a\u003e Revert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/5354daf618149f92580a1407c036115753c5df73\"\u003e\u003ccode\u003e5354daf\u003c/code\u003e\u003c/a\u003e Fix an HTML comment parsing case that can cause an infinite loop\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Python-Markdown/markdown/compare/3.9.0...3.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyyaml` from 6.0.2 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/yaml/pyyaml/releases\"\u003epyyaml's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14 and free-threading (experimental).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ehttps://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\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 href=\"https://github.com/yaml/pyyaml/blob/6.0.3/CHANGES\"\u003epyyaml's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e6.0.3 (2025-09-25)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/yaml/pyyaml/pull/864\"\u003eyaml/pyyaml#864\u003c/a\u003e -- Support for Python 3.14 and free-threading (experimental)\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 href=\"https://github.com/yaml/pyyaml/commit/49790e73684bebad1df05ef8d828fa12f685bffb\"\u003e\u003ccode\u003e49790e7\u003c/code\u003e\u003c/a\u003e Release 6.0.3 (\u003ca href=\"https://redirect.github.com/yaml/pyyaml/issues/889\"\u003e#889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xlsxwriter` from 3.2.8 to 3.2.9\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jmcnamara/XlsxWriter/blob/main/Changes\"\u003exlsxwriter's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.2.9 - September 16 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved the \u003ccode\u003epy.typed\u003c/code\u003e file since it was causing a lot of downstream CI\nfailures where consumers weren't handling the xlsxwriter types correctly or\ntaking them into account.\u003c/p\u003e\n\u003cp\u003eThe file will be re-added once the xlsxwriter typing is more comprehensive.\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 href=\"https://github.com/jmcnamara/XlsxWriter/commit/e943bee8c9cdf0661cfdb83d5497e0725390e41e\"\u003e\u003ccode\u003ee943bee\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/392bd9e6572785394c6553e2d4f7ae2bb80782f4\"\u003e\u003ccode\u003e392bd9e\u003c/code\u003e\u003c/a\u003e typing: remove py.typed file\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/jmcnamara/XlsxWriter/compare/RELEASE_3.2.8...RELEASE_3.2.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xmlschema` from 4.1.0 to 4.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sissaschool/xmlschema/releases\"\u003exmlschema's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.2.0 (2025-10-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd arguments validation for schemas and validation methods (by validation contexts)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSchemaSettings\u003c/code\u003e dataclass for storing read-only settings for schema instances\nand for managing package default settings\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eblock\u003c/em\u003e argument to \u003ccode\u003eXMLResource\u003c/code\u003e class (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/464\"\u003e#464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_SCHEMA_SOURCES\u003c/em\u003e package limit (\u003ccode\u003e1000\u003c/code\u003e, applied to \u003ccode\u003eXsdGlobals\u003c/code\u003e global maps instances)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_XML_ELEMENTS\u003c/em\u003e package limit (\u003ccode\u003e1,000,000\u003c/code\u003e, applied to non-lazy \u003ccode\u003eXMLResource\u003c/code\u003e instances)\u003c/li\u003e\n\u003cli\u003eReduce \u003cem\u003eMAX_XML_DEPTH\u003c/em\u003e limit to 1000 and apply it to all \u003ccode\u003eXMLResource\u003c/code\u003e instances\u003c/li\u003e\n\u003cli\u003eFix for substitute match in case of unexpected child (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\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 href=\"https://github.com/sissaschool/xmlschema/blob/master/CHANGELOG.rst\"\u003exmlschema's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ccode\u003ev4.2.0\u003c/code\u003e_ (2025-10-14)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd arguments validation for schemas and validation methods (by validation contexts)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSchemaSettings\u003c/code\u003e dataclass for storing read-only settings for schema instances\nand for managing package default settings\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eblock\u003c/em\u003e argument to \u003ccode\u003eXMLResource\u003c/code\u003e class (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/464\"\u003e#464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_SCHEMA_SOURCES\u003c/em\u003e package limit (\u003ccode\u003e1000\u003c/code\u003e, applied to \u003ccode\u003eXsdGlobals\u003c/code\u003e global maps instances)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_XML_ELEMENTS\u003c/em\u003e package limit (\u003ccode\u003e1,000,000\u003c/code\u003e, applied to non-lazy \u003ccode\u003eXMLResource\u003c/code\u003e instances)\u003c/li\u003e\n\u003cli\u003eReduce \u003cem\u003eMAX_XML_DEPTH\u003c/em\u003e limit to 1000 and apply it to all \u003ccode\u003eXMLResource\u003c/code\u003e instances\u003c/li\u003e\n\u003cli\u003eFix for substitute match in case of unexpected child (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\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 href=\"https://github.com/sissaschool/xmlschema/commit/2783030fcdcd5307563822906862a9e7088931b2\"\u003e\u003ccode\u003e2783030\u003c/code\u003e\u003c/a\u003e Bump minor release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/7c77a12f0fe16c8da0256a0f13281a03e4a0f717\"\u003e\u003ccode\u003e7c77a12\u003c/code\u003e\u003c/a\u003e Include publiccode.yml validation workflow for CI and README changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/04c19d54d4578f34a0c04d6cc82daa8d3ef9d90c\"\u003e\u003ccode\u003e04c19d5\u003c/code\u003e\u003c/a\u003e Fix XsdGroup.match_element (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/dd4f279e56b8a5ce89f78a6c88337f5032af0b2f\"\u003e\u003ccode\u003edd4f279\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/463\"\u003e#463\u003c/a\u003e from publiccode-pr-bot/chore/add-publiccode-parser-ac...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/1bd7aa6eebf4947e7ae76e47a2f706b58fed22cd\"\u003e\u003ccode\u003e1bd7aa6\u003c/code\u003e\u003c/a\u003e Update GitHub workflow for CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/76b0f67e900777166bcd3773cc109efae933682d\"\u003e\u003ccode\u003e76b0f67\u003c/code\u003e\u003c/a\u003e Patch mypy tests with protocols\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/28727bb0af89f129d59772550c6998164c37aeff\"\u003e\u003ccode\u003e28727bb\u003c/code\u003e\u003c/a\u003e Update docs and release info\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/e4131eaf6bc1a223292f3f19e78573a4317d131a\"\u003e\u003ccode\u003ee4131ea\u003c/code\u003e\u003c/a\u003e Add from_settings() class method to schemas\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/0aea8debef13b62156e7297bdc54198057ea3611\"\u003e\u003ccode\u003e0aea8de\u003c/code\u003e\u003c/a\u003e Rewrite validation contexts as normal classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/d443d7ba0e3de8fad6d6df8f314b12735af4bac3\"\u003e\u003ccode\u003ed443d7b\u003c/code\u003e\u003c/a\u003e Full validation of context arguments\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sissaschool/xmlschema/compare/v4.1.0...v4.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lark` from 1.2.2 to 1.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lark-parser/lark/releases\"\u003elark's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.3.1 - Bugfix + source build now contains complete project data\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix: Restore support for custom input, alongside text and TextSlice by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1562\"\u003elark-parser/lark#1562\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep sdist in sync with git (include all files in source build, including docs, tests and examples) by \u003ca href=\"https://github.com/chanicpanic\"\u003e\u003ccode\u003e@​chanicpanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1561\"\u003elark-parser/lark#1561\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/lark-parser/lark/compare/1.3.0...1.3.1\"\u003ehttps://github.com/lark-parser/lark/compare/1.3.0...1.3.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e1.3.0 - Introduces text-slices, Earley fix, and various small improvements\u003c/h2\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLark can now parse in sections of strings, using \u003ccode\u003eTextSlice\u003c/code\u003e, as a faster alternative to creating a \u0026quot;copy-slice\u0026quot; with \u003ccode\u003es[i:j]\u003c/code\u003e. \u003ca href=\"https://lark-parser.readthedocs.io/en/latest/classes.html#lark.utils.TextSlice\"\u003eLearn more\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded support to \u003ccode\u003ematch\u003c/code\u003e on Tree instances\u003c/li\u003e\n\u003cli\u003eWhen serializing a Lark instance, added the option to include the grammar object (before compilation).\u003c/li\u003e\n\u003cli\u003eAdded convenience method \u003ccode\u003eTree.find_token()\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix of an edge case in Earley related to representation of ambiguity.\u003c/li\u003e\n\u003cli\u003eBugfixes in the standalone parser related to imports\u003c/li\u003e\n\u003cli\u003eBugfix in indenter - now dedents always contain line information\u003c/li\u003e\n\u003cli\u003eVarious small bugfixes (see PR list below)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFull list of PRs\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDocs: Rephrase v_args() documentation to underline it only applies to Transformer classes by \u003ca href=\"https://github.com/skepppy\"\u003e\u003ccode\u003e@​skepppy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1458\"\u003elark-parser/lark#1458\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTiny refactor for PR \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1451\"\u003e#1451\u003c/a\u003e by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1459\"\u003elark-parser/lark#1459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEarley: share nodes created by the scanner with the completer by \u003ca href=\"https://github.com/chanicpanic\"\u003e\u003ccode\u003e@​chanicpanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1451\"\u003elark-parser/lark#1451\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter error in Lark.parse when using on_error when parser!=lalr (issue \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1311\"\u003e#1311\u003c/a\u003e) by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1460\"\u003elark-parser/lark#1460\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eSymbol.__eq__\u003c/code\u003e to return false when comparing with None by \u003ca href=\"https://github.com/weaversam8\"\u003e\u003ccode\u003e@​weaversam8\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1481\"\u003elark-parser/lark#1481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMention internal/external transformers in the documentation by \u003ca href=\"https://github.com/odanoburu\"\u003e\u003ccode\u003e@​odanoburu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1486\"\u003elark-parser/lark#1486\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Tree.find_token() method by \u003ca href=\"https://github.com/makukha\"\u003e\u003ccode\u003e@​makukha\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1467\"\u003elark-parser/lark#1467\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eType \u003ccode\u003eTerminal.__init__\u003c/code\u003e by \u003ca href=\"https://github.com/Liam-DeVoe\"\u003e\u003ccode\u003e@​Liam-DeVoe\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1503\"\u003elark-parser/lark#1503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd guidance on handling comments in languages with significant indentation by \u003ca href=\"https://github.com/nchammas\"\u003e\u003ccode\u003e@​nchammas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1502\"\u003elark-parser/lark#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Small fix for PR 1507 by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1508\"\u003elark-parser/lark#1508\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd note on binding power of numeric quantifiers by \u003ca href=\"https://github.com/414owen\"\u003e\u003ccode\u003e@​414owen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1507\"\u003elark-parser/lark#1507\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrap functools.partial in staticmethod() to add compatibility with Python 3.14 by \u003ca href=\"https://github.com/hrnciar\"\u003e\u003ccode\u003e@​hrnciar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1483\"\u003elark-parser/lark#1483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix generic type of Transformer_InPlaceRecursive by \u003ca href=\"https://github.com/lbhm\"\u003e\u003ccode\u003e@​lbhm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1518\"\u003elark-parser/lark#1518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded TextSlice; Lark can now parse/lex a text-slice by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1452\"\u003elark-parser/lark#1452\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport match on tree by \u003ca href=\"https://github.com/colmmurphyxyz\"\u003e\u003ccode\u003e@​colmmurphyxyz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1521\"\u003elark-parser/lark#1521\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: Updated link of DSL article to a new version by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1529\"\u003elark-parser/lark#1529\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebetter error messages for shift/reduct conflicts by \u003ca href=\"https://github.com/skogsbaer\"\u003e\u003ccode\u003e@​skogsbaer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1531\"\u003elark-parser/lark#1531\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSerialize Lark.grammar (fixes issue \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1472\"\u003e#1472\u003c/a\u003e) by \u003ca href=\"https://github.com/NasalDaemon\"\u003e\u003ccode\u003e@​NasalDaemon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1506\"\u003elark-parser/lark#1506\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes for PR \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1506\"\u003e#1506\u003c/a\u003e, which adds the option to cache the grammar definition by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1540\"\u003elark-parser/lark#1540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix in indenter - now always creating dedents with line information by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1547\"\u003elark-parser/lark#1547\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix: issue when unpickling in the standalone parser, due to lingering Token instances by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1553\"\u003elark-parser/lark#1553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInclude missing import in standalone parser by \u003ca href=\"https://github.com/pdeibert\"\u003e\u003ccode\u003e@​pdeibert\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1541\"\u003elark-parser/lark#1541\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVersion bump (1.3.0) by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1554\"\u003elark-parser/lark#1554\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=\"https://github.com/skepppy\"\u003e\u003ccode\u003e@​skepppy\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1458\"\u003elark-parser/lark#1458\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 href=\"https://github.com/lark-parser/lark/commit/f79772cd4c6d2076b5dc01f399dbb816cc484f77\"\u003e\u003ccode\u003ef79772c\u003c/code\u003e\u003c/a\u003e Version bump (1.3.1)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/b64e9f42c93e9c05c17fac694ae5cbd18c041a2b\"\u003e\u003ccode\u003eb64e9f4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1561\"\u003e#1561\u003c/a\u003e from chanicpanic/sdist-git\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/ad0ea5f14ee4afbaf617cc088e1b8fe2fcff08fc\"\u003e\u003ccode\u003ead0ea5f\u003c/code\u003e\u003c/a\u003e Update MANIFEST.in\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/1f6f03c10540d4646c1a70b1da16a90592d7ec58\"\u003e\u003ccode\u003e1f6f03c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1562\"\u003e#1562\u003c/a\u003e from lark-parser/issue1560\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/7c365de586325620a20f2753b36ffa313c1d9b45\"\u003e\u003ccode\u003e7c365de\u003c/code\u003e\u003c/a\u003e Added custom input test (based on code from examples)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/19bbbee5d79845123f7f07ab716ec88185e2fa9d\"\u003e\u003ccode\u003e19bbbee\u003c/code\u003e\u003c/a\u003e Bugfix: Restore support for custom input, alongside text and TextSlice (Issue...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/dbcb60e888c5c8a3656c9f0c1ef0f928bb7c5ad6\"\u003e\u003ccode\u003edbcb60e\u003c/code\u003e\u003c/a\u003e Keep sdist in sync with git\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/e332c2df2f7d400460a5f1204d9bc36b49b25635\"\u003e\u003ccode\u003ee332c2d\u003c/code\u003e\u003c/a\u003e Version bump (1.3.0)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/aa5666c30e255257b0c36ef93c80d800f84a04ca\"\u003e\u003ccode\u003eaa5666c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1541\"\u003e#1541\u003c/a\u003e from pdeibert/master\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/41934d390dd7661a82df5ed28bd75655fe797cf7\"\u003e\u003ccode\u003e41934d3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1553\"\u003e#1553\u003c/a\u003e from lark-parser/issue1552\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lark-parser/lark/compare/1.2.2...1.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `simple-salesforce` from 1.12.8 to 1.12.9\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/simple-salesforce/simple-salesforce/releases\"\u003esimple-salesforce's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.12.9\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: missing key 'name' in exception message by \u003ca href=\"https://github.com/hofrob\"\u003e\u003ccode\u003e@​hofrob\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simple-salesforce/simple-salesforce/pull/795\"\u003esimple-salesforce/simple-salesforce#795\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=\"https://github.com/hofrob\"\u003e\u003ccode\u003e@​hofrob\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/simple-salesforce/simple-salesforce/pull/795\"\u003esimple-salesforce/simple-salesforce#795\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/simple-salesforce/simple-salesforce/compare/v1.12.8...v1.12.9\"\u003ehttps://github.com/simple-salesforce/simple-salesforce/compare/v1.12.8...v1.12.9\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 href=\"https://github.com/simple-salesforce/simple-salesforce/blob/master/CHANGES\"\u003esimple-salesforce's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev1.12.9\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/simple-salesforce/simple-salesforce/issues/795\"\u003e#795\u003c/a\u003e Fix key 'name' in exception message\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 href=\"https://github.com/simple-salesforce/simple-salesforce/commit/fc7410a1603a6a2f4df2dc407b9f3f5313cb696e\"\u003e\u003ccode\u003efc7410a\u003c/code\u003e\u003c/a\u003e chore: Bump release version (\u003ca href=\"https://redirect.github.com/simple-salesforce/simple-salesforce/issues/796\"\u003e#796\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simple-salesforce/simple-salesforce/commit/e9c256377abe6b7b6455e69ba9bd8b7d76d566de\"\u003e\u003ccode\u003ee9c2563\u003c/code\u003e\u003c/a\u003e fix: missing key 'name' in exception message (\u003ca href=\"https://redirect.github.com/simple-salesforce/simple-salesforce/issues/795\"\u003e#795\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/simple-salesforce/simple-salesforce/compare/v1.12.8...v1.12.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `shapely` from 2.0.7 to 2.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/shapely/shapely/releases\"\u003eshapely's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.1.2\u003c/h2\u003e\n\u003cp\u003eWheels are available for Python 3.14 (and still include GEOS 3.13.1).\u003c/p\u003e\n\u003ch2\u003e2.1.1\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix performance degradation calling shapely functions (caused by deprecation of certain positional arguments) (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2283\"\u003e#2283\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix crash caused by \u003ccode\u003efrom_ragged_array()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2291\"\u003e#2291\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix compilation error building with recent LLVM toolchain (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2293\"\u003e#2293\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFor a full changelog , see \u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-1\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.1.0\u003c/h2\u003e\n\u003cp\u003eShapely 2.1.0 is a feature release with various new functions, improvements and bug fixes. Highlights include initial support for geometries with M or ZM values, functionality for coverage validation and simplification, and a set of new top-level functions.\u003c/p\u003e\n\u003cp\u003eShapely supports Python \u0026gt;= 3.10, and binary wheels on PyPI include GEOS 3.13.1 and are now also provided for musllinux (Alpine) x86_64 platforms.\u003c/p\u003e\n\u003cp\u003eFor a full changelog, see \u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.1.0rc1\u003c/h2\u003e\n\u003cp\u003eShapely version 2.1.0 is a major release featuring various new functions, improvements and bug fixes. This is a first release candidate.\u003c/p\u003e\n\u003cp\u003eFor a full changelog, see \u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0-unreleased\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0-unreleased\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 href=\"https://github.com/shapely/shapely/blob/main/CHANGES.txt\"\u003eshapely's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.1.2 (2025-09-24)\u003c/h2\u003e\n\u003cp\u003eWheels are available for Python 3.14 (and still include GEOS 3.13.1).\u003c/p\u003e\n\u003ch2\u003e2.1.1 (2025-05-19)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix performance degradation calling shapely functions (caused by deprecation\nof certain positional arguments) (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2283\"\u003e#2283\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix crash caused by \u003ccode\u003efrom_ragged_array()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2291\"\u003e#2291\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix compilation error building with recent LLVM toolchain (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2293\"\u003e#2293\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.0 (2025-04-03)\u003c/h2\u003e\n\u003cp\u003eShapely 2.1.0 is a feature release with various new functions,\nimprovements and bug fixes. Highlights include initial support for geometries\nwith M or ZM values, functionality for coverage validation and\nsimplification, and a set of new top-level functions.\u003c/p\u003e\n\u003cp\u003eShapely supports Python \u0026gt;= 3.10, and binary wheels on PyPI include GEOS 3.13.1\nand are now also provided for musllinux (Alpine) x86_64 platforms.\u003c/p\u003e\n\u003cp\u003eFor a full changelog, see\n\u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/5fb639d1056888d135fe56bfaf750c9648addeec\"\u003e\u003ccode\u003e5fb639d\u003c/code\u003e\u003c/a\u003e RLS: 2.1.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/70509a1bee5ebd6637cda98b5c9d83707c341888\"\u003e\u003ccode\u003e70509a1\u003c/code\u003e\u003c/a\u003e DOC/RLS: indicate Python 3.14 support in pyproject.toml and release notes for...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/5c572b622027f6917c75afd728f201a144fb597d\"\u003e\u003ccode\u003e5c572b6\u003c/code\u003e\u003c/a\u003e CI: add testing with GEOS 3.14 and Python 3.14 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2330\"\u003e#2330\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/a9093336b1ea77559d44148a7f1ed92ab3bc2999\"\u003e\u003ccode\u003ea909333\u003c/code\u003e\u003c/a\u003e Bump pypa/cibuildwheel from 3.1.3 to 3.2.0 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2328\"\u003e#2328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/2086d4428e29da17bafc684acbfb04bb537ce573\"\u003e\u003ccode\u003e2086d44\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2326\"\u003e#2326\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/50c1cf30be0e37081991b6d5a5dc3531cfbe35da\"\u003e\u003ccode\u003e50c1cf3\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4 to 5 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2321\"\u003e#2321\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/39490ab685a42a2c189f2ce7a45b7d07053e8e8f\"\u003e\u003ccode\u003e39490ab\u003c/code\u003e\u003c/a\u003e TST: update test_coverage_union_overlapping_inputs for upstream GEOS change (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/5ef437c898b54f723ad0e4a8b6b513b9cc5d68a2\"\u003e\u003ccode\u003e5ef437c\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2320\"\u003e#2320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/7b5ff3d24b7889d35f96ee3ae9ec26250b3d6147\"\u003e\u003ccode\u003e7b5ff3d\u003c/code\u003e\u003c/a\u003e BLD: add Python 3.14 wheels [Bump pypa/cibuildwheel from 3.0.1 to 3.1.3] (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2316\"\u003e#2316\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/480dbb14f47b685e95c03654983405185c15babd\"\u003e\u003ccode\u003e480dbb1\u003c/code\u003e\u003c/a\u003e TST: update frechet_distance densi...\n\n_Description has been truncated_","html_url":"https://github.com/SEED-platform/seed/pull/5157","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/SEED-platform%2Fseed/issues/5157","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/5157/packages"}},{"old_version":"2.0.30","new_version":"2.0.31","update_type":"patch","path":null,"pr_created_at":"2025-12-18T22:24:05.000Z","version_change":"2.0.30 → 2.0.31","issue":{"uuid":"3745060325","node_id":"PR_kwDOPdzh-c65si3F","number":106,"state":"closed","title":"Bump the python group across 1 directory with 33 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-01-05T22:28:50.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-18T22:24:05.000Z","updated_at":"2026-01-05T22:28:51.000Z","time_to_close":1555485,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python","update_count":33,"packages":[{"name":"rcssmin","old_version":"1.1.2","new_version":"1.2.2","repository_url":"https://github.com/ndparker/rcssmin"},{"name":"whitenoise","old_version":"6.9.0","new_version":"6.11.0","repository_url":"https://github.com/evansd/whitenoise"},{"name":"hiredis","old_version":"3.2.1","new_version":"3.3.0","repository_url":"https://github.com/redis/hiredis-py"},{"name":"celery","old_version":"5.5.3","new_version":"5.6.0","repository_url":"https://github.com/celery/celery"},{"name":"django-allauth","old_version":"65.10.0","new_version":"65.13.1"},{"name":"django-crispy-forms","old_version":"2.4","new_version":"2.5","repository_url":"https://github.com/django-crispy-forms/django-crispy-forms"},{"name":"django-compressor","old_version":"4.5.1","new_version":"4.6.0","repository_url":"https://github.com/django-compressor/django-compressor"},{"name":"uwsgi","old_version":"2.0.30","new_version":"2.0.31"},{"name":"easy-thumbnails","old_version":"2.10","new_version":"2.10.1"},{"name":"django-cms","old_version":"5.0.2","new_version":"5.0.5","repository_url":"https://github.com/django-cms/django-cms"},{"name":"djangocms-versioning","old_version":"2.4.0","new_version":"2.5.0","repository_url":"https://github.com/django-cms/djangocms-versioning"},{"name":"django-entangled","old_version":"0.6.3","new_version":"0.7","repository_url":"https://github.com/jrief/django-entangled"},{"name":"djangocms-text","old_version":"0.9.2","new_version":"0.9.3","repository_url":"https://github.com/django-cms/djangocms-text"},{"name":"djangocms-frontend","old_version":"2.1.4","new_version":"2.2.0","repository_url":"https://github.com/django-cms/djangocms-frontend"},{"name":"djangocms-attributes-field","old_version":"4.1.1","new_version":"4.1.2","repository_url":"https://github.com/django-cms/djangocms-attributes-field"},{"name":"svglib","old_version":"1.5.1","new_version":"1.6.0","repository_url":"https://github.com/deeplook/svglib"},{"name":"reportlab","old_version":"4.4.3","new_version":"4.4.6"},{"name":"django-filer","old_version":"3.3.1","new_version":"3.4.1","repository_url":"https://github.com/django-cms/django-filer"},{"name":"pip-tools","old_version":"7.5.0","new_version":"7.5.2","repository_url":"https://github.com/jazzband/pip-tools"},{"name":"djangocms-snippet","old_version":"5.0.1","new_version":"5.0.2","repository_url":"https://github.com/django-cms/djangocms-snippet"},{"name":"djangocms-form-builder","old_version":"0.3.2","new_version":"0.4.0","repository_url":"https://github.com/fsbraun/djangocms-form-builder"},{"name":"psycopg","old_version":"3.2.9","new_version":"3.3.2"},{"name":"werkzeug","old_version":"3.1.3","new_version":"3.1.4"},{"name":"watchfiles","old_version":"1.1.0","new_version":"1.1.1","repository_url":"https://github.com/samuelcolvin/watchfiles"},{"name":"mypy","old_version":"1.17.1","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"django-stubs","old_version":"5.2.2","new_version":"5.2.8"},{"name":"pytest-sugar","old_version":"1.0.0","new_version":"1.1.1","repository_url":"https://github.com/Teemu/pytest-sugar"},{"name":"ruff","old_version":"0.12.8","new_version":"0.14.10","repository_url":"https://github.com/astral-sh/ruff"},{"name":"coverage","old_version":"7.10.3","new_version":"7.13.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"pre-commit","old_version":"4.3.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"factory-boy","old_version":"3.3.2","new_version":"3.3.3","repository_url":"https://github.com/FactoryBoy/factory_boy"},{"name":"django-debug-toolbar","old_version":"6.0.0","new_version":"6.1.0","repository_url":"https://github.com/django-commons/django-debug-toolbar"},{"name":"django-coverage-plugin","old_version":"3.1.1","new_version":"3.2.0","repository_url":"https://github.com/nedbat/django_coverage_plugin"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python group with 33 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [rcssmin](https://github.com/ndparker/rcssmin) | `1.1.2` | `1.2.2` |\n| [whitenoise](https://github.com/evansd/whitenoise) | `6.9.0` | `6.11.0` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.2.1` | `3.3.0` |\n| [celery](https://github.com/celery/celery) | `5.5.3` | `5.6.0` |\n| [django-allauth[mfa]](https://github.com/sponsors/pennersr) | `65.10.0` | `65.13.1` |\n| [django-crispy-forms](https://github.com/django-crispy-forms/django-crispy-forms) | `2.4` | `2.5` |\n| [django-compressor](https://github.com/django-compressor/django-compressor) | `4.5.1` | `4.6.0` |\n| [uwsgi](https://uwsgi-docs.readthedocs.io/en/latest/) | `2.0.30` | `2.0.31` |\n| [easy-thumbnails[svg]](https://github.com/SmileyChris/easy-thumbnails) | `2.10` | `2.10.1` |\n| [django-cms](https://github.com/django-cms/django-cms) | `5.0.2` | `5.0.5` |\n| [djangocms-versioning](https://github.com/django-cms/djangocms-versioning) | `2.4.0` | `2.5.0` |\n| [django-entangled](https://github.com/jrief/django-entangled) | `0.6.3` | `0.7` |\n| [djangocms-text](https://github.com/django-cms/djangocms-text) | `0.9.2` | `0.9.3` |\n| [djangocms-frontend](https://github.com/django-cms/djangocms-frontend) | `2.1.4` | `2.2.0` |\n| [djangocms-attributes-field](https://github.com/django-cms/djangocms-attributes-field) | `4.1.1` | `4.1.2` |\n| [svglib](https://github.com/deeplook/svglib) | `1.5.1` | `1.6.0` |\n| [reportlab](https://www.reportlab.com/) | `4.4.3` | `4.4.6` |\n| [django-filer](https://github.com/django-cms/django-filer) | `3.3.1` | `3.4.1` |\n| [pip-tools](https://github.com/jazzband/pip-tools) | `7.5.0` | `7.5.2` |\n| [djangocms-snippet](https://github.com/django-cms/djangocms-snippet) | `5.0.1` | `5.0.2` |\n| [djangocms-form-builder](https://github.com/fsbraun/djangocms-form-builder) | `0.3.2` | `0.4.0` |\n| [psycopg[c]](https://github.com/psycopg/psycopg) | `3.2.9` | `3.3.2` |\n| [werkzeug[watchdog]](https://github.com/pallets/werkzeug) | `3.1.3` | `3.1.4` |\n| [watchfiles](https://github.com/samuelcolvin/watchfiles) | `1.1.0` | `1.1.1` |\n| [mypy](https://github.com/python/mypy) | `1.17.1` | `1.19.1` |\n| [django-stubs[compatible-mypy]](https://github.com/sponsors/typeddjango) | `5.2.2` | `5.2.8` |\n| [pytest-sugar](https://github.com/Teemu/pytest-sugar) | `1.0.0` | `1.1.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.12.8` | `0.14.10` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.3` | `7.13.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.3.0` | `4.5.1` |\n| [factory-boy](https://github.com/FactoryBoy/factory_boy) | `3.3.2` | `3.3.3` |\n| [django-debug-toolbar](https://github.com/django-commons/django-debug-toolbar) | `6.0.0` | `6.1.0` |\n| [django-coverage-plugin](https://github.com/nedbat/django_coverage_plugin) | `3.1.1` | `3.2.0` |\n\n\nUpdates `rcssmin` from 1.1.2 to 1.2.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ndparker/rcssmin/blob/master/CHANGES\"\u003ercssmin's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eChanges with version 1.2.2\u003c/p\u003e\n\u003cp\u003e*) Update benchmarks\u003c/p\u003e\n\u003cp\u003e*) Add support for Python 3.14\u003c/p\u003e\n\u003cp\u003e*) Update project boilerplate\u003c/p\u003e\n\u003cp\u003eChanges with version 1.2.1\u003c/p\u003e\n\u003cp\u003e*) Change doc theme to \u0026quot;furo\u0026quot;\u003c/p\u003e\n\u003cp\u003e*) Remove build dependency pinning (resolves \u003ca href=\"https://redirect.github.com/ndparker/rcssmin/issues/18\"\u003e#18\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e*) Update project boilerplate\u003c/p\u003e\n\u003cp\u003eChanges with version 1.2.0\u003c/p\u003e\n\u003cp\u003e*) Add support for nesting selector (\u0026amp;)\u003c/p\u003e\n\u003cp\u003e*) Update project boilerplate\u003c/p\u003e\n\u003cp\u003eChanges with version 1.1.3\u003c/p\u003e\n\u003cp\u003e*) Add support for Python 3.13\u003c/p\u003e\n\u003cp\u003e*) Update project boilerplate\u003c/p\u003e\n\u003cp\u003eChanges with version 1.1.2\u003c/p\u003e\n\u003cp\u003e*) Add support for Python 3.12\u003c/p\u003e\n\u003cp\u003e*) Add musllinux wheels\u003c/p\u003e\n\u003cp\u003e*) Update project boilerplate\u003c/p\u003e\n\u003cp\u003eChanges with version 1.1.1\u003c/p\u003e\n\u003cp\u003e*) Add support for Python 3.11\u003c/p\u003e\n\u003cp\u003e*) Update project boilerplate\u003c/p\u003e\n\u003cp\u003eChanges with version 1.1.0\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 href=\"https://github.com/ndparker/rcssmin/commit/b4cac4d1ffd665aa3b8d2f9e0e09529578a67193\"\u003e\u003ccode\u003eb4cac4d\u003c/code\u003e\u003c/a\u003e Bump version to 1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/db3f06eefa05860bbe1e8fa373e0249cb6adedbb\"\u003e\u003ccode\u003edb3f06e\u003c/code\u003e\u003c/a\u003e Update benchmarks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/77816d3cf9e2f3dc03c00e1f8526e471dffdc3fe\"\u003e\u003ccode\u003e77816d3\u003c/code\u003e\u003c/a\u003e Add Python 3.14 support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/ecac7747c1a68781cf1b524ea54db44aae7c7bd2\"\u003e\u003ccode\u003eecac774\u003c/code\u003e\u003c/a\u003e Project boilerplate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/5bac716410f460f75e243961f482b1895e487b6b\"\u003e\u003ccode\u003e5bac716\u003c/code\u003e\u003c/a\u003e Bump version to 1.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/8d4312f864efa55d36742a728adffebfd27a6aa3\"\u003e\u003ccode\u003e8d4312f\u003c/code\u003e\u003c/a\u003e Hello 2025\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/41d1e1f7ae6242a80854509d7181f8a91278722b\"\u003e\u003ccode\u003e41d1e1f\u003c/code\u003e\u003c/a\u003e Update dependencies, change sphinx theme\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/5396f5ec399b2ac57293657fb87ca888f3ecda8e\"\u003e\u003ccode\u003e5396f5e\u003c/code\u003e\u003c/a\u003e Bump version to 1.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/81da21987bfe614153711217f1b50bc0fa5f4c55\"\u003e\u003ccode\u003e81da219\u003c/code\u003e\u003c/a\u003e Update benchmarks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/1f9ff6d2d89f03108ccf53332352e328ee010b82\"\u003e\u003ccode\u003e1f9ff6d\u003c/code\u003e\u003c/a\u003e Add support for nesting selector (\u0026amp;)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ndparker/rcssmin/compare/1.1.2...1.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `whitenoise` from 6.9.0 to 6.11.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/evansd/whitenoise/blob/main/docs/changelog.rst\"\u003ewhitenoise's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.11.0 (2025-09-18)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Django 6.0.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.10.0 (2025-09-09)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14.\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 href=\"https://github.com/evansd/whitenoise/commit/c9c06e9382b92fc959ffdfc3e2ec63057de82561\"\u003e\u003ccode\u003ec9c06e9\u003c/code\u003e\u003c/a\u003e Version 6.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/051c4e997a07fd3ae5e9f3ec092080102ab89d93\"\u003e\u003ccode\u003e051c4e9\u003c/code\u003e\u003c/a\u003e Support Django 6.0 (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/665\"\u003e#665\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/c903cc13394895cbb3926e48c7acecf364efcd26\"\u003e\u003ccode\u003ec903cc1\u003c/code\u003e\u003c/a\u003e Version 6.10.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/a81bcb0ae2dd0c5884ebadb762f46827ecb54d0f\"\u003e\u003ccode\u003ea81bcb0\u003c/code\u003e\u003c/a\u003e docs(django): use the stable version in URLs (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/626\"\u003e#626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/67b4f32b12a9700b6dcc30ced8e9ad23bf39baa1\"\u003e\u003ccode\u003e67b4f32\u003c/code\u003e\u003c/a\u003e Support Python 3.14 (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/664\"\u003e#664\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/da8d333d165be1bdd9e7decbb3a293b5e55ff608\"\u003e\u003ccode\u003eda8d333\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/663\"\u003e#663\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/800072482c0652f81864ae78c26539d3dfc765b2\"\u003e\u003ccode\u003e8000724\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/662\"\u003e#662\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/8fb339f0eaee9219b1e02a840b5fd2227cf2fbbf\"\u003e\u003ccode\u003e8fb339f\u003c/code\u003e\u003c/a\u003e Upgrade dependencies (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/661\"\u003e#661\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/adf64ddfa5329d622cbc4740aec49b7baf0df792\"\u003e\u003ccode\u003eadf64dd\u003c/code\u003e\u003c/a\u003e Use uvx to run tox on GitHub Actions (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/660\"\u003e#660\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/ad6eb204640ff69498f8fc60bd9eb876ee5771b8\"\u003e\u003ccode\u003ead6eb20\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/659\"\u003e#659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/evansd/whitenoise/compare/6.9.0...6.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `hiredis` from 3.2.1 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/hiredis-py/releases\"\u003ehiredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.3.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e by \u003ca href=\"https://github.com/zweizeichen\"\u003e\u003ccode\u003e@​zweizeichen\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\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 href=\"https://github.com/redis/hiredis-py/commit/187d0f387afed58a955a42ea8c5467100871f98b\"\u003e\u003ccode\u003e187d0f3\u003c/code\u003e\u003c/a\u003e Version 3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/3efcf037edc5a9f7abfaedbd3f60b2a03feb4787\"\u003e\u003ccode\u003e3efcf03\u003c/code\u003e\u003c/a\u003e Add Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/215\"\u003e#215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/966cede2c0ca0a8ac4fe0786571e5c230f39c36e\"\u003e\u003ccode\u003e966cede\u003c/code\u003e\u003c/a\u003e Fix assertion in reader.c (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/212\"\u003e#212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/78def309e58126fdaacb66e6fd40df9c46494062\"\u003e\u003ccode\u003e78def30\u003c/code\u003e\u003c/a\u003e Bump version to 3.3.0-dev\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/redis/hiredis-py/compare/v3.2.1...v3.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `celery` from 5.5.3 to 5.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/celery/celery/releases\"\u003ecelery's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.6.0\u003c/h2\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003ch2\u003eKey Highlights\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.celeryq.dev/en/stable/history/whatsnew-5.6.html\"\u003eWhat's new in Celery 5.6\u003c/a\u003e for a complete overview or read the main highlights below.\u003c/p\u003e\n\u003ch3\u003ePython 3.9 Minimum Version\u003c/h3\u003e\n\u003cp\u003eCelery 5.6.0 drops support for Python 3.8 (EOL). The minimum required Python version is now 3.9. Users still on Python 3.8 must upgrade their Python version before upgrading to Celery 5.6.0.\u003c/p\u003e\n\u003cp\u003eAdditionally, this release includes initial support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eSQS: Reverted to \u003ccode\u003epycurl\u003c/code\u003e from \u003ccode\u003eurllib3\u003c/code\u003e\u003c/h3\u003e\n\u003cp\u003eThe switch from \u003ccode\u003epycurl\u003c/code\u003e to \u003ccode\u003eurllib3\u003c/code\u003e for the SQS transport (introduced in Celery 5.5.0 via Kombu) has been reverted due to critical issues affecting SQS users.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/auvipy\"\u003e\u003ccode\u003e@​auvipy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9620\"\u003ecelery/celery#9620\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eSecurity Fix: Broker Credential Leak Prevention\u003c/h3\u003e\n\u003cp\u003eFixed a security issue where broker URLs containing passwords were being logged in plaintext by the delayed delivery mechanism. Broker credentials are now properly sanitized in all log output.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/giancarloromeo\"\u003e\u003ccode\u003e@​giancarloromeo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9997\"\u003ecelery/celery#9997\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eMemory Leak Fixes\u003c/h3\u003e\n\u003cp\u003eTwo significant memory leaks have been fixed in this release:\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eException Handling Memory Leak\u003c/strong\u003e: Fixed a critical memory leak in task exception handling that was particularly severe on Python 3.11+ due to enhanced traceback data. The fix properly breaks reference cycles in tracebacks to allow garbage collection.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/jaiganeshs21\"\u003e\u003ccode\u003e@​jaiganeshs21\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9799\"\u003ecelery/celery#9799\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ePending Result Memory Leak\u003c/strong\u003e: Fixed a memory leak where \u003ccode\u003eAsyncResult\u003c/code\u003e subscriptions were not being cleaned up when results were forgotten.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/tsoos99dev\"\u003e\u003ccode\u003e@​tsoos99dev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9806\"\u003ecelery/celery#9806\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eETA Task Memory Limit\u003c/h3\u003e\n\u003cp\u003eNew configuration option \u003ccode\u003eworker_eta_task_limit\u003c/code\u003e to prevent out-of-memory crashes when workers fetch large numbers of ETA or countdown tasks. Previously, workers could exhaust available memory when the broker contained many scheduled tasks.\u003c/p\u003e\n\u003cp\u003eExample usage:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eapp.conf.worker_eta_task_limit = 1000\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/sashu2310\"\u003e\u003ccode\u003e@​sashu2310\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9853\"\u003ecelery/celery#9853\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eQueue Type Selection for Auto-created Queues\u003c/h3\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 href=\"https://github.com/celery/celery/blob/main/Changelog.rst\"\u003ecelery's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.6.0\u003c/h1\u003e\n\u003cp\u003e:release-date: 2025-11-30\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003cp\u003eKey Highlights\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nSee :ref:`whatsnew-5.6` for a complete overview or read the main highlights below.\n\u003ch2\u003ePython 3.9 Minimum Version\u003c/h2\u003e\n\u003cp\u003eCelery 5.6.0 drops support for Python 3.8 (EOL). The minimum required Python\nversion is now 3.9. Users still on Python 3.8 must upgrade their Python version\nbefore upgrading to Celery 5.6.0.\u003c/p\u003e\n\u003cp\u003eAdditionally, this release includes initial support for Python 3.14.\u003c/p\u003e\n\u003ch2\u003eSQS: Reverted to \u003ccode\u003epycurl\u003c/code\u003e from \u003ccode\u003eurllib3\u003c/code\u003e\u003c/h2\u003e\n\u003cp\u003eThe switch from \u003ccode\u003epycurl\u003c/code\u003e to \u003ccode\u003eurllib3\u003c/code\u003e for the SQS transport (introduced in\nCelery 5.5.0 via Kombu) has been reverted due to critical issues affecting SQS\nusers:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eProcessing throughput dropped from ~100 tasks/sec to ~3/sec in some environments\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUnknownOperationException\u003c/code\u003e errors causing container crash loops\u003c/li\u003e\n\u003cli\u003eSilent message processing failures with no error logs\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eUsers of the SQS transport must ensure \u003ccode\u003epycurl\u003c/code\u003e is installed. If you removed\n\u003ccode\u003epycurl\u003c/code\u003e after upgrading to Celery 5.5.0, you will need to reinstall it.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ccode\u003e@auvipy \u0026amp;lt;https://github.com/auvipy\u0026amp;gt;\u003c/code\u003e_ in\n\u003ccode\u003e[#9620](https://github.com/celery/celery/issues/9620) \u0026amp;lt;https://github.com/celery/celery/pull/9620\u0026amp;gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003ch2\u003eSecurity Fix: Broker Credential Leak Prevention\u003c/h2\u003e\n\u003cp\u003eFixed a security issue where broker URLs containing passwords were being logged\nin plaintext by the delayed delivery mechanism. Broker credentials are now\nproperly sanitized in all log output.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ccode\u003e@giancarloromeo \u0026amp;lt;https://github.com/giancarloromeo\u0026amp;gt;\u003c/code\u003e_ in\n\u003ccode\u003e[#9997](https://github.com/celery/celery/issues/9997) \u0026amp;lt;https://github.com/celery/celery/pull/9997\u0026amp;gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003cp\u003eMemory Leak Fixes\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\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 href=\"https://github.com/celery/celery/commit/cca11164860a1bee6ad8626c27a683b482f741eb\"\u003e\u003ccode\u003ecca1116\u003c/code\u003e\u003c/a\u003e Prepare for release: v5.6.0 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10010\"\u003e#10010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/1133f22181bb22223d39c0060973695c6af55643\"\u003e\u003ccode\u003e1133f22\u003c/code\u003e\u003c/a\u003e Bump mypy from 1.14.1 to 1.19.0 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10008\"\u003e#10008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/0932d2c06e001903b90638f7c40a14f5407c9801\"\u003e\u003ccode\u003e0932d2c\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10007\"\u003e#10007\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/b446910f18860531b089d6c39f974265cc24a589\"\u003e\u003ccode\u003eb446910\u003c/code\u003e\u003c/a\u003e Prepare for (pre) release: v5.6.0rc2 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10005\"\u003e#10005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/3f0f0fe7ea6a67a696d0a750644b552559ae368e\"\u003e\u003ccode\u003e3f0f0fe\u003c/code\u003e\u003c/a\u003e asynpool: Don't return from inside a finally block (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10000\"\u003e#10000\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/95d05527c0e1fff5c1a38877ba87592983a7f993\"\u003e\u003ccode\u003e95d0552\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10003\"\u003e#10003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/f32b92f0e481601e9cc9f1212a4feced3f48e1a0\"\u003e\u003ccode\u003ef32b92f\u003c/code\u003e\u003c/a\u003e Add Py39-314t to CI (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9999\"\u003e#9999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/63c1910221d9fb8c1931ff62c80c4c37232b2d58\"\u003e\u003ccode\u003e63c1910\u003c/code\u003e\u003c/a\u003e Don't fail task on timeout during cold shutdown (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9678\"\u003e#9678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/30649dbd41308fc8eef79b2aae179a908eaa7a51\"\u003e\u003ccode\u003e30649db\u003c/code\u003e\u003c/a\u003e Fix log leaking broker credentials (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9997\"\u003e#9997\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/929412e2d4d328e337be3f177ca99fff10ab9bdc\"\u003e\u003ccode\u003e929412e\u003c/code\u003e\u003c/a\u003e Remove Python 4.0 version condition for pytest dependencies (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9993\"\u003e#9993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/celery/celery/compare/v5.5.3...v5.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-allauth[mfa]` from 65.10.0 to 65.13.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sponsors/pennersr/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-crispy-forms` from 2.4 to 2.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/releases\"\u003edjango-crispy-forms's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eConfirmed support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eConfirmed support for Django 6.0.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8.\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 href=\"https://github.com/django-crispy-forms/django-crispy-forms/blob/main/CHANGELOG.md\"\u003edjango-crispy-forms's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.5 (2025-11-06)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eConfirmed support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eConfirmed support for Django 6.0.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8.\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 href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/65fa8ae065638da101851807937bb89ae1b5687e\"\u003e\u003ccode\u003e65fa8ae\u003c/code\u003e\u003c/a\u003e 2.5 Release. (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1424\"\u003e#1424\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/ca4ca14da2aeac3ce934b83861f1b2a558b736fd\"\u003e\u003ccode\u003eca4ca14\u003c/code\u003e\u003c/a\u003e PEP 639 licenses  (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1413\"\u003e#1413\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/aaabe68c0d5a2eee98101ff661b2c5cab28a0777\"\u003e\u003ccode\u003eaaabe68\u003c/code\u003e\u003c/a\u003e Updated pre-commit hook versions.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/125dd1632a460b4dd7b1c8ab0738863d0470c2cb\"\u003e\u003ccode\u003e125dd16\u003c/code\u003e\u003c/a\u003e Pyupgrade 3.9+\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/1f9c8ecc24a3159c86219403ae26e7d0c67e15b7\"\u003e\u003ccode\u003e1f9c8ec\u003c/code\u003e\u003c/a\u003e Confirmed support for Python 3.14, Django. Drop support for Python 3.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/93cb8c8e817870e19a6c426a3e5716ae748a6535\"\u003e\u003ccode\u003e93cb8c8\u003c/code\u003e\u003c/a\u003e Correct names in special thanks section (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1421\"\u003e#1421\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/e327548f80a531bba5ac1049b73108a0681eebf4\"\u003e\u003ccode\u003ee327548\u003c/code\u003e\u003c/a\u003e Added security policy. (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1419\"\u003e#1419\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/64813429d54b39c10d7bb7ad2db4ab0e0e2c418f\"\u003e\u003ccode\u003e6481342\u003c/code\u003e\u003c/a\u003e Enabled GitHub code of conduct (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1416\"\u003e#1416\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/dabd719113c8e7e43fa8d5e254bfa938d169e6e8\"\u003e\u003ccode\u003edabd719\u003c/code\u003e\u003c/a\u003e Add Project Logo. (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1415\"\u003e#1415\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/compare/2.4...2.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-compressor` from 4.5.1 to 4.6.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-compressor/django-compressor/blob/develop/docs/changelog.txt\"\u003edjango-compressor's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003ev4.6 (2025-11-10)\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003eFull list of changes from v4.5.1 \u0026lt;https://github.com/django-compressor/django-compressor/compare/4.5.1...4.6\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed compatibility with latest BS4.\u003c/li\u003e\n\u003cli\u003eRemoved top pin for rcssmin and rjsmin dependencies.\u003c/li\u003e\n\u003cli\u003eAvoid compressing the same node concurrently in offline compression.\u003c/li\u003e\n\u003cli\u003eAvoid use of deprecated ast.Constant.s\u003c/li\u003e\n\u003cli\u003eOfficially support Django 6.0\u003c/li\u003e\n\u003cli\u003eOfficially support Django 5.2\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Django 5.0\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 3.9.\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 3.8.\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 href=\"https://github.com/django-compressor/django-compressor/commit/3ada994897cf982f97fc4c934be42eb1e0b71b9a\"\u003e\u003ccode\u003e3ada994\u003c/code\u003e\u003c/a\u003e Prepare 4.6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/1baa82a6cf6942eb12007217f26195a95df727e2\"\u003e\u003ccode\u003e1baa82a\u003c/code\u003e\u003c/a\u003e Remove CI testing for EOL Django 5.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/8706a52b740e7555abefc8fba1eaae1986ded1a5\"\u003e\u003ccode\u003e8706a52\u003c/code\u003e\u003c/a\u003e Add CI testing for Python 3.14 and Django 6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/7be9ce2cefedf59302207728e383fa7811232d59\"\u003e\u003ccode\u003e7be9ce2\u003c/code\u003e\u003c/a\u003e Bump brotli, lxml, and coverage test dependencies.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/d6fd8136febd1ba409b366c7471db8763522d91d\"\u003e\u003ccode\u003ed6fd813\u003c/code\u003e\u003c/a\u003e Remove test version pinning for rcssmin and rjsmin.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/2b46e7d1724109ebb5db49b76f008dc039f0a9db\"\u003e\u003ccode\u003e2b46e7d\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1307\"\u003e#1307\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/b97bb05836eb6a42d2746d43792e9d13f041b615\"\u003e\u003ccode\u003eb97bb05\u003c/code\u003e\u003c/a\u003e Disable bs4's multi valued attributes (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1296\"\u003e#1296\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/4e5433076300508e1c3648da3345ae606386eb3f\"\u003e\u003ccode\u003e4e54330\u003c/code\u003e\u003c/a\u003e Migrate packaging to pyproject.toml (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1313\"\u003e#1313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/872f8d52ce51957bccf4a91338d177c2ea4a3908\"\u003e\u003ccode\u003e872f8d5\u003c/code\u003e\u003c/a\u003e Remove version pinning for rcssmin and rjsmin (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1312\"\u003e#1312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/cc38666efb13c6e0b355cf273f56b783d7157e29\"\u003e\u003ccode\u003ecc38666\u003c/code\u003e\u003c/a\u003e Drop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1311\"\u003e#1311\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-compressor/django-compressor/compare/4.5.1...4.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uwsgi` from 2.0.30 to 2.0.31\n\nUpdates `easy-thumbnails[svg]` from 2.10 to 2.10.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/blob/master/CHANGES.rst\"\u003eeasy-thumbnails[svg]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.10.1 (2025-08-17)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Django-5.2.\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 href=\"https://github.com/SmileyChris/easy-thumbnails/commit/208f672ab53e3c7596c966b5282e64ed9747a3e4\"\u003e\u003ccode\u003e208f672\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/SmileyChris/easy-thumbnails/issues/664\"\u003e#664\u003c/a\u003e from SmileyChris/jrief-patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/318a2847391bb0e3fdc0a17a52af49a5851b53c9\"\u003e\u003ccode\u003e318a284\u003c/code\u003e\u003c/a\u003e Update CHANGES.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/0989a40226197b78bfa47939e44017bedea564fa\"\u003e\u003ccode\u003e0989a40\u003c/code\u003e\u003c/a\u003e version 2.10.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/3b86790c40788ebf9ce0cb66f529d745abe715b5\"\u003e\u003ccode\u003e3b86790\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/SmileyChris/easy-thumbnails/issues/663\"\u003e#663\u003c/a\u003e from tomkins/django-5.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/221679530109e5f92b2ad4d3e25f759d6dd90ced\"\u003e\u003ccode\u003e2216795\u003c/code\u003e\u003c/a\u003e Drop support for Django 5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/2cf9af0d7dc341ccaaabc79500033584aae88fbb\"\u003e\u003ccode\u003e2cf9af0\u003c/code\u003e\u003c/a\u003e Add support for Django 5.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/4957daa823a8ee17a90859281c2d93b06930e6fa\"\u003e\u003ccode\u003e4957daa\u003c/code\u003e\u003c/a\u003e Drop py38 from Django 4.2 testing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/21759697b0b5b600e6ebd5cce336a7d25f94099b\"\u003e\u003ccode\u003e2175969\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/SmileyChris/easy-thumbnails/issues/654\"\u003e#654\u003c/a\u003e from ArcaniteSolutions/fix-remote-storages-location-l...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/26351108ed706721492e606fe4ff51179d8a4844\"\u003e\u003ccode\u003e2635110\u003c/code\u003e\u003c/a\u003e check storage has location before fixing path\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/9d6fe6632ba4f175e9f4ad61eb4b3457b8124711\"\u003e\u003ccode\u003e9d6fe66\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/SmileyChris/easy-thumbnails/issues/650\"\u003e#650\u003c/a\u003e from benkonrath/python-3.13\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/compare/2.10.0...2.10.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-cms` from 5.0.2 to 5.0.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-cms/django-cms/releases\"\u003edjango-cms's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.0.5\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Searching pages for language-specific content failed due to wrong serach queryset (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8355\"\u003e#8355\u003c/a\u003e) by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8358\"\u003edjango-cms/django-cms#8358\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Fix default value for edit_fields parameter to avoid AttributeError by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8381\"\u003edjango-cms/django-cms#8381\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: avoid escaping (= stringify) None-values in PageAttribute template tag by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8384\"\u003edjango-cms/django-cms#8384\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Copying x-language lead to unique constraint violation (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8366\"\u003e#8366\u003c/a\u003e) by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8386\"\u003edjango-cms/django-cms#8386\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Ensure edit endpoint language selection when admin is not using i18n_patterns (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8367\"\u003e#8367\u003c/a\u003e) by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8390\"\u003edjango-cms/django-cms#8390\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Build release 5.0.5 by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8391\"\u003edjango-cms/django-cms#8391\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-cms/django-cms/compare/5.0.4...5.0.5\"\u003ehttps://github.com/django-cms/django-cms/compare/5.0.4...5.0.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Wrong placeholders rendered when using apphooks with own placeholders (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8343\"\u003e#8343\u003c/a\u003e) by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8348\"\u003edjango-cms/django-cms#8348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Prepare release 5.0.4 by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8352\"\u003edjango-cms/django-cms#8352\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-cms/django-cms/compare/5.0.3...5.0.4\"\u003ehttps://github.com/django-cms/django-cms/compare/5.0.3...5.0.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: Django 6 compatibility (July 2025) by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8302\"\u003edjango-cms/django-cms#8302\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: Add documentation for toolbar get_object and set_object methods by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8314\"\u003edjango-cms/django-cms#8314\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Respect individual placeholder checks if they can be changed (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8317\"\u003e#8317\u003c/a\u003e) by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8318\"\u003edjango-cms/django-cms#8318\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Cut children from inactive menu nodes when level is less or equal to 0 (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8322\"\u003e#8322\u003c/a\u003e) by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8324\"\u003edjango-cms/django-cms#8324\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: copy lang management command - include PageUrl (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/7548\"\u003e#7548\u003c/a\u003e) by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8335\"\u003edjango-cms/django-cms#8335\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Optimize placeholder and plugin utilities by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8337\"\u003edjango-cms/django-cms#8337\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Migration 0033 failed when empty placeholder objects were not present in the db by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8339\"\u003edjango-cms/django-cms#8339\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Build 5.0.3 release by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8341\"\u003edjango-cms/django-cms#8341\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-cms/django-cms/compare/5.0.2...5.0.3\"\u003ehttps://github.com/django-cms/django-cms/compare/5.0.2...5.0.3\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 href=\"https://github.com/django-cms/django-cms/blob/5.0.5/CHANGELOG.rst\"\u003edjango-cms's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.0.5 (2025-11-12)\u003c/h1\u003e\n\u003ch2\u003eBug Fixes:\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePin language of toolbar update to the request language\u003c/li\u003e\n\u003cli\u003eEnsure edit endpoint language selection when admin is not using i18n_patterns (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8367\"\u003e#8367\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8390\"\u003e#8390\u003c/a\u003e) (9e00f694e) -- Fabian Braun\u003c/li\u003e\n\u003cli\u003eCopying x-language lead to unique constraint violation (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8366\"\u003e#8366\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8386\"\u003e#8386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid escaping (= stringify) None-values in PageAttribute-TemplateTag (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8375\"\u003e#8375\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8384\"\u003e#8384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSet default value for edit_fields parameter to avoid AttributeError (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8381\"\u003e#8381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLink syntax in welcome.html\u003c/li\u003e\n\u003cli\u003eSearching pages for language-specific content failed due to wrong search queryset (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8355\"\u003e#8355\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8358\"\u003e#8358\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eStatistics:\u003c/h2\u003e\n\u003cp\u003eThis release includes 5 pull requests, and was created with the help of the following contributors (in alphabetical order):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFabian Braun (7 pull requests)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWith the review help of the following contributors:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVinit Kumar\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to all contributors for their efforts!\u003c/p\u003e\n\u003ch1\u003e5.0.4 (2025-10-03)\u003c/h1\u003e\n\u003ch2\u003eBug Fixes:\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWrong placeholders rendered when using apphooks with own placeholders (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8343\"\u003e#8343\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8348\"\u003e#8348\u003c/a\u003e) (775392390) -- Fabian Braun\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eStatistics:\u003c/h2\u003e\n\u003cp\u003eThis release includes 1 pull request, and was created with the help of the following contributors (in alphabetical order):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFabian Braun (1 pull request)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWith the review help of the following contributors:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVinit Kumar\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to all contributors for their efforts!\u003c/p\u003e\n\u003ch1\u003e5.0.3 (2025-09-17)\u003c/h1\u003e\n\u003cp\u003eBug Fixes:\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 href=\"https://github.com/django-cms/django-cms/commit/6e970e6c4894ecd1459fedc6f2c00617a923a740\"\u003e\u003ccode\u003e6e970e6\u003c/code\u003e\u003c/a\u003e chore: Build release 5.0.5 (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8391\"\u003e#8391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/9e00f694ee0afe637521177a139d69a02d752f7f\"\u003e\u003ccode\u003e9e00f69\u003c/code\u003e\u003c/a\u003e fix: Ensure edit endpoint language selection when admin is not using i18n_pat...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/e6d0f76703afd154b2319a0b9e3b50e9330805bf\"\u003e\u003ccode\u003ee6d0f76\u003c/code\u003e\u003c/a\u003e fix: Copying x-language lead to unique constraint violation (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8366\"\u003e#8366\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8386\"\u003e#8386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/3990cfb37913e72d55780c3886445b4e75bdea78\"\u003e\u003ccode\u003e3990cfb\u003c/code\u003e\u003c/a\u003e Fix: avoid escaping (= stringify) None-values in PageAttribute-TemplateTag (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/80a19fdf550fab528cdc1c2634076de22e9497ad\"\u003e\u003ccode\u003e80a19fd\u003c/code\u003e\u003c/a\u003e fix: Fix default value for edit_fields parameter to avoid AttributeError (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8381\"\u003e#8381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/6f63ebf05e12c86512b8b084b615b1011c581708\"\u003e\u003ccode\u003e6f63ebf\u003c/code\u003e\u003c/a\u003e fix: link syntax in welcome.html\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/1ff46f7e1c3284eae9749497a76656afc8f8c302\"\u003e\u003ccode\u003e1ff46f7\u003c/code\u003e\u003c/a\u003e fix: Searching pages for language-specific content failed due to wrong serach...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/ed3a004b62ee69f099b0f647dd33778ba0b0d1fb\"\u003e\u003ccode\u003eed3a004\u003c/code\u003e\u003c/a\u003e chore: Prepare release 5.0.4 (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8352\"\u003e#8352\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/775392390eea0ffcdeccb0d21306d6e34fb859df\"\u003e\u003ccode\u003e7753923\u003c/code\u003e\u003c/a\u003e fix: Wrong placeholders rendered when using apphooks with own placeholders (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/cb8bdcecf623e125ea789a0551279a3dc0152deb\"\u003e\u003ccode\u003ecb8bdce\u003c/code\u003e\u003c/a\u003e chore: Build 5.0.3 release (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8341\"\u003e#8341\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-cms/django-cms/compare/5.0.2...5.0.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `djangocms-versioning` from 2.4.0 to 2.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-cms/djangocms-versioning/releases\"\u003edjangocms-versioning's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.5.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Fix typo in permission name by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/476\"\u003edjango-cms/djangocms-versioning#476\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Remove unnecessary \u003ccode\u003e_original_manager\u003c/code\u003e usage from toolbar by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/477\"\u003edjango-cms/djangocms-versioning#477\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/checkout from 4 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/482\"\u003edjango-cms/djangocms-versioning#482\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/cache from 4.2.3 to 4.2.4 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/481\"\u003edjango-cms/djangocms-versioning#481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/cache from 4.2.4 to 4.3.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/485\"\u003edjango-cms/djangocms-versioning#485\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/setup-python from 5 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/484\"\u003edjango-cms/djangocms-versioning#484\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump github/codeql-action from 3 to 4 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/487\"\u003edjango-cms/djangocms-versioning#487\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Respect site-specific language configurations by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/480\"\u003edjango-cms/djangocms-versioning#480\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Respect permissions for indicator menus and version locking by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/493\"\u003edjango-cms/djangocms-versioning#493\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Modernize JS build, remove jQuery bundle by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/492\"\u003edjango-cms/djangocms-versioning#492\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eModernize Python and Django support: Drop Python 3.9, add Python 3.14 and Django 6.0 by \u003ca href=\"https://github.com/vinitkumar\"\u003e\u003ccode\u003e@​vinitkumar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/489\"\u003edjango-cms/djangocms-versioning#489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/setup-node from 4 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/494\"\u003edjango-cms/djangocms-versioning#494\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump astral-sh/setup-uv from 5 to 7 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/495\"\u003edjango-cms/djangocms-versioning#495\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Update locales by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/497\"\u003edjango-cms/djangocms-versioning#497\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdates for file djangocms_versioning/locale/en/LC_MESSAGES/django.po in de by \u003ca href=\"https://github.com/transifex-integration\"\u003e\u003ccode\u003e@​transifex-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/496\"\u003edjango-cms/djangocms-versioning#496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[BUG FIX] Language menu is showing despite only one language configured by \u003ca href=\"https://github.com/va-lang\"\u003e\u003ccode\u003e@​va-lang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/491\"\u003edjango-cms/djangocms-versioning#491\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=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/476\"\u003edjango-cms/djangocms-versioning#476\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vinitkumar\"\u003e\u003ccode\u003e@​vinitkumar\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/489\"\u003edjango-cms/djangocms-versioning#489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/va-lang\"\u003e\u003ccode\u003e@​va-lang\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/491\"\u003edjango-cms/djangocms-versioning#491\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-cms/djangocms-versioning/compare/2.4.0...2.5.0\"\u003ehttps://github.com/django-cms/djangocms-versioning/compare/2.4.0...2.5.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 href=\"https://github.com/django-cms/djangocms-versioning/blob/master/CHANGELOG.rst\"\u003edjangocms-versioning's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.5.0 (2025-11-14)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efeat: Language menu allows creating new translations from preview mode by \u003ca href=\"https://github.com/va-lang\"\u003e\u003ccode\u003e@​va-lang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/491\"\u003edjango-cms/djangocms-versioning#491\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Modernize Python and Django support: Drop Python 3.9, add Python 3.14 and Django 6.0 by \u003ca href=\"https://github.com/vinitkumar\"\u003e\u003ccode\u003e@​vinitkumar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/489\"\u003edjango-cms/djangocms-versioning#489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Updates for file djangocms_versioning/locale/en/LC_MESSAGES/django.po in de by \u003ca href=\"https://github.com/transifex-integration\"\u003e\u003ccode\u003e@​transifex-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/496\"\u003edjango-cms/djangocms-versioning#496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Swap django-fsm with django-fsm-2\u003c/li\u003e\n\u003cli\u003efix: Typo in permission name by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/476\"\u003edjango-cms/djangocms-versioning#476\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Remove unnecessary \u003ccode\u003e_original_manager\u003c/code\u003e usage from toolbar by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/477\"\u003edjango-cms/djangocms-versioning#477\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Respect site-specific language configurations by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/480\"\u003edjango-cms/djangocms-versioning#480\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Respect permissions for indicator menus and version locking by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/493\"\u003edjango-cms/djangocms-versioning#493\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eNew Contributors\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/476\"\u003edjango-cms/djangocms-versioning#476\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vinitkumar\"\u003e\u003ccode\u003e@​vinitkumar\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/489\"\u003edjango-cms/djangocms-versioning#489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/va-lang\"\u003e\u003ccode\u003e@​va-lang\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/491\"\u003edjango-cms/djangocms-versioning#491\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 href=\"https://github.com/django-cms/djangocms-versioning/commit/da78ec1adc34f37ccfe9780a30c858b89f7637fe\"\u003e\u003ccode\u003eda78ec1\u003c/code\u003e\u003c/a\u003e chore: Prepare release 2.5.0 (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/issues/500\"\u003e#500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-versioning/commit/08df487169f44e7710f18155a9d5d02d32531e4c\"\u003e\u003ccode\u003e08df487\u003c/code\u003e\u003c/a\u003e chore: Simplified requirements_dev.txt file for tests (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/issues/499\"\u003e#499\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-versioning/commit/e2e5e8d3ab1ee07b4f1dd2c7518441f6e6038c21\"\u003e\u003ccode\u003ee2e5e8d\u003c/code\u003e\u003c/a\u003e [BUG FIX] Language menu is showing despite only one language configured (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/issues/491\"\u003e#491\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-versioning/commit/d90268d6ee31dd7f9e80df804ab9ad5a2df68c2b\"\u003e\u003ccode\u003ed90268d\u003c/code\u003e\u003c/a\u003e Translate django.po in de (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/issues/496\"\u003e#496\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-versioning/commit/bc3cbc10ff12106836da1a1ee51c8283b9d726cc\"\u003e\u003ccode\u003ebc3cbc1\u003c/code\u003e\u003c/a\u003e chore: Update locales (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/issues/497\"\u003e#497\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-versioning/commit/d111df897067a31fe8dca7b88773ae0ca9fba397\"\u003e\u003ccode\u003ed111df8\u003c/code\u003e\u003c/a\u003e build(deps): bump astral-sh/setup-uv from 5 to 7 (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/issues/495\"\u003e#495\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-versioning/commit/dc24f2604420f46c1203aa8a06a9dc948eceadd3\"\u003e\u003ccode\u003edc24f26\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-node from 4 to 6 (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/issues/494\"\u003e#494\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-versioning/commit/a0db3dea7aaf838376be6809fe9870ad7eee3205\"\u003e\u003ccode\u003ea0db3de\u003c/code\u003e\u003c/a\u003e Modernize Python and Django support: Drop Python 3.9, add Python 3.14 and Dja...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-versioning/commit/27abc23b5157a3cb6d18cfb2bdaaa61eb24a284d\"\u003e\u003ccode\u003e27abc23\u003c/code\u003e\u003c/a\u003e chore: Modernize JS build, remove jQuery bundle (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/issues/492\"\u003e#492\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-versioning/commit/29b3955871676bf69bd59154ff8125378ecca287\"\u003e\u003ccode\u003e29b3955\u003c/code\u003e\u003c/a\u003e fix: Respect permissions for indicator menus and version locking (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/issues/493\"\u003e#493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-cms/djangocms-versioning/compare/2.4.0...2.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-entangled` from 0.6.3 to 0.7\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jrief/django-entangled/blob/master/CHANGELOG.md\"\u003edjango-entangled's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.7\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Django 5.2.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.13.\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 href=\"https://github.com/jrief/django-entangled/commit/734bd8f8b316663a1f31d4fa7e9248a955baea21\"\u003e\u003ccode\u003e734bd8f\u003c/code\u003e\u003c/a\u003e Bump to version 0.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jrief/django-entangled/commit/fcad6c824be14d052456df759e23bc4b44646d3e\"\u003e\u003ccode\u003efcad6c8\u003c/code\u003e\u003c/a\u003e Add support for Django-5.2 and Python 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jrief/django-entangled/commit/a89b615cafcdbb939d71fb34dc30253d2dcf5c00\"\u003e\u003ccode\u003ea89b615\u003c/code\u003e\u003c/a\u003e Propagate django-formset\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/jrief/django-entangled/compare/0.6.3...0.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `djangocms-text` from 0.9.2 to 0.9.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-cms/djangocms-text/releases\"\u003edjangocms-text's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.9.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Fixed issues for non-CMS installations and added test coverage for non-CMS installations by \u003ca href=\"https://github.com/Grosskopf\"\u003e\u003ccode\u003e@​Grosskopf\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/119\"\u003edjango-cms/djangocms-text#119\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Respect plugin language for link field by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/113\"\u003edjango-cms/djangocms-text#113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/114\"\u003edjango-cms/djangocms-text#114\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/checkout from 4 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/115\"\u003edjango-cms/djangocms-text#115\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=\"https://github.com/Grosskopf\"\u003e\u003ccode\u003e@​Grosskopf\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/119\"\u003edjango-cms/djangocms-text#119\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-cms/djangocms-text/compare/0.9.2...0.9.3\"\u003ehttps://github.com/django-cms/djangocms-text/compare/0.9.2...0.9.3\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 href=\"https://github.com/django-cms/djangocms-text/blob/main/CHANGELOG.rst\"\u003edjangocms-text's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e0.9.3 (22-08-2025)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix: Fixed issues for non-CMS installations and added test coverage for non-CMS installations by \u003ca href=\"https://github.com/Grosskopf\"\u003e\u003ccode\u003e@​Grosskopf\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/119\"\u003edjango-cms/djangocms-text#119\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Respect plugin language for link field by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/113\"\u003edjango-cms/djangocms-text#113\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/Grosskopf\"\u003e\u003ccode\u003e@​Grosskopf\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/119\"\u003edjango-cms/djangocms-text#119\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 href=\"https://github.com/django-cms/djangocms-text/commit/23c8c5b276547459db18fad7bd2b45bf978c2d4b\"\u003e\u003ccode\u003e23c8c5b\u003c/code\u003e\u003c/a\u003e chore: Prepare release 0.9.3 (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/issues/120\"\u003e#120\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-text/commit/070dc3bff81b6aaad57b34bbbdce905a9a753fef\"\u003e\u003ccode\u003e070dc3b\u003c/code\u003e\u003c/a\u003e fix: Fixed issues for non-CMS installations and added test coverage for non-C...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-text/commit/d23c7830b72afd3d143bbd54dc5c3e25c7a844a7\"\u003e\u003ccode\u003ed23c783\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/issues/115\"\u003e#115\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-text/commit/4c78ee95ac529d9444a0c0342c41fe06c5edf9c1\"\u003e\u003ccode\u003e4c78ee9\u003c/code\u003e\u003c/a\u003e Merge branch 'main' of github.com:django-cms/djangocms-text\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-text/commit/d13df72a07522f1e1f84a50a4448a3ecde4bef65\"\u003e\u003ccode\u003ed13df72\u003c/code\u003e\u003c/a\u003e feat: node 24\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-text/commit/cf7b3b82f92999bb9297b213844696374f524937\"\u003e\u003ccode\u003ecf7b3b8\u003c/code\u003e\u003c/a\u003e ci: pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/issues/114\"\u003e#114\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-text/commit/5fa6205a5910b34334bdb14744f59b62a275a09e\"\u003e\u003ccode\u003e5fa6205\u003c/code\u003e\u003c/a\u003e Update comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-text/commit/79568c6b98a6e4adda9f84b84aa016254db60481\"\u003e\u003ccode\u003e79568c6\u003c/code\u003e\u003c/a\u003e fix: Respect plugin language for link field (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/issues/113\"\u003e#113\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/django-cms/djangocms-text/compare/0.9.2...0.9.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `djangocms-frontend` from 2.1.4 to 2.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-cms/djangocms-frontend/releases\"\u003edjangocms-frontend's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.2.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eci:(deps): bump actions/cache from 4.2.3 to 4.2.4 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-frontend/pull/297\"\u003edjango-cms/djangocms-frontend#297\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Only partially functional preview removed, CSS and JS refactor by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-frontend/pull/301\"\u003edjango-cms/djangocms-frontend#301\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Button group too condensed when using djangocms-admin-style by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-frontend/pull/303\"\u003edjango-cms/djangocms-frontend#303\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-cms/djangocms-frontend/compare/2.1.4...2.2.0\"\u003ehttps://github.com/django-cms/djangocms-frontend/compare/2.1.4...2.2.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 href=\"https://github.com/django-cms/djangocms-frontend/blob/main/CHANGELOG.rst\"\u003edjangocms-frontend's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.2.0 (2025-08-16)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efeat: Refactored CSS for faster and more reliable loading by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Removed link and button preview\u003c/li\u003e\n\u003cli\u003efix: Some UI Components were not discovered by the \u003ccode\u003e{% plugin %}\u003c/code\u003e template tag in django CMS 5\u003c/li\u003e\n\u003cli\u003efix: Restored Python 3.9 compatibility\u003c/li\u003e\n\u003cli\u003echore: Update node version\u003c/li\u003e\n\u003cli\u003echore: Remove bootstrap dependency\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 href=\"https://github.com/django-cms/djangocms-frontend/commit/6ec69a0c7fa36165e9bc3d5cfa333d60422985bf\"\u003e\u003ccode\u003e6ec69a0\u003c/code\u003e\u003c/a\u003e fix: Button group too condensed when using djangocms-admin-style (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-frontend/issues/303\"\u003e#303\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/662b357e8ad4642f18a73874eceac899a26ede66\"\u003e\u003ccode\u003e662b357\u003c/code\u003e\u003c/a\u003e fix: Docs references \u003ccode\u003efrontend_tags\u003c/code\u003e instead of \u003ccode\u003efrontend\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/5135e527beb741446f626e4c0c116f2e146c7667\"\u003e\u003ccode\u003e5135e52\u003c/code\u003e\u003c/a\u003e chore: Update LICENSE\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/b84bab7439442345ea8db89145a1079e4ba871bf\"\u003e\u003ccode\u003eb84bab7\u003c/code\u003e\u003c/a\u003e feat: Only partially functional preview removed, CSS and JS refactor (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-frontend/issues/301\"\u003e#301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/554418c1d4642279bef6e601ae2297ff5d634ba0\"\u003e\u003ccode\u003e554418c\u003c/code\u003e\u003c/a\u003e ci:(deps): bump actions/cache from 4.2.3 to 4.2.4 (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-frontend/issues/297\"\u003e#297\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/53a958051b6f475a3df3e48131956db0eed72d5e\"\u003e\u003ccode\u003e53a9580\u003c/code\u003e\u003c/a\u003e fix: typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/5f8829b6e5adbdf4689cc3747756e7ff4ae86dc1\"\u003e\u003ccode\u003e5f8829b\u003c/code\u003e\u003c/a\u003e Merge branch 'main' of github.com:django-cms/djangocms-frontend\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/b3a0eb6afc484c63520a2166dccff47ca0ec653e\"\u003e\u003ccode\u003eb3a0eb6\u003c/code\u003e\u003c/a\u003e fix: Python 3.9 support for plugin_tag.py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/4d3a3cf60485a9d17292a24db7654b75c19a1be9\"\u003e\u003ccode\u003e4d3a3cf\u003c/code\u003e\u003c/a\u003e fix test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/453e4c29d928076a3bf8c9e52b5a2f1f2e692231\"\u003e\u003ccode\u003e453e4c2\u003c/code\u003e\u003c/a\u003e chore: add test for py 3.9\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-cms/djangocms-frontend/compare/2.1.4...2.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `djangocms-attributes-field` from 4.1.1 to 4.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-cms/djangocms-attributes-field/releases\"\u003edjangocms-attributes-field's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.1.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Add min-height to attributes pair buttons by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-attributes-field/pull/62\"\u003edjango-cms/djangocms-attributes-field#62\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-cms/djangocms-attributes-field/compare/4.1.1...4.1.2\"\u003ehttps://github.com/django-cms/djangocms-attributes-field/compare/4.1.1...4.1.2\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 href=\"https://github.com/django-cms/djangocms-attributes-field/blob/master/CHANGELOG.rst\"\u003edjangocms-attributes-field's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.1.2 (2025-11.02)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix: Add min-height to add link for unstyled Django admin\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 href=\"https://github.com/django-cms/djangocms-attributes-field/commit/9adbde46e3c1bd52fd297cbbf9475e4da01cbba4\"\u003e\u003ccode\u003e9adbde4\u003c/code\u003e\u003c/a\u003e fix: Add min-height to attributes pair buttons (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-attributes-field/issues/62\"\u003e#62\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/django-cms/djangocms-attributes-field/compare/4.1.1...4.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `svglib` from 1.5.1 to 1.6.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/deeplook/svglib/blob/main/CHANGELOG.rst\"\u003esvglib's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.6.0 (2025-09-25)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplace setup.py with pyproject.toml, rework GitHub workflows (\u003ca href=\"https://redirect.github.com/deeplook/svglib/issues/405\"\u003e#405\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003cli\u003eModernize codebase, added type annotations, expanded docstrings, etc.\u003c/li\u003e\n\u003cli\u003eAdd a Makefile.\u003c/li\u003e\n\u003cli\u003eAdd publishing workflows.\u003c/li\u003e\n\u003cli\u003eRemove dunder constants and use importlib.metadata to get the version number.\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 href=\"https://github.com/deeplook/svglib/commit/1dce6584fb40de115479da10880dbf3b75cda955\"\u003e\u003ccode\u003e1dce658\u003c/code\u003e\u003c/a\u003e Expanded many docstrings, sanitized pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deeplook/svglib/commit/4c69f45919b181b98ebeb2614f84797217efd759\"\u003e\u003ccode\u003e4c69f45\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/deeplook/svglib/issues/412\"\u003e#412\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deeplook/svglib/commit/35a69b9af1eafbec5e4ff8eb759de7a506c4a83f\"\u003e\u003ccode\u003e35a69b9\u003c/code\u003e\u003c/a\u003e Fix format complaints\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deeplook/svglib/commit/d7eec2d2deef3a6ec5993854e0af679d4bd866f0\"\u003e\u003ccode\u003ed7eec2d\u003c/code\u003e\u003c/a\u003e Add workflow to publish on pypi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deeplook/svglib/commit/7bbbd33be99a75da97b4179935eec2dfdb64f9c0\"\u003e\u003ccode\u003e7bbbd33\u003c/code\u003e\u003c/a\u003e Fix underlines for publishing workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deeplook/svglib/commit/5bb73b8dea39a0058f6427b06ad246b09771057f\"\u003e\u003ccode\u003e5bb73b8\u003c/code\u003e\u003c/a\u003e Add workflow to publish on test.pypi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deeplook/svglib/commit/8eb422db6ec7ebeb22b69a14c3fff328c4b292ad\"\u003e\u003ccode\u003e8eb422d\u003c/code\u003e\u003c/a\u003e Fix PIL-related warning (\u003ca href=\"https://redirect.github.com/deeplook/svglib/issues/411\"\u003e#411\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deeplook/svglib/commit/3237aa1e75d1d0e924afddd4386f7f0015cfac79\"\u003e\u003ccode\u003e3237aa1\u003c/code\u003e\u003c/a\u003e Add type-checking (\u003ca href=\"https://redirect.github.com/deeplook/svglib/issues/410\"\u003e#410\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deeplook/svglib/commit/7eb6c774e73297c116f3c870c4ec4a448e7363a2\"\u003e\u003ccode\u003e7eb6c77\u003c/code\u003e\u003c/a\u003e Modernize code (\u003ca href=\"https://redirect.github.com/deeplook/svglib/issues/408\"\u003e#408\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deeplook/svglib/commit/7e9e92df52cefd5db9c73d142b9133944fd5067e\"\u003e\u003ccode\u003e7e9e92d\u003c/code\u003e\u003c/a\u003e Mention minimum supported Python version is 3.9\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/deeplook/svglib/compare/v1.5.1...v1.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `reportlab` from 4.4.3 to 4.4.6\n\nUpdates `django-filer` from 3.3.1 to 3.4.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-cms/django-filer/releases\"\u003edjango-filer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.4.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: add bundles to distribution by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1557\"\u003edjango-cms/django-filer#1557\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-cms/django-filer/compare/3.4.0...3.4.1\"\u003ehttps://github.com/django-cms/django-filer/compare/3.4.0...3.4.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.4.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: preserve \u0026quot;limit search to folder\u0026quot; state in pagination links \u003ca href=\"https://redirect.github.com/django-cms/django-filer/issues/1553\"\u003e#1553\u003c/a\u003e by \u003ca href=\"https://github.com/benzkji\"\u003e\u003ccode\u003e@​benzkji\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1555\"\u003edjango-cms/django-filer#1555\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Bundle js files, remove jQuery, and static ...\n\n_Description has been truncated_","html_url":"https://github.com/maxnoelp2/coolify-template/pull/106","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/maxnoelp2%2Fcoolify-template/issues/106","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/106/packages"}},{"old_version":"2.0.28","new_version":"2.0.31","update_type":"patch","path":null,"pr_created_at":"2025-12-05T08:13:24.000Z","version_change":"2.0.28 → 2.0.31","issue":{"uuid":"3697921715","node_id":"PR_kwDODRkoPc63PaIn","number":1792,"state":"open","title":"Bump the production-dependencies group with 20 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-12-05T08:13:24.000Z","updated_at":"2025-12-19T12:30:53.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"production-dependencies","update_count":20,"packages":[{"name":"flask","old_version":"3.1.1","new_version":"3.1.2","repository_url":"https://github.com/pallets/flask"},{"name":"google-cloud-datastore","old_version":"2.20.2","new_version":"2.21.0","repository_url":"https://github.com/googleapis/python-datastore"},{"name":"grpcio","old_version":"1.71.0","new_version":"1.76.0","repository_url":"https://github.com/grpc/grpc"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"structlog","old_version":"25.2.0","new_version":"25.5.0","repository_url":"https://github.com/hynek/structlog"},{"name":"boto3","old_version":"1.37.23","new_version":"1.42.3","repository_url":"https://github.com/boto/boto3"},{"name":"humanize","old_version":"4.12.2","new_version":"4.14.0","repository_url":"https://github.com/python-humanize/humanize"},{"name":"marshmallow","old_version":"3.26.1","new_version":"4.1.0","repository_url":"https://github.com/marshmallow-code/marshmallow"},{"name":"google-cloud-storage","old_version":"3.1.0","new_version":"3.6.0","repository_url":"https://github.com/googleapis/python-storage"},{"name":"redis","old_version":"6.4.0","new_version":"7.1.0","repository_url":"https://github.com/redis/redis-py"},{"name":"flask-compress","old_version":"1.17","new_version":"1.23","repository_url":"https://github.com/colour-science/flask-compress"},{"name":"uwsgi","old_version":"2.0.28","new_version":"2.0.31"},{"name":"email-validator","old_version":"2.2.0","new_version":"2.3.0","repository_url":"https://github.com/JoshData/python-email-validator"},{"name":"google-cloud-pubsub","old_version":"2.29.0","new_version":"2.33.0","repository_url":"https://github.com/googleapis/python-pubsub"},{"name":"google-cloud-tasks","old_version":"2.19.2","new_version":"2.20.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"simplejson","old_version":"3.20.1","new_version":"3.20.2","repository_url":"https://github.com/simplejson/simplejson"},{"name":"markupsafe","old_version":"3.0.2","new_version":"3.0.3","repository_url":"https://github.com/pallets/markupsafe"},{"name":"cachetools","old_version":"5.5.2","new_version":"6.2.2","repository_url":"https://github.com/tkem/cachetools"},{"name":"gevent","old_version":"24.11.1","new_version":"25.9.1","repository_url":"https://github.com/gevent/gevent"}],"path":null,"ecosystem":"pip"},"body":"Bumps the production-dependencies group with 20 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [flask](https://github.com/pallets/flask) | `3.1.1` | `3.1.2` |\n| [google-cloud-datastore](https://github.com/googleapis/python-datastore) | `2.20.2` | `2.21.0` |\n| [grpcio](https://github.com/grpc/grpc) | `1.71.0` | `1.76.0` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [structlog](https://github.com/hynek/structlog) | `25.2.0` | `25.5.0` |\n| [boto3](https://github.com/boto/boto3) | `1.37.23` | `1.42.3` |\n| [humanize](https://github.com/python-humanize/humanize) | `4.12.2` | `4.14.0` |\n| [marshmallow](https://github.com/marshmallow-code/marshmallow) | `3.26.1` | `4.1.0` |\n| [google-cloud-storage](https://github.com/googleapis/python-storage) | `3.1.0` | `3.6.0` |\n| [redis](https://github.com/redis/redis-py) | `6.4.0` | `7.1.0` |\n| [flask-compress](https://github.com/colour-science/flask-compress) | `1.17` | `1.23` |\n| [uwsgi](https://uwsgi-docs.readthedocs.io/en/latest/) | `2.0.28` | `2.0.31` |\n| [email-validator](https://github.com/JoshData/python-email-validator) | `2.2.0` | `2.3.0` |\n| [google-cloud-pubsub](https://github.com/googleapis/python-pubsub) | `2.29.0` | `2.33.0` |\n| [google-cloud-tasks](https://github.com/googleapis/google-cloud-python) | `2.19.2` | `2.20.0` |\n| [simplejson](https://github.com/simplejson/simplejson) | `3.20.1` | `3.20.2` |\n| [markupsafe](https://github.com/pallets/markupsafe) | `3.0.2` | `3.0.3` |\n| [cachetools](https://github.com/tkem/cachetools) | `5.5.2` | `6.2.2` |\n| [gevent](https://github.com/gevent/gevent) | `24.11.1` | `25.9.1` |\n\nUpdates `flask` from 3.1.1 to 3.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/flask/releases\"\u003eflask's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.1.2\u003c/h2\u003e\n\u003cp\u003eThis is the Flask 3.1.2 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/Flask/3.1.2/\"\u003ehttps://pypi.org/project/Flask/3.1.2/\u003c/a\u003e\nChanges: \u003ca href=\"https://flask.palletsprojects.com/page/changes/#version-3-1-2\"\u003ehttps://flask.palletsprojects.com/page/changes/#version-3-1-2\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/flask/milestone/38?closed=1\"\u003ehttps://github.com/pallets/flask/milestone/38?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003estream_with_context\u003c/code\u003e does not fail inside async views. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5774\"\u003e#5774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen using \u003ccode\u003efollow_redirects\u003c/code\u003e in the test client, the final state of \u003ccode\u003esession\u003c/code\u003e is correct. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5786\"\u003e#5786\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelax type hint for passing bytes IO to \u003ccode\u003esend_file\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5776\"\u003e#5776\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 href=\"https://github.com/pallets/flask/blob/main/CHANGES.rst\"\u003eflask's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.1.2\u003c/h2\u003e\n\u003cp\u003eReleased 2025-08-19\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003estream_with_context\u003c/code\u003e does not fail inside async views. :issue:\u003ccode\u003e5774\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eWhen using \u003ccode\u003efollow_redirects\u003c/code\u003e in the test client, the final state\nof \u003ccode\u003esession\u003c/code\u003e is correct. :issue:\u003ccode\u003e5786\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRelax type hint for passing bytes IO to \u003ccode\u003esend_file\u003c/code\u003e. :issue:\u003ccode\u003e5776\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 href=\"https://github.com/pallets/flask/commit/2c1b30d0503cfb064f1cb252e6614a06915a362a\"\u003e\u003ccode\u003e2c1b30d\u003c/code\u003e\u003c/a\u003e release version 3.1.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/1292419ddfc6a14fc7f85b5ed7efcc2d215f1ad3\"\u003e\u003ccode\u003e1292419\u003c/code\u003e\u003c/a\u003e Update GitHub Actions workflow for artifact handling (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5795\"\u003e#5795\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/4dd52ca9c768c9b6d04180f0547d6f4b6e34f211\"\u003e\u003ccode\u003e4dd52ca\u003c/code\u003e\u003c/a\u003e Update GitHub Actions workflow for artifact handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/55c62556571ee46a94da174643b50ece06edead4\"\u003e\u003ccode\u003e55c6255\u003c/code\u003e\u003c/a\u003e update dev dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/d8259eb11900285af9b80b0fa47f841174c054e3\"\u003e\u003ccode\u003ed8259eb\u003c/code\u003e\u003c/a\u003e use Jinja name consistently\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/38b4c1e19b50494cfcdc9332899e09b7fed34979\"\u003e\u003ccode\u003e38b4c1e\u003c/code\u003e\u003c/a\u003e refactor stream_with_context for async views (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5799\"\u003e#5799\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/9822a0351574790cb66c652fcc396ad7aa2b09d8\"\u003e\u003ccode\u003e9822a03\u003c/code\u003e\u003c/a\u003e refactor stream_with_context for async views\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/49b7e7bc8fb69d605719991d1c0a99fcee689053\"\u003e\u003ccode\u003e49b7e7b\u003c/code\u003e\u003c/a\u003e security docs for TRUSTED_HOSTS (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5798\"\u003e#5798\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/b228ca3d87745b746d904a2108429617a814ffda\"\u003e\u003ccode\u003eb228ca3\u003c/code\u003e\u003c/a\u003e security docs for TRUSTED_HOSTS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/ff64079a516c269f171ababf3d92b86886a62ffd\"\u003e\u003ccode\u003eff64079\u003c/code\u003e\u003c/a\u003e update flask-talisman link\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/flask/compare/3.1.1...3.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-datastore` from 2.20.2 to 2.21.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-datastore/releases\"\u003egoogle-cloud-datastore's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.21.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-datastore/compare/v2.20.2...v2.21.0\"\u003e2.21.0\u003c/a\u003e (2025-04-10)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd REST Interceptors which support reading metadata (\u003ca href=\"https://github.com/googleapis/python-datastore/commit/7be9c4c594af2c2414e394b8bfe62574b58ef337\"\u003e7be9c4c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for opt-in debug logging (\u003ca href=\"https://github.com/googleapis/python-datastore/commit/7be9c4c594af2c2414e394b8bfe62574b58ef337\"\u003e7be9c4c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow protobuf 6.x (\u003ca href=\"https://redirect.github.com/googleapis/python-datastore/issues/598\"\u003e#598\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-datastore/commit/7c1171bf657f7cf4d1404e19611f6c874a8998ca\"\u003e7c1171b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBackwards-compatibility for previous meaning format (\u003ca href=\"https://redirect.github.com/googleapis/python-datastore/issues/603\"\u003e#603\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-datastore/commit/ed92e8e54a9e0f44302efee89a30a322d0a73636\"\u003eed92e8e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix typing issue with gRPC metadata when key ends in -bin (\u003ca href=\"https://github.com/googleapis/python-datastore/commit/7be9c4c594af2c2414e394b8bfe62574b58ef337\"\u003e7be9c4c\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 href=\"https://github.com/googleapis/python-datastore/blob/main/CHANGELOG.md\"\u003egoogle-cloud-datastore's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-datastore/compare/v2.20.2...v2.21.0\"\u003e2.21.0\u003c/a\u003e (2025-04-10)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd REST Interceptors which support reading metadata (\u003ca href=\"https://github.com/googleapis/python-datastore/commit/7be9c4c594af2c2414e394b8bfe62574b58ef337\"\u003e7be9c4c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for opt-in debug logging (\u003ca href=\"https://github.com/googleapis/python-datastore/commit/7be9c4c594af2c2414e394b8bfe62574b58ef337\"\u003e7be9c4c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow protobuf 6.x (\u003ca href=\"https://redirect.github.com/googleapis/python-datastore/issues/598\"\u003e#598\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-datastore/commit/7c1171bf657f7cf4d1404e19611f6c874a8998ca\"\u003e7c1171b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBackwards-compatibility for previous meaning format (\u003ca href=\"https://redirect.github.com/googleapis/python-datastore/issues/603\"\u003e#603\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-datastore/commit/ed92e8e54a9e0f44302efee89a30a322d0a73636\"\u003eed92e8e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix typing issue with gRPC metadata when key ends in -bin (\u003ca href=\"https://github.com/googleapis/python-datastore/commit/7be9c4c594af2c2414e394b8bfe62574b58ef337\"\u003e7be9c4c\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 href=\"https://github.com/googleapis/python-datastore/commit/1dafc68d897ec771fc3921124e1619c4fb6b34bf\"\u003e\u003ccode\u003e1dafc68\u003c/code\u003e\u003c/a\u003e chore(main): release 2.21.0 (\u003ca href=\"https://redirect.github.com/googleapis/python-datastore/issues/595\"\u003e#595\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-datastore/commit/d3919110b49e7389ad3f4e8bbb55b104417457fa\"\u003e\u003ccode\u003ed391911\u003c/code\u003e\u003c/a\u003e chore(python): remove CONTRIBUTING.rst from templates (\u003ca href=\"https://redirect.github.com/googleapis/python-datastore/issues/605\"\u003e#605\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-datastore/commit/16b9c737abfda1f98a871b4080528ac8f61f9abc\"\u003e\u003ccode\u003e16b9c73\u003c/code\u003e\u003c/a\u003e chore(python): fix incorrect import statement in README (\u003ca href=\"https://redirect.github.com/googleapis/python-datastore/issues/604\"\u003e#604\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-datastore/commit/ed92e8e54a9e0f44302efee89a30a322d0a73636\"\u003e\u003ccode\u003eed92e8e\u003c/code\u003e\u003c/a\u003e fix: backwards-compatibility for previous meaning format (\u003ca href=\"https://redirect.github.com/googleapis/python-datastore/issues/603\"\u003e#603\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-datastore/commit/a7df08060de6d729ef125efa12126dc32ea85006\"\u003e\u003ccode\u003ea7df080\u003c/code\u003e\u003c/a\u003e chore: Update gapic-generator-python to 1.23.6 (\u003ca href=\"https://redirect.github.com/googleapis/python-datastore/issues/602\"\u003e#602\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-datastore/commit/7c1171bf657f7cf4d1404e19611f6c874a8998ca\"\u003e\u003ccode\u003e7c1171b\u003c/code\u003e\u003c/a\u003e fix: Allow protobuf 6.x (\u003ca href=\"https://redirect.github.com/googleapis/python-datastore/issues/598\"\u003e#598\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-datastore/commit/7be9c4c594af2c2414e394b8bfe62574b58ef337\"\u003e\u003ccode\u003e7be9c4c\u003c/code\u003e\u003c/a\u003e chore: Update gapic-generator-python to v1.23.2 (\u003ca href=\"https://redirect.github.com/googleapis/python-datastore/issues/569\"\u003e#569\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-datastore/commit/9f83d17c132168118a2e169c975662d76540d6ff\"\u003e\u003ccode\u003e9f83d17\u003c/code\u003e\u003c/a\u003e chore(python): conditionally load credentials in .kokoro/build.sh (\u003ca href=\"https://redirect.github.com/googleapis/python-datastore/issues/594\"\u003e#594\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-datastore/commit/14a0f96c8f7c558a38fec4ef92c0810ea6096646\"\u003e\u003ccode\u003e14a0f96\u003c/code\u003e\u003c/a\u003e chore: update protoplus for python 3.13 (\u003ca href=\"https://redirect.github.com/googleapis/python-datastore/issues/579\"\u003e#579\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-datastore/commit/59bf5f91110e37327e783ea425f17db7dafeb260\"\u003e\u003ccode\u003e59bf5f9\u003c/code\u003e\u003c/a\u003e chore(python): Update the python version in docs presubmit to use 3.10 (\u003ca href=\"https://redirect.github.com/googleapis/python-datastore/issues/584\"\u003e#584\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/googleapis/python-datastore/compare/v2.20.2...v2.21.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `grpcio` from 1.71.0 to 1.76.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/grpc/grpc/releases\"\u003egrpcio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v1.76.0\u003c/h2\u003e\n\u003cp\u003eThis is release 1.76.0 (\u003ca href=\"https://github.com/grpc/grpc/blob/master/doc/g_stands_for.md\"\u003egenuine\u003c/a\u003e) of gRPC Core.\u003c/p\u003e\n\u003cp\u003eFor gRPC documentation, see \u003ca href=\"https://grpc.io/\"\u003egrpc.io\u003c/a\u003e. For previous releases, see \u003ca href=\"https://github.com/grpc/grpc/releases\"\u003eReleases\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis release contains refinements, improvements, and bug fixes, with highlights listed below.\u003c/p\u003e\n\u003ch2\u003eCore\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePrioritize system CA over bundled CA. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/40583\"\u003e#40583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[event_engine] Introduce a event_engine_poller_for_python experiment. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/40243\"\u003e#40243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[metrics] add grpc.lb.backend_service label. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/40486\"\u003e#40486\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eC#\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[csharp tools] \u003ca href=\"https://redirect.github.com/grpc/grpc/issues/39374\"\u003e#39374\u003c/a\u003e Grpc.Tools can't process file Suffix name with Upper character. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/40072\"\u003e#40072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePython\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[Python] gRPC AsyncIO: Improve CompletionQueue polling performance. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/39993\"\u003e#39993\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease v1.76.0-pre1\u003c/h2\u003e\n\u003cp\u003eThis is a prerelease of gRPC Core 1.76.0 (genuine).\u003c/p\u003e\n\u003cp\u003eFor gRPC documentation, see \u003ca href=\"https://grpc.io/\"\u003egrpc.io\u003c/a\u003e. For previous releases, see \u003ca href=\"https://github.com/grpc/grpc/releases\"\u003eReleases\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis prerelease contains refinements, improvements, and bug fixes.\u003c/p\u003e\n\u003ch2\u003eRelease v1.75.1\u003c/h2\u003e\n\u003cp\u003eThis is release gRPC Core 1.75.1 (gemini).\u003c/p\u003e\n\u003cp\u003eFor gRPC documentation, see \u003ca href=\"https://grpc.io/\"\u003egrpc.io\u003c/a\u003e. For previous releases, see \u003ca href=\"https://github.com/grpc/grpc/releases\"\u003eReleases\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis release contains refinements, improvements, and bug fixes.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003ePython\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRelease grpcio wheels with Python 3.14 support (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40403\"\u003e#40403\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAsyncio: fixes grpc shutdown race condition occurring during python interpreter finalizations. (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40447\"\u003e#40447\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eThis also addresses previously reported issues with empty error message on Python interpreter exit (\u003ccode\u003eError in sys.excepthook:\u003c/code\u003e/\u003ccode\u003eOriginal exception was:\u003c/code\u003e empty): \u003ca href=\"https://redirect.github.com/grpc/grpc/issues/36655\"\u003e#36655\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/grpc/grpc/issues/38679\"\u003e#38679\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/grpc/grpc/issues/33342\"\u003e#33342\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003ePython 3.14: preserve current behavior when using grpc.aio async methods outside of a running event loop. (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40750\"\u003e#40750\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eNote: using async methods outside of a running event loop is \u003ca href=\"https://docs.python.org/3.14/library/asyncio-policy.html#asyncio-policies\"\u003ediscouraged\u003c/a\u003e by Python, and \u003cstrong\u003ewill be deprecated in future gRPC releases\u003c/strong\u003e. Please use the \u003ca href=\"https://docs.python.org/3.14/library/asyncio-runner.html#asyncio.run\"\u003easyncio.run()\u003c/a\u003e function (or \u003ca href=\"https://docs.python.org/3.14/library/asyncio-runner.html#asyncio.Runner\"\u003easyncio.Runner\u003c/a\u003e for custom loop factories). For interactive mode, use dedicated \u003ca href=\"https://docs.python.org/3/library/asyncio.html#asyncio-cli\"\u003easyncio REPL\u003c/a\u003e: \u003ccode\u003epython -m asyncio\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/grpc/grpc/compare/v1.75.0...v1.75.1\"\u003ehttps://github.com/grpc/grpc/compare/v1.75.0...v1.75.1\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/f5ffb68d8a2fd603dff16287e90a4ac571e1fec6\"\u003e\u003ccode\u003ef5ffb68\u003c/code\u003e\u003c/a\u003e [Release] Bump version to 1.76.0 (on v1.76.x branch) (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40925\"\u003e#40925\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/ffd83794b3804739c0789096155833e302ac1270\"\u003e\u003ccode\u003effd8379\u003c/code\u003e\u003c/a\u003e [Release] Bump version to 1.76.0-pre1 (on v1.76.x branch) (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40798\"\u003e#40798\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/835d394034060002262ab4e404e552ac0393a1a1\"\u003e\u003ccode\u003e835d394\u003c/code\u003e\u003c/a\u003e [Release] Bump core version to 51.0.0 for upcoming release (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40784\"\u003e#40784\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/de6ce7f32b1bf254d2b4c04e8872b63284632fd3\"\u003e\u003ccode\u003ede6ce7f\u003c/code\u003e\u003c/a\u003e [PH2] Add files for goaway support (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40786\"\u003e#40786\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/f7dd7f4b4186049d104aa2c88ad4432f58c19ede\"\u003e\u003ccode\u003ef7dd7f4\u003c/code\u003e\u003c/a\u003e [PH2][Trivial][CleanUp]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/2d40a376c7ea72602fa7bc62606324b1ff14c44f\"\u003e\u003ccode\u003e2d40a37\u003c/code\u003e\u003c/a\u003e [PH2][ChannelZ][ZTrace][Skeleton]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/83acb278bef565d8d46d6e19582eaacc86f737a3\"\u003e\u003ccode\u003e83acb27\u003c/code\u003e\u003c/a\u003e [build] Add Missing Dependencies for reflection_proto in Preparation for Enab...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/abfe8a29d31a8ab9ff6cdda11cdfa2813cb59632\"\u003e\u003ccode\u003eabfe8a2\u003c/code\u003e\u003c/a\u003e [PH2] Stream list represents streams open for reads.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/c65d8de800aaa907b45cee54ebcd29d5b556d3ca\"\u003e\u003ccode\u003ec65d8de\u003c/code\u003e\u003c/a\u003e [PH2][Expt] Fix the experiment expiry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/755d025f16d20641155e89ecc46777e94e9e172d\"\u003e\u003ccode\u003e755d025\u003c/code\u003e\u003c/a\u003e Fix latent_see_test flakiness\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/grpc/grpc/compare/v1.71.0...v1.76.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyyaml` from 6.0.2 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/yaml/pyyaml/releases\"\u003epyyaml's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14 and free-threading (experimental).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ehttps://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\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 href=\"https://github.com/yaml/pyyaml/blob/6.0.3/CHANGES\"\u003epyyaml's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e6.0.3 (2025-09-25)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/yaml/pyyaml/pull/864\"\u003eyaml/pyyaml#864\u003c/a\u003e -- Support for Python 3.14 and free-threading (experimental)\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 href=\"https://github.com/yaml/pyyaml/commit/49790e73684bebad1df05ef8d828fa12f685bffb\"\u003e\u003ccode\u003e49790e7\u003c/code\u003e\u003c/a\u003e Release 6.0.3 (\u003ca href=\"https://redirect.github.com/yaml/pyyaml/issues/889\"\u003e#889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.4 to 2.32.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.32.5\u003c/h2\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\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 href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\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 href=\"https://github.com/psf/requests/commit/b25c87d7cb8d6a18a37fa12442b5f883f9e41741\"\u003e\u003ccode\u003eb25c87d\u003c/code\u003e\u003c/a\u003e v2.32.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/131e506079d97606e4214cc4d87b780ac478de7a\"\u003e\u003ccode\u003e131e506\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psf/requests/issues/7010\"\u003e#7010\u003c/a\u003e from psf/dependabot/github_actions/actions/checkout-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b336cb2bc616a63a93c6470c558fc1f576b77f90\"\u003e\u003ccode\u003eb336cb2\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4.2.0 to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/46e939b5525d9c72b677340985582b04b128478a\"\u003e\u003ccode\u003e46e939b\u003c/code\u003e\u003c/a\u003e Update publish workflow to use \u003ccode\u003eartifact-id\u003c/code\u003e instead of \u003ccode\u003ename\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/4b9c546aa3f35fca6ca24945376fe7462bb007c4\"\u003e\u003ccode\u003e4b9c546\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psf/requests/issues/6999\"\u003e#6999\u003c/a\u003e from psf/dependabot/github_actions/step-security/har...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/7618dbef01d333f23ba4b9c4d97397b06dd89cb6\"\u003e\u003ccode\u003e7618dbe\u003c/code\u003e\u003c/a\u003e Bump step-security/harden-runner from 2.12.0 to 2.13.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2edca11103c1c27dd8b572dab544b7f48cf3b446\"\u003e\u003ccode\u003e2edca11\u003c/code\u003e\u003c/a\u003e Add support for Python 3.14 and drop support for Python 3.8 (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6993\"\u003e#6993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/fec96cd5976ad763e45bac9a033d62cca1877a00\"\u003e\u003ccode\u003efec96cd\u003c/code\u003e\u003c/a\u003e Update Makefile rules (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6996\"\u003e#6996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d58d8aa2f45c3575268d6d5250745ef69f9cf8b7\"\u003e\u003ccode\u003ed58d8aa\u003c/code\u003e\u003c/a\u003e docs: clarify timeout parameter uses seconds in Session.request (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6994\"\u003e#6994\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/91a3eabd3dcc4d7f36dd8249e4777a90ef9b4305\"\u003e\u003ccode\u003e91a3eab\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 3.28.5 to 3.29.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.4...v2.32.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `structlog` from 25.2.0 to 25.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/hynek/structlog/releases\"\u003estructlog's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.5.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cp\u003eHuge release! There's plenty of important little bug fixes and new features, but the headliner is definitely the improved ergonomics of \u003ccode\u003estructlog.dev.ConsoleRenderer\u003c/code\u003e. We have finally accepted that local development has different priorities than production and made it both mutable (with automatic re-configuration) and also easily retrievable (\u003ccode\u003ecr = ConsoleRenderer.get_active()\u003c/code\u003e). This allows you, for example, to disable Rich exception formatting as easily as \u003ccode\u003estructlog.dev.ConsoleRenderer.get_active().exception_formatter = structlog.dev.plain_traceback\u003c/code\u003e. Please check out the \u003ca href=\"https://www.structlog.org/en/stable/console-output.html\"\u003eupdated docs\u003c/a\u003e!\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eFull changelog below!\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eSpecial Thanks\u003c/h2\u003e\n\u003cp\u003eThis release would not be possible without my generous sponsors! Thank you to all of you making sustainable maintenance possible! If \u003cem\u003eyou\u003c/em\u003e would like to join them, go to \u003ca href=\"https://github.com/sponsors/hynek\"\u003ehttps://github.com/sponsors/hynek\u003c/a\u003e and check out the sweet perks!\u003c/p\u003e\n\u003ch3\u003eAbove and Beyond\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://www.variomedia.de/\"\u003eVariomedia AG\u003c/a\u003e (@\u003ca href=\"https://github.com/variomedia\"\u003evariomedia\u003c/a\u003e), \u003ca href=\"https://www.tidelift.com/\"\u003eTidelift\u003c/a\u003e (@\u003ca href=\"https://github.com/tidelift\"\u003etidelift\u003c/a\u003e), \u003ca href=\"https://www.thanks.dev\"\u003ethanks.dev\u003c/a\u003e (@\u003ca href=\"https://github.com/thnxdev\"\u003ethnxdev\u003c/a\u003e), \u003ca href=\"https://privacy-solutions.org\"\u003ePrivacy Solutions GmbH\u003c/a\u003e (@\u003ca href=\"https://github.com/privacy-solutions\"\u003eprivacy-solutions\u003c/a\u003e), \u003ca href=\"https://quesma.com/\"\u003eQuesma\u003c/a\u003e (\u003ca href=\"https://github.com/QuesmaOrg\"\u003e\u003ccode\u003e@​QuesmaOrg\u003c/code\u003e\u003c/a\u003e), \u003ca href=\"http://filepreviews.io/\"\u003eFilePreviews\u003c/a\u003e (@\u003ca href=\"https://github.com/filepreviews\"\u003efilepreviews\u003c/a\u003e), \u003ca href=\"https://www.lambdatest.com\"\u003eLambdaTest\u003c/a\u003e (@\u003ca href=\"https://github.com/LambdaTest-Inc\"\u003eLambdaTest-Inc\u003c/a\u003e), \u003ca href=\"https://doist.com/\"\u003eDoist\u003c/a\u003e (@\u003ca href=\"https://github.com/Doist\"\u003eDoist\u003c/a\u003e), Daniel Fortunov (@\u003ca href=\"https://github.com/asqui\"\u003easqui\u003c/a\u003e), and Kevin P. Fleming (@\u003ca href=\"https://github.com/kpfleming\"\u003ekpfleming\u003c/a\u003e).\u003c/p\u003e\n\u003ch3\u003eMaintenance Sustainers\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://buttondown.com\"\u003eButtondown\u003c/a\u003e (@\u003ca href=\"https://github.com/buttondown\"\u003ebuttondown\u003c/a\u003e), Jeff McCarrell (@\u003ca href=\"https://github.com/jmccarrell\"\u003ejmccarrell\u003c/a\u003e), \u003ca href=\"https://christopher.xyz\"\u003eChristopher Dignam\u003c/a\u003e (@\u003ca href=\"https://github.com/chdsbd\"\u003echdsbd\u003c/a\u003e), Magnus Watn (@\u003ca href=\"https://github.com/magnuswatn\"\u003emagnuswatn\u003c/a\u003e), \u003ca href=\"https://cra.mr\"\u003eDavid Cramer\u003c/a\u003e (@\u003ca href=\"https://github.com/dcramer\"\u003edcramer\u003c/a\u003e), Jesse Snyder (@\u003ca href=\"https://github.com/jessesnyder\"\u003ejessesnyder\u003c/a\u003e), \u003ca href=\"https://rivolaks.com\"\u003eRivo Laks\u003c/a\u003e (@\u003ca href=\"https://github.com/rivol\"\u003erivol\u003c/a\u003e), \u003ca href=\"https://polar.sh\"\u003ePolar\u003c/a\u003e (@\u003ca href=\"https://github.com/polarsource\"\u003epolarsource\u003c/a\u003e), \u003ca href=\"https://www.miketheman.net\"\u003eMike Fiedler\u003c/a\u003e (@\u003ca href=\"https://github.com/miketheman\"\u003emiketheman\u003c/a\u003e), Duncan Hill (@\u003ca href=\"https://github.com/cricalix\"\u003ecricalix\u003c/a\u003e), Colin Marquardt (@\u003ca href=\"https://github.com/cmarqu\"\u003ecmarqu\u003c/a\u003e), \u003ca href=\"https://blog.journeythatcounts.nl\"\u003ePieter Swinkels\u003c/a\u003e (@\u003ca href=\"https://github.com/swinkels\"\u003eswinkels\u003c/a\u003e), Nick Libertini (@\u003ca href=\"https://github.com/libertininick\"\u003elibertininick\u003c/a\u003e), \u003ca href=\"https://bmdphd.info/\"\u003eBrian M. Dennis\u003c/a\u003e (@\u003ca href=\"https://github.com/crossjam\"\u003ecrossjam\u003c/a\u003e), Celebrity News AG (@\u003ca href=\"https://github.com/celebritynewsag\"\u003ecelebritynewsag\u003c/a\u003e), \u003ca href=\"https://westervelt.com\"\u003eThe Westervelt Company\u003c/a\u003e (@\u003ca href=\"https://github.com/westerveltco\"\u003ewesterveltco\u003c/a\u003e), \u003ca href=\"https://slafs.net\"\u003eSławomir Ehlert\u003c/a\u003e (@\u003ca href=\"https://github.com/slafs\"\u003eslafs\u003c/a\u003e), Mostafa Khalil (@\u003ca href=\"https://github.com/khadrawy\"\u003ekhadrawy\u003c/a\u003e), \u003ca href=\"https://fmularczyk.pl\"\u003eFilip Mularczyk\u003c/a\u003e (@\u003ca href=\"https://github.com/mukiblejlok\"\u003emukiblejlok\u003c/a\u003e), Thomas Klinger (@\u003ca href=\"https://github.com/thmsklngr\"\u003ethmsklngr\u003c/a\u003e), \u003ca href=\"https://poehlmann.io\"\u003eAndreas Poehlmann\u003c/a\u003e (@\u003ca href=\"https://github.com/ap--\"\u003eap--\u003c/a\u003e), \u003ca href=\"https://atbigelow.com\"\u003eAugust Trapper Bigelow\u003c/a\u003e (@\u003ca href=\"https://github.com/atbigelow\"\u003eatbigelow\u003c/a\u003e), \u003ca href=\"https://noumenal.es/\"\u003eCarlton Gibson\u003c/a\u003e (@\u003ca href=\"https://github.com/carltongibson\"\u003ecarltongibson\u003c/a\u003e), \u003ca href=\"https://roboflow.com\"\u003eRoboflow\u003c/a\u003e (@\u003ca href=\"https://github.com/roboflow\"\u003eroboflow\u003c/a\u003e), and Jeff McCarrell (@\u003ca href=\"https://github.com/jmccarrell\"\u003ejmccarrell\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003eFull Changelog\u003c/h2\u003e\n\u003ch3\u003eDeprecated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003estructlog.dev.ConsoleRenderer()\u003c/code\u003e's \u003cem\u003epad_event\u003c/em\u003e argument has been renamed to \u003cem\u003epad_event_to\u003c/em\u003e to differentiate it from the boolean \u003cem\u003epad_level\u003c/em\u003e argument. \u003cem\u003epad_event\u003c/em\u003e is now deprecated.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003estructlog.dev.ConsoleRenderer.get_active()\u003c/code\u003e that returns the currently active \u003ccode\u003estructlog.dev.ConsoleRenderer()\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/hynek/structlog/pull/749\"\u003e#749\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003estructlog.dev.ConsoleRenderer()\u003c/code\u003e now supports setting the \u003ccode\u003eexception_formatter\u003c/code\u003e attribute.\u003c/p\u003e\n\u003cp\u003eYou can now disable the pretty-printing of exceptions by setting it to \u003ccode\u003estructlog.dev.plain_traceback\u003c/code\u003e:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecr = structlog.dev.ConsoleRenderer.get_active()\ncr.exception_formatter = structlog.dev.plain_traceback\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eSame goes for \u003cem\u003esort_keys\u003c/em\u003e, \u003cem\u003ecolumns\u003c/em\u003e, \u003cem\u003ecolors\u003c/em\u003e, \u003cem\u003eforce_colors\u003c/em\u003e, \u003cem\u003elevel_styles\u003c/em\u003e, \u003cem\u003epad_event_to\u003c/em\u003e, \u003cem\u003eevent_key\u003c/em\u003e, \u003cem\u003etimestamp_key\u003c/em\u003e, and \u003cem\u003erepr_native_str\u003c/em\u003e.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/hynek/structlog/pull/749\"\u003e#749\u003c/a\u003e \u003ca href=\"https://redirect.github.com/hynek/structlog/pull/756\"\u003e#756\u003c/a\u003e \u003ca href=\"https://redirect.github.com/hynek/structlog/pull/757\"\u003e#757\u003c/a\u003e \u003ca href=\"https://redirect.github.com/hynek/structlog/pull/759\"\u003e#759\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003estructlog.dev.ConsoleRenderer.get_default_column_styles()\u003c/code\u003e for reuse the default column styles. \u003ca href=\"https://redirect.github.com/hynek/structlog/pull/741\"\u003e#741\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003estructlog.testing.capture_logs()\u003c/code\u003e now optionally accepts \u003cem\u003eprocessors\u003c/em\u003e to apply before capture. \u003ca href=\"https://redirect.github.com/hynek/structlog/pull/728\"\u003e#728\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 href=\"https://github.com/hynek/structlog/blob/main/CHANGELOG.md\"\u003estructlog's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/hynek/structlog/compare/25.4.0...25.5.0\"\u003e25.5.0\u003c/a\u003e - 2025-10-27\u003c/h2\u003e\n\u003ch3\u003eDeprecated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003estructlog.dev.ConsoleRenderer()\u003c/code\u003e's \u003cem\u003epad_event\u003c/em\u003e argument has been renamed to \u003cem\u003epad_event_to\u003c/em\u003e to differentiate it from the boolean \u003cem\u003epad_level\u003c/em\u003e argument.\n\u003cem\u003epad_event\u003c/em\u003e is now deprecated.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003estructlog.dev.ConsoleRenderer.get_active()\u003c/code\u003e that returns the currently active \u003ccode\u003estructlog.dev.ConsoleRenderer()\u003c/code\u003e.\n\u003ca href=\"https://redirect.github.com/hynek/structlog/pull/749\"\u003e#749\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003estructlog.dev.ConsoleRenderer()\u003c/code\u003e now supports setting the \u003ccode\u003eexception_formatter\u003c/code\u003e attribute.\u003c/p\u003e\n\u003cp\u003eYou can now disable the pretty-printing of exceptions by setting it to \u003ccode\u003estructlog.dev.plain_traceback\u003c/code\u003e:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecr = structlog.dev.ConsoleRenderer.get_active()\ncr.exception_formatter = structlog.dev.plain_traceback\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eSame goes for \u003cem\u003esort_keys\u003c/em\u003e, \u003cem\u003ecolumns\u003c/em\u003e, \u003cem\u003ecolors\u003c/em\u003e, \u003cem\u003eforce_colors\u003c/em\u003e, \u003cem\u003elevel_styles\u003c/em\u003e, \u003cem\u003epad_event_to\u003c/em\u003e, \u003cem\u003eevent_key\u003c/em\u003e, \u003cem\u003etimestamp_key\u003c/em\u003e, and \u003cem\u003erepr_native_str\u003c/em\u003e.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/hynek/structlog/pull/749\"\u003e#749\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/hynek/structlog/pull/756\"\u003e#756\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/hynek/structlog/pull/757\"\u003e#757\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/hynek/structlog/pull/759\"\u003e#759\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003estructlog.dev.ConsoleRenderer.get_default_column_styles()\u003c/code\u003e for reuse the default column styles.\n\u003ca href=\"https://redirect.github.com/hynek/structlog/pull/741\"\u003e#741\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003estructlog.testing.capture_logs()\u003c/code\u003e now optionally accepts \u003cem\u003eprocessors\u003c/em\u003e to apply before capture.\n\u003ca href=\"https://redirect.github.com/hynek/structlog/pull/728\"\u003e#728\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003estructlog.dev.RichTracebackFormatter\u003c/code\u003e now exposes the upstream \u003cem\u003ecode_width\u003c/em\u003e parameter.\nDefault \u003cem\u003ewidth\u003c/em\u003e is now \u003ccode\u003eNone\u003c/code\u003e for full terminal width.\nFull terminal width is now handled by Rich itself, bringing support for reflow and \u003ccode\u003eCOLUMN\u003c/code\u003e environment variable.\nPassing \u003ccode\u003e-1\u003c/code\u003e for \u003cem\u003ewidth\u003c/em\u003e is now deprecated and automatically replaced by \u003ccode\u003eNone\u003c/code\u003e.\n\u003ca href=\"https://redirect.github.com/hynek/structlog/pull/717\"\u003e#717\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eNative loggers now allow the passing of a dictionary for dictionary-based interpolation \u003ccode\u003elog.info(\u0026quot;hello %(name)s!\u0026quot;, {\u0026quot;name\u0026quot;: \u0026quot;world\u0026quot;})\u003c/code\u003e.\n\u003ca href=\"https://redirect.github.com/hynek/structlog/pull/748\"\u003e#748\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eOn Python 3.11+, \u003ccode\u003estructlog.processors.CallsiteParameterAdder\u003c/code\u003e now supports \u003ccode\u003eCallsiteParameter.QUAL_NAME\u003c/code\u003e that adds the qualified name of the callsite, including scope and class names.\nThis is only available for \u003cem\u003estructlog\u003c/em\u003e-originated events since the standard library has no equivalent.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003estructlog.stdlib.LoggerFactory\u003c/code\u003e now supports the \u003cem\u003estacklevel\u003c/em\u003e parameter.\n\u003ca href=\"https://redirect.github.com/hynek/structlog/pull/763\"\u003e#763\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\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/structlog/commit/c0ef9e09e7a536cae65e33c1ac1c8b4e6a6f7511\"\u003e\u003ccode\u003ec0ef9e0\u003c/code\u003e\u003c/a\u003e Prepare 25.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/structlog/commit/9cb662fe32046f92f08346c58089a2dcba7cb4bf\"\u003e\u003ccode\u003e9cb662f\u003c/code\u003e\u003c/a\u003e docs: nit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/structlog/commit/5400612735ad07bbe8ee9f2279f3040aa2e69ca4\"\u003e\u003ccode\u003e5400612\u003c/code\u003e\u003c/a\u003e docs/stdlib: add warning about ProcessorFormatter\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/structlog/commit/1c2c19aa19c8f30330b76465b7a0d9993b9e8360\"\u003e\u003ccode\u003e1c2c19a\u003c/code\u003e\u003c/a\u003e Try validating pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/structlog/commit/aca10f23dd12bd9e14cfe712f1ce66c9cb5f4400\"\u003e\u003ccode\u003eaca10f2\u003c/code\u003e\u003c/a\u003e Drop pretend dependency (\u003ca href=\"https://redirect.github.com/hynek/structlog/issues/766\"\u003e#766\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/structlog/commit/3800d401db2c682c7c83b2d3eec38d81c9791f4d\"\u003e\u003ccode\u003e3800d40\u003c/code\u003e\u003c/a\u003e docs: use native\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/structlog/commit/ecaa15ac6b166ebca9f2b4f5cfdb4c4ec138a602\"\u003e\u003ccode\u003eecaa15a\u003c/code\u003e\u003c/a\u003e stdlib: add support for stacklevel (\u003ca href=\"https://redirect.github.com/hynek/structlog/issues/763\"\u003e#763\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/structlog/commit/7f7a221aed6bbff3c13cefd7effe14cc4f0cfc24\"\u003e\u003ccode\u003e7f7a221\u003c/code\u003e\u003c/a\u003e update dev (\u003ca href=\"https://redirect.github.com/hynek/structlog/issues/765\"\u003e#765\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/structlog/commit/5acfc85e3c3fa821dc65b55a226900d40dc0831c\"\u003e\u003ccode\u003e5acfc85\u003c/code\u003e\u003c/a\u003e docs: 5% bigger still\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/structlog/commit/c102862e3f30de84c898c4501418dede15056c6d\"\u003e\u003ccode\u003ec102862\u003c/code\u003e\u003c/a\u003e docs: bigger font\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/hynek/structlog/compare/25.2.0...25.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `boto3` from 1.37.23 to 1.42.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/347117552e90ab6fc8a3e6a459f0a00ec0ca0a48\"\u003e\u003ccode\u003e3471175\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.3'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/2e3d1258ad9cb30f38d3c54b1b5e847b83a2d13b\"\u003e\u003ccode\u003e2e3d125\u003c/code\u003e\u003c/a\u003e Bumping version to 1.42.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/04ebd3cbea961c39ea1fea5edfd24442d299eb1d\"\u003e\u003ccode\u003e04ebd3c\u003c/code\u003e\u003c/a\u003e Add changelog entries from botocore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/cc95ab6caa73634e01a03c82f310d002a5f3e71d\"\u003e\u003ccode\u003ecc95ab6\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.2'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/743b8e411a11015a0a0ee584cd0f3b947687a666\"\u003e\u003ccode\u003e743b8e4\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.2' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/8f7ba800ea3e2c252b2d9ed4abd4f00309a79511\"\u003e\u003ccode\u003e8f7ba80\u003c/code\u003e\u003c/a\u003e Bumping version to 1.42.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/119aff9051ef423ee2fbf963bd6640d66c5ee86a\"\u003e\u003ccode\u003e119aff9\u003c/code\u003e\u003c/a\u003e Add changelog entries from botocore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/65b24a41d1a03edb6fcdbff65ca14a3b11bcd962\"\u003e\u003ccode\u003e65b24a4\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.1'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/71a06cf0c53ed1d6819e37669fb800949aee398e\"\u003e\u003ccode\u003e71a06cf\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.1' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/5991e64f13b81bbc1b88c549bafc633708ecc17f\"\u003e\u003ccode\u003e5991e64\u003c/code\u003e\u003c/a\u003e Bumping version to 1.42.1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boto/boto3/compare/1.37.23...1.42.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `humanize` from 4.12.2 to 4.14.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-humanize/humanize/releases\"\u003ehumanize's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.14.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Uzbek language (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/264\"\u003e#264\u003c/a\u003e) \u003ca href=\"https://github.com/sSimuSs\"\u003e\u003ccode\u003e@​sSimuSs\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/268\"\u003e#268\u003c/a\u003e) \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.13.0\u003c/h2\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimise \u003ccode\u003enaturalsize\u003c/code\u003e algorithm by using \u003ccode\u003emath.log\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/253\"\u003e#253\u003c/a\u003e) \u003ca href=\"https://github.com/Zaczero\"\u003e\u003ccode\u003e@​Zaczero\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eprecisedelta\u003c/code\u003e rounding (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/254\"\u003e#254\u003c/a\u003e) \u003ca href=\"https://github.com/dangillet\"\u003e\u003ccode\u003e@​dangillet\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.12.3\u003c/h2\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression in \u003ccode\u003enaturalsize\u003c/code\u003e for \u003ccode\u003efloat\u003c/code\u003e and \u003ccode\u003estr\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/250\"\u003e#250\u003c/a\u003e) \u003ca href=\"https://github.com/loicleyendecker\"\u003e\u003ccode\u003e@​loicleyendecker\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprovements for French translation (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/248\"\u003e#248\u003c/a\u003e) \u003ca href=\"https://github.com/merwok\"\u003e\u003ccode\u003e@​merwok\u003c/code\u003e\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 href=\"https://github.com/python-humanize/humanize/commit/fedf432b5bd7751b3417447b647e43aa2ac7507d\"\u003e\u003ccode\u003efedf432\u003c/code\u003e\u003c/a\u003e Add Uzbek language (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-humanize/humanize/commit/bbc0398e8c1cf062d3fa4a79d1dc9f58aa26da26\"\u003e\u003ccode\u003ebbc0398\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/269\"\u003e#269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-humanize/humanize/commit/c8810e2d559e633cc48bc180d1bfe6364d04c169\"\u003e\u003ccode\u003ec8810e2\u003c/code\u003e\u003c/a\u003e Drop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/268\"\u003e#268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-humanize/humanize/commit/c16587b7ba97dcd763a79ccb88b9a01bfddbdfc3\"\u003e\u003ccode\u003ec16587b\u003c/code\u003e\u003c/a\u003e Update github-actions (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/267\"\u003e#267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-humanize/humanize/commit/947a6b13f0e44eda81c10d8403d3c2ccab01a1b2\"\u003e\u003ccode\u003e947a6b1\u003c/code\u003e\u003c/a\u003e Update dependency mypy to v1.18.2 (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/266\"\u003e#266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-humanize/humanize/commit/41903865abf4244c38b6340b0217611d9b86db1c\"\u003e\u003ccode\u003e4190386\u003c/code\u003e\u003c/a\u003e Update dependency mkdocstrings to v0.30.1 (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/265\"\u003e#265\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-humanize/humanize/commit/0e027051034b7dcb4eb65aded290cf56a89d8aa9\"\u003e\u003ccode\u003e0e02705\u003c/code\u003e\u003c/a\u003e Update config (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/262\"\u003e#262\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-humanize/humanize/commit/288a7a7c1dbfd1c977add3c54a7c9283039a6c71\"\u003e\u003ccode\u003e288a7a7\u003c/code\u003e\u003c/a\u003e Test free-threaded Python 3.13t and 3.14t (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/261\"\u003e#261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-humanize/humanize/commit/0f5d2948d674a88a611f8e341c0df520767b1b80\"\u003e\u003ccode\u003e0f5d294\u003c/code\u003e\u003c/a\u003e Precisedelta rounding (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/254\"\u003e#254\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-humanize/humanize/commit/58d10b43175a22eb9ece2c6f3dcff6b6b681e2df\"\u003e\u003ccode\u003e58d10b4\u003c/code\u003e\u003c/a\u003e Update docs/requirements.txt (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/260\"\u003e#260\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-humanize/humanize/compare/4.12.2...4.14.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `marshmallow` from 3.26.1 to 4.1.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/marshmallow-code/marshmallow/blob/dev/CHANGELOG.rst\"\u003emarshmallow's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e4.1.0 (2025-11-01)\n++++++++++++++++++\u003c/p\u003e\n\u003cp\u003eOther changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e__len__\u003c/code\u003e implementation to \u003ccode\u003emissing\u003c/code\u003e so that it can be used with\n\u003ccode\u003evalidate.Length \u0026lt;marshmallow.validate.Length\u0026gt;\u003c/code\u003e (:pr:\u003ccode\u003e2861\u003c/code\u003e).\nThanks :user:\u003ccode\u003eagentgodzilla\u003c/code\u003e for the PR.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.9 (:pr:\u003ccode\u003e2363\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eTest against Python 3.14.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e4.0.1 (2025-08-28)\n++++++++++++++++++\u003c/p\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix wildcard import of \u003ccode\u003efrom marshmallow import *\u003c/code\u003e (:pr:\u003ccode\u003e2823\u003c/code\u003e).\nThanks :user:\u003ccode\u003eFlorian-Laport\u003c/code\u003e for the PR.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e4.0.0 (2025-04-16)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003eSee :ref:\u003ccode\u003eupgrading_4_0\u003c/code\u003e for a guide on updating your code.\u003c/p\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eTyping: Add types to all \u003ccode\u003eField \u0026lt;marshmallow.fields.Field\u0026gt;\u003c/code\u003e constructor kwargs (:issue:\u003ccode\u003e2285\u003c/code\u003e).\nThanks :user:\u003ccode\u003enavignaw\u003c/code\u003e for the suggestion.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eDateTime \u0026lt;marshmallow.fields.DateTime\u0026gt;\u003c/code\u003e, \u003ccode\u003eDate \u0026lt;marshmallow.fields.Date\u0026gt;\u003c/code\u003e, \u003ccode\u003eTime \u0026lt;marshmallow.fields.Time\u0026gt;\u003c/code\u003e,\n\u003ccode\u003eTimeDelta \u0026lt;marshmallow.fields.TimeDelta\u0026gt;\u003c/code\u003e, and \u003ccode\u003eEnum \u0026lt;marshmallow.fields.Enum\u0026gt;\u003c/code\u003e\naccept their internal value types as valid input (:issue:\u003ccode\u003e1415\u003c/code\u003e).\nThanks :user:\u003ccode\u003ebitdancer\u003c/code\u003e for the suggestion.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@validates \u0026lt;marshmallow.validates\u0026gt;\u003c/code\u003e accepts multiple field names (:issue:\u003ccode\u003e1960\u003c/code\u003e).\n\u003cem\u003eBackwards-incompatible\u003c/em\u003e: Decorated methods now receive \u003ccode\u003edata_key\u003c/code\u003e as a keyword argument.\nThanks :user:\u003ccode\u003edpriskorn\u003c/code\u003e for the suggestion and :user:\u003ccode\u003edharani7998\u003c/code\u003e for the PR.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eOther changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eTyping: \u003ccode\u003eField \u0026lt;marshmallow.fields.Field\u0026gt;\u003c/code\u003e is now a generic type with a type argument for the internal value type.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emarshmallow.fields.UUID\u003c/code\u003e no longer subclasses \u003ccode\u003emarshmallow.fields.String\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emarshmallow.Schema.load\u003c/code\u003e no longer silently fails to call schema validators when a generator is passed (:issue:\u003ccode\u003e1898\u003c/code\u003e).\nThe typing of \u003ccode\u003edata\u003c/code\u003e is also updated to be more accurate.\nThanks :user:\u003ccode\u003eziplokk1\u003c/code\u003e for reporting.\u003c/li\u003e\n\u003cli\u003e\u003cem\u003eBackwards-incompatible\u003c/em\u003e: Use \u003ccode\u003edatetime.date.fromisoformat\u003c/code\u003e, \u003ccode\u003edatetime.time.fromisoformat\u003c/code\u003e, and \u003ccode\u003edatetime.datetime.fromisoformat\u003c/code\u003e from the standard library to deserialize dates, times and datetimes (:pr:\u003ccode\u003e2078\u003c/code\u003e).\nAs a consequence of this change:\n\u003cul\u003e\n\u003cli\u003eTime with time offsets are now supported.\u003c/li\u003e\n\u003cli\u003eYYYY-MM-DD is now accepted as a datetime and deserialized as naive 00:00 AM.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efrom_iso_date\u003c/code\u003e, \u003ccode\u003efrom_iso_time\u003c/code\u003e and \u003ccode\u003efrom_iso_datetime\u003c/code\u003e are removed from \u003ccode\u003emarshmallow.utils\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\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 href=\"https://github.com/marshmallow-code/marshmallow/commit/441213d310d1a6a2b47ef99c04ea9db65aee33ae\"\u003e\u003ccode\u003e441213d\u003c/code\u003e\u003c/a\u003e Bump version and update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/2b84b56e9a80d07b65d74811673e8e5cf46cd0f1\"\u003e\u003ccode\u003e2b84b56\u003c/code\u003e\u003c/a\u003e (fix) missing constant with len validation (\u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2861\"\u003e#2861\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/fc8726244820b9f08fb7d02e007ed8d378a46c7b\"\u003e\u003ccode\u003efc87262\u003c/code\u003e\u003c/a\u003e Test against Python 3.14 (\u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2864\"\u003e#2864\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/2a5e2e1fd43ee0df6320edcbd2567e1dcc2da819\"\u003e\u003ccode\u003e2a5e2e1\u003c/code\u003e\u003c/a\u003e Update CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/d861be73bc3c70e727ee729dbe7669d6a2d4c284\"\u003e\u003ccode\u003ed861be7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2863\"\u003e#2863\u003c/a\u003e from marshmallow-code/drop_python_39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/22288b64532252ef2929c109e0c2ce7f9afe5edd\"\u003e\u003ccode\u003e22288b6\u003c/code\u003e\u003c/a\u003e Fix ruff issues\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/1d8fd278b1a617bc4a01912f5660c4ab7374e662\"\u003e\u003ccode\u003e1d8fd27\u003c/code\u003e\u003c/a\u003e Drop Python 3.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/966caf9ba106f70ca72974bbd9ee6d44d522ce7d\"\u003e\u003ccode\u003e966caf9\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/feb22442d07a9f8e23920a7845da117b468c7868\"\u003e\u003ccode\u003efeb2244\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2857\"\u003e#2857\u003c/a\u003e from marshmallow-code/disable_RUF043\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/23ee36370f26f3144be395040cf7cdf6ffc86f37\"\u003e\u003ccode\u003e23ee363\u003c/code\u003e\u003c/a\u003e Disable RUF043 in tests: allow metacharacters in match patterns\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/marshmallow-code/marshmallow/compare/3.26.1...4.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-storage` from 3.1.0 to 3.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-storage/releases\"\u003egoogle-cloud-storage's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.6.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-storage/compare/v3.5.0...v3.6.0\"\u003e3.6.0\u003c/a\u003e (2025-11-17)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for partial list buckets (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1606\"\u003e#1606\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/92fc2b00429415b9fbe7cba0167778eee60449e2\"\u003e92fc2b0\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMake return_partial_success and unreachable fields public for list Bucket (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1601\"\u003e#1601\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/323cddd5d439e04e12614106eab1928fd4008c0b\"\u003e323cddd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ezb-experimental:\u003c/strong\u003e Add async write object stream (\u003ca href=\"https://github.com/googleapis/python-storage/commit/5ab81032268e875f82a66431d666fe61c9eb394b\"\u003e5ab8103\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ezb-experimental:\u003c/strong\u003e Add async write object stream (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1612\"\u003e#1612\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/5ab81032268e875f82a66431d666fe61c9eb394b\"\u003e5ab8103\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDont pass credentials to StorageClient (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1608\"\u003e#1608\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/195d644c4d4feec98e9a9cd9fad67fc774c50dc8\"\u003e195d644\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev3.5.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-storage/compare/v3.4.1...v3.5.0\"\u003e3.5.0\u003c/a\u003e (2025-11-05)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure that Python in FIPS mode can fetch MD5 implementation (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1522\"\u003e#1522\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/961536c7bf3652a824c207754317030526b9dd28\"\u003e961536c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProvide option to update \u003ccode\u003euser_agent\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1596\"\u003e#1596\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/02f1451aaa8dacd10a862e97abb62ae48249b9b4\"\u003e02f1451\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate credentials_file argument (\u003ca href=\"https://github.com/googleapis/python-storage/commit/74415a2a120e9bfa42f4f5fc8bd2f8e0d4cf5d18\"\u003e74415a2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFlaky system tests for resumable_media (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1592\"\u003e#1592\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/7fee3dd3390cfb5475a39d8f8272ea825dbda449\"\u003e7fee3dd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003edownload_ranges\u003c/code\u003e compatible with \u003ccode\u003easyncio.create_task(..)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1591\"\u003e#1591\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/faf8b83b1f0ac378f8f6f47ce33dc23a866090c9\"\u003efaf8b83\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003edownload_ranges\u003c/code\u003e compatible with \u003ccode\u003easyncio.create_task(..)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1591\"\u003e#1591\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/faf8b83b1f0ac378f8f6f47ce33dc23a866090c9\"\u003efaf8b83\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRedact sensitive data from OTEL traces and fix env var parsing (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1553\"\u003e#1553\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/a38ca1977694def98f65ae7239e300a987bbd262\"\u003ea38ca19\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRedact sensitive data from OTEL traces and fix env var parsing (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1553\"\u003e#1553\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/a38ca1977694def98f65ae7239e300a987bbd262\"\u003ea38ca19\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse separate header object for each upload in Transfer Manager MPU (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1595\"\u003e#1595\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/0d867bd4f405d2dbeca1edfc8072080c5a96c1cd\"\u003e0d867bd\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev3.4.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-storage/compare/v3.4.0...v3.4.1\"\u003e3.4.1\u003c/a\u003e (2025-10-08)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixes \u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1561\"\u003e#1561\u003c/a\u003e by adding an option to specify the entire object checksum for resumable uploads via the \u003ccode\u003eupload_from_string\u003c/code\u003e, \u003ccode\u003eupload_from_file\u003c/code\u003e, and \u003ccode\u003eupload_from_filename\u003c/code\u003e methods (\u003ca href=\"https://github.com/googleapis/python-storage/commit/acb918e20f7092e13d72fc63fe4ae2560bfecd40\"\u003eacb918e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev3.4.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-storage/compare/v3.3.1...v3.4.0\"\u003e3.4.0\u003c/a\u003e (2025-09-15)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\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 href=\"https://github.com/googleapis/python-storage/blob/main/CHANGELOG.md\"\u003egoogle-cloud-storage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-storage/compare/v3.5.0...v3.6.0\"\u003e3.6.0\u003c/a\u003e (2025-11-17)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for partial list buckets (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1606\"\u003e#1606\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/92fc2b00429415b9fbe7cba0167778eee60449e2\"\u003e92fc2b0\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMake return_partial_success and unreachable fields public for list Bucket (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1601\"\u003e#1601\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/323cddd5d439e04e12614106eab1928fd4008c0b\"\u003e323cddd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ezb-experimental:\u003c/strong\u003e Add async write object stream (\u003ca href=\"https://github.com/googleapis/python-storage/commit/5ab81032268e875f82a66431d666fe61c9eb394b\"\u003e5ab8103\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ezb-experimental:\u003c/strong\u003e Add async write object stream (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1612\"\u003e#1612\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/5ab81032268e875f82a66431d666fe61c9eb394b\"\u003e5ab8103\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDont pass credentials to StorageClient (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1608\"\u003e#1608\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/195d644c4d4feec98e9a9cd9fad67fc774c50dc8\"\u003e195d644\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-storage/compare/v3.4.1...v3.5.0\"\u003e3.5.0\u003c/a\u003e (2025-11-05)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eexperimental:\u003c/strong\u003e Add base resumption strategy for bidi streams (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1594\"\u003e#1594\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/5fb85ea544dcc9ed9dca65957c872c3811f02b87\"\u003e5fb85ea\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eexperimental:\u003c/strong\u003e Add checksum for bidi reads operation (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1566\"\u003e#1566\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/93ce515d60f0ac77ab83680ba2b4d6a9f57e75d0\"\u003e93ce515\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eexperimental:\u003c/strong\u003e Add read resumption strategy (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1599\"\u003e#1599\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/5d5e895e173075da557b58614fecc84086aaf9cb\"\u003e5d5e895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eexperimental:\u003c/strong\u003e Handle BidiReadObjectRedirectedError for bidi reads (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1600\"\u003e#1600\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/71b0f8a368a61bed9bd793a059f980562061223e\"\u003e71b0f8a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIndicate that md5 is used as a CRC (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1522\"\u003e#1522\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/961536c7bf3652a824c207754317030526b9dd28\"\u003e961536c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProvide option to update user_agent (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1596\"\u003e#1596\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/02f1451aaa8dacd10a862e97abb62ae48249b9b4\"\u003e02f1451\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate credentials_file argument (\u003ca href=\"https://github.com/googleapis/python-storage/commit/74415a2a120e9bfa42f4f5fc8bd2f8e0d4cf5d18\"\u003e74415a2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFlaky system tests for resumable_media (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1592\"\u003e#1592\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/7fee3dd3390cfb5475a39d8f8272ea825dbda449\"\u003e7fee3dd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003edownload_ranges\u003c/code\u003e compatible with \u003ccode\u003easyncio.create_task(..)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1591\"\u003e#1591\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/faf8b83b1f0ac378f8f6f47ce33dc23a866090c9\"\u003efaf8b83\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003edownload_ranges\u003c/code\u003e compatible with \u003ccode\u003easyncio.create_task(..)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1591\"\u003e#1591\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/faf8b83b1f0ac378f8f6f47ce33dc23a866090c9\"\u003efaf8b83\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRedact sensitive data from OTEL traces and fix env var parsing (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1553\"\u003e#1553\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/a38ca1977694def98f65ae7239e300a987bbd262\"\u003ea38ca19\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRedact sensitive data from OTEL traces and fix env var parsing (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1553\"\u003e#1553\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/a38ca1977694def98f65ae7239e300a987bbd262\"\u003ea38ca19\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse separate header object for each upload in Transfer Manager MPU (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1595\"\u003e#1595\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/0d867bd4f405d2dbeca1edfc8072080c5a96c1cd\"\u003e0d867bd\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-storage/compare/v3.4.0...v3.5.0\"\u003e3.4.1\u003c/a\u003e (2025-10-08)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixes \u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1561\"\u003e#1561\u003c/a\u003e by adding an option to specify the entire object checksum for resumable uploads via the \u003ccode\u003eupload_from_string\u003c/code\u003e, \u003ccode\u003eupload_from_file\u003c/code\u003e, and \u003ccode\u003eupload_from_filename\u003c/code\u003e methods (\u003ca href=\"https://github.com/googleapis/python-storage/commit/acb918e20f7092e13d72fc63fe4ae2560bfecd40\"\u003eacb918e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-storage/compare/v3.3.1...v3.4.0\"\u003e3.4.0\u003c/a\u003e (2025-09-15)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eexperimental:\u003c/strong\u003e Add async grpc client (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1537\"\u003e#1537\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/ac57b8d819a49aef0ed0cb5bb630bf11012f43e3\"\u003eac57b8d\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 href=\"https://github.com/googleapis/python-storage/commit/0b70a288d238ef192952f5d9024395e17f74abcf\"\u003e\u003ccode\u003e0b70a28\u003c/code\u003e\u003c/a\u003e chore(main): release 3.6.0 (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1603\"\u003e#1603\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-storage/commit/5ab81032268e875f82a66431d666fe61c9eb394b\"\u003e\u003ccode\u003e5ab8103\u003c/code\u003e\u003c/a\u003e feat(zb-experimental): add async write object stream (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1612\"\u003e#1612\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-storage/commit/92fc2b00429415b9fbe7cba0167778eee60449e2\"\u003e\u003ccode\u003e92fc2b0\u003c/code\u003e\u003c/a\u003e feat: add support for partial list buckets (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1606\"\u003e#1606\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-storage/commit/195d644c4d4feec98e9a9cd9fad67fc774c50dc8\"\u003e\u003ccode\u003e195d644\u003c/code\u003e\u003c/a\u003e fix: dont pass credentials to StorageClient (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1608\"\u003e#1608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-storage/commit/323cddd5d439e04e12614106eab1928fd4008c0b\"\u003e\u003ccode\u003e323cddd\u003c/code\u003e\u003c/a\u003e feat: make return_partial_success and unreachable fields public for list Buck...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-storage/commit/c2cd474d96ce39016ae00c59672f3ad42490c764\"\u003e\u003ccode\u003ec2cd474\u003c/code\u003e\u003c/a\u003e chore(main): release 3.5.0 (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1568\"\u003e#1568\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-storage/commit/71b0f8a368a61bed9bd793a059f980562061223e\"\u003e\u003ccode\u003e71b0f8a\u003c/code\u003e\u003c/a\u003e feat(experimental): Handle BidiReadObjectRedirectedError for bidi reads (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1600\"\u003e#1600\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-storage/commit/5d5e895e173075da557b58614fecc84086aaf9cb\"\u003e\u003ccode\u003e5d5e895\u003c/code\u003e\u003c/a\u003e feat(experimental): Add read resumption strategy (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1599\"\u003e#1599\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-storage/commit/5fb85ea544dcc9ed9dca65957c872c3811f02b87\"\u003e\u003ccode\u003e5fb85ea\u003c/code\u003e\u003c/a\u003e feat(experimental): Add base resumption strategy for bidi streams (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1594\"\u003e#1594\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-storage/commit/0d867bd4f405d2dbeca1edfc8072080c5a96c1cd\"\u003e\u003ccode\u003e0d867bd\u003c/code\u003e\u003c/a\u003e fix: Use separate header object for each upload in Transfer Manager MPU (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1595\"\u003e#1595\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/python-storage/compare/v3.1.0...v3.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `redis` from 6.4.0 to 7.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/redis-py/releases\"\u003eredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.1.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e🚀 New Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdding MSETEX command support. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3823\"\u003e#3823\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdding CLAIM option to XREADGROUP command + unit tests (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3825\"\u003e#3825\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eApply routing and response aggregation policies in OSS Cluster mode (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3834\"\u003e#3834\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧪 Experimental Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdding support for CAS/CAD commands. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3837\"\u003e#3837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdding support for HYBRID search. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3813\"\u003e#3813\u003c/a\u003e \u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3843\"\u003e#3843\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🔥 Breaking changes (in experimental features)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplace default health check and failure detector with custom (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3822\"\u003e#3822\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd **options to parse functions for sentinel (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3831\"\u003e#3831\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eGenerating unique command cache key (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3765\"\u003e#3765\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdding Redis 8.4 RC1 image to test matrix. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3820\"\u003e#3820\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove Python 3.9 support. Add Python 3.14 support. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3814\"\u003e#3814\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSync readme with 7.0.1 and update lib version to latest stable released version - 7.0.1 (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3821\"\u003e#3821\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump rojopolis/spellcheck-github-actions from 0.52.0 to 0.53.0 (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3827\"\u003e#3827\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump actions/upload-artifact from 4 to 5 (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3828\"\u003e#3828\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump github/codeql-action from 3 to 4 (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3829\"\u003e#3829\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixing flaky tests (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3833\"\u003e#3833\u003c/a\u003e \u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3838\"\u003e#3838\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate 8.4 RC image tag to 8.4-RC1-pre.2 for pipeline test matrix (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3832\"\u003e#3832\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd missing f-string when returning an error. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3841\"\u003e#3841\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdding latest 8.4 image to test matrix. Updating the Hybrid VSIM query format to be in sync with spec after srv issue was fixed. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3843\"\u003e#3843\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand cluster READ_COMMANDS with additional read-only commands and reorganize the list of commands by category (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3845\"\u003e#3845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate Type Hints for List Command Parameters from str to KeyT (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3848\"\u003e#3848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanging log level to be debug for failed maintenance notification enablement when enabled='auto' (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3851\"\u003e#3851\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded custom event handler section (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3853\"\u003e#3853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanging current version to 8.4 as it is already GA (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3854\"\u003e#3854\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\n\u003ca href=\"https://github.com/ShubhamKaudewar\"\u003e\u003ccode\u003e@​ShubhamKaudewar\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/matthewwiese\"\u003e\u003ccode\u003e@​matthewwiese\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/peperon\"\u003e\u003ccode\u003e@​peperon\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/vladvildanov\"\u003e\u003ccode\u003e@​vladvildanov\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/petyaslavova\"\u003e\u003ccode\u003e@​petyaslavova\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e7.0.1\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003cp\u003eThis release adds small fixes related to documentation.\u003c/p\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd 'multi_database' section to documentation index (313d93f)\u003c/li\u003e\n\u003cli\u003eRevised multi-database client documentation(78df745)\u003c/li\u003e\n\u003cli\u003eAdding info about Multi-database client in README.md (3f7a55e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/...\n\n_Description has been truncated_","html_url":"https://github.com/ONSdigital/eq-questionnaire-runner/pull/1792","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ONSdigital%2Feq-questionnaire-runner/issues/1792","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1792/packages"}},{"old_version":"2.0.30","new_version":"2.0.31","update_type":"patch","path":null,"pr_created_at":"2025-12-02T02:08:35.000Z","version_change":"2.0.30 → 2.0.31","issue":{"uuid":"3683686609","node_id":"PR_kwDOPdzh-c62fUYZ","number":92,"state":"closed","title":"Bump the python group across 1 directory with 35 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-12-03T22:24:00.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-02T02:08:35.000Z","updated_at":"2025-12-03T22:24:02.000Z","time_to_close":159325,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python","update_count":35,"packages":[{"name":"rcssmin","old_version":"1.1.2","new_version":"1.2.2","repository_url":"https://github.com/ndparker/rcssmin"},{"name":"whitenoise","old_version":"6.9.0","new_version":"6.11.0","repository_url":"https://github.com/evansd/whitenoise"},{"name":"hiredis","old_version":"3.2.1","new_version":"3.3.0","repository_url":"https://github.com/redis/hiredis-py"},{"name":"celery","old_version":"5.5.3","new_version":"5.6.0","repository_url":"https://github.com/celery/celery"},{"name":"django","old_version":"5.1.11","new_version":"5.2.8","repository_url":"https://github.com/django/django"},{"name":"django-allauth","old_version":"65.10.0","new_version":"65.13.1"},{"name":"django-crispy-forms","old_version":"2.4","new_version":"2.5","repository_url":"https://github.com/django-crispy-forms/django-crispy-forms"},{"name":"django-compressor","old_version":"4.5.1","new_version":"4.6.0","repository_url":"https://github.com/django-compressor/django-compressor"},{"name":"uwsgi","old_version":"2.0.30","new_version":"2.0.31"},{"name":"easy-thumbnails","old_version":"2.10","new_version":"2.10.1"},{"name":"django-cms","old_version":"5.0.2","new_version":"5.0.5","repository_url":"https://github.com/django-cms/django-cms"},{"name":"djangocms-versioning","old_version":"2.4.0","new_version":"2.5.0","repository_url":"https://github.com/django-cms/djangocms-versioning"},{"name":"django-entangled","old_version":"0.6.3","new_version":"0.7","repository_url":"https://github.com/jrief/django-entangled"},{"name":"djangocms-text","old_version":"0.9.2","new_version":"0.9.3","repository_url":"https://github.com/django-cms/djangocms-text"},{"name":"djangocms-frontend","old_version":"2.1.4","new_version":"2.2.0","repository_url":"https://github.com/django-cms/djangocms-frontend"},{"name":"djangocms-attributes-field","old_version":"4.1.1","new_version":"4.1.2","repository_url":"https://github.com/django-cms/djangocms-attributes-field"},{"name":"svglib","old_version":"1.5.1","new_version":"1.6.0","repository_url":"https://github.com/deeplook/svglib"},{"name":"reportlab","old_version":"4.4.3","new_version":"4.4.5"},{"name":"django-filer","old_version":"3.3.1","new_version":"3.4.1","repository_url":"https://github.com/django-cms/django-filer"},{"name":"pip-tools","old_version":"7.5.0","new_version":"7.5.2","repository_url":"https://github.com/jazzband/pip-tools"},{"name":"djangocms-snippet","old_version":"5.0.1","new_version":"5.0.2","repository_url":"https://github.com/django-cms/djangocms-snippet"},{"name":"djangocms-form-builder","old_version":"0.3.2","new_version":"0.4.0","repository_url":"https://github.com/fsbraun/djangocms-form-builder"},{"name":"psycopg","old_version":"3.2.9","new_version":"3.3.0"},{"name":"django-anymail","old_version":"13.0.1","new_version":"13.1"},{"name":"werkzeug","old_version":"3.1.3","new_version":"3.1.4"},{"name":"watchfiles","old_version":"1.1.0","new_version":"1.1.1","repository_url":"https://github.com/samuelcolvin/watchfiles"},{"name":"mypy","old_version":"1.17.1","new_version":"1.19.0","repository_url":"https://github.com/python/mypy"},{"name":"django-stubs","old_version":"5.2.2","new_version":"5.2.8"},{"name":"pytest-sugar","old_version":"1.0.0","new_version":"1.1.1","repository_url":"https://github.com/Teemu/pytest-sugar"},{"name":"ruff","old_version":"0.12.8","new_version":"0.14.7","repository_url":"https://github.com/astral-sh/ruff"},{"name":"coverage","old_version":"7.10.3","new_version":"7.12.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"pre-commit","old_version":"4.3.0","new_version":"4.5.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"factory-boy","old_version":"3.3.2","new_version":"3.3.3","repository_url":"https://github.com/FactoryBoy/factory_boy"},{"name":"django-debug-toolbar","old_version":"6.0.0","new_version":"6.1.0","repository_url":"https://github.com/django-commons/django-debug-toolbar"},{"name":"django-coverage-plugin","old_version":"3.1.1","new_version":"3.2.0","repository_url":"https://github.com/nedbat/django_coverage_plugin"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python group with 35 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [rcssmin](https://github.com/ndparker/rcssmin) | `1.1.2` | `1.2.2` |\n| [whitenoise](https://github.com/evansd/whitenoise) | `6.9.0` | `6.11.0` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.2.1` | `3.3.0` |\n| [celery](https://github.com/celery/celery) | `5.5.3` | `5.6.0` |\n| [django](https://github.com/django/django) | `5.1.11` | `5.2.8` |\n| [django-allauth[mfa]](https://github.com/sponsors/pennersr) | `65.10.0` | `65.13.1` |\n| [django-crispy-forms](https://github.com/django-crispy-forms/django-crispy-forms) | `2.4` | `2.5` |\n| [django-compressor](https://github.com/django-compressor/django-compressor) | `4.5.1` | `4.6.0` |\n| [uwsgi](https://uwsgi-docs.readthedocs.io/en/latest/) | `2.0.30` | `2.0.31` |\n| [easy-thumbnails[svg]](https://github.com/SmileyChris/easy-thumbnails) | `2.10` | `2.10.1` |\n| [django-cms](https://github.com/django-cms/django-cms) | `5.0.2` | `5.0.5` |\n| [djangocms-versioning](https://github.com/django-cms/djangocms-versioning) | `2.4.0` | `2.5.0` |\n| [django-entangled](https://github.com/jrief/django-entangled) | `0.6.3` | `0.7` |\n| [djangocms-text](https://github.com/django-cms/djangocms-text) | `0.9.2` | `0.9.3` |\n| [djangocms-frontend](https://github.com/django-cms/djangocms-frontend) | `2.1.4` | `2.2.0` |\n| [djangocms-attributes-field](https://github.com/django-cms/djangocms-attributes-field) | `4.1.1` | `4.1.2` |\n| [svglib](https://github.com/deeplook/svglib) | `1.5.1` | `1.6.0` |\n| [reportlab](https://www.reportlab.com/) | `4.4.3` | `4.4.5` |\n| [django-filer](https://github.com/django-cms/django-filer) | `3.3.1` | `3.4.1` |\n| [pip-tools](https://github.com/jazzband/pip-tools) | `7.5.0` | `7.5.2` |\n| [djangocms-snippet](https://github.com/django-cms/djangocms-snippet) | `5.0.1` | `5.0.2` |\n| [djangocms-form-builder](https://github.com/fsbraun/djangocms-form-builder) | `0.3.2` | `0.4.0` |\n| [psycopg[c]](https://github.com/psycopg/psycopg) | `3.2.9` | `3.3.0` |\n| [django-anymail[mailgun]](https://github.com/anymail/django-anymail) | `13.0.1` | `13.1` |\n| [werkzeug[watchdog]](https://github.com/pallets/werkzeug) | `3.1.3` | `3.1.4` |\n| [watchfiles](https://github.com/samuelcolvin/watchfiles) | `1.1.0` | `1.1.1` |\n| [mypy](https://github.com/python/mypy) | `1.17.1` | `1.19.0` |\n| [django-stubs[compatible-mypy]](https://github.com/sponsors/typeddjango) | `5.2.2` | `5.2.8` |\n| [pytest-sugar](https://github.com/Teemu/pytest-sugar) | `1.0.0` | `1.1.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.12.8` | `0.14.7` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.3` | `7.12.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.3.0` | `4.5.0` |\n| [factory-boy](https://github.com/FactoryBoy/factory_boy) | `3.3.2` | `3.3.3` |\n| [django-debug-toolbar](https://github.com/django-commons/django-debug-toolbar) | `6.0.0` | `6.1.0` |\n| [django-coverage-plugin](https://github.com/nedbat/django_coverage_plugin) | `3.1.1` | `3.2.0` |\n\n\nUpdates `rcssmin` from 1.1.2 to 1.2.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ndparker/rcssmin/blob/master/CHANGES\"\u003ercssmin's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eChanges with version 1.2.2\u003c/p\u003e\n\u003cp\u003e*) Update benchmarks\u003c/p\u003e\n\u003cp\u003e*) Add support for Python 3.14\u003c/p\u003e\n\u003cp\u003e*) Update project boilerplate\u003c/p\u003e\n\u003cp\u003eChanges with version 1.2.1\u003c/p\u003e\n\u003cp\u003e*) Change doc theme to \u0026quot;furo\u0026quot;\u003c/p\u003e\n\u003cp\u003e*) Remove build dependency pinning (resolves \u003ca href=\"https://redirect.github.com/ndparker/rcssmin/issues/18\"\u003e#18\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e*) Update project boilerplate\u003c/p\u003e\n\u003cp\u003eChanges with version 1.2.0\u003c/p\u003e\n\u003cp\u003e*) Add support for nesting selector (\u0026amp;)\u003c/p\u003e\n\u003cp\u003e*) Update project boilerplate\u003c/p\u003e\n\u003cp\u003eChanges with version 1.1.3\u003c/p\u003e\n\u003cp\u003e*) Add support for Python 3.13\u003c/p\u003e\n\u003cp\u003e*) Update project boilerplate\u003c/p\u003e\n\u003cp\u003eChanges with version 1.1.2\u003c/p\u003e\n\u003cp\u003e*) Add support for Python 3.12\u003c/p\u003e\n\u003cp\u003e*) Add musllinux wheels\u003c/p\u003e\n\u003cp\u003e*) Update project boilerplate\u003c/p\u003e\n\u003cp\u003eChanges with version 1.1.1\u003c/p\u003e\n\u003cp\u003e*) Add support for Python 3.11\u003c/p\u003e\n\u003cp\u003e*) Update project boilerplate\u003c/p\u003e\n\u003cp\u003eChanges with version 1.1.0\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 href=\"https://github.com/ndparker/rcssmin/commit/b4cac4d1ffd665aa3b8d2f9e0e09529578a67193\"\u003e\u003ccode\u003eb4cac4d\u003c/code\u003e\u003c/a\u003e Bump version to 1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/db3f06eefa05860bbe1e8fa373e0249cb6adedbb\"\u003e\u003ccode\u003edb3f06e\u003c/code\u003e\u003c/a\u003e Update benchmarks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/77816d3cf9e2f3dc03c00e1f8526e471dffdc3fe\"\u003e\u003ccode\u003e77816d3\u003c/code\u003e\u003c/a\u003e Add Python 3.14 support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/ecac7747c1a68781cf1b524ea54db44aae7c7bd2\"\u003e\u003ccode\u003eecac774\u003c/code\u003e\u003c/a\u003e Project boilerplate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/5bac716410f460f75e243961f482b1895e487b6b\"\u003e\u003ccode\u003e5bac716\u003c/code\u003e\u003c/a\u003e Bump version to 1.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/8d4312f864efa55d36742a728adffebfd27a6aa3\"\u003e\u003ccode\u003e8d4312f\u003c/code\u003e\u003c/a\u003e Hello 2025\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/41d1e1f7ae6242a80854509d7181f8a91278722b\"\u003e\u003ccode\u003e41d1e1f\u003c/code\u003e\u003c/a\u003e Update dependencies, change sphinx theme\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/5396f5ec399b2ac57293657fb87ca888f3ecda8e\"\u003e\u003ccode\u003e5396f5e\u003c/code\u003e\u003c/a\u003e Bump version to 1.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/81da21987bfe614153711217f1b50bc0fa5f4c55\"\u003e\u003ccode\u003e81da219\u003c/code\u003e\u003c/a\u003e Update benchmarks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/1f9ff6d2d89f03108ccf53332352e328ee010b82\"\u003e\u003ccode\u003e1f9ff6d\u003c/code\u003e\u003c/a\u003e Add support for nesting selector (\u0026amp;)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ndparker/rcssmin/compare/1.1.2...1.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `whitenoise` from 6.9.0 to 6.11.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/evansd/whitenoise/blob/main/docs/changelog.rst\"\u003ewhitenoise's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.11.0 (2025-09-18)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Django 6.0.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.10.0 (2025-09-09)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14.\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 href=\"https://github.com/evansd/whitenoise/commit/c9c06e9382b92fc959ffdfc3e2ec63057de82561\"\u003e\u003ccode\u003ec9c06e9\u003c/code\u003e\u003c/a\u003e Version 6.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/051c4e997a07fd3ae5e9f3ec092080102ab89d93\"\u003e\u003ccode\u003e051c4e9\u003c/code\u003e\u003c/a\u003e Support Django 6.0 (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/665\"\u003e#665\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/c903cc13394895cbb3926e48c7acecf364efcd26\"\u003e\u003ccode\u003ec903cc1\u003c/code\u003e\u003c/a\u003e Version 6.10.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/a81bcb0ae2dd0c5884ebadb762f46827ecb54d0f\"\u003e\u003ccode\u003ea81bcb0\u003c/code\u003e\u003c/a\u003e docs(django): use the stable version in URLs (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/626\"\u003e#626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/67b4f32b12a9700b6dcc30ced8e9ad23bf39baa1\"\u003e\u003ccode\u003e67b4f32\u003c/code\u003e\u003c/a\u003e Support Python 3.14 (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/664\"\u003e#664\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/da8d333d165be1bdd9e7decbb3a293b5e55ff608\"\u003e\u003ccode\u003eda8d333\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/663\"\u003e#663\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/800072482c0652f81864ae78c26539d3dfc765b2\"\u003e\u003ccode\u003e8000724\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/662\"\u003e#662\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/8fb339f0eaee9219b1e02a840b5fd2227cf2fbbf\"\u003e\u003ccode\u003e8fb339f\u003c/code\u003e\u003c/a\u003e Upgrade dependencies (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/661\"\u003e#661\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/adf64ddfa5329d622cbc4740aec49b7baf0df792\"\u003e\u003ccode\u003eadf64dd\u003c/code\u003e\u003c/a\u003e Use uvx to run tox on GitHub Actions (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/660\"\u003e#660\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/ad6eb204640ff69498f8fc60bd9eb876ee5771b8\"\u003e\u003ccode\u003ead6eb20\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/659\"\u003e#659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/evansd/whitenoise/compare/6.9.0...6.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `hiredis` from 3.2.1 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/hiredis-py/releases\"\u003ehiredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.3.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e by \u003ca href=\"https://github.com/zweizeichen\"\u003e\u003ccode\u003e@​zweizeichen\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\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 href=\"https://github.com/redis/hiredis-py/commit/187d0f387afed58a955a42ea8c5467100871f98b\"\u003e\u003ccode\u003e187d0f3\u003c/code\u003e\u003c/a\u003e Version 3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/3efcf037edc5a9f7abfaedbd3f60b2a03feb4787\"\u003e\u003ccode\u003e3efcf03\u003c/code\u003e\u003c/a\u003e Add Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/215\"\u003e#215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/966cede2c0ca0a8ac4fe0786571e5c230f39c36e\"\u003e\u003ccode\u003e966cede\u003c/code\u003e\u003c/a\u003e Fix assertion in reader.c (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/212\"\u003e#212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/78def309e58126fdaacb66e6fd40df9c46494062\"\u003e\u003ccode\u003e78def30\u003c/code\u003e\u003c/a\u003e Bump version to 3.3.0-dev\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/redis/hiredis-py/compare/v3.2.1...v3.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `celery` from 5.5.3 to 5.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/celery/celery/releases\"\u003ecelery's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.6.0\u003c/h2\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003ch2\u003eKey Highlights\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.celeryq.dev/en/stable/history/whatsnew-5.6.html\"\u003eWhat's new in Celery 5.6\u003c/a\u003e for a complete overview or read the main highlights below.\u003c/p\u003e\n\u003ch3\u003ePython 3.9 Minimum Version\u003c/h3\u003e\n\u003cp\u003eCelery 5.6.0 drops support for Python 3.8 (EOL). The minimum required Python version is now 3.9. Users still on Python 3.8 must upgrade their Python version before upgrading to Celery 5.6.0.\u003c/p\u003e\n\u003cp\u003eAdditionally, this release includes initial support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eSQS: Reverted to \u003ccode\u003epycurl\u003c/code\u003e from \u003ccode\u003eurllib3\u003c/code\u003e\u003c/h3\u003e\n\u003cp\u003eThe switch from \u003ccode\u003epycurl\u003c/code\u003e to \u003ccode\u003eurllib3\u003c/code\u003e for the SQS transport (introduced in Celery 5.5.0 via Kombu) has been reverted due to critical issues affecting SQS users.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/auvipy\"\u003e\u003ccode\u003e@​auvipy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9620\"\u003ecelery/celery#9620\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eSecurity Fix: Broker Credential Leak Prevention\u003c/h3\u003e\n\u003cp\u003eFixed a security issue where broker URLs containing passwords were being logged in plaintext by the delayed delivery mechanism. Broker credentials are now properly sanitized in all log output.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/giancarloromeo\"\u003e\u003ccode\u003e@​giancarloromeo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9997\"\u003ecelery/celery#9997\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eMemory Leak Fixes\u003c/h3\u003e\n\u003cp\u003eTwo significant memory leaks have been fixed in this release:\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eException Handling Memory Leak\u003c/strong\u003e: Fixed a critical memory leak in task exception handling that was particularly severe on Python 3.11+ due to enhanced traceback data. The fix properly breaks reference cycles in tracebacks to allow garbage collection.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/jaiganeshs21\"\u003e\u003ccode\u003e@​jaiganeshs21\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9799\"\u003ecelery/celery#9799\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ePending Result Memory Leak\u003c/strong\u003e: Fixed a memory leak where \u003ccode\u003eAsyncResult\u003c/code\u003e subscriptions were not being cleaned up when results were forgotten.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/tsoos99dev\"\u003e\u003ccode\u003e@​tsoos99dev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9806\"\u003ecelery/celery#9806\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eETA Task Memory Limit\u003c/h3\u003e\n\u003cp\u003eNew configuration option \u003ccode\u003eworker_eta_task_limit\u003c/code\u003e to prevent out-of-memory crashes when workers fetch large numbers of ETA or countdown tasks. Previously, workers could exhaust available memory when the broker contained many scheduled tasks.\u003c/p\u003e\n\u003cp\u003eExample usage:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eapp.conf.worker_eta_task_limit = 1000\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/sashu2310\"\u003e\u003ccode\u003e@​sashu2310\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9853\"\u003ecelery/celery#9853\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eQueue Type Selection for Auto-created Queues\u003c/h3\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 href=\"https://github.com/celery/celery/blob/main/Changelog.rst\"\u003ecelery's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.6.0\u003c/h1\u003e\n\u003cp\u003e:release-date: 2025-11-30\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003cp\u003eKey Highlights\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nSee :ref:`whatsnew-5.6` for a complete overview or read the main highlights below.\n\u003ch2\u003ePython 3.9 Minimum Version\u003c/h2\u003e\n\u003cp\u003eCelery 5.6.0 drops support for Python 3.8 (EOL). The minimum required Python\nversion is now 3.9. Users still on Python 3.8 must upgrade their Python version\nbefore upgrading to Celery 5.6.0.\u003c/p\u003e\n\u003cp\u003eAdditionally, this release includes initial support for Python 3.14.\u003c/p\u003e\n\u003ch2\u003eSQS: Reverted to \u003ccode\u003epycurl\u003c/code\u003e from \u003ccode\u003eurllib3\u003c/code\u003e\u003c/h2\u003e\n\u003cp\u003eThe switch from \u003ccode\u003epycurl\u003c/code\u003e to \u003ccode\u003eurllib3\u003c/code\u003e for the SQS transport (introduced in\nCelery 5.5.0 via Kombu) has been reverted due to critical issues affecting SQS\nusers:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eProcessing throughput dropped from ~100 tasks/sec to ~3/sec in some environments\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUnknownOperationException\u003c/code\u003e errors causing container crash loops\u003c/li\u003e\n\u003cli\u003eSilent message processing failures with no error logs\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eUsers of the SQS transport must ensure \u003ccode\u003epycurl\u003c/code\u003e is installed. If you removed\n\u003ccode\u003epycurl\u003c/code\u003e after upgrading to Celery 5.5.0, you will need to reinstall it.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ccode\u003e@auvipy \u0026amp;lt;https://github.com/auvipy\u0026amp;gt;\u003c/code\u003e_ in\n\u003ccode\u003e[#9620](https://github.com/celery/celery/issues/9620) \u0026amp;lt;https://github.com/celery/celery/pull/9620\u0026amp;gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003ch2\u003eSecurity Fix: Broker Credential Leak Prevention\u003c/h2\u003e\n\u003cp\u003eFixed a security issue where broker URLs containing passwords were being logged\nin plaintext by the delayed delivery mechanism. Broker credentials are now\nproperly sanitized in all log output.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ccode\u003e@giancarloromeo \u0026amp;lt;https://github.com/giancarloromeo\u0026amp;gt;\u003c/code\u003e_ in\n\u003ccode\u003e[#9997](https://github.com/celery/celery/issues/9997) \u0026amp;lt;https://github.com/celery/celery/pull/9997\u0026amp;gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003cp\u003eMemory Leak Fixes\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\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 href=\"https://github.com/celery/celery/commit/cca11164860a1bee6ad8626c27a683b482f741eb\"\u003e\u003ccode\u003ecca1116\u003c/code\u003e\u003c/a\u003e Prepare for release: v5.6.0 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10010\"\u003e#10010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/1133f22181bb22223d39c0060973695c6af55643\"\u003e\u003ccode\u003e1133f22\u003c/code\u003e\u003c/a\u003e Bump mypy from 1.14.1 to 1.19.0 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10008\"\u003e#10008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/0932d2c06e001903b90638f7c40a14f5407c9801\"\u003e\u003ccode\u003e0932d2c\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10007\"\u003e#10007\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/b446910f18860531b089d6c39f974265cc24a589\"\u003e\u003ccode\u003eb446910\u003c/code\u003e\u003c/a\u003e Prepare for (pre) release: v5.6.0rc2 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10005\"\u003e#10005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/3f0f0fe7ea6a67a696d0a750644b552559ae368e\"\u003e\u003ccode\u003e3f0f0fe\u003c/code\u003e\u003c/a\u003e asynpool: Don't return from inside a finally block (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10000\"\u003e#10000\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/95d05527c0e1fff5c1a38877ba87592983a7f993\"\u003e\u003ccode\u003e95d0552\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10003\"\u003e#10003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/f32b92f0e481601e9cc9f1212a4feced3f48e1a0\"\u003e\u003ccode\u003ef32b92f\u003c/code\u003e\u003c/a\u003e Add Py39-314t to CI (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9999\"\u003e#9999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/63c1910221d9fb8c1931ff62c80c4c37232b2d58\"\u003e\u003ccode\u003e63c1910\u003c/code\u003e\u003c/a\u003e Don't fail task on timeout during cold shutdown (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9678\"\u003e#9678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/30649dbd41308fc8eef79b2aae179a908eaa7a51\"\u003e\u003ccode\u003e30649db\u003c/code\u003e\u003c/a\u003e Fix log leaking broker credentials (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9997\"\u003e#9997\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/929412e2d4d328e337be3f177ca99fff10ab9bdc\"\u003e\u003ccode\u003e929412e\u003c/code\u003e\u003c/a\u003e Remove Python 4.0 version condition for pytest dependencies (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9993\"\u003e#9993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/celery/celery/compare/v5.5.3...v5.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django` from 5.1.11 to 5.2.8\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/47fe39af56ecd0ad73b9c7562511015e96b91b80\"\u003e\u003ccode\u003e47fe39a\u003c/code\u003e\u003c/a\u003e [5.2.x] Bumped version for 5.2.8 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/ac9fcf6eb2c909f4150c5287808f49170ce1f9e2\"\u003e\u003ccode\u003eac9fcf6\u003c/code\u003e\u003c/a\u003e [5.2.x] Refs CVE-2025-64459 -- Avoided propagating invalid arguments to Q on ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/6703f364d767e949c5b0e4016433ef75063b4f9b\"\u003e\u003ccode\u003e6703f36\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2025-64459 -- Prevented SQL injections in Q/QuerySet via th...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/4f5d904b63751dea9ffc3b0e046404a7fa5881ac\"\u003e\u003ccode\u003e4f5d904\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2025-64458 -- Mitigated potential DoS in HttpResponseRedire...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/cbdf128cb316bccf9ca3b3b4966e57bd050bfc8a\"\u003e\u003ccode\u003ecbdf128\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36704\"\u003e#36704\u003c/a\u003e -- Fixed system check error for proxy model with a compo...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/6775888470317a6d69121779b489bb2dc7350318\"\u003e\u003ccode\u003e6775888\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36696\"\u003e#36696\u003c/a\u003e -- Fixed NameError when inspecting functions with deferr...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/d5dfffaae52b9dcb4857d42b1e2902290a5c5e3c\"\u003e\u003ccode\u003ed5dfffa\u003c/code\u003e\u003c/a\u003e [5.2.x] Added stub release notes and release date for 5.2.8, 5.1.14, and 4.2.26.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/368f955c371cab5db18e9e239d10560cf15f5ea4\"\u003e\u003ccode\u003e368f955\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36681\"\u003e#36681\u003c/a\u003e -- Removed English pluralization bias from example in do...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/71267c97db211f1d7f1b8b794ceb2167a7619a4d\"\u003e\u003ccode\u003e71267c9\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/35095\"\u003e#35095\u003c/a\u003e -- Clarified Swiss number formatting in docs/topics/i18n...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/9b37bd5fe73b0d614ad8e503071d6f7bf2bdf6b2\"\u003e\u003ccode\u003e9b37bd5\u003c/code\u003e\u003c/a\u003e [5.2.x] Made RemoteTestResultTest.test_pickle_errors_detection() compatible w...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/5.1.11...5.2.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-allauth[mfa]` from 65.10.0 to 65.13.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sponsors/pennersr/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-crispy-forms` from 2.4 to 2.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/releases\"\u003edjango-crispy-forms's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eConfirmed support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eConfirmed support for Django 6.0.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8.\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 href=\"https://github.com/django-crispy-forms/django-crispy-forms/blob/main/CHANGELOG.md\"\u003edjango-crispy-forms's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.5 (2025-11-06)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eConfirmed support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eConfirmed support for Django 6.0.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8.\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 href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/65fa8ae065638da101851807937bb89ae1b5687e\"\u003e\u003ccode\u003e65fa8ae\u003c/code\u003e\u003c/a\u003e 2.5 Release. (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1424\"\u003e#1424\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/ca4ca14da2aeac3ce934b83861f1b2a558b736fd\"\u003e\u003ccode\u003eca4ca14\u003c/code\u003e\u003c/a\u003e PEP 639 licenses  (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1413\"\u003e#1413\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/aaabe68c0d5a2eee98101ff661b2c5cab28a0777\"\u003e\u003ccode\u003eaaabe68\u003c/code\u003e\u003c/a\u003e Updated pre-commit hook versions.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/125dd1632a460b4dd7b1c8ab0738863d0470c2cb\"\u003e\u003ccode\u003e125dd16\u003c/code\u003e\u003c/a\u003e Pyupgrade 3.9+\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/1f9c8ecc24a3159c86219403ae26e7d0c67e15b7\"\u003e\u003ccode\u003e1f9c8ec\u003c/code\u003e\u003c/a\u003e Confirmed support for Python 3.14, Django. Drop support for Python 3.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/93cb8c8e817870e19a6c426a3e5716ae748a6535\"\u003e\u003ccode\u003e93cb8c8\u003c/code\u003e\u003c/a\u003e Correct names in special thanks section (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1421\"\u003e#1421\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/e327548f80a531bba5ac1049b73108a0681eebf4\"\u003e\u003ccode\u003ee327548\u003c/code\u003e\u003c/a\u003e Added security policy. (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1419\"\u003e#1419\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/64813429d54b39c10d7bb7ad2db4ab0e0e2c418f\"\u003e\u003ccode\u003e6481342\u003c/code\u003e\u003c/a\u003e Enabled GitHub code of conduct (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1416\"\u003e#1416\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/dabd719113c8e7e43fa8d5e254bfa938d169e6e8\"\u003e\u003ccode\u003edabd719\u003c/code\u003e\u003c/a\u003e Add Project Logo. (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1415\"\u003e#1415\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/compare/2.4...2.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-compressor` from 4.5.1 to 4.6.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-compressor/django-compressor/blob/develop/docs/changelog.txt\"\u003edjango-compressor's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003ev4.6 (2025-11-10)\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003eFull list of changes from v4.5.1 \u0026lt;https://github.com/django-compressor/django-compressor/compare/4.5.1...4.6\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed compatibility with latest BS4.\u003c/li\u003e\n\u003cli\u003eRemoved top pin for rcssmin and rjsmin dependencies.\u003c/li\u003e\n\u003cli\u003eAvoid compressing the same node concurrently in offline compression.\u003c/li\u003e\n\u003cli\u003eAvoid use of deprecated ast.Constant.s\u003c/li\u003e\n\u003cli\u003eOfficially support Django 6.0\u003c/li\u003e\n\u003cli\u003eOfficially support Django 5.2\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Django 5.0\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 3.9.\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 3.8.\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 href=\"https://github.com/django-compressor/django-compressor/commit/3ada994897cf982f97fc4c934be42eb1e0b71b9a\"\u003e\u003ccode\u003e3ada994\u003c/code\u003e\u003c/a\u003e Prepare 4.6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/1baa82a6cf6942eb12007217f26195a95df727e2\"\u003e\u003ccode\u003e1baa82a\u003c/code\u003e\u003c/a\u003e Remove CI testing for EOL Django 5.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/8706a52b740e7555abefc8fba1eaae1986ded1a5\"\u003e\u003ccode\u003e8706a52\u003c/code\u003e\u003c/a\u003e Add CI testing for Python 3.14 and Django 6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/7be9ce2cefedf59302207728e383fa7811232d59\"\u003e\u003ccode\u003e7be9ce2\u003c/code\u003e\u003c/a\u003e Bump brotli, lxml, and coverage test dependencies.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/d6fd8136febd1ba409b366c7471db8763522d91d\"\u003e\u003ccode\u003ed6fd813\u003c/code\u003e\u003c/a\u003e Remove test version pinning for rcssmin and rjsmin.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/2b46e7d1724109ebb5db49b76f008dc039f0a9db\"\u003e\u003ccode\u003e2b46e7d\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1307\"\u003e#1307\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/b97bb05836eb6a42d2746d43792e9d13f041b615\"\u003e\u003ccode\u003eb97bb05\u003c/code\u003e\u003c/a\u003e Disable bs4's multi valued attributes (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1296\"\u003e#1296\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/4e5433076300508e1c3648da3345ae606386eb3f\"\u003e\u003ccode\u003e4e54330\u003c/code\u003e\u003c/a\u003e Migrate packaging to pyproject.toml (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1313\"\u003e#1313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/872f8d52ce51957bccf4a91338d177c2ea4a3908\"\u003e\u003ccode\u003e872f8d5\u003c/code\u003e\u003c/a\u003e Remove version pinning for rcssmin and rjsmin (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1312\"\u003e#1312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/cc38666efb13c6e0b355cf273f56b783d7157e29\"\u003e\u003ccode\u003ecc38666\u003c/code\u003e\u003c/a\u003e Drop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1311\"\u003e#1311\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-compressor/django-compressor/compare/4.5.1...4.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uwsgi` from 2.0.30 to 2.0.31\n\nUpdates `easy-thumbnails[svg]` from 2.10 to 2.10.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/blob/master/CHANGES.rst\"\u003eeasy-thumbnails[svg]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.10.1 (2025-08-17)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Django-5.2.\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 href=\"https://github.com/SmileyChris/easy-thumbnails/commit/208f672ab53e3c7596c966b5282e64ed9747a3e4\"\u003e\u003ccode\u003e208f672\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/SmileyChris/easy-thumbnails/issues/664\"\u003e#664\u003c/a\u003e from SmileyChris/jrief-patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/318a2847391bb0e3fdc0a17a52af49a5851b53c9\"\u003e\u003ccode\u003e318a284\u003c/code\u003e\u003c/a\u003e Update CHANGES.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/0989a40226197b78bfa47939e44017bedea564fa\"\u003e\u003ccode\u003e0989a40\u003c/code\u003e\u003c/a\u003e version 2.10.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/3b86790c40788ebf9ce0cb66f529d745abe715b5\"\u003e\u003ccode\u003e3b86790\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/SmileyChris/easy-thumbnails/issues/663\"\u003e#663\u003c/a\u003e from tomkins/django-5.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/221679530109e5f92b2ad4d3e25f759d6dd90ced\"\u003e\u003ccode\u003e2216795\u003c/code\u003e\u003c/a\u003e Drop support for Django 5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/2cf9af0d7dc341ccaaabc79500033584aae88fbb\"\u003e\u003ccode\u003e2cf9af0\u003c/code\u003e\u003c/a\u003e Add support for Django 5.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/4957daa823a8ee17a90859281c2d93b06930e6fa\"\u003e\u003ccode\u003e4957daa\u003c/code\u003e\u003c/a\u003e Drop py38 from Django 4.2 testing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/21759697b0b5b600e6ebd5cce336a7d25f94099b\"\u003e\u003ccode\u003e2175969\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/SmileyChris/easy-thumbnails/issues/654\"\u003e#654\u003c/a\u003e from ArcaniteSolutions/fix-remote-storages-location-l...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/26351108ed706721492e606fe4ff51179d8a4844\"\u003e\u003ccode\u003e2635110\u003c/code\u003e\u003c/a\u003e check storage has location before fixing path\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/9d6fe6632ba4f175e9f4ad61eb4b3457b8124711\"\u003e\u003ccode\u003e9d6fe66\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/SmileyChris/easy-thumbnails/issues/650\"\u003e#650\u003c/a\u003e from benkonrath/python-3.13\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/compare/2.10.0...2.10.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-cms` from 5.0.2 to 5.0.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-cms/django-cms/releases\"\u003edjango-cms's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.0.5\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Searching pages for language-specific content failed due to wrong serach queryset (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8355\"\u003e#8355\u003c/a\u003e) by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8358\"\u003edjango-cms/django-cms#8358\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Fix default value for edit_fields parameter to avoid AttributeError by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8381\"\u003edjango-cms/django-cms#8381\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: avoid escaping (= stringify) None-values in PageAttribute template tag by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8384\"\u003edjango-cms/django-cms#8384\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Copying x-language lead to unique constraint violation (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8366\"\u003e#8366\u003c/a\u003e) by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8386\"\u003edjango-cms/django-cms#8386\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Ensure edit endpoint language selection when admin is not using i18n_patterns (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8367\"\u003e#8367\u003c/a\u003e) by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8390\"\u003edjango-cms/django-cms#8390\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Build release 5.0.5 by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8391\"\u003edjango-cms/django-cms#8391\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-cms/django-cms/compare/5.0.4...5.0.5\"\u003ehttps://github.com/django-cms/django-cms/compare/5.0.4...5.0.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Wrong placeholders rendered when using apphooks with own placeholders (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8343\"\u003e#8343\u003c/a\u003e) by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8348\"\u003edjango-cms/django-cms#8348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Prepare release 5.0.4 by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8352\"\u003edjango-cms/django-cms#8352\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-cms/django-cms/compare/5.0.3...5.0.4\"\u003ehttps://github.com/django-cms/django-cms/compare/5.0.3...5.0.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: Django 6 compatibility (July 2025) by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8302\"\u003edjango-cms/django-cms#8302\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: Add documentation for toolbar get_object and set_object methods by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8314\"\u003edjango-cms/django-cms#8314\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Respect individual placeholder checks if they can be changed (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8317\"\u003e#8317\u003c/a\u003e) by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8318\"\u003edjango-cms/django-cms#8318\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Cut children from inactive menu nodes when level is less or equal to 0 (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8322\"\u003e#8322\u003c/a\u003e) by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8324\"\u003edjango-cms/django-cms#8324\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: copy lang management command - include PageUrl (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/7548\"\u003e#7548\u003c/a\u003e) by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8335\"\u003edjango-cms/django-cms#8335\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Optimize placeholder and plugin utilities by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8337\"\u003edjango-cms/django-cms#8337\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Migration 0033 failed when empty placeholder objects were not present in the db by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8339\"\u003edjango-cms/django-cms#8339\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Build 5.0.3 release by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8341\"\u003edjango-cms/django-cms#8341\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-cms/django-cms/compare/5.0.2...5.0.3\"\u003ehttps://github.com/django-cms/django-cms/compare/5.0.2...5.0.3\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 href=\"https://github.com/django-cms/django-cms/blob/5.0.5/CHANGELOG.rst\"\u003edjango-cms's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.0.5 (2025-11-12)\u003c/h1\u003e\n\u003ch2\u003eBug Fixes:\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePin language of toolbar update to the request language\u003c/li\u003e\n\u003cli\u003eEnsure edit endpoint language selection when admin is not using i18n_patterns (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8367\"\u003e#8367\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8390\"\u003e#8390\u003c/a\u003e) (9e00f694e) -- Fabian Braun\u003c/li\u003e\n\u003cli\u003eCopying x-language lead to unique constraint violation (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8366\"\u003e#8366\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8386\"\u003e#8386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid escaping (= stringify) None-values in PageAttribute-TemplateTag (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8375\"\u003e#8375\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8384\"\u003e#8384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSet default value for edit_fields parameter to avoid AttributeError (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8381\"\u003e#8381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLink syntax in welcome.html\u003c/li\u003e\n\u003cli\u003eSearching pages for language-specific content failed due to wrong search queryset (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8355\"\u003e#8355\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8358\"\u003e#8358\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eStatistics:\u003c/h2\u003e\n\u003cp\u003eThis release includes 5 pull requests, and was created with the help of the following contributors (in alphabetical order):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFabian Braun (7 pull requests)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWith the review help of the following contributors:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVinit Kumar\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to all contributors for their efforts!\u003c/p\u003e\n\u003ch1\u003e5.0.4 (2025-10-03)\u003c/h1\u003e\n\u003ch2\u003eBug Fixes:\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWrong placeholders rendered when using apphooks with own placeholders (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8343\"\u003e#8343\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8348\"\u003e#8348\u003c/a\u003e) (775392390) -- Fabian Braun\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eStatistics:\u003c/h2\u003e\n\u003cp\u003eThis release includes 1 pull request, and was created with the help of the following contributors (in alphabetical order):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFabian Braun (1 pull request)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWith the review help of the following contributors:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVinit Kumar\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to all contributors for their efforts!\u003c/p\u003e\n\u003ch1\u003e5.0.3 (2025-09-17)\u003c/h1\u003e\n\u003cp\u003eBug Fixes:\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 href=\"https://github.com/django-cms/django-cms/commit/6e970e6c4894ecd1459fedc6f2c00617a923a740\"\u003e\u003ccode\u003e6e970e6\u003c/code\u003e\u003c/a\u003e chore: Build release 5.0.5 (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8391\"\u003e#8391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/9e00f694ee0afe637521177a139d69a02d752f7f\"\u003e\u003ccode\u003e9e00f69\u003c/code\u003e\u003c/a\u003e fix: Ensure edit endpoint language selection when admin is not using i18n_pat...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/e6d0f76703afd154b2319a0b9e3b50e9330805bf\"\u003e\u003ccode\u003ee6d0f76\u003c/code\u003e\u003c/a\u003e fix: Copying x-language lead to unique constraint violation (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8366\"\u003e#8366\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8386\"\u003e#8386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/3990cfb37913e72d55780c3886445b4e75bdea78\"\u003e\u003ccode\u003e3990cfb\u003c/code\u003e\u003c/a\u003e Fix: avoid escaping (= stringify) None-values in PageAttribute-TemplateTag (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/80a19fdf550fab528cdc1c2634076de22e9497ad\"\u003e\u003ccode\u003e80a19fd\u003c/code\u003e\u003c/a\u003e fix: Fix default value for edit_fields parameter to avoid AttributeError (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8381\"\u003e#8381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/6f63ebf05e12c86512b8b084b615b1011c581708\"\u003e\u003ccode\u003e6f63ebf\u003c/code\u003e\u003c/a\u003e fix: link syntax in welcome.html\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/1ff46f7e1c3284eae9749497a76656afc8f8c302\"\u003e\u003ccode\u003e1ff46f7\u003c/code\u003e\u003c/a\u003e fix: Searching pages for language-specific content failed due to wrong serach...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/ed3a004b62ee69f099b0f647dd33778ba0b0d1fb\"\u003e\u003ccode\u003eed3a004\u003c/code\u003e\u003c/a\u003e chore: Prepare release 5.0.4 (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8352\"\u003e#8352\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/775392390eea0ffcdeccb0d21306d6e34fb859df\"\u003e\u003ccode\u003e7753923\u003c/code\u003e\u003c/a\u003e fix: Wrong placeholders rendered when using apphooks with own placeholders (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/cb8bdcecf623e125ea789a0551279a3dc0152deb\"\u003e\u003ccode\u003ecb8bdce\u003c/code\u003e\u003c/a\u003e chore: Build 5.0.3 release (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8341\"\u003e#8341\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-cms/django-cms/compare/5.0.2...5.0.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `djangocms-versioning` from 2.4.0 to 2.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-cms/djangocms-versioning/releases\"\u003edjangocms-versioning's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.5.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Fix typo in permission name by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/476\"\u003edjango-cms/djangocms-versioning#476\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Remove unnecessary \u003ccode\u003e_original_manager\u003c/code\u003e usage from toolbar by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/477\"\u003edjango-cms/djangocms-versioning#477\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/checkout from 4 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/482\"\u003edjango-cms/djangocms-versioning#482\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/cache from 4.2.3 to 4.2.4 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/481\"\u003edjango-cms/djangocms-versioning#481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/cache from 4.2.4 to 4.3.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/485\"\u003edjango-cms/djangocms-versioning#485\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/setup-python from 5 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/484\"\u003edjango-cms/djangocms-versioning#484\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump github/codeql-action from 3 to 4 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/487\"\u003edjango-cms/djangocms-versioning#487\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Respect site-specific language configurations by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/480\"\u003edjango-cms/djangocms-versioning#480\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Respect permissions for indicator menus and version locking by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/493\"\u003edjango-cms/djangocms-versioning#493\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Modernize JS build, remove jQuery bundle by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/492\"\u003edjango-cms/djangocms-versioning#492\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eModernize Python and Django support: Drop Python 3.9, add Python 3.14 and Django 6.0 by \u003ca href=\"https://github.com/vinitkumar\"\u003e\u003ccode\u003e@​vinitkumar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/489\"\u003edjango-cms/djangocms-versioning#489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/setup-node from 4 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/494\"\u003edjango-cms/djangocms-versioning#494\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump astral-sh/setup-uv from 5 to 7 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/495\"\u003edjango-cms/djangocms-versioning#495\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Update locales by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/497\"\u003edjango-cms/djangocms-versioning#497\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdates for file djangocms_versioning/locale/en/LC_MESSAGES/django.po in de by \u003ca href=\"https://github.com/transifex-integration\"\u003e\u003ccode\u003e@​transifex-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/496\"\u003edjango-cms/djangocms-versioning#496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[BUG FIX] Language menu is showing despite only one language configured by \u003ca href=\"https://github.com/va-lang\"\u003e\u003ccode\u003e@​va-lang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/491\"\u003edjango-cms/djangocms-versioning#491\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=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/476\"\u003edjango-cms/djangocms-versioning#476\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vinitkumar\"\u003e\u003ccode\u003e@​vinitkumar\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/489\"\u003edjango-cms/djangocms-versioning#489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/va-lang\"\u003e\u003ccode\u003e@​va-lang\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/491\"\u003edjango-cms/djangocms-versioning#491\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-cms/djangocms-versioning/compare/2.4.0...2.5.0\"\u003ehttps://github.com/django-cms/djangocms-versioning/compare/2.4.0...2.5.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 href=\"https://github.com/django-cms/djangocms-versioning/blob/master/CHANGELOG.rst\"\u003edjangocms-versioning's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.5.0 (2025-11-14)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efeat: Language menu allows creating new translations from preview mode by \u003ca href=\"https://github.com/va-lang\"\u003e\u003ccode\u003e@​va-lang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/491\"\u003edjango-cms/djangocms-versioning#491\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Modernize Python and Django support: Drop Python 3.9, add Python 3.14 and Django 6.0 by \u003ca href=\"https://github.com/vinitkumar\"\u003e\u003ccode\u003e@​vinitkumar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/489\"\u003edjango-cms/djangocms-versioning#489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Updates for file djangocms_versioning/locale/en/LC_MESSAGES/django.po in de by \u003ca href=\"https://github.com/transifex-integration\"\u003e\u003ccode\u003e@​transifex-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/496\"\u003edjango-cms/djangocms-versioning#496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Swap django-fsm with django-fsm-2\u003c/li\u003e\n\u003cli\u003efix: Typo in permission name by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/476\"\u003edjango-cms/djangocms-versioning#476\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Remove unnecessary \u003ccode\u003e_original_manager\u003c/code\u003e usage from toolbar by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/477\"\u003edjango-cms/djangocms-versioning#477\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Respect site-specific language configurations by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/480\"\u003edjango-cms/djangocms-versioning#480\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Respect permissions for indicator menus and version locking by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/493\"\u003edjango-cms/djangocms-versioning#493\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eNew Contributors\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/476\"\u003edjango-cms/djangocms-versioning#476\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vinitkumar\"\u003e\u003ccode\u003e@​vinitkumar\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/489\"\u003edjango-cms/djangocms-versioning#489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/va-lang\"\u003e\u003ccode\u003e@​va-lang\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/491\"\u003edjango-cms/djangocms-versioning#491\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 href=\"https://github.com/django-cms/djangocms-versioning/commit/da78ec1adc34f37ccfe9780a30c858b89f7637fe\"\u003e\u003ccode\u003eda78ec1\u003c/code\u003e\u003c/a\u003e chore: Prepare release 2.5.0 (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/issues/500\"\u003e#500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-versioning/commit/08df487169f44e7710f18155a9d5d02d32531e4c\"\u003e\u003ccode\u003e08df487\u003c/code\u003e\u003c/a\u003e chore: Simplified requirements_dev.txt file for tests (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/issues/499\"\u003e#499\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-versioning/commit/e2e5e8d3ab1ee07b4f1dd2c7518441f6e6038c21\"\u003e\u003ccode\u003ee2e5e8d\u003c/code\u003e\u003c/a\u003e [BUG FIX] Language menu is showing despite only one language configured (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/issues/491\"\u003e#491\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-versioning/commit/d90268d6ee31dd7f9e80df804ab9ad5a2df68c2b\"\u003e\u003ccode\u003ed90268d\u003c/code\u003e\u003c/a\u003e Translate django.po in de (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/issues/496\"\u003e#496\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-versioning/commit/bc3cbc10ff12106836da1a1ee51c8283b9d726cc\"\u003e\u003ccode\u003ebc3cbc1\u003c/code\u003e\u003c/a\u003e chore: Update locales (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/issues/497\"\u003e#497\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-versioning/commit/d111df897067a31fe8dca7b88773ae0ca9fba397\"\u003e\u003ccode\u003ed111df8\u003c/code\u003e\u003c/a\u003e build(deps): bump astral-sh/setup-uv from 5 to 7 (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/issues/495\"\u003e#495\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-versioning/commit/dc24f2604420f46c1203aa8a06a9dc948eceadd3\"\u003e\u003ccode\u003edc24f26\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-node from 4 to 6 (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/issues/494\"\u003e#494\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-versioning/commit/a0db3dea7aaf838376be6809fe9870ad7eee3205\"\u003e\u003ccode\u003ea0db3de\u003c/code\u003e\u003c/a\u003e Modernize Python and Django support: Drop Python 3.9, add Python 3.14 and Dja...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-versioning/commit/27abc23b5157a3cb6d18cfb2bdaaa61eb24a284d\"\u003e\u003ccode\u003e27abc23\u003c/code\u003e\u003c/a\u003e chore: Modernize JS build, remove jQuery bundle (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/issues/492\"\u003e#492\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-versioning/commit/29b3955871676bf69bd59154ff8125378ecca287\"\u003e\u003ccode\u003e29b3955\u003c/code\u003e\u003c/a\u003e fix: Respect permissions for indicator menus and version locking (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/issues/493\"\u003e#493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-cms/djangocms-versioning/compare/2.4.0...2.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-entangled` from 0.6.3 to 0.7\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jrief/django-entangled/blob/master/CHANGELOG.md\"\u003edjango-entangled's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.7\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Django 5.2.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.13.\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 href=\"https://github.com/jrief/django-entangled/commit/734bd8f8b316663a1f31d4fa7e9248a955baea21\"\u003e\u003ccode\u003e734bd8f\u003c/code\u003e\u003c/a\u003e Bump to version 0.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jrief/django-entangled/commit/fcad6c824be14d052456df759e23bc4b44646d3e\"\u003e\u003ccode\u003efcad6c8\u003c/code\u003e\u003c/a\u003e Add support for Django-5.2 and Python 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jrief/django-entangled/commit/a89b615cafcdbb939d71fb34dc30253d2dcf5c00\"\u003e\u003ccode\u003ea89b615\u003c/code\u003e\u003c/a\u003e Propagate django-formset\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/jrief/django-entangled/compare/0.6.3...0.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `djangocms-text` from 0.9.2 to 0.9.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-cms/djangocms-text/releases\"\u003edjangocms-text's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.9.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Fixed issues for non-CMS installations and added test coverage for non-CMS installations by \u003ca href=\"https://github.com/Grosskopf\"\u003e\u003ccode\u003e@​Grosskopf\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/119\"\u003edjango-cms/djangocms-text#119\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Respect plugin language for link field by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/113\"\u003edjango-cms/djangocms-text#113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/114\"\u003edjango-cms/djangocms-text#114\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/checkout from 4 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/115\"\u003edjango-cms/djangocms-text#115\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=\"https://github.com/Grosskopf\"\u003e\u003ccode\u003e@​Grosskopf\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/119\"\u003edjango-cms/djangocms-text#119\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-cms/djangocms-text/compare/0.9.2...0.9.3\"\u003ehttps://github.com/django-cms/djangocms-text/compare/0.9.2...0.9.3\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 href=\"https://github.com/django-cms/djangocms-text/blob/main/CHANGELOG.rst\"\u003edjangocms-text's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e0.9.3 (22-08-2025)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix: Fixed issues for non-CMS installations and added test coverage for non-CMS installations by \u003ca href=\"https://github.com/Grosskopf\"\u003e\u003ccode\u003e@​Grosskopf\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/119\"\u003edjango-cms/djangocms-text#119\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Respect plugin language for link field by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/113\"\u003edjango-cms/djangocms-text#113\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/Grosskopf\"\u003e\u003ccode\u003e@​Grosskopf\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/119\"\u003edjango-cms/djangocms-text#119\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 href=\"https://github.com/django-cms/djangocms-text/commit/23c8c5b276547459db18fad7bd2b45bf978c2d4b\"\u003e\u003ccode\u003e23c8c5b\u003c/code\u003e\u003c/a\u003e chore: Prepare release 0.9.3 (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/issues/120\"\u003e#120\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-text/commit/070dc3bff81b6aaad57b34bbbdce905a9a753fef\"\u003e\u003ccode\u003e070dc3b\u003c/code\u003e\u003c/a\u003e fix: Fixed issues for non-CMS installations and added test coverage for non-C...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-text/commit/d23c7830b72afd3d143bbd54dc5c3e25c7a844a7\"\u003e\u003ccode\u003ed23c783\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/issues/115\"\u003e#115\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-text/commit/4c78ee95ac529d9444a0c0342c41fe06c5edf9c1\"\u003e\u003ccode\u003e4c78ee9\u003c/code\u003e\u003c/a\u003e Merge branch 'main' of github.com:django-cms/djangocms-text\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-text/commit/d13df72a07522f1e1f84a50a4448a3ecde4bef65\"\u003e\u003ccode\u003ed13df72\u003c/code\u003e\u003c/a\u003e feat: node 24\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-text/commit/cf7b3b82f92999bb9297b213844696374f524937\"\u003e\u003ccode\u003ecf7b3b8\u003c/code\u003e\u003c/a\u003e ci: pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/issues/114\"\u003e#114\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-text/commit/5fa6205a5910b34334bdb14744f59b62a275a09e\"\u003e\u003ccode\u003e5fa6205\u003c/code\u003e\u003c/a\u003e Update comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-text/commit/79568c6b98a6e4adda9f84b84aa016254db60481\"\u003e\u003ccode\u003e79568c6\u003c/code\u003e\u003c/a\u003e fix: Respect plugin language for link field (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/issues/113\"\u003e#113\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/django-cms/djangocms-text/compare/0.9.2...0.9.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `djangocms-frontend` from 2.1.4 to 2.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-cms/djangocms-frontend/releases\"\u003edjangocms-frontend's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.2.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eci:(deps): bump actions/cache from 4.2.3 to 4.2.4 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-frontend/pull/297\"\u003edjango-cms/djangocms-frontend#297\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Only partially functional preview removed, CSS and JS refactor by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-frontend/pull/301\"\u003edjango-cms/djangocms-frontend#301\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Button group too condensed when using djangocms-admin-style by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-frontend/pull/303\"\u003edjango-cms/djangocms-frontend#303\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-cms/djangocms-frontend/compare/2.1.4...2.2.0\"\u003ehttps://github.com/django-cms/djangocms-frontend/compare/2.1.4...2.2.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 href=\"https://github.com/django-cms/djangocms-frontend/blob/main/CHANGELOG.rst\"\u003edjangocms-frontend's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.2.0 (2025-08-16)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efeat: Refactored CSS for faster and more reliable loading by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Removed link and button preview\u003c/li\u003e\n\u003cli\u003efix: Some UI Components were not discovered by the \u003ccode\u003e{% plugin %}\u003c/code\u003e template tag in django CMS 5\u003c/li\u003e\n\u003cli\u003efix: Restored Python 3.9 compatibility\u003c/li\u003e\n\u003cli\u003echore: Update node version\u003c/li\u003e\n\u003cli\u003echore: Remove bootstrap dependency\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 href=\"https://github.com/django-cms/djangocms-frontend/commit/6ec69a0c7fa36165e9bc3d5cfa333d60422985bf\"\u003e\u003ccode\u003e6ec69a0\u003c/code\u003e\u003c/a\u003e fix: Button group too condensed when using djangocms-admin-style (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-frontend/issues/303\"\u003e#303\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/662b357e8ad4642f18a73874eceac899a26ede66\"\u003e\u003ccode\u003e662b357\u003c/code\u003e\u003c/a\u003e fix: Docs references \u003ccode\u003efrontend_tags\u003c/code\u003e instead of \u003ccode\u003efrontend\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/5135e527beb741446f626e4c0c116f2e146c7667\"\u003e\u003ccode\u003e5135e52\u003c/code\u003e\u003c/a\u003e chore: Update LICENSE\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/b84bab7439442345ea8db89145a1079e4ba871bf\"\u003e\u003ccode\u003eb84bab7\u003c/code\u003e\u003c/a\u003e feat: Only partially functional preview removed, CSS and JS refactor (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-frontend/issues/301\"\u003e#301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/554418c1d4642279bef6e601ae2297ff5d634ba0\"\u003e\u003ccode\u003e554418c\u003c/code\u003e\u003c/a\u003e ci:(deps): bump actions/cache from 4.2.3 to 4.2.4 (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-frontend/issues/297\"\u003e#297\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/53a958051b6f475a3df3e48131956db0eed72d5e\"\u003e\u003ccode\u003e53a9580\u003c/code\u003e\u003c/a\u003e fix: typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/5f8829b6e5adbdf4689cc3747756e7ff4ae86dc1\"\u003e\u003ccode\u003e5f8829b\u003c/code\u003e\u003c/a\u003e Merge branch 'main' of github.com:django-cms/djangocms-frontend\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/b3a0eb6afc484c63520a2166dccff47ca0ec653e\"\u003e\u003ccode\u003eb3a0eb6\u003c/code\u003e\u003c/a\u003e fix: Python 3.9 support for plugin_tag.py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/4d3a3cf60485a9d17292a24db7654b75c19a1be9\"\u003e\u003ccode\u003e4d3a3cf\u003c/code\u003e\u003c/a\u003e fix test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/453e4c29d928076a3bf8c9e52b5a2f1f2e692231\"\u003e\u003ccode\u003e453e4c2\u003c/code\u003e\u003c/a\u003e chore: add test for py 3.9\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-cms/djangocms-frontend/compare/2.1.4...2.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `djangocms-attributes-field` from 4.1.1 to 4.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-cms/djangocms-attributes-field/releases\"\u003edjangocms-attributes-field's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.1.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Add min-height to attributes pair buttons by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-attributes-field/pull/62\"\u003edjango-cms/djangocms-attributes-field#62\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-cms/djangocms-attributes-field/compare/4.1.1...4.1.2\"\u003ehttps://github.com/django-cms/djangocms-attributes-field/compare/4.1.1...4.1.2\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 href=\"https://github.com/django-cms/djangocms-attributes-field/blob/master/CHANGELOG.rst\"\u003edjangocms-attributes-field's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.1.2 (2025-11.02)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix: Add min-height to add link for unstyled Django admin\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 href=\"https://github.com/django-cms/djangocms-attributes-field/commit/9adbde46e3c1bd52fd297cbbf9475e4da01cbba4\"\u003e\u003ccode\u003e9adbde4\u003c/code\u003e\u003c/a\u003e fix: Add min-height to attributes pair buttons (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-attributes-field/issues/62\"\u003e#62\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/django-cms/djangocms-attributes-field/compare/4.1.1...4.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `svglib` from 1.5.1 to 1.6.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/deeplook/svglib/blob/main/CHANGELOG.rst\"\u003esvglib's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.6.0 (2025-09-25)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplace setup.py with pyproject.toml, rework GitHub workflows (\u003ca href=\"https://redirect.github.com/deeplook/svglib/issues/405\"\u003e#405\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003cli\u003eModernize codebase, added type annotations, expanded docstrings, etc.\u003c/li\u003e\n\u003cli\u003eAdd a Makefile.\u003c/li\u003e\n\u003cli\u003eAdd publishing workflows.\u003c/li\u003e\n\u003cli\u003eRemove dunder constants and use importlib.metadata to get the version number.\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 href=\"https://github.com/deeplook/svglib/commit/1dce6584fb40de115479da10880dbf3b75cda955\"\u003e\u003ccode\u003e1dce658\u003c/code\u003e\u003c/a\u003e Expanded many docstrings, sanitized pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deeplook/svglib/commit/4c69f45919b181b98ebeb2614f84797217efd759\"\u003e\u003ccode\u003e4c69f45\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/deeplook/svglib/issues/412\"\u003e#412\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deeplook/svglib/commit/35a69b9af1eafbec5e4ff8eb759de7a506c4a83f\"\u003e...\n\n_Description has been truncated_","html_url":"https://github.com/maxnoelp2/coolify-template/pull/92","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/maxnoelp2%2Fcoolify-template/issues/92","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/92/packages"}},{"old_version":"2.0.30","new_version":"2.0.31","update_type":"patch","path":null,"pr_created_at":"2025-12-02T02:01:52.000Z","version_change":"2.0.30 → 2.0.31","issue":{"uuid":"3683659389","node_id":"PR_kwDOPfcqS862fOIL","number":91,"state":"closed","title":"Bump the python group across 1 directory with 35 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-12-03T21:26:13.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-02T02:01:52.000Z","updated_at":"2025-12-03T21:26:15.000Z","time_to_close":156261,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python","update_count":35,"packages":[{"name":"rcssmin","old_version":"1.1.2","new_version":"1.2.2","repository_url":"https://github.com/ndparker/rcssmin"},{"name":"whitenoise","old_version":"6.9.0","new_version":"6.11.0","repository_url":"https://github.com/evansd/whitenoise"},{"name":"hiredis","old_version":"3.2.1","new_version":"3.3.0","repository_url":"https://github.com/redis/hiredis-py"},{"name":"celery","old_version":"5.5.3","new_version":"5.6.0","repository_url":"https://github.com/celery/celery"},{"name":"django","old_version":"5.1.11","new_version":"5.2.8","repository_url":"https://github.com/django/django"},{"name":"django-allauth","old_version":"65.10.0","new_version":"65.13.1"},{"name":"django-crispy-forms","old_version":"2.4","new_version":"2.5","repository_url":"https://github.com/django-crispy-forms/django-crispy-forms"},{"name":"django-compressor","old_version":"4.5.1","new_version":"4.6.0","repository_url":"https://github.com/django-compressor/django-compressor"},{"name":"uwsgi","old_version":"2.0.30","new_version":"2.0.31"},{"name":"easy-thumbnails","old_version":"2.10","new_version":"2.10.1"},{"name":"django-cms","old_version":"5.0.2","new_version":"5.0.5","repository_url":"https://github.com/django-cms/django-cms"},{"name":"djangocms-versioning","old_version":"2.4.0","new_version":"2.5.0","repository_url":"https://github.com/django-cms/djangocms-versioning"},{"name":"django-entangled","old_version":"0.6.3","new_version":"0.7","repository_url":"https://github.com/jrief/django-entangled"},{"name":"djangocms-text","old_version":"0.9.2","new_version":"0.9.3","repository_url":"https://github.com/django-cms/djangocms-text"},{"name":"djangocms-frontend","old_version":"2.1.4","new_version":"2.2.0","repository_url":"https://github.com/django-cms/djangocms-frontend"},{"name":"djangocms-attributes-field","old_version":"4.1.1","new_version":"4.1.2","repository_url":"https://github.com/django-cms/djangocms-attributes-field"},{"name":"svglib","old_version":"1.5.1","new_version":"1.6.0","repository_url":"https://github.com/deeplook/svglib"},{"name":"reportlab","old_version":"4.4.3","new_version":"4.4.5"},{"name":"django-filer","old_version":"3.3.1","new_version":"3.4.1","repository_url":"https://github.com/django-cms/django-filer"},{"name":"pip-tools","old_version":"7.5.0","new_version":"7.5.2","repository_url":"https://github.com/jazzband/pip-tools"},{"name":"djangocms-snippet","old_version":"5.0.1","new_version":"5.0.2","repository_url":"https://github.com/django-cms/djangocms-snippet"},{"name":"djangocms-form-builder","old_version":"0.3.2","new_version":"0.4.0","repository_url":"https://github.com/fsbraun/djangocms-form-builder"},{"name":"psycopg","old_version":"3.2.9","new_version":"3.3.0"},{"name":"django-anymail","old_version":"13.0.1","new_version":"13.1"},{"name":"werkzeug","old_version":"3.1.3","new_version":"3.1.4"},{"name":"watchfiles","old_version":"1.1.0","new_version":"1.1.1","repository_url":"https://github.com/samuelcolvin/watchfiles"},{"name":"mypy","old_version":"1.17.1","new_version":"1.19.0","repository_url":"https://github.com/python/mypy"},{"name":"django-stubs","old_version":"5.2.2","new_version":"5.2.8"},{"name":"pytest-sugar","old_version":"1.0.0","new_version":"1.1.1","repository_url":"https://github.com/Teemu/pytest-sugar"},{"name":"ruff","old_version":"0.12.8","new_version":"0.14.7","repository_url":"https://github.com/astral-sh/ruff"},{"name":"coverage","old_version":"7.10.3","new_version":"7.12.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"pre-commit","old_version":"4.3.0","new_version":"4.5.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"factory-boy","old_version":"3.3.2","new_version":"3.3.3","repository_url":"https://github.com/FactoryBoy/factory_boy"},{"name":"django-debug-toolbar","old_version":"6.0.0","new_version":"6.1.0","repository_url":"https://github.com/django-commons/django-debug-toolbar"},{"name":"django-coverage-plugin","old_version":"3.1.1","new_version":"3.2.0","repository_url":"https://github.com/nedbat/django_coverage_plugin"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python group with 35 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [rcssmin](https://github.com/ndparker/rcssmin) | `1.1.2` | `1.2.2` |\n| [whitenoise](https://github.com/evansd/whitenoise) | `6.9.0` | `6.11.0` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.2.1` | `3.3.0` |\n| [celery](https://github.com/celery/celery) | `5.5.3` | `5.6.0` |\n| [django](https://github.com/django/django) | `5.1.11` | `5.2.8` |\n| [django-allauth[mfa]](https://github.com/sponsors/pennersr) | `65.10.0` | `65.13.1` |\n| [django-crispy-forms](https://github.com/django-crispy-forms/django-crispy-forms) | `2.4` | `2.5` |\n| [django-compressor](https://github.com/django-compressor/django-compressor) | `4.5.1` | `4.6.0` |\n| [uwsgi](https://uwsgi-docs.readthedocs.io/en/latest/) | `2.0.30` | `2.0.31` |\n| [easy-thumbnails[svg]](https://github.com/SmileyChris/easy-thumbnails) | `2.10` | `2.10.1` |\n| [django-cms](https://github.com/django-cms/django-cms) | `5.0.2` | `5.0.5` |\n| [djangocms-versioning](https://github.com/django-cms/djangocms-versioning) | `2.4.0` | `2.5.0` |\n| [django-entangled](https://github.com/jrief/django-entangled) | `0.6.3` | `0.7` |\n| [djangocms-text](https://github.com/django-cms/djangocms-text) | `0.9.2` | `0.9.3` |\n| [djangocms-frontend](https://github.com/django-cms/djangocms-frontend) | `2.1.4` | `2.2.0` |\n| [djangocms-attributes-field](https://github.com/django-cms/djangocms-attributes-field) | `4.1.1` | `4.1.2` |\n| [svglib](https://github.com/deeplook/svglib) | `1.5.1` | `1.6.0` |\n| [reportlab](https://www.reportlab.com/) | `4.4.3` | `4.4.5` |\n| [django-filer](https://github.com/django-cms/django-filer) | `3.3.1` | `3.4.1` |\n| [pip-tools](https://github.com/jazzband/pip-tools) | `7.5.0` | `7.5.2` |\n| [djangocms-snippet](https://github.com/django-cms/djangocms-snippet) | `5.0.1` | `5.0.2` |\n| [djangocms-form-builder](https://github.com/fsbraun/djangocms-form-builder) | `0.3.2` | `0.4.0` |\n| [psycopg[c]](https://github.com/psycopg/psycopg) | `3.2.9` | `3.3.0` |\n| [django-anymail[mailgun]](https://github.com/anymail/django-anymail) | `13.0.1` | `13.1` |\n| [werkzeug[watchdog]](https://github.com/pallets/werkzeug) | `3.1.3` | `3.1.4` |\n| [watchfiles](https://github.com/samuelcolvin/watchfiles) | `1.1.0` | `1.1.1` |\n| [mypy](https://github.com/python/mypy) | `1.17.1` | `1.19.0` |\n| [django-stubs[compatible-mypy]](https://github.com/sponsors/typeddjango) | `5.2.2` | `5.2.8` |\n| [pytest-sugar](https://github.com/Teemu/pytest-sugar) | `1.0.0` | `1.1.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.12.8` | `0.14.7` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.3` | `7.12.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.3.0` | `4.5.0` |\n| [factory-boy](https://github.com/FactoryBoy/factory_boy) | `3.3.2` | `3.3.3` |\n| [django-debug-toolbar](https://github.com/django-commons/django-debug-toolbar) | `6.0.0` | `6.1.0` |\n| [django-coverage-plugin](https://github.com/nedbat/django_coverage_plugin) | `3.1.1` | `3.2.0` |\n\n\nUpdates `rcssmin` from 1.1.2 to 1.2.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ndparker/rcssmin/blob/master/CHANGES\"\u003ercssmin's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eChanges with version 1.2.2\u003c/p\u003e\n\u003cp\u003e*) Update benchmarks\u003c/p\u003e\n\u003cp\u003e*) Add support for Python 3.14\u003c/p\u003e\n\u003cp\u003e*) Update project boilerplate\u003c/p\u003e\n\u003cp\u003eChanges with version 1.2.1\u003c/p\u003e\n\u003cp\u003e*) Change doc theme to \u0026quot;furo\u0026quot;\u003c/p\u003e\n\u003cp\u003e*) Remove build dependency pinning (resolves \u003ca href=\"https://redirect.github.com/ndparker/rcssmin/issues/18\"\u003e#18\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e*) Update project boilerplate\u003c/p\u003e\n\u003cp\u003eChanges with version 1.2.0\u003c/p\u003e\n\u003cp\u003e*) Add support for nesting selector (\u0026amp;)\u003c/p\u003e\n\u003cp\u003e*) Update project boilerplate\u003c/p\u003e\n\u003cp\u003eChanges with version 1.1.3\u003c/p\u003e\n\u003cp\u003e*) Add support for Python 3.13\u003c/p\u003e\n\u003cp\u003e*) Update project boilerplate\u003c/p\u003e\n\u003cp\u003eChanges with version 1.1.2\u003c/p\u003e\n\u003cp\u003e*) Add support for Python 3.12\u003c/p\u003e\n\u003cp\u003e*) Add musllinux wheels\u003c/p\u003e\n\u003cp\u003e*) Update project boilerplate\u003c/p\u003e\n\u003cp\u003eChanges with version 1.1.1\u003c/p\u003e\n\u003cp\u003e*) Add support for Python 3.11\u003c/p\u003e\n\u003cp\u003e*) Update project boilerplate\u003c/p\u003e\n\u003cp\u003eChanges with version 1.1.0\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 href=\"https://github.com/ndparker/rcssmin/commit/b4cac4d1ffd665aa3b8d2f9e0e09529578a67193\"\u003e\u003ccode\u003eb4cac4d\u003c/code\u003e\u003c/a\u003e Bump version to 1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/db3f06eefa05860bbe1e8fa373e0249cb6adedbb\"\u003e\u003ccode\u003edb3f06e\u003c/code\u003e\u003c/a\u003e Update benchmarks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/77816d3cf9e2f3dc03c00e1f8526e471dffdc3fe\"\u003e\u003ccode\u003e77816d3\u003c/code\u003e\u003c/a\u003e Add Python 3.14 support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/ecac7747c1a68781cf1b524ea54db44aae7c7bd2\"\u003e\u003ccode\u003eecac774\u003c/code\u003e\u003c/a\u003e Project boilerplate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/5bac716410f460f75e243961f482b1895e487b6b\"\u003e\u003ccode\u003e5bac716\u003c/code\u003e\u003c/a\u003e Bump version to 1.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/8d4312f864efa55d36742a728adffebfd27a6aa3\"\u003e\u003ccode\u003e8d4312f\u003c/code\u003e\u003c/a\u003e Hello 2025\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/41d1e1f7ae6242a80854509d7181f8a91278722b\"\u003e\u003ccode\u003e41d1e1f\u003c/code\u003e\u003c/a\u003e Update dependencies, change sphinx theme\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/5396f5ec399b2ac57293657fb87ca888f3ecda8e\"\u003e\u003ccode\u003e5396f5e\u003c/code\u003e\u003c/a\u003e Bump version to 1.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/81da21987bfe614153711217f1b50bc0fa5f4c55\"\u003e\u003ccode\u003e81da219\u003c/code\u003e\u003c/a\u003e Update benchmarks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/1f9ff6d2d89f03108ccf53332352e328ee010b82\"\u003e\u003ccode\u003e1f9ff6d\u003c/code\u003e\u003c/a\u003e Add support for nesting selector (\u0026amp;)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ndparker/rcssmin/compare/1.1.2...1.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `whitenoise` from 6.9.0 to 6.11.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/evansd/whitenoise/blob/main/docs/changelog.rst\"\u003ewhitenoise's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.11.0 (2025-09-18)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Django 6.0.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.10.0 (2025-09-09)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14.\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 href=\"https://github.com/evansd/whitenoise/commit/c9c06e9382b92fc959ffdfc3e2ec63057de82561\"\u003e\u003ccode\u003ec9c06e9\u003c/code\u003e\u003c/a\u003e Version 6.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/051c4e997a07fd3ae5e9f3ec092080102ab89d93\"\u003e\u003ccode\u003e051c4e9\u003c/code\u003e\u003c/a\u003e Support Django 6.0 (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/665\"\u003e#665\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/c903cc13394895cbb3926e48c7acecf364efcd26\"\u003e\u003ccode\u003ec903cc1\u003c/code\u003e\u003c/a\u003e Version 6.10.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/a81bcb0ae2dd0c5884ebadb762f46827ecb54d0f\"\u003e\u003ccode\u003ea81bcb0\u003c/code\u003e\u003c/a\u003e docs(django): use the stable version in URLs (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/626\"\u003e#626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/67b4f32b12a9700b6dcc30ced8e9ad23bf39baa1\"\u003e\u003ccode\u003e67b4f32\u003c/code\u003e\u003c/a\u003e Support Python 3.14 (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/664\"\u003e#664\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/da8d333d165be1bdd9e7decbb3a293b5e55ff608\"\u003e\u003ccode\u003eda8d333\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/663\"\u003e#663\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/800072482c0652f81864ae78c26539d3dfc765b2\"\u003e\u003ccode\u003e8000724\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/662\"\u003e#662\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/8fb339f0eaee9219b1e02a840b5fd2227cf2fbbf\"\u003e\u003ccode\u003e8fb339f\u003c/code\u003e\u003c/a\u003e Upgrade dependencies (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/661\"\u003e#661\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/adf64ddfa5329d622cbc4740aec49b7baf0df792\"\u003e\u003ccode\u003eadf64dd\u003c/code\u003e\u003c/a\u003e Use uvx to run tox on GitHub Actions (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/660\"\u003e#660\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/ad6eb204640ff69498f8fc60bd9eb876ee5771b8\"\u003e\u003ccode\u003ead6eb20\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/659\"\u003e#659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/evansd/whitenoise/compare/6.9.0...6.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `hiredis` from 3.2.1 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/hiredis-py/releases\"\u003ehiredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.3.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e by \u003ca href=\"https://github.com/zweizeichen\"\u003e\u003ccode\u003e@​zweizeichen\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\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 href=\"https://github.com/redis/hiredis-py/commit/187d0f387afed58a955a42ea8c5467100871f98b\"\u003e\u003ccode\u003e187d0f3\u003c/code\u003e\u003c/a\u003e Version 3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/3efcf037edc5a9f7abfaedbd3f60b2a03feb4787\"\u003e\u003ccode\u003e3efcf03\u003c/code\u003e\u003c/a\u003e Add Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/215\"\u003e#215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/966cede2c0ca0a8ac4fe0786571e5c230f39c36e\"\u003e\u003ccode\u003e966cede\u003c/code\u003e\u003c/a\u003e Fix assertion in reader.c (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/212\"\u003e#212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/78def309e58126fdaacb66e6fd40df9c46494062\"\u003e\u003ccode\u003e78def30\u003c/code\u003e\u003c/a\u003e Bump version to 3.3.0-dev\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/redis/hiredis-py/compare/v3.2.1...v3.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `celery` from 5.5.3 to 5.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/celery/celery/releases\"\u003ecelery's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.6.0\u003c/h2\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003ch2\u003eKey Highlights\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.celeryq.dev/en/stable/history/whatsnew-5.6.html\"\u003eWhat's new in Celery 5.6\u003c/a\u003e for a complete overview or read the main highlights below.\u003c/p\u003e\n\u003ch3\u003ePython 3.9 Minimum Version\u003c/h3\u003e\n\u003cp\u003eCelery 5.6.0 drops support for Python 3.8 (EOL). The minimum required Python version is now 3.9. Users still on Python 3.8 must upgrade their Python version before upgrading to Celery 5.6.0.\u003c/p\u003e\n\u003cp\u003eAdditionally, this release includes initial support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eSQS: Reverted to \u003ccode\u003epycurl\u003c/code\u003e from \u003ccode\u003eurllib3\u003c/code\u003e\u003c/h3\u003e\n\u003cp\u003eThe switch from \u003ccode\u003epycurl\u003c/code\u003e to \u003ccode\u003eurllib3\u003c/code\u003e for the SQS transport (introduced in Celery 5.5.0 via Kombu) has been reverted due to critical issues affecting SQS users.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/auvipy\"\u003e\u003ccode\u003e@​auvipy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9620\"\u003ecelery/celery#9620\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eSecurity Fix: Broker Credential Leak Prevention\u003c/h3\u003e\n\u003cp\u003eFixed a security issue where broker URLs containing passwords were being logged in plaintext by the delayed delivery mechanism. Broker credentials are now properly sanitized in all log output.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/giancarloromeo\"\u003e\u003ccode\u003e@​giancarloromeo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9997\"\u003ecelery/celery#9997\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eMemory Leak Fixes\u003c/h3\u003e\n\u003cp\u003eTwo significant memory leaks have been fixed in this release:\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eException Handling Memory Leak\u003c/strong\u003e: Fixed a critical memory leak in task exception handling that was particularly severe on Python 3.11+ due to enhanced traceback data. The fix properly breaks reference cycles in tracebacks to allow garbage collection.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/jaiganeshs21\"\u003e\u003ccode\u003e@​jaiganeshs21\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9799\"\u003ecelery/celery#9799\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ePending Result Memory Leak\u003c/strong\u003e: Fixed a memory leak where \u003ccode\u003eAsyncResult\u003c/code\u003e subscriptions were not being cleaned up when results were forgotten.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/tsoos99dev\"\u003e\u003ccode\u003e@​tsoos99dev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9806\"\u003ecelery/celery#9806\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eETA Task Memory Limit\u003c/h3\u003e\n\u003cp\u003eNew configuration option \u003ccode\u003eworker_eta_task_limit\u003c/code\u003e to prevent out-of-memory crashes when workers fetch large numbers of ETA or countdown tasks. Previously, workers could exhaust available memory when the broker contained many scheduled tasks.\u003c/p\u003e\n\u003cp\u003eExample usage:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eapp.conf.worker_eta_task_limit = 1000\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/sashu2310\"\u003e\u003ccode\u003e@​sashu2310\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9853\"\u003ecelery/celery#9853\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eQueue Type Selection for Auto-created Queues\u003c/h3\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 href=\"https://github.com/celery/celery/blob/main/Changelog.rst\"\u003ecelery's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.6.0\u003c/h1\u003e\n\u003cp\u003e:release-date: 2025-11-30\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003cp\u003eKey Highlights\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nSee :ref:`whatsnew-5.6` for a complete overview or read the main highlights below.\n\u003ch2\u003ePython 3.9 Minimum Version\u003c/h2\u003e\n\u003cp\u003eCelery 5.6.0 drops support for Python 3.8 (EOL). The minimum required Python\nversion is now 3.9. Users still on Python 3.8 must upgrade their Python version\nbefore upgrading to Celery 5.6.0.\u003c/p\u003e\n\u003cp\u003eAdditionally, this release includes initial support for Python 3.14.\u003c/p\u003e\n\u003ch2\u003eSQS: Reverted to \u003ccode\u003epycurl\u003c/code\u003e from \u003ccode\u003eurllib3\u003c/code\u003e\u003c/h2\u003e\n\u003cp\u003eThe switch from \u003ccode\u003epycurl\u003c/code\u003e to \u003ccode\u003eurllib3\u003c/code\u003e for the SQS transport (introduced in\nCelery 5.5.0 via Kombu) has been reverted due to critical issues affecting SQS\nusers:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eProcessing throughput dropped from ~100 tasks/sec to ~3/sec in some environments\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUnknownOperationException\u003c/code\u003e errors causing container crash loops\u003c/li\u003e\n\u003cli\u003eSilent message processing failures with no error logs\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eUsers of the SQS transport must ensure \u003ccode\u003epycurl\u003c/code\u003e is installed. If you removed\n\u003ccode\u003epycurl\u003c/code\u003e after upgrading to Celery 5.5.0, you will need to reinstall it.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ccode\u003e@auvipy \u0026amp;lt;https://github.com/auvipy\u0026amp;gt;\u003c/code\u003e_ in\n\u003ccode\u003e[#9620](https://github.com/celery/celery/issues/9620) \u0026amp;lt;https://github.com/celery/celery/pull/9620\u0026amp;gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003ch2\u003eSecurity Fix: Broker Credential Leak Prevention\u003c/h2\u003e\n\u003cp\u003eFixed a security issue where broker URLs containing passwords were being logged\nin plaintext by the delayed delivery mechanism. Broker credentials are now\nproperly sanitized in all log output.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ccode\u003e@giancarloromeo \u0026amp;lt;https://github.com/giancarloromeo\u0026amp;gt;\u003c/code\u003e_ in\n\u003ccode\u003e[#9997](https://github.com/celery/celery/issues/9997) \u0026amp;lt;https://github.com/celery/celery/pull/9997\u0026amp;gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003cp\u003eMemory Leak Fixes\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\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 href=\"https://github.com/celery/celery/commit/cca11164860a1bee6ad8626c27a683b482f741eb\"\u003e\u003ccode\u003ecca1116\u003c/code\u003e\u003c/a\u003e Prepare for release: v5.6.0 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10010\"\u003e#10010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/1133f22181bb22223d39c0060973695c6af55643\"\u003e\u003ccode\u003e1133f22\u003c/code\u003e\u003c/a\u003e Bump mypy from 1.14.1 to 1.19.0 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10008\"\u003e#10008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/0932d2c06e001903b90638f7c40a14f5407c9801\"\u003e\u003ccode\u003e0932d2c\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10007\"\u003e#10007\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/b446910f18860531b089d6c39f974265cc24a589\"\u003e\u003ccode\u003eb446910\u003c/code\u003e\u003c/a\u003e Prepare for (pre) release: v5.6.0rc2 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10005\"\u003e#10005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/3f0f0fe7ea6a67a696d0a750644b552559ae368e\"\u003e\u003ccode\u003e3f0f0fe\u003c/code\u003e\u003c/a\u003e asynpool: Don't return from inside a finally block (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10000\"\u003e#10000\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/95d05527c0e1fff5c1a38877ba87592983a7f993\"\u003e\u003ccode\u003e95d0552\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10003\"\u003e#10003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/f32b92f0e481601e9cc9f1212a4feced3f48e1a0\"\u003e\u003ccode\u003ef32b92f\u003c/code\u003e\u003c/a\u003e Add Py39-314t to CI (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9999\"\u003e#9999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/63c1910221d9fb8c1931ff62c80c4c37232b2d58\"\u003e\u003ccode\u003e63c1910\u003c/code\u003e\u003c/a\u003e Don't fail task on timeout during cold shutdown (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9678\"\u003e#9678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/30649dbd41308fc8eef79b2aae179a908eaa7a51\"\u003e\u003ccode\u003e30649db\u003c/code\u003e\u003c/a\u003e Fix log leaking broker credentials (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9997\"\u003e#9997\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/929412e2d4d328e337be3f177ca99fff10ab9bdc\"\u003e\u003ccode\u003e929412e\u003c/code\u003e\u003c/a\u003e Remove Python 4.0 version condition for pytest dependencies (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9993\"\u003e#9993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/celery/celery/compare/v5.5.3...v5.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django` from 5.1.11 to 5.2.8\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/47fe39af56ecd0ad73b9c7562511015e96b91b80\"\u003e\u003ccode\u003e47fe39a\u003c/code\u003e\u003c/a\u003e [5.2.x] Bumped version for 5.2.8 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/ac9fcf6eb2c909f4150c5287808f49170ce1f9e2\"\u003e\u003ccode\u003eac9fcf6\u003c/code\u003e\u003c/a\u003e [5.2.x] Refs CVE-2025-64459 -- Avoided propagating invalid arguments to Q on ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/6703f364d767e949c5b0e4016433ef75063b4f9b\"\u003e\u003ccode\u003e6703f36\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2025-64459 -- Prevented SQL injections in Q/QuerySet via th...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/4f5d904b63751dea9ffc3b0e046404a7fa5881ac\"\u003e\u003ccode\u003e4f5d904\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2025-64458 -- Mitigated potential DoS in HttpResponseRedire...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/cbdf128cb316bccf9ca3b3b4966e57bd050bfc8a\"\u003e\u003ccode\u003ecbdf128\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36704\"\u003e#36704\u003c/a\u003e -- Fixed system check error for proxy model with a compo...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/6775888470317a6d69121779b489bb2dc7350318\"\u003e\u003ccode\u003e6775888\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36696\"\u003e#36696\u003c/a\u003e -- Fixed NameError when inspecting functions with deferr...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/d5dfffaae52b9dcb4857d42b1e2902290a5c5e3c\"\u003e\u003ccode\u003ed5dfffa\u003c/code\u003e\u003c/a\u003e [5.2.x] Added stub release notes and release date for 5.2.8, 5.1.14, and 4.2.26.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/368f955c371cab5db18e9e239d10560cf15f5ea4\"\u003e\u003ccode\u003e368f955\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36681\"\u003e#36681\u003c/a\u003e -- Removed English pluralization bias from example in do...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/71267c97db211f1d7f1b8b794ceb2167a7619a4d\"\u003e\u003ccode\u003e71267c9\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/35095\"\u003e#35095\u003c/a\u003e -- Clarified Swiss number formatting in docs/topics/i18n...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/9b37bd5fe73b0d614ad8e503071d6f7bf2bdf6b2\"\u003e\u003ccode\u003e9b37bd5\u003c/code\u003e\u003c/a\u003e [5.2.x] Made RemoteTestResultTest.test_pickle_errors_detection() compatible w...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/5.1.11...5.2.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-allauth[mfa]` from 65.10.0 to 65.13.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sponsors/pennersr/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-crispy-forms` from 2.4 to 2.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/releases\"\u003edjango-crispy-forms's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eConfirmed support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eConfirmed support for Django 6.0.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8.\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 href=\"https://github.com/django-crispy-forms/django-crispy-forms/blob/main/CHANGELOG.md\"\u003edjango-crispy-forms's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.5 (2025-11-06)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eConfirmed support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eConfirmed support for Django 6.0.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8.\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 href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/65fa8ae065638da101851807937bb89ae1b5687e\"\u003e\u003ccode\u003e65fa8ae\u003c/code\u003e\u003c/a\u003e 2.5 Release. (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1424\"\u003e#1424\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/ca4ca14da2aeac3ce934b83861f1b2a558b736fd\"\u003e\u003ccode\u003eca4ca14\u003c/code\u003e\u003c/a\u003e PEP 639 licenses  (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1413\"\u003e#1413\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/aaabe68c0d5a2eee98101ff661b2c5cab28a0777\"\u003e\u003ccode\u003eaaabe68\u003c/code\u003e\u003c/a\u003e Updated pre-commit hook versions.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/125dd1632a460b4dd7b1c8ab0738863d0470c2cb\"\u003e\u003ccode\u003e125dd16\u003c/code\u003e\u003c/a\u003e Pyupgrade 3.9+\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/1f9c8ecc24a3159c86219403ae26e7d0c67e15b7\"\u003e\u003ccode\u003e1f9c8ec\u003c/code\u003e\u003c/a\u003e Confirmed support for Python 3.14, Django. Drop support for Python 3.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/93cb8c8e817870e19a6c426a3e5716ae748a6535\"\u003e\u003ccode\u003e93cb8c8\u003c/code\u003e\u003c/a\u003e Correct names in special thanks section (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1421\"\u003e#1421\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/e327548f80a531bba5ac1049b73108a0681eebf4\"\u003e\u003ccode\u003ee327548\u003c/code\u003e\u003c/a\u003e Added security policy. (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1419\"\u003e#1419\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/64813429d54b39c10d7bb7ad2db4ab0e0e2c418f\"\u003e\u003ccode\u003e6481342\u003c/code\u003e\u003c/a\u003e Enabled GitHub code of conduct (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1416\"\u003e#1416\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/dabd719113c8e7e43fa8d5e254bfa938d169e6e8\"\u003e\u003ccode\u003edabd719\u003c/code\u003e\u003c/a\u003e Add Project Logo. (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1415\"\u003e#1415\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/compare/2.4...2.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-compressor` from 4.5.1 to 4.6.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-compressor/django-compressor/blob/develop/docs/changelog.txt\"\u003edjango-compressor's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003ev4.6 (2025-11-10)\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003eFull list of changes from v4.5.1 \u0026lt;https://github.com/django-compressor/django-compressor/compare/4.5.1...4.6\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed compatibility with latest BS4.\u003c/li\u003e\n\u003cli\u003eRemoved top pin for rcssmin and rjsmin dependencies.\u003c/li\u003e\n\u003cli\u003eAvoid compressing the same node concurrently in offline compression.\u003c/li\u003e\n\u003cli\u003eAvoid use of deprecated ast.Constant.s\u003c/li\u003e\n\u003cli\u003eOfficially support Django 6.0\u003c/li\u003e\n\u003cli\u003eOfficially support Django 5.2\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Django 5.0\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 3.9.\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 3.8.\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 href=\"https://github.com/django-compressor/django-compressor/commit/3ada994897cf982f97fc4c934be42eb1e0b71b9a\"\u003e\u003ccode\u003e3ada994\u003c/code\u003e\u003c/a\u003e Prepare 4.6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/1baa82a6cf6942eb12007217f26195a95df727e2\"\u003e\u003ccode\u003e1baa82a\u003c/code\u003e\u003c/a\u003e Remove CI testing for EOL Django 5.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/8706a52b740e7555abefc8fba1eaae1986ded1a5\"\u003e\u003ccode\u003e8706a52\u003c/code\u003e\u003c/a\u003e Add CI testing for Python 3.14 and Django 6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/7be9ce2cefedf59302207728e383fa7811232d59\"\u003e\u003ccode\u003e7be9ce2\u003c/code\u003e\u003c/a\u003e Bump brotli, lxml, and coverage test dependencies.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/d6fd8136febd1ba409b366c7471db8763522d91d\"\u003e\u003ccode\u003ed6fd813\u003c/code\u003e\u003c/a\u003e Remove test version pinning for rcssmin and rjsmin.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/2b46e7d1724109ebb5db49b76f008dc039f0a9db\"\u003e\u003ccode\u003e2b46e7d\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1307\"\u003e#1307\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/b97bb05836eb6a42d2746d43792e9d13f041b615\"\u003e\u003ccode\u003eb97bb05\u003c/code\u003e\u003c/a\u003e Disable bs4's multi valued attributes (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1296\"\u003e#1296\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/4e5433076300508e1c3648da3345ae606386eb3f\"\u003e\u003ccode\u003e4e54330\u003c/code\u003e\u003c/a\u003e Migrate packaging to pyproject.toml (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1313\"\u003e#1313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/872f8d52ce51957bccf4a91338d177c2ea4a3908\"\u003e\u003ccode\u003e872f8d5\u003c/code\u003e\u003c/a\u003e Remove version pinning for rcssmin and rjsmin (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1312\"\u003e#1312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/cc38666efb13c6e0b355cf273f56b783d7157e29\"\u003e\u003ccode\u003ecc38666\u003c/code\u003e\u003c/a\u003e Drop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1311\"\u003e#1311\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-compressor/django-compressor/compare/4.5.1...4.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uwsgi` from 2.0.30 to 2.0.31\n\nUpdates `easy-thumbnails[svg]` from 2.10 to 2.10.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/blob/master/CHANGES.rst\"\u003eeasy-thumbnails[svg]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.10.1 (2025-08-17)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Django-5.2.\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 href=\"https://github.com/SmileyChris/easy-thumbnails/commit/208f672ab53e3c7596c966b5282e64ed9747a3e4\"\u003e\u003ccode\u003e208f672\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/SmileyChris/easy-thumbnails/issues/664\"\u003e#664\u003c/a\u003e from SmileyChris/jrief-patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/318a2847391bb0e3fdc0a17a52af49a5851b53c9\"\u003e\u003ccode\u003e318a284\u003c/code\u003e\u003c/a\u003e Update CHANGES.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/0989a40226197b78bfa47939e44017bedea564fa\"\u003e\u003ccode\u003e0989a40\u003c/code\u003e\u003c/a\u003e version 2.10.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/3b86790c40788ebf9ce0cb66f529d745abe715b5\"\u003e\u003ccode\u003e3b86790\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/SmileyChris/easy-thumbnails/issues/663\"\u003e#663\u003c/a\u003e from tomkins/django-5.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/221679530109e5f92b2ad4d3e25f759d6dd90ced\"\u003e\u003ccode\u003e2216795\u003c/code\u003e\u003c/a\u003e Drop support for Django 5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/2cf9af0d7dc341ccaaabc79500033584aae88fbb\"\u003e\u003ccode\u003e2cf9af0\u003c/code\u003e\u003c/a\u003e Add support for Django 5.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/4957daa823a8ee17a90859281c2d93b06930e6fa\"\u003e\u003ccode\u003e4957daa\u003c/code\u003e\u003c/a\u003e Drop py38 from Django 4.2 testing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/21759697b0b5b600e6ebd5cce336a7d25f94099b\"\u003e\u003ccode\u003e2175969\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/SmileyChris/easy-thumbnails/issues/654\"\u003e#654\u003c/a\u003e from ArcaniteSolutions/fix-remote-storages-location-l...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/26351108ed706721492e606fe4ff51179d8a4844\"\u003e\u003ccode\u003e2635110\u003c/code\u003e\u003c/a\u003e check storage has location before fixing path\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/9d6fe6632ba4f175e9f4ad61eb4b3457b8124711\"\u003e\u003ccode\u003e9d6fe66\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/SmileyChris/easy-thumbnails/issues/650\"\u003e#650\u003c/a\u003e from benkonrath/python-3.13\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/compare/2.10.0...2.10.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-cms` from 5.0.2 to 5.0.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-cms/django-cms/releases\"\u003edjango-cms's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.0.5\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Searching pages for language-specific content failed due to wrong serach queryset (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8355\"\u003e#8355\u003c/a\u003e) by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8358\"\u003edjango-cms/django-cms#8358\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Fix default value for edit_fields parameter to avoid AttributeError by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8381\"\u003edjango-cms/django-cms#8381\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: avoid escaping (= stringify) None-values in PageAttribute template tag by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8384\"\u003edjango-cms/django-cms#8384\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Copying x-language lead to unique constraint violation (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8366\"\u003e#8366\u003c/a\u003e) by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8386\"\u003edjango-cms/django-cms#8386\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Ensure edit endpoint language selection when admin is not using i18n_patterns (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8367\"\u003e#8367\u003c/a\u003e) by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8390\"\u003edjango-cms/django-cms#8390\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Build release 5.0.5 by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8391\"\u003edjango-cms/django-cms#8391\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-cms/django-cms/compare/5.0.4...5.0.5\"\u003ehttps://github.com/django-cms/django-cms/compare/5.0.4...5.0.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Wrong placeholders rendered when using apphooks with own placeholders (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8343\"\u003e#8343\u003c/a\u003e) by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8348\"\u003edjango-cms/django-cms#8348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Prepare release 5.0.4 by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8352\"\u003edjango-cms/django-cms#8352\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-cms/django-cms/compare/5.0.3...5.0.4\"\u003ehttps://github.com/django-cms/django-cms/compare/5.0.3...5.0.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: Django 6 compatibility (July 2025) by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8302\"\u003edjango-cms/django-cms#8302\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: Add documentation for toolbar get_object and set_object methods by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8314\"\u003edjango-cms/django-cms#8314\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Respect individual placeholder checks if they can be changed (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8317\"\u003e#8317\u003c/a\u003e) by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8318\"\u003edjango-cms/django-cms#8318\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Cut children from inactive menu nodes when level is less or equal to 0 (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8322\"\u003e#8322\u003c/a\u003e) by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8324\"\u003edjango-cms/django-cms#8324\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: copy lang management command - include PageUrl (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/7548\"\u003e#7548\u003c/a\u003e) by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8335\"\u003edjango-cms/django-cms#8335\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Optimize placeholder and plugin utilities by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8337\"\u003edjango-cms/django-cms#8337\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Migration 0033 failed when empty placeholder objects were not present in the db by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8339\"\u003edjango-cms/django-cms#8339\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Build 5.0.3 release by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8341\"\u003edjango-cms/django-cms#8341\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-cms/django-cms/compare/5.0.2...5.0.3\"\u003ehttps://github.com/django-cms/django-cms/compare/5.0.2...5.0.3\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 href=\"https://github.com/django-cms/django-cms/blob/5.0.5/CHANGELOG.rst\"\u003edjango-cms's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.0.5 (2025-11-12)\u003c/h1\u003e\n\u003ch2\u003eBug Fixes:\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePin language of toolbar update to the request language\u003c/li\u003e\n\u003cli\u003eEnsure edit endpoint language selection when admin is not using i18n_patterns (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8367\"\u003e#8367\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8390\"\u003e#8390\u003c/a\u003e) (9e00f694e) -- Fabian Braun\u003c/li\u003e\n\u003cli\u003eCopying x-language lead to unique constraint violation (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8366\"\u003e#8366\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8386\"\u003e#8386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid escaping (= stringify) None-values in PageAttribute-TemplateTag (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8375\"\u003e#8375\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8384\"\u003e#8384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSet default value for edit_fields parameter to avoid AttributeError (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8381\"\u003e#8381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLink syntax in welcome.html\u003c/li\u003e\n\u003cli\u003eSearching pages for language-specific content failed due to wrong search queryset (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8355\"\u003e#8355\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8358\"\u003e#8358\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eStatistics:\u003c/h2\u003e\n\u003cp\u003eThis release includes 5 pull requests, and was created with the help of the following contributors (in alphabetical order):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFabian Braun (7 pull requests)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWith the review help of the following contributors:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVinit Kumar\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to all contributors for their efforts!\u003c/p\u003e\n\u003ch1\u003e5.0.4 (2025-10-03)\u003c/h1\u003e\n\u003ch2\u003eBug Fixes:\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWrong placeholders rendered when using apphooks with own placeholders (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8343\"\u003e#8343\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8348\"\u003e#8348\u003c/a\u003e) (775392390) -- Fabian Braun\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eStatistics:\u003c/h2\u003e\n\u003cp\u003eThis release includes 1 pull request, and was created with the help of the following contributors (in alphabetical order):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFabian Braun (1 pull request)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWith the review help of the following contributors:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVinit Kumar\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to all contributors for their efforts!\u003c/p\u003e\n\u003ch1\u003e5.0.3 (2025-09-17)\u003c/h1\u003e\n\u003cp\u003eBug Fixes:\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 href=\"https://github.com/django-cms/django-cms/commit/6e970e6c4894ecd1459fedc6f2c00617a923a740\"\u003e\u003ccode\u003e6e970e6\u003c/code\u003e\u003c/a\u003e chore: Build release 5.0.5 (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8391\"\u003e#8391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/9e00f694ee0afe637521177a139d69a02d752f7f\"\u003e\u003ccode\u003e9e00f69\u003c/code\u003e\u003c/a\u003e fix: Ensure edit endpoint language selection when admin is not using i18n_pat...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/e6d0f76703afd154b2319a0b9e3b50e9330805bf\"\u003e\u003ccode\u003ee6d0f76\u003c/code\u003e\u003c/a\u003e fix: Copying x-language lead to unique constraint violation (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8366\"\u003e#8366\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8386\"\u003e#8386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/3990cfb37913e72d55780c3886445b4e75bdea78\"\u003e\u003ccode\u003e3990cfb\u003c/code\u003e\u003c/a\u003e Fix: avoid escaping (= stringify) None-values in PageAttribute-TemplateTag (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/80a19fdf550fab528cdc1c2634076de22e9497ad\"\u003e\u003ccode\u003e80a19fd\u003c/code\u003e\u003c/a\u003e fix: Fix default value for edit_fields parameter to avoid AttributeError (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8381\"\u003e#8381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/6f63ebf05e12c86512b8b084b615b1011c581708\"\u003e\u003ccode\u003e6f63ebf\u003c/code\u003e\u003c/a\u003e fix: link syntax in welcome.html\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/1ff46f7e1c3284eae9749497a76656afc8f8c302\"\u003e\u003ccode\u003e1ff46f7\u003c/code\u003e\u003c/a\u003e fix: Searching pages for language-specific content failed due to wrong serach...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/ed3a004b62ee69f099b0f647dd33778ba0b0d1fb\"\u003e\u003ccode\u003eed3a004\u003c/code\u003e\u003c/a\u003e chore: Prepare release 5.0.4 (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8352\"\u003e#8352\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/775392390eea0ffcdeccb0d21306d6e34fb859df\"\u003e\u003ccode\u003e7753923\u003c/code\u003e\u003c/a\u003e fix: Wrong placeholders rendered when using apphooks with own placeholders (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/cb8bdcecf623e125ea789a0551279a3dc0152deb\"\u003e\u003ccode\u003ecb8bdce\u003c/code\u003e\u003c/a\u003e chore: Build 5.0.3 release (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8341\"\u003e#8341\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-cms/django-cms/compare/5.0.2...5.0.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `djangocms-versioning` from 2.4.0 to 2.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-cms/djangocms-versioning/releases\"\u003edjangocms-versioning's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.5.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Fix typo in permission name by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/476\"\u003edjango-cms/djangocms-versioning#476\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Remove unnecessary \u003ccode\u003e_original_manager\u003c/code\u003e usage from toolbar by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/477\"\u003edjango-cms/djangocms-versioning#477\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/checkout from 4 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/482\"\u003edjango-cms/djangocms-versioning#482\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/cache from 4.2.3 to 4.2.4 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/481\"\u003edjango-cms/djangocms-versioning#481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/cache from 4.2.4 to 4.3.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/485\"\u003edjango-cms/djangocms-versioning#485\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/setup-python from 5 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/484\"\u003edjango-cms/djangocms-versioning#484\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump github/codeql-action from 3 to 4 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/487\"\u003edjango-cms/djangocms-versioning#487\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Respect site-specific language configurations by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/480\"\u003edjango-cms/djangocms-versioning#480\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Respect permissions for indicator menus and version locking by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/493\"\u003edjango-cms/djangocms-versioning#493\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Modernize JS build, remove jQuery bundle by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/492\"\u003edjango-cms/djangocms-versioning#492\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eModernize Python and Django support: Drop Python 3.9, add Python 3.14 and Django 6.0 by \u003ca href=\"https://github.com/vinitkumar\"\u003e\u003ccode\u003e@​vinitkumar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/489\"\u003edjango-cms/djangocms-versioning#489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/setup-node from 4 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/494\"\u003edjango-cms/djangocms-versioning#494\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump astral-sh/setup-uv from 5 to 7 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/495\"\u003edjango-cms/djangocms-versioning#495\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Update locales by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/497\"\u003edjango-cms/djangocms-versioning#497\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdates for file djangocms_versioning/locale/en/LC_MESSAGES/django.po in de by \u003ca href=\"https://github.com/transifex-integration\"\u003e\u003ccode\u003e@​transifex-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/496\"\u003edjango-cms/djangocms-versioning#496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[BUG FIX] Language menu is showing despite only one language configured by \u003ca href=\"https://github.com/va-lang\"\u003e\u003ccode\u003e@​va-lang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/491\"\u003edjango-cms/djangocms-versioning#491\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=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/476\"\u003edjango-cms/djangocms-versioning#476\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vinitkumar\"\u003e\u003ccode\u003e@​vinitkumar\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/489\"\u003edjango-cms/djangocms-versioning#489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/va-lang\"\u003e\u003ccode\u003e@​va-lang\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/491\"\u003edjango-cms/djangocms-versioning#491\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-cms/djangocms-versioning/compare/2.4.0...2.5.0\"\u003ehttps://github.com/django-cms/djangocms-versioning/compare/2.4.0...2.5.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 href=\"https://github.com/django-cms/djangocms-versioning/blob/master/CHANGELOG.rst\"\u003edjangocms-versioning's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.5.0 (2025-11-14)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efeat: Language menu allows creating new translations from preview mode by \u003ca href=\"https://github.com/va-lang\"\u003e\u003ccode\u003e@​va-lang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/491\"\u003edjango-cms/djangocms-versioning#491\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Modernize Python and Django support: Drop Python 3.9, add Python 3.14 and Django 6.0 by \u003ca href=\"https://github.com/vinitkumar\"\u003e\u003ccode\u003e@​vinitkumar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/489\"\u003edjango-cms/djangocms-versioning#489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Updates for file djangocms_versioning/locale/en/LC_MESSAGES/django.po in de by \u003ca href=\"https://github.com/transifex-integration\"\u003e\u003ccode\u003e@​transifex-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/496\"\u003edjango-cms/djangocms-versioning#496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Swap django-fsm with django-fsm-2\u003c/li\u003e\n\u003cli\u003efix: Typo in permission name by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/476\"\u003edjango-cms/djangocms-versioning#476\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Remove unnecessary \u003ccode\u003e_original_manager\u003c/code\u003e usage from toolbar by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/477\"\u003edjango-cms/djangocms-versioning#477\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Respect site-specific language configurations by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/480\"\u003edjango-cms/djangocms-versioning#480\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Respect permissions for indicator menus and version locking by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/493\"\u003edjango-cms/djangocms-versioning#493\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eNew Contributors\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/476\"\u003edjango-cms/djangocms-versioning#476\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vinitkumar\"\u003e\u003ccode\u003e@​vinitkumar\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/489\"\u003edjango-cms/djangocms-versioning#489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/va-lang\"\u003e\u003ccode\u003e@​va-lang\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/pull/491\"\u003edjango-cms/djangocms-versioning#491\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 href=\"https://github.com/django-cms/djangocms-versioning/commit/da78ec1adc34f37ccfe9780a30c858b89f7637fe\"\u003e\u003ccode\u003eda78ec1\u003c/code\u003e\u003c/a\u003e chore: Prepare release 2.5.0 (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/issues/500\"\u003e#500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-versioning/commit/08df487169f44e7710f18155a9d5d02d32531e4c\"\u003e\u003ccode\u003e08df487\u003c/code\u003e\u003c/a\u003e chore: Simplified requirements_dev.txt file for tests (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/issues/499\"\u003e#499\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-versioning/commit/e2e5e8d3ab1ee07b4f1dd2c7518441f6e6038c21\"\u003e\u003ccode\u003ee2e5e8d\u003c/code\u003e\u003c/a\u003e [BUG FIX] Language menu is showing despite only one language configured (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/issues/491\"\u003e#491\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-versioning/commit/d90268d6ee31dd7f9e80df804ab9ad5a2df68c2b\"\u003e\u003ccode\u003ed90268d\u003c/code\u003e\u003c/a\u003e Translate django.po in de (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/issues/496\"\u003e#496\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-versioning/commit/bc3cbc10ff12106836da1a1ee51c8283b9d726cc\"\u003e\u003ccode\u003ebc3cbc1\u003c/code\u003e\u003c/a\u003e chore: Update locales (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/issues/497\"\u003e#497\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-versioning/commit/d111df897067a31fe8dca7b88773ae0ca9fba397\"\u003e\u003ccode\u003ed111df8\u003c/code\u003e\u003c/a\u003e build(deps): bump astral-sh/setup-uv from 5 to 7 (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/issues/495\"\u003e#495\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-versioning/commit/dc24f2604420f46c1203aa8a06a9dc948eceadd3\"\u003e\u003ccode\u003edc24f26\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-node from 4 to 6 (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/issues/494\"\u003e#494\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-versioning/commit/a0db3dea7aaf838376be6809fe9870ad7eee3205\"\u003e\u003ccode\u003ea0db3de\u003c/code\u003e\u003c/a\u003e Modernize Python and Django support: Drop Python 3.9, add Python 3.14 and Dja...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-versioning/commit/27abc23b5157a3cb6d18cfb2bdaaa61eb24a284d\"\u003e\u003ccode\u003e27abc23\u003c/code\u003e\u003c/a\u003e chore: Modernize JS build, remove jQuery bundle (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/issues/492\"\u003e#492\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-versioning/commit/29b3955871676bf69bd59154ff8125378ecca287\"\u003e\u003ccode\u003e29b3955\u003c/code\u003e\u003c/a\u003e fix: Respect permissions for indicator menus and version locking (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-versioning/issues/493\"\u003e#493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-cms/djangocms-versioning/compare/2.4.0...2.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-entangled` from 0.6.3 to 0.7\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jrief/django-entangled/blob/master/CHANGELOG.md\"\u003edjango-entangled's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.7\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Django 5.2.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.13.\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 href=\"https://github.com/jrief/django-entangled/commit/734bd8f8b316663a1f31d4fa7e9248a955baea21\"\u003e\u003ccode\u003e734bd8f\u003c/code\u003e\u003c/a\u003e Bump to version 0.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jrief/django-entangled/commit/fcad6c824be14d052456df759e23bc4b44646d3e\"\u003e\u003ccode\u003efcad6c8\u003c/code\u003e\u003c/a\u003e Add support for Django-5.2 and Python 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jrief/django-entangled/commit/a89b615cafcdbb939d71fb34dc30253d2dcf5c00\"\u003e\u003ccode\u003ea89b615\u003c/code\u003e\u003c/a\u003e Propagate django-formset\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/jrief/django-entangled/compare/0.6.3...0.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `djangocms-text` from 0.9.2 to 0.9.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-cms/djangocms-text/releases\"\u003edjangocms-text's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.9.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Fixed issues for non-CMS installations and added test coverage for non-CMS installations by \u003ca href=\"https://github.com/Grosskopf\"\u003e\u003ccode\u003e@​Grosskopf\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/119\"\u003edjango-cms/djangocms-text#119\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Respect plugin language for link field by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/113\"\u003edjango-cms/djangocms-text#113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/114\"\u003edjango-cms/djangocms-text#114\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/checkout from 4 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/115\"\u003edjango-cms/djangocms-text#115\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=\"https://github.com/Grosskopf\"\u003e\u003ccode\u003e@​Grosskopf\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/119\"\u003edjango-cms/djangocms-text#119\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-cms/djangocms-text/compare/0.9.2...0.9.3\"\u003ehttps://github.com/django-cms/djangocms-text/compare/0.9.2...0.9.3\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 href=\"https://github.com/django-cms/djangocms-text/blob/main/CHANGELOG.rst\"\u003edjangocms-text's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e0.9.3 (22-08-2025)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix: Fixed issues for non-CMS installations and added test coverage for non-CMS installations by \u003ca href=\"https://github.com/Grosskopf\"\u003e\u003ccode\u003e@​Grosskopf\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/119\"\u003edjango-cms/djangocms-text#119\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Respect plugin language for link field by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/113\"\u003edjango-cms/djangocms-text#113\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/Grosskopf\"\u003e\u003ccode\u003e@​Grosskopf\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/119\"\u003edjango-cms/djangocms-text#119\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 href=\"https://github.com/django-cms/djangocms-text/commit/23c8c5b276547459db18fad7bd2b45bf978c2d4b\"\u003e\u003ccode\u003e23c8c5b\u003c/code\u003e\u003c/a\u003e chore: Prepare release 0.9.3 (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/issues/120\"\u003e#120\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-text/commit/070dc3bff81b6aaad57b34bbbdce905a9a753fef\"\u003e\u003ccode\u003e070dc3b\u003c/code\u003e\u003c/a\u003e fix: Fixed issues for non-CMS installations and added test coverage for non-C...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-text/commit/d23c7830b72afd3d143bbd54dc5c3e25c7a844a7\"\u003e\u003ccode\u003ed23c783\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/issues/115\"\u003e#115\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-text/commit/4c78ee95ac529d9444a0c0342c41fe06c5edf9c1\"\u003e\u003ccode\u003e4c78ee9\u003c/code\u003e\u003c/a\u003e Merge branch 'main' of github.com:django-cms/djangocms-text\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-text/commit/d13df72a07522f1e1f84a50a4448a3ecde4bef65\"\u003e\u003ccode\u003ed13df72\u003c/code\u003e\u003c/a\u003e feat: node 24\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-text/commit/cf7b3b82f92999bb9297b213844696374f524937\"\u003e\u003ccode\u003ecf7b3b8\u003c/code\u003e\u003c/a\u003e ci: pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/issues/114\"\u003e#114\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-text/commit/5fa6205a5910b34334bdb14744f59b62a275a09e\"\u003e\u003ccode\u003e5fa6205\u003c/code\u003e\u003c/a\u003e Update comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-text/commit/79568c6b98a6e4adda9f84b84aa016254db60481\"\u003e\u003ccode\u003e79568c6\u003c/code\u003e\u003c/a\u003e fix: Respect plugin language for link field (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/issues/113\"\u003e#113\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/django-cms/djangocms-text/compare/0.9.2...0.9.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `djangocms-frontend` from 2.1.4 to 2.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-cms/djangocms-frontend/releases\"\u003edjangocms-frontend's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.2.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eci:(deps): bump actions/cache from 4.2.3 to 4.2.4 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-frontend/pull/297\"\u003edjango-cms/djangocms-frontend#297\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Only partially functional preview removed, CSS and JS refactor by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-frontend/pull/301\"\u003edjango-cms/djangocms-frontend#301\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Button group too condensed when using djangocms-admin-style by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-frontend/pull/303\"\u003edjango-cms/djangocms-frontend#303\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-cms/djangocms-frontend/compare/2.1.4...2.2.0\"\u003ehttps://github.com/django-cms/djangocms-frontend/compare/2.1.4...2.2.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 href=\"https://github.com/django-cms/djangocms-frontend/blob/main/CHANGELOG.rst\"\u003edjangocms-frontend's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.2.0 (2025-08-16)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efeat: Refactored CSS for faster and more reliable loading by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Removed link and button preview\u003c/li\u003e\n\u003cli\u003efix: Some UI Components were not discovered by the \u003ccode\u003e{% plugin %}\u003c/code\u003e template tag in django CMS 5\u003c/li\u003e\n\u003cli\u003efix: Restored Python 3.9 compatibility\u003c/li\u003e\n\u003cli\u003echore: Update node version\u003c/li\u003e\n\u003cli\u003echore: Remove bootstrap dependency\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 href=\"https://github.com/django-cms/djangocms-frontend/commit/6ec69a0c7fa36165e9bc3d5cfa333d60422985bf\"\u003e\u003ccode\u003e6ec69a0\u003c/code\u003e\u003c/a\u003e fix: Button group too condensed when using djangocms-admin-style (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-frontend/issues/303\"\u003e#303\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/662b357e8ad4642f18a73874eceac899a26ede66\"\u003e\u003ccode\u003e662b357\u003c/code\u003e\u003c/a\u003e fix: Docs references \u003ccode\u003efrontend_tags\u003c/code\u003e instead of \u003ccode\u003efrontend\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/5135e527beb741446f626e4c0c116f2e146c7667\"\u003e\u003ccode\u003e5135e52\u003c/code\u003e\u003c/a\u003e chore: Update LICENSE\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/b84bab7439442345ea8db89145a1079e4ba871bf\"\u003e\u003ccode\u003eb84bab7\u003c/code\u003e\u003c/a\u003e feat: Only partially functional preview removed, CSS and JS refactor (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-frontend/issues/301\"\u003e#301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/554418c1d4642279bef6e601ae2297ff5d634ba0\"\u003e\u003ccode\u003e554418c\u003c/code\u003e\u003c/a\u003e ci:(deps): bump actions/cache from 4.2.3 to 4.2.4 (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-frontend/issues/297\"\u003e#297\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/53a958051b6f475a3df3e48131956db0eed72d5e\"\u003e\u003ccode\u003e53a9580\u003c/code\u003e\u003c/a\u003e fix: typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/5f8829b6e5adbdf4689cc3747756e7ff4ae86dc1\"\u003e\u003ccode\u003e5f8829b\u003c/code\u003e\u003c/a\u003e Merge branch 'main' of github.com:django-cms/djangocms-frontend\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/b3a0eb6afc484c63520a2166dccff47ca0ec653e\"\u003e\u003ccode\u003eb3a0eb6\u003c/code\u003e\u003c/a\u003e fix: Python 3.9 support for plugin_tag.py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/4d3a3cf60485a9d17292a24db7654b75c19a1be9\"\u003e\u003ccode\u003e4d3a3cf\u003c/code\u003e\u003c/a\u003e fix test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/453e4c29d928076a3bf8c9e52b5a2f1f2e692231\"\u003e\u003ccode\u003e453e4c2\u003c/code\u003e\u003c/a\u003e chore: add test for py 3.9\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-cms/djangocms-frontend/compare/2.1.4...2.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `djangocms-attributes-field` from 4.1.1 to 4.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-cms/djangocms-attributes-field/releases\"\u003edjangocms-attributes-field's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.1.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Add min-height to attributes pair buttons by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-attributes-field/pull/62\"\u003edjango-cms/djangocms-attributes-field#62\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-cms/djangocms-attributes-field/compare/4.1.1...4.1.2\"\u003ehttps://github.com/django-cms/djangocms-attributes-field/compare/4.1.1...4.1.2\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 href=\"https://github.com/django-cms/djangocms-attributes-field/blob/master/CHANGELOG.rst\"\u003edjangocms-attributes-field's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.1.2 (2025-11.02)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix: Add min-height to add link for unstyled Django admin\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 href=\"https://github.com/django-cms/djangocms-attributes-field/commit/9adbde46e3c1bd52fd297cbbf9475e4da01cbba4\"\u003e\u003ccode\u003e9adbde4\u003c/code\u003e\u003c/a\u003e fix: Add min-height to attributes pair buttons (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-attributes-field/issues/62\"\u003e#62\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/django-cms/djangocms-attributes-field/compare/4.1.1...4.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `svglib` from 1.5.1 to 1.6.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/deeplook/svglib/blob/main/CHANGELOG.rst\"\u003esvglib's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.6.0 (2025-09-25)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplace setup.py with pyproject.toml, rework GitHub workflows (\u003ca href=\"https://redirect.github.com/deeplook/svglib/issues/405\"\u003e#405\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003cli\u003eModernize codebase, added type annotations, expanded docstrings, etc.\u003c/li\u003e\n\u003cli\u003eAdd a Makefile.\u003c/li\u003e\n\u003cli\u003eAdd publishing workflows.\u003c/li\u003e\n\u003cli\u003eRemove dunder constants and use importlib.metadata to get the version number.\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 href=\"https://github.com/deeplook/svglib/commit/1dce6584fb40de115479da10880dbf3b75cda955\"\u003e\u003ccode\u003e1dce658\u003c/code\u003e\u003c/a\u003e Expanded many docstrings, sanitized pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deeplook/svglib/commit/4c69f45919b181b98ebeb2614f84797217efd759\"\u003e\u003ccode\u003e4c69f45\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/deeplook/svglib/issues/412\"\u003e#412\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deeplook/svglib/commit/35a69b9af1eafbec5e4ff8eb759de7a506c4a83f\"\u003e...\n\n_Description has been truncated_","html_url":"https://github.com/surfgreendevteam/coolify-cookiecutter-cms-template/pull/91","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/surfgreendevteam%2Fcoolify-cookiecutter-cms-template/issues/91","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/91/packages"}},{"old_version":"2.0.30","new_version":"2.0.31","update_type":"patch","path":null,"pr_created_at":"2025-12-01T07:40:02.000Z","version_change":"2.0.30 → 2.0.31","issue":{"uuid":"3679686363","node_id":"PR_kwDOQDraYs62RtGJ","number":7,"state":"closed","title":"deps: bump the prod-deps group across 1 directory with 30 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2025-12-08T06:33:44.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-01T07:40:02.000Z","updated_at":"2025-12-08T06:33:46.000Z","time_to_close":600822,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps: bump","group_name":"prod-deps","update_count":30,"packages":[{"name":"django","old_version":"4.2.24","new_version":"5.2.8","repository_url":"https://github.com/django/django"},{"name":"psycopg2-binary","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"celery","old_version":"5.5.3","new_version":"5.6.0","repository_url":"https://github.com/celery/celery"},{"name":"hiredis","old_version":"3.2.1","new_version":"3.3.0","repository_url":"https://github.com/redis/hiredis-py"},{"name":"brotli","old_version":"1.1.0","new_version":"1.2.0","repository_url":"https://github.com/google/brotli"},{"name":"django-compressor","old_version":"4.5.1","new_version":"4.6.0","repository_url":"https://github.com/django-compressor/django-compressor"},{"name":"drf-yasg","old_version":"1.21.10","new_version":"1.21.11","repository_url":"https://github.com/axnsan12/drf-yasg"},{"name":"jellyfish","old_version":"1.2.0","new_version":"1.2.1"},{"name":"markdown","old_version":"3.9","new_version":"3.10","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"xlsxwriter","old_version":"3.2.5","new_version":"3.2.9","repository_url":"https://github.com/jmcnamara/XlsxWriter"},{"name":"xmltodict","old_version":"0.15.1","new_version":"1.0.2","repository_url":"https://github.com/martinblech/xmltodict"},{"name":"xmlschema","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/sissaschool/xmlschema"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"shapely","old_version":"2.0.7","new_version":"2.1.2","repository_url":"https://github.com/shapely/shapely"},{"name":"django-two-factor-auth","old_version":"1.17.0","new_version":"1.18.1"},{"name":"boto3","old_version":"1.40.27","new_version":"1.42.0","repository_url":"https://github.com/boto/boto3"},{"name":"uwsgi","old_version":"2.0.30","new_version":"2.0.31"},{"name":"coverage","old_version":"7.10.6","new_version":"7.12.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"coveralls","old_version":"4.0.1","new_version":"4.0.2","repository_url":"https://github.com/TheKevJames/coveralls-python"},{"name":"tox","old_version":"4.30.2","new_version":"4.32.0","repository_url":"https://github.com/tox-dev/tox"},{"name":"psutil","old_version":"7.0.0","new_version":"7.1.3","repository_url":"https://github.com/giampaolo/psutil"},{"name":"faker","old_version":"37.6.0","new_version":"38.2.0","repository_url":"https://github.com/joke2k/faker"},{"name":"pytest","old_version":"8.4.2","new_version":"9.0.1","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pre-commit","old_version":"4.3.0","new_version":"4.5.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"sphinx","old_version":"7.4.7","new_version":"9.0.0","repository_url":"https://github.com/sphinx-doc/sphinx"},{"name":"sphinxcontrib-spelling","old_version":"8.0.0","new_version":"8.0.2","repository_url":"https://github.com/sphinx-contrib/spelling"},{"name":"docutils","old_version":"0.21.2","new_version":"0.22.3","repository_url":"https://github.com/rtfd/recommonmark"},{"name":"hypothesis","old_version":"6.138.15","new_version":"6.148.5","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"django-debug-toolbar","old_version":"6.0.0","new_version":"6.1.0","repository_url":"https://github.com/django-commons/django-debug-toolbar"}],"path":null,"ecosystem":"pip"},"body":"Bumps the prod-deps group with 30 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [django](https://github.com/django/django) | `4.2.24` | `5.2.8` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [celery](https://github.com/celery/celery) | `5.5.3` | `5.6.0` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.2.1` | `3.3.0` |\n| [brotli](https://github.com/google/brotli) | `1.1.0` | `1.2.0` |\n| [django-compressor](https://github.com/django-compressor/django-compressor) | `4.5.1` | `4.6.0` |\n| [drf-yasg](https://github.com/axnsan12/drf-yasg) | `1.21.10` | `1.21.11` |\n| [jellyfish](https://jellyfish.jpt.sh/) | `1.2.0` | `1.2.1` |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.9` | `3.10` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [xlsxwriter](https://github.com/jmcnamara/XlsxWriter) | `3.2.5` | `3.2.9` |\n| [xmltodict](https://github.com/martinblech/xmltodict) | `0.15.1` | `1.0.2` |\n| [xmlschema](https://github.com/sissaschool/xmlschema) | `4.1.0` | `4.2.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [shapely](https://github.com/shapely/shapely) | `2.0.7` | `2.1.2` |\n| [django-two-factor-auth[phonenumbers]](https://github.com/jazzband/django-two-factor-auth) | `1.17.0` | `1.18.1` |\n| [boto3](https://github.com/boto/boto3) | `1.40.27` | `1.42.0` |\n| [uwsgi](https://uwsgi-docs.readthedocs.io/en/latest/) | `2.0.30` | `2.0.31` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.12.0` |\n| [coveralls](https://github.com/TheKevJames/coveralls-python) | `4.0.1` | `4.0.2` |\n| [tox](https://github.com/tox-dev/tox) | `4.30.2` | `4.32.0` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.1.3` |\n| [faker](https://github.com/joke2k/faker) | `37.6.0` | `38.2.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.2` | `9.0.1` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.3.0` | `4.5.0` |\n| [sphinx](https://github.com/sphinx-doc/sphinx) | `7.4.7` | `9.0.0` |\n| [sphinxcontrib-spelling](https://github.com/sphinx-contrib/spelling) | `8.0.0` | `8.0.2` |\n| [docutils](https://github.com/rtfd/recommonmark) | `0.21.2` | `0.22.3` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.138.15` | `6.148.5` |\n| [django-debug-toolbar](https://github.com/django-commons/django-debug-toolbar) | `6.0.0` | `6.1.0` |\n\n\nUpdates `django` from 4.2.24 to 5.2.8\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/47fe39af56ecd0ad73b9c7562511015e96b91b80\"\u003e\u003ccode\u003e47fe39a\u003c/code\u003e\u003c/a\u003e [5.2.x] Bumped version for 5.2.8 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/ac9fcf6eb2c909f4150c5287808f49170ce1f9e2\"\u003e\u003ccode\u003eac9fcf6\u003c/code\u003e\u003c/a\u003e [5.2.x] Refs CVE-2025-64459 -- Avoided propagating invalid arguments to Q on ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/6703f364d767e949c5b0e4016433ef75063b4f9b\"\u003e\u003ccode\u003e6703f36\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2025-64459 -- Prevented SQL injections in Q/QuerySet via th...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/4f5d904b63751dea9ffc3b0e046404a7fa5881ac\"\u003e\u003ccode\u003e4f5d904\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2025-64458 -- Mitigated potential DoS in HttpResponseRedire...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/cbdf128cb316bccf9ca3b3b4966e57bd050bfc8a\"\u003e\u003ccode\u003ecbdf128\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36704\"\u003e#36704\u003c/a\u003e -- Fixed system check error for proxy model with a compo...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/6775888470317a6d69121779b489bb2dc7350318\"\u003e\u003ccode\u003e6775888\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36696\"\u003e#36696\u003c/a\u003e -- Fixed NameError when inspecting functions with deferr...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/d5dfffaae52b9dcb4857d42b1e2902290a5c5e3c\"\u003e\u003ccode\u003ed5dfffa\u003c/code\u003e\u003c/a\u003e [5.2.x] Added stub release notes and release date for 5.2.8, 5.1.14, and 4.2.26.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/368f955c371cab5db18e9e239d10560cf15f5ea4\"\u003e\u003ccode\u003e368f955\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36681\"\u003e#36681\u003c/a\u003e -- Removed English pluralization bias from example in do...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/71267c97db211f1d7f1b8b794ceb2167a7619a4d\"\u003e\u003ccode\u003e71267c9\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/35095\"\u003e#35095\u003c/a\u003e -- Clarified Swiss number formatting in docs/topics/i18n...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/9b37bd5fe73b0d614ad8e503071d6f7bf2bdf6b2\"\u003e\u003ccode\u003e9b37bd5\u003c/code\u003e\u003c/a\u003e [5.2.x] Made RemoteTestResultTest.test_pickle_errors_detection() compatible w...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/4.2.24...5.2.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2-binary` from 2.9.10 to 2.9.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2-binary's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix building when pg_config returns an empty string (:ticket:\u003ccode\u003e[#1599](https://github.com/psycopg/psycopg2/issues/1599)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eWheel package bundled with OpenSSL 1.1.1v.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.6\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\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 href=\"https://github.com/psycopg/psycopg2/commit/fd9ae8cad2bcfc3e7e9410e7b6f07cda8f4f05ec\"\u003e\u003ccode\u003efd9ae8c\u003c/code\u003e\u003c/a\u003e chore: bump to version 2.9.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d923840546942534f0956d9202f914fd9feac5fd\"\u003e\u003ccode\u003ed923840\u003c/code\u003e\u003c/a\u003e chore: update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d42dc7169d3cd93517e282e9ef5dc2a2b40650a2\"\u003e\u003ccode\u003ed42dc71\u003c/code\u003e\u003c/a\u003e Merge branch 'fix-1791'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4fde6560c32f06ad1304404c9f7f86148dcc4be0\"\u003e\u003ccode\u003e4fde656\u003c/code\u003e\u003c/a\u003e fix: avoid failed assert passing more arguments than placeholders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/8308c19d6af0d904b313997539ed33415990a74e\"\u003e\u003ccode\u003e8308c19\u003c/code\u003e\u003c/a\u003e fix: drop warning about the use of deprecated PyWeakref_GetObject function\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1a1eabf098a3374409bb2ab4b594777b900f396d\"\u003e\u003ccode\u003e1a1eabf\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/github-script from 7 to 8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/897af8b38beda851d7257dfc525129e37c0ec9e0\"\u003e\u003ccode\u003e897af8b\u003c/code\u003e\u003c/a\u003e build(deps): bump peter-evans/repository-dispatch from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ceefd305117113ca10e383a626e87ba0796f3638\"\u003e\u003ccode\u003eceefd30\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4dc585430cabe94cee96c5a9de0265d0f55370f1\"\u003e\u003ccode\u003e4dc5854\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1945788dcf6172bb1b9328ebc3587ccf0e6a659c\"\u003e\u003ccode\u003e1945788\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1802\"\u003e#1802\u003c/a\u003e from edgarrmondragon/cp314-wheels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.10...2.9.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `celery` from 5.5.3 to 5.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/celery/celery/releases\"\u003ecelery's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.6.0\u003c/h2\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003ch2\u003eKey Highlights\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.celeryq.dev/en/stable/history/whatsnew-5.6.html\"\u003eWhat's new in Celery 5.6\u003c/a\u003e for a complete overview or read the main highlights below.\u003c/p\u003e\n\u003ch3\u003ePython 3.9 Minimum Version\u003c/h3\u003e\n\u003cp\u003eCelery 5.6.0 drops support for Python 3.8 (EOL). The minimum required Python version is now 3.9. Users still on Python 3.8 must upgrade their Python version before upgrading to Celery 5.6.0.\u003c/p\u003e\n\u003cp\u003eAdditionally, this release includes initial support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eSQS: Reverted to \u003ccode\u003epycurl\u003c/code\u003e from \u003ccode\u003eurllib3\u003c/code\u003e\u003c/h3\u003e\n\u003cp\u003eThe switch from \u003ccode\u003epycurl\u003c/code\u003e to \u003ccode\u003eurllib3\u003c/code\u003e for the SQS transport (introduced in Celery 5.5.0 via Kombu) has been reverted due to critical issues affecting SQS users.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/auvipy\"\u003e\u003ccode\u003e@​auvipy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9620\"\u003ecelery/celery#9620\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eSecurity Fix: Broker Credential Leak Prevention\u003c/h3\u003e\n\u003cp\u003eFixed a security issue where broker URLs containing passwords were being logged in plaintext by the delayed delivery mechanism. Broker credentials are now properly sanitized in all log output.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/giancarloromeo\"\u003e\u003ccode\u003e@​giancarloromeo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9997\"\u003ecelery/celery#9997\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eMemory Leak Fixes\u003c/h3\u003e\n\u003cp\u003eTwo significant memory leaks have been fixed in this release:\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eException Handling Memory Leak\u003c/strong\u003e: Fixed a critical memory leak in task exception handling that was particularly severe on Python 3.11+ due to enhanced traceback data. The fix properly breaks reference cycles in tracebacks to allow garbage collection.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/jaiganeshs21\"\u003e\u003ccode\u003e@​jaiganeshs21\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9799\"\u003ecelery/celery#9799\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ePending Result Memory Leak\u003c/strong\u003e: Fixed a memory leak where \u003ccode\u003eAsyncResult\u003c/code\u003e subscriptions were not being cleaned up when results were forgotten.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/tsoos99dev\"\u003e\u003ccode\u003e@​tsoos99dev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9806\"\u003ecelery/celery#9806\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eETA Task Memory Limit\u003c/h3\u003e\n\u003cp\u003eNew configuration option \u003ccode\u003eworker_eta_task_limit\u003c/code\u003e to prevent out-of-memory crashes when workers fetch large numbers of ETA or countdown tasks. Previously, workers could exhaust available memory when the broker contained many scheduled tasks.\u003c/p\u003e\n\u003cp\u003eExample usage:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eapp.conf.worker_eta_task_limit = 1000\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/sashu2310\"\u003e\u003ccode\u003e@​sashu2310\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9853\"\u003ecelery/celery#9853\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eQueue Type Selection for Auto-created Queues\u003c/h3\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 href=\"https://github.com/celery/celery/blob/main/Changelog.rst\"\u003ecelery's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.6.0\u003c/h1\u003e\n\u003cp\u003e:release-date: 2025-11-30\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003cp\u003eKey Highlights\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nSee :ref:`whatsnew-5.6` for a complete overview or read the main highlights below.\n\u003ch2\u003ePython 3.9 Minimum Version\u003c/h2\u003e\n\u003cp\u003eCelery 5.6.0 drops support for Python 3.8 (EOL). The minimum required Python\nversion is now 3.9. Users still on Python 3.8 must upgrade their Python version\nbefore upgrading to Celery 5.6.0.\u003c/p\u003e\n\u003cp\u003eAdditionally, this release includes initial support for Python 3.14.\u003c/p\u003e\n\u003ch2\u003eSQS: Reverted to \u003ccode\u003epycurl\u003c/code\u003e from \u003ccode\u003eurllib3\u003c/code\u003e\u003c/h2\u003e\n\u003cp\u003eThe switch from \u003ccode\u003epycurl\u003c/code\u003e to \u003ccode\u003eurllib3\u003c/code\u003e for the SQS transport (introduced in\nCelery 5.5.0 via Kombu) has been reverted due to critical issues affecting SQS\nusers:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eProcessing throughput dropped from ~100 tasks/sec to ~3/sec in some environments\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUnknownOperationException\u003c/code\u003e errors causing container crash loops\u003c/li\u003e\n\u003cli\u003eSilent message processing failures with no error logs\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eUsers of the SQS transport must ensure \u003ccode\u003epycurl\u003c/code\u003e is installed. If you removed\n\u003ccode\u003epycurl\u003c/code\u003e after upgrading to Celery 5.5.0, you will need to reinstall it.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ccode\u003e@auvipy \u0026amp;lt;https://github.com/auvipy\u0026amp;gt;\u003c/code\u003e_ in\n\u003ccode\u003e[#9620](https://github.com/celery/celery/issues/9620) \u0026amp;lt;https://github.com/celery/celery/pull/9620\u0026amp;gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003ch2\u003eSecurity Fix: Broker Credential Leak Prevention\u003c/h2\u003e\n\u003cp\u003eFixed a security issue where broker URLs containing passwords were being logged\nin plaintext by the delayed delivery mechanism. Broker credentials are now\nproperly sanitized in all log output.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ccode\u003e@giancarloromeo \u0026amp;lt;https://github.com/giancarloromeo\u0026amp;gt;\u003c/code\u003e_ in\n\u003ccode\u003e[#9997](https://github.com/celery/celery/issues/9997) \u0026amp;lt;https://github.com/celery/celery/pull/9997\u0026amp;gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003cp\u003eMemory Leak Fixes\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\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 href=\"https://github.com/celery/celery/commit/cca11164860a1bee6ad8626c27a683b482f741eb\"\u003e\u003ccode\u003ecca1116\u003c/code\u003e\u003c/a\u003e Prepare for release: v5.6.0 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10010\"\u003e#10010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/1133f22181bb22223d39c0060973695c6af55643\"\u003e\u003ccode\u003e1133f22\u003c/code\u003e\u003c/a\u003e Bump mypy from 1.14.1 to 1.19.0 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10008\"\u003e#10008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/0932d2c06e001903b90638f7c40a14f5407c9801\"\u003e\u003ccode\u003e0932d2c\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10007\"\u003e#10007\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/b446910f18860531b089d6c39f974265cc24a589\"\u003e\u003ccode\u003eb446910\u003c/code\u003e\u003c/a\u003e Prepare for (pre) release: v5.6.0rc2 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10005\"\u003e#10005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/3f0f0fe7ea6a67a696d0a750644b552559ae368e\"\u003e\u003ccode\u003e3f0f0fe\u003c/code\u003e\u003c/a\u003e asynpool: Don't return from inside a finally block (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10000\"\u003e#10000\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/95d05527c0e1fff5c1a38877ba87592983a7f993\"\u003e\u003ccode\u003e95d0552\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10003\"\u003e#10003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/f32b92f0e481601e9cc9f1212a4feced3f48e1a0\"\u003e\u003ccode\u003ef32b92f\u003c/code\u003e\u003c/a\u003e Add Py39-314t to CI (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9999\"\u003e#9999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/63c1910221d9fb8c1931ff62c80c4c37232b2d58\"\u003e\u003ccode\u003e63c1910\u003c/code\u003e\u003c/a\u003e Don't fail task on timeout during cold shutdown (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9678\"\u003e#9678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/30649dbd41308fc8eef79b2aae179a908eaa7a51\"\u003e\u003ccode\u003e30649db\u003c/code\u003e\u003c/a\u003e Fix log leaking broker credentials (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9997\"\u003e#9997\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/929412e2d4d328e337be3f177ca99fff10ab9bdc\"\u003e\u003ccode\u003e929412e\u003c/code\u003e\u003c/a\u003e Remove Python 4.0 version condition for pytest dependencies (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9993\"\u003e#9993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/celery/celery/compare/v5.5.3...v5.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `hiredis` from 3.2.1 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/hiredis-py/releases\"\u003ehiredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.3.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e by \u003ca href=\"https://github.com/zweizeichen\"\u003e\u003ccode\u003e@​zweizeichen\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\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 href=\"https://github.com/redis/hiredis-py/commit/187d0f387afed58a955a42ea8c5467100871f98b\"\u003e\u003ccode\u003e187d0f3\u003c/code\u003e\u003c/a\u003e Version 3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/3efcf037edc5a9f7abfaedbd3f60b2a03feb4787\"\u003e\u003ccode\u003e3efcf03\u003c/code\u003e\u003c/a\u003e Add Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/215\"\u003e#215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/966cede2c0ca0a8ac4fe0786571e5c230f39c36e\"\u003e\u003ccode\u003e966cede\u003c/code\u003e\u003c/a\u003e Fix assertion in reader.c (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/212\"\u003e#212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/78def309e58126fdaacb66e6fd40df9c46494062\"\u003e\u003ccode\u003e78def30\u003c/code\u003e\u003c/a\u003e Bump version to 3.3.0-dev\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/redis/hiredis-py/compare/v3.2.1...v3.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `brotli` from 1.1.0 to 1.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/google/brotli/releases\"\u003ebrotli's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.0\u003c/h2\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\u003c/li\u003e\n\u003cli\u003eCLI: \u003ccode\u003ebrcat\u003c/code\u003e alias; allow decoding concatenated brotli streams\u003c/li\u003e\n\u003cli\u003ekt: pure Kotlin decoder\u003c/li\u003e\n\u003cli\u003ecgo: support \u0026quot;raw\u0026quot; dictionaries\u003c/li\u003e\n\u003cli\u003ebuild: Bazel modules\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: dropped \u003ccode\u003efinalize()\u003c/code\u003e for native entities\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: in \u003ccode\u003ecompress\u003c/code\u003e pass correct length to native encoder\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebuild: install man pages\u003c/li\u003e\n\u003cli\u003ebuild: updated / fixed / refined Bazel buildfiles\u003c/li\u003e\n\u003cli\u003eencoder: faster encoding\u003c/li\u003e\n\u003cli\u003ecgo: link via pkg-config\u003c/li\u003e\n\u003cli\u003epython: modernize extension / allow multi-phase module initialization\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edecoder / encoder: static tables use \u0026quot;small\u0026quot; model (allows 2GiB+ binaries)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.0 RC2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed (compared to RC1)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epick changes from Debian patch by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1349\"\u003egoogle/brotli#1349\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epick changes from Alpine patch by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1348\"\u003egoogle/brotli#1348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epick VCPKG patches by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1350\"\u003egoogle/brotli#1350\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix copy-paste in Java decoder by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1357\"\u003egoogle/brotli#1357\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.0 RC1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eIMPORTANT\u003c/strong\u003e: though this is a pre-release for v1.2.0, it is expected that some changes will be added before release; most notably concerning build files: patches applied by Alpine, Debian, Conan, VCPKG will be partially/fully integrated.\u003c/p\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\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 href=\"https://github.com/google/brotli/blob/master/CHANGELOG.md\"\u003ebrotli's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.2.0] - 2025-10-27\u003c/h2\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\u003c/li\u003e\n\u003cli\u003eCLI: \u003ccode\u003ebrcat\u003c/code\u003e alias; allow decoding concatenated brotli streams\u003c/li\u003e\n\u003cli\u003ekt: pure Kotlin decoder\u003c/li\u003e\n\u003cli\u003ecgo: support \u0026quot;raw\u0026quot; dictionaries\u003c/li\u003e\n\u003cli\u003ebuild: Bazel modules\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: dropped \u003ccode\u003efinalize()\u003c/code\u003e for native entities\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: in \u003ccode\u003ecompress\u003c/code\u003e pass correct length to native encoder\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebuild: install man pages\u003c/li\u003e\n\u003cli\u003ebuild: updated / fixed / refined Bazel buildfiles\u003c/li\u003e\n\u003cli\u003eencoder: faster encoding\u003c/li\u003e\n\u003cli\u003ecgo: link via pkg-config\u003c/li\u003e\n\u003cli\u003epython: modernize extension / allow multi-phase module initialization\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edecoder / encoder: static tables use \u0026quot;small\u0026quot; model (allows 2GiB+ binaries)\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 href=\"https://github.com/google/brotli/commit/028fb5a23661f123017c060daa546b55cf4bde29\"\u003e\u003ccode\u003e028fb5a\u003c/code\u003e\u003c/a\u003e release v1.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/390de5b472ec8c40a7b8e5029e47fd6493f7a755\"\u003e\u003ccode\u003e390de5b\u003c/code\u003e\u003c/a\u003e build and test csharp decoder\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/3499acbb7ac7818c1b929a8c9c5c5f8a634751da\"\u003e\u003ccode\u003e3499acb\u003c/code\u003e\u003c/a\u003e regenerate go/kt/js/ts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/8ca2312c61f1f5853be0708f9b1d6a6ad002d2a4\"\u003e\u003ccode\u003e8ca2312\u003c/code\u003e\u003c/a\u003e fix release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/ee771daf20bab6533cbc629407c50cff1c87d9f1\"\u003e\u003ccode\u003eee771da\u003c/code\u003e\u003c/a\u003e fix copy-paste in Java decoder\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/42aee3289154cb3e8db1c7a8ebfa639c857578b9\"\u003e\u003ccode\u003e42aee32\u003c/code\u003e\u003c/a\u003e try to fix release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/392c06bac05cc1d098ab105cbbda766f19853d92\"\u003e\u003ccode\u003e392c06b\u003c/code\u003e\u003c/a\u003e redesign release resource uploading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/1964cdb1b9e16a2a0c27fbd3b2a3bccb2c1a8294\"\u003e\u003ccode\u003e1964cdb\u003c/code\u003e\u003c/a\u003e ramp up all GH actions plugins\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/61605b1cb34ba84ae71c13b383d850a59cac85b2\"\u003e\u003ccode\u003e61605b1\u003c/code\u003e\u003c/a\u003e pick VCPKG patches\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/4b0f27b6f985b4301ad5cec4a31b9792ecf252bc\"\u003e\u003ccode\u003e4b0f27b\u003c/code\u003e\u003c/a\u003e pick changes from Alpine patch\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/google/brotli/compare/go/cbrotli/v1.1.0...v1.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-compressor` from 4.5.1 to 4.6.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-compressor/django-compressor/blob/develop/docs/changelog.txt\"\u003edjango-compressor's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003ev4.6 (2025-11-10)\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003eFull list of changes from v4.5.1 \u0026lt;https://github.com/django-compressor/django-compressor/compare/4.5.1...4.6\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed compatibility with latest BS4.\u003c/li\u003e\n\u003cli\u003eRemoved top pin for rcssmin and rjsmin dependencies.\u003c/li\u003e\n\u003cli\u003eAvoid compressing the same node concurrently in offline compression.\u003c/li\u003e\n\u003cli\u003eAvoid use of deprecated ast.Constant.s\u003c/li\u003e\n\u003cli\u003eOfficially support Django 6.0\u003c/li\u003e\n\u003cli\u003eOfficially support Django 5.2\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Django 5.0\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 3.9.\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 3.8.\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 href=\"https://github.com/django-compressor/django-compressor/commit/3ada994897cf982f97fc4c934be42eb1e0b71b9a\"\u003e\u003ccode\u003e3ada994\u003c/code\u003e\u003c/a\u003e Prepare 4.6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/1baa82a6cf6942eb12007217f26195a95df727e2\"\u003e\u003ccode\u003e1baa82a\u003c/code\u003e\u003c/a\u003e Remove CI testing for EOL Django 5.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/8706a52b740e7555abefc8fba1eaae1986ded1a5\"\u003e\u003ccode\u003e8706a52\u003c/code\u003e\u003c/a\u003e Add CI testing for Python 3.14 and Django 6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/7be9ce2cefedf59302207728e383fa7811232d59\"\u003e\u003ccode\u003e7be9ce2\u003c/code\u003e\u003c/a\u003e Bump brotli, lxml, and coverage test dependencies.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/d6fd8136febd1ba409b366c7471db8763522d91d\"\u003e\u003ccode\u003ed6fd813\u003c/code\u003e\u003c/a\u003e Remove test version pinning for rcssmin and rjsmin.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/2b46e7d1724109ebb5db49b76f008dc039f0a9db\"\u003e\u003ccode\u003e2b46e7d\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1307\"\u003e#1307\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/b97bb05836eb6a42d2746d43792e9d13f041b615\"\u003e\u003ccode\u003eb97bb05\u003c/code\u003e\u003c/a\u003e Disable bs4's multi valued attributes (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1296\"\u003e#1296\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/4e5433076300508e1c3648da3345ae606386eb3f\"\u003e\u003ccode\u003e4e54330\u003c/code\u003e\u003c/a\u003e Migrate packaging to pyproject.toml (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1313\"\u003e#1313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/872f8d52ce51957bccf4a91338d177c2ea4a3908\"\u003e\u003ccode\u003e872f8d5\u003c/code\u003e\u003c/a\u003e Remove version pinning for rcssmin and rjsmin (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1312\"\u003e#1312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/cc38666efb13c6e0b355cf273f56b783d7157e29\"\u003e\u003ccode\u003ecc38666\u003c/code\u003e\u003c/a\u003e Drop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1311\"\u003e#1311\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-compressor/django-compressor/compare/4.5.1...4.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `drf-yasg` from 1.21.10 to 1.21.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/axnsan12/drf-yasg/releases\"\u003edrf-yasg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.21.11\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/917\"\u003e#917\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/916\"\u003e#916\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/926\"\u003e#926\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/922\"\u003e#922\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/928\"\u003e#928\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/923\"\u003e#923\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/848\"\u003e#848\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/903\"\u003e#903\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 href=\"https://github.com/axnsan12/drf-yasg/blob/master/docs/changelog.rst\"\u003edrf-yasg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e#########\nChangelog\n#########\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.11\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (:pr:\u003ccode\u003e917\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (:pr:\u003ccode\u003e916\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (:pr:\u003ccode\u003e926\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (:pr:\u003ccode\u003e922\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (:pr:\u003ccode\u003e928\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (:pr:\u003ccode\u003e923\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (:pr:\u003ccode\u003e848\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (:pr:\u003ccode\u003e903\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.10\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix type hints when using postponed evaluation of annotations (PEP-563) (:pr:\u003ccode\u003e840\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update JSON \u0026amp; YAML renderers to not use a \u0026quot;.\u0026quot; in their format string (:pr:\u003ccode\u003e911\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix lint errors when comparing types with == instead of is (:pr:\u003ccode\u003e868\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update swagger-ui-dist to address CVE-2021-46708 (:pr:\u003ccode\u003e904\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.9\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Added support for zoneinfo object fields (:pr:\u003ccode\u003e908\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.8\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Python 3.11 and 3.12 support (:pr:\u003ccode\u003e891\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix pkg_resources version lookups for Python 3.9+ (:pr:\u003ccode\u003e891\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.7\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cem\u003eRelease date: Jul 20, 2023\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Added \u003ccode\u003edrf_yasg.inspectors.query.DrfAPICompatInspector\u003c/code\u003e (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Added \u003ccode\u003eDrfAPICompatInspector\u003c/code\u003e to serve as a replacement \u003ccode\u003eCoreAPICompatInspector\u003c/code\u003e (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow \u003ccode\u003eDEFAULT_SPEC_RENDERERS\u003c/code\u003e default renderers to be overriden in the settings (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fixed redoc source mapping (:pr:\u003ccode\u003e859\u003c/code\u003e)\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/f8cb2db70ca42fb709565f89fdd152b614dc865d\"\u003e\u003ccode\u003ef8cb2db\u003c/code\u003e\u003c/a\u003e Add version 1.21.11 details to the changelog (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/939\"\u003e#939\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/0c6d08d5ebc52e802e5e1acbabbadfe179d4087d\"\u003e\u003ccode\u003e0c6d08d\u003c/code\u003e\u003c/a\u003e Update the ruff lint rules (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/920\"\u003e#920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/055a74dc10128fd55a48f7f74f6b58ffcc48e83d\"\u003e\u003ccode\u003e055a74d\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 in the github-actions group (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/937\"\u003e#937\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/a8813ace8e39cc2c28a916053c74415e10db1425\"\u003e\u003ccode\u003ea8813ac\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 in the github-actions group (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/936\"\u003e#936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/9f4b44943ad930e23e979b80090102dfca1d588b\"\u003e\u003ccode\u003e9f4b449\u003c/code\u003e\u003c/a\u003e Restore the live demo and replace heroku with apprunner (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/935\"\u003e#935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/298325122e11aeba87e6c8f16604e45d870649e7\"\u003e\u003ccode\u003e2983251\u003c/code\u003e\u003c/a\u003e fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/a74689370c393432debbe6285b3afb3e462aee58\"\u003e\u003ccode\u003ea746893\u003c/code\u003e\u003c/a\u003e allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/916\"\u003e#916\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/e747ad6db413c2d20c3eab79739e22ffde5930c7\"\u003e\u003ccode\u003ee747ad6\u003c/code\u003e\u003c/a\u003e Fixes issue with filter parameters not appearing in Swagger after upgrading t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/ee3c871501dad5f0585c8c62ac0659fedab999a1\"\u003e\u003ccode\u003eee3c871\u003c/code\u003e\u003c/a\u003e update Python, Django, and DRF versions \u0026amp; packaging configuration (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/922\"\u003e#922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/be6eeedcbebcb45151a9d18018d880d1fcdcf143\"\u003e\u003ccode\u003ebe6eeed\u003c/code\u003e\u003c/a\u003e Remove usage of pkg_resources (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/928\"\u003e#928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/axnsan12/drf-yasg/compare/1.21.10...1.21.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jellyfish` from 1.2.0 to 1.2.1\n\nUpdates `markdown` from 3.9 to 3.10\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/releases\"\u003emarkdown's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.10.0\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\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 href=\"https://github.com/Python-Markdown/markdown/blob/master/docs/changelog.md\"\u003emarkdown's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003etitle: Changelog\ntoc_depth: 2\u003c/p\u003e\n\u003ch1\u003ePython-Markdown Changelog\u003c/h1\u003e\n\u003cp\u003eAll notable changes to this project will be documented in this file.\u003c/p\u003e\n\u003cp\u003eThe format is based on \u003ca href=\"https://keepachangelog.com/en/1.1.0/\"\u003eKeep a Changelog\u003c/a\u003e,\nand this project adheres to the\n\u003ca href=\"https://packaging.python.org/en/latest/specifications/version-specifiers/\"\u003ePython Version Specification\u003c/a\u003e.\nSee the \u003ca href=\"https://github.com/Python-Markdown/markdown/blob/master/docs/contributing.md\"\u003eContributing Guide\u003c/a\u003e for details.\u003c/p\u003e\n\u003ch2\u003e[3.10.0] - 2025-11-03\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.9.0] - 2025-09-04\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFootnotes are now ordered by the occurrence of their references in the\ndocument. A new configuration option for the footnotes extension,\n\u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e, has been added to support restoring the previous\nbehavior of ordering footnotes by the occurrence of definitions (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1367\"\u003e#1367\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure inline processing iterates through elements in document order (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1546\"\u003e#1546\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix handling of incomplete HTML tags in code spans in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1547\"\u003e#1547\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.8.2] - 2025-06-19\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003ecodecs\u003c/code\u003e deprecation in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed comment parsing in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed declarations in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed HTML tag \u003ccode\u003e\u0026lt;foo\u003c/code\u003e and Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\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 href=\"https://github.com/Python-Markdown/markdown/commit/22e89c1fc346f72218a10e392a0c3b4731912522\"\u003e\u003ccode\u003e22e89c1\u003c/code\u003e\u003c/a\u003e Bump version to 3.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/c138aea5139a6aceae05bb957e866d9ce7577b94\"\u003e\u003ccode\u003ec138aea\u003c/code\u003e\u003c/a\u003e + PY314 - PY39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/746f7f527b15f63845253e3b86947b806ef1b98f\"\u003e\u003ccode\u003e746f7f5\u003c/code\u003e\u003c/a\u003e cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/a5ee2b4aad05531898ab8fd726c7ece31ddadf8b\"\u003e\u003ccode\u003ea5ee2b4\u003c/code\u003e\u003c/a\u003e Revert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/5354daf618149f92580a1407c036115753c5df73\"\u003e\u003ccode\u003e5354daf\u003c/code\u003e\u003c/a\u003e Fix an HTML comment parsing case that can cause an infinite loop\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Python-Markdown/markdown/compare/3.9.0...3.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyyaml` from 6.0.2 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/yaml/pyyaml/releases\"\u003epyyaml's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14 and free-threading (experimental).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ehttps://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\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 href=\"https://github.com/yaml/pyyaml/blob/6.0.3/CHANGES\"\u003epyyaml's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e6.0.3 (2025-09-25)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/yaml/pyyaml/pull/864\"\u003eyaml/pyyaml#864\u003c/a\u003e -- Support for Python 3.14 and free-threading (experimental)\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 href=\"https://github.com/yaml/pyyaml/commit/49790e73684bebad1df05ef8d828fa12f685bffb\"\u003e\u003ccode\u003e49790e7\u003c/code\u003e\u003c/a\u003e Release 6.0.3 (\u003ca href=\"https://redirect.github.com/yaml/pyyaml/issues/889\"\u003e#889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xlsxwriter` from 3.2.5 to 3.2.9\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jmcnamara/XlsxWriter/blob/main/Changes\"\u003exlsxwriter's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.2.9 - September 16 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved the \u003ccode\u003epy.typed\u003c/code\u003e file since it was causing a lot of downstream CI\nfailures where consumers weren't handling the xlsxwriter types correctly or\ntaking them into account.\u003c/p\u003e\n\u003cp\u003eThe file will be re-added once the xlsxwriter typing is more comprehensive.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.2.8 - September 14 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003emypy\u003c/code\u003e implicit export error caused by the \u003ccode\u003eWorkbook()\u003c/code\u003e type\nannotations changes in v3.2.7 and v3.2.6.\u003c/p\u003e\n\u003cp\u003e:issue:\u003ccode\u003e1154\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.2.7 - September 13 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed typing issue in \u003ccode\u003eWorkbook()\u003c/code\u003e constructor.\u003c/p\u003e\n\u003cp\u003e:issue:\u003ccode\u003e1152\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.2.6 - September 12 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded an option to position custom data labels in the same way that the data\nlabels can be positioned for the entire series.\u003c/p\u003e\n\u003cp\u003e:feature:\u003ccode\u003e1147\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd border, fill, gradient and pattern formatting options for\nchart titles and also chart axis titles.\u003c/p\u003e\n\u003cp\u003e:feature:\u003ccode\u003e957\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd additional type annotations. This is an ongoing refactoring.\u003c/p\u003e\n\u003cp\u003e:feature:\u003ccode\u003e1123\u003c/code\u003e.\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 href=\"https://github.com/jmcnamara/XlsxWriter/commit/e943bee8c9cdf0661cfdb83d5497e0725390e41e\"\u003e\u003ccode\u003ee943bee\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/392bd9e6572785394c6553e2d4f7ae2bb80782f4\"\u003e\u003ccode\u003e392bd9e\u003c/code\u003e\u003c/a\u003e typing: remove py.typed file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/eb99afecdd0050209835f9f237d580dc53e42afa\"\u003e\u003ccode\u003eeb99afe\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/5ec29826d5e398bb5adebaabafbeb9d443a6ed8c\"\u003e\u003ccode\u003e5ec2982\u003c/code\u003e\u003c/a\u003e workbook: add explicit export for mypy compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/ca85cbb03a5898c9e7b66c78ac67a365e7f53002\"\u003e\u003ccode\u003eca85cbb\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/3710251aaaa9524ee302ec04608bfc1b577d4ba5\"\u003e\u003ccode\u003e3710251\u003c/code\u003e\u003c/a\u003e typing: add more supported types to Workbook() constructor\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/27db7a14672bfe1a18f29dfbab646aa0149a369b\"\u003e\u003ccode\u003e27db7a1\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/f05067654b42283557c3621e411b6fbadb7051b6\"\u003e\u003ccode\u003ef050676\u003c/code\u003e\u003c/a\u003e docs: add CI spell check\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/60f708cc1e10c0c66ae870be4f350f45a9d3ecc8\"\u003e\u003ccode\u003e60f708c\u003c/code\u003e\u003c/a\u003e chart: add axis title formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/53dc08e5d240310c88bbfce8d1a42330ae256535\"\u003e\u003ccode\u003e53dc08e\u003c/code\u003e\u003c/a\u003e chart: add chart title formatting options\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jmcnamara/XlsxWriter/compare/RELEASE_3.2.5...RELEASE_3.2.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xmltodict` from 0.15.1 to 1.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/martinblech/xmltodict/releases\"\u003exmltodict's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.0.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.1...v1.0.2\"\u003e1.0.2\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eallow DOCTYPE with disable_entities=True (default) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/25b61a41f580cfc211df07c5fbbf603bd8eb5a5f\"\u003e25b61a4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.0...v1.0.1\"\u003e1.0.1\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efail closed when entities disabled (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c986d2d37a93d45fcc059b09063d9d9c45a655ec\"\u003ec986d2d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003evalidate XML comments (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/3d4d2d3a4cd0f68d1211dba549010261fa87b969\"\u003e3d4d2d3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd SECURITY.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/64130233c8fea272a5f82f2f585e1593523ec1b1\"\u003e6413023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify behavior for empty lists (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2025b5cb5e64fc9c4d54b8644187a0a193bdd0ed\"\u003e2025b5c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify process_comments docs (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/6b464fce284a93dbb292f3d063c9f310a478a014\"\u003e6b464fc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify strip whitespace comment behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/b3e22032d21cc387d6cecf3930116e8fdc3151cf\"\u003eb3e2203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ecreate AGENTS.md for coding agents (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/0da66ee797ced7479312aecef92c6a25e235007c\"\u003e0da66ee\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace travis with actions badge (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2576b94c918fbd154489a95dbbb3feda8bd3cbd8\"\u003e2576b94\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate CONTRIBUTING.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/db3918057cf125af989a1263d52df8df5ef8c642\"\u003edb39180\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v0.15.1...v1.0.0\"\u003e1.0.0\u003c/a\u003e (2025-09-12)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emodernize for Python 3.9+; drop legacy compat paths\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add limited XML comment round-trip; unify \u003ccode\u003e_emit\u003c/code\u003e behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/e43537eee61c20ef50f0e4242eb9223de7a6aefd\"\u003ee43537e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add selective \u003ccode\u003eforce_cdata\u003c/code\u003e support (bool/tuple/callable) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/a497fedb7d6103d68af155543ac3337a73778b19\"\u003ea497fed\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/375\"\u003e#375\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003enamespaces:\u003c/strong\u003e attach \u003ccode\u003e[@xmlns](https://github.com/xmlns)\u003c/code\u003e to declaring element when process_namespaces=True (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/f0322e578184421693434902547f330f4f0a44c3\"\u003ef0322e5\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/163\"\u003e#163\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e avoid parent accumulation at item_depth; add regression tests (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/220240c5eb2d12b75adf26cc84ec9c803ce8bb2b\"\u003e220240c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e handle non-string \u003ccode\u003e#text\u003c/code\u003e with attributes; unify value conversion (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/927a025ae8a62cbb542d5caff38b29161a2096fa\"\u003e927a025\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/366\"\u003e#366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e skip empty lists to keep pretty/compact outputs consistent (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/ab4c86fed24dc8ef0e932a524edfb01c6453ecf6\"\u003eab4c86f\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/martinblech/xmltodict/blob/master/CHANGELOG.md\"\u003exmltodict's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.1...v1.0.2\"\u003e1.0.2\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eallow DOCTYPE with disable_entities=True (default) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/25b61a41f580cfc211df07c5fbbf603bd8eb5a5f\"\u003e25b61a4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.0...v1.0.1\"\u003e1.0.1\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efail closed when entities disabled (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c986d2d37a93d45fcc059b09063d9d9c45a655ec\"\u003ec986d2d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003evalidate XML comments (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/3d4d2d3a4cd0f68d1211dba549010261fa87b969\"\u003e3d4d2d3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd SECURITY.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/64130233c8fea272a5f82f2f585e1593523ec1b1\"\u003e6413023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify behavior for empty lists (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2025b5cb5e64fc9c4d54b8644187a0a193bdd0ed\"\u003e2025b5c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify process_comments docs (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/6b464fce284a93dbb292f3d063c9f310a478a014\"\u003e6b464fc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify strip whitespace comment behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/b3e22032d21cc387d6cecf3930116e8fdc3151cf\"\u003eb3e2203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ecreate AGENTS.md for coding agents (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/0da66ee797ced7479312aecef92c6a25e235007c\"\u003e0da66ee\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace travis with actions badge (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2576b94c918fbd154489a95dbbb3feda8bd3cbd8\"\u003e2576b94\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate CONTRIBUTING.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/db3918057cf125af989a1263d52df8df5ef8c642\"\u003edb39180\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v0.15.1...v1.0.0\"\u003e1.0.0\u003c/a\u003e (2025-09-12)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emodernize for Python 3.9+; drop legacy compat paths\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add limited XML comment round-trip; unify \u003ccode\u003e_emit\u003c/code\u003e behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/e43537eee61c20ef50f0e4242eb9223de7a6aefd\"\u003ee43537e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add selective \u003ccode\u003eforce_cdata\u003c/code\u003e support (bool/tuple/callable) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/a497fedb7d6103d68af155543ac3337a73778b19\"\u003ea497fed\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/375\"\u003e#375\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003enamespaces:\u003c/strong\u003e attach \u003ccode\u003e[@xmlns](https://github.com/xmlns)\u003c/code\u003e to declaring element when process_namespaces=True (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/f0322e578184421693434902547f330f4f0a44c3\"\u003ef0322e5\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/163\"\u003e#163\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e avoid parent accumulation at item_depth; add regression tests (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/220240c5eb2d12b75adf26cc84ec9c803ce8bb2b\"\u003e220240c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e handle non-string \u003ccode\u003e#text\u003c/code\u003e with attributes; unify value conversion (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/927a025ae8a62cbb542d5caff38b29161a2096fa\"\u003e927a025\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/366\"\u003e#366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e skip empty lists to keep pretty/compact outputs consistent (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/ab4c86fed24dc8ef0e932a524edfb01c6453ecf6\"\u003eab4c86f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eReverts\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove initial Release Drafter config (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c0b74ed58f933bffd160c60a58620f672710ff7c\"\u003ec0b74ed\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 href=\"https://github.com/martinblech/xmltodict/commit/d079849136b031c471ec96a168ad7859ed5994ff\"\u003e\u003ccode\u003ed079849\u003c/code\u003e\u003c/a\u003e chore(master): release 1.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/25b61a41f580cfc211df07c5fbbf603bd8eb5a5f\"\u003e\u003ccode\u003e25b61a4\u003c/code\u003e\u003c/a\u003e fix: allow DOCTYPE with disable_entities=True (default)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/a2a9ab7e0692a62f64d97ff12553d0d53368c854\"\u003e\u003ccode\u003ea2a9ab7\u003c/code\u003e\u003c/a\u003e ci(publish): allow uploading release assets\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/656e6af9543e640fda7e96d6bdd6e693756687be\"\u003e\u003ccode\u003e656e6af\u003c/code\u003e\u003c/a\u003e chore(master): release 1.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c986d2d37a93d45fcc059b09063d9d9c45a655ec\"\u003e\u003ccode\u003ec986d2d\u003c/code\u003e\u003c/a\u003e fix: fail closed when entities disabled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/3d4d2d3a4cd0f68d1211dba549010261fa87b969\"\u003e\u003ccode\u003e3d4d2d3\u003c/code\u003e\u003c/a\u003e fix: validate XML comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/b4a5f2a3f04aff68384486e957632c8438396fd6\"\u003e\u003ccode\u003eb4a5f2a\u003c/code\u003e\u003c/a\u003e refactor: remove jython-specific parsing branches\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/6b464fce284a93dbb292f3d063c9f310a478a014\"\u003e\u003ccode\u003e6b464fc\u003c/code\u003e\u003c/a\u003e docs: clarify process_comments docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/34daa304d443e49113d195294d99c6f58ce4714c\"\u003e\u003ccode\u003e34daa30\u003c/code\u003e\u003c/a\u003e refactor: remove unused helper functions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2025b5cb5e64fc9c4d54b8644187a0a193bdd0ed\"\u003e\u003ccode\u003e2025b5c\u003c/code\u003e\u003c/a\u003e docs: clarify behavior for empty lists\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/martinblech/xmltodict/compare/v0.15.1...v1.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xmlschema` from 4.1.0 to 4.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sissaschool/xmlschema/releases\"\u003exmlschema's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.2.0 (2025-10-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd arguments validation for schemas and validation methods (by validation contexts)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSchemaSettings\u003c/code\u003e dataclass for storing read-only settings for schema instances\nand for managing package default settings\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eblock\u003c/em\u003e argument to \u003ccode\u003eXMLResource\u003c/code\u003e class (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/464\"\u003e#464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_SCHEMA_SOURCES\u003c/em\u003e package limit (\u003ccode\u003e1000\u003c/code\u003e, applied to \u003ccode\u003eXsdGlobals\u003c/code\u003e global maps instances)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_XML_ELEMENTS\u003c/em\u003e package limit (\u003ccode\u003e1,000,000\u003c/code\u003e, applied to non-lazy \u003ccode\u003eXMLResource\u003c/code\u003e instances)\u003c/li\u003e\n\u003cli\u003eReduce \u003cem\u003eMAX_XML_DEPTH\u003c/em\u003e limit to 1000 and apply it to all \u003ccode\u003eXMLResource\u003c/code\u003e instances\u003c/li\u003e\n\u003cli\u003eFix for substitute match in case of unexpected child (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\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 href=\"https://github.com/sissaschool/xmlschema/blob/master/CHANGELOG.rst\"\u003exmlschema's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ccode\u003ev4.2.0\u003c/code\u003e_ (2025-10-14)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd arguments validation for schemas and validation methods (by validation contexts)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSchemaSettings\u003c/code\u003e dataclass for storing read-only settings for schema instances\nand for managing package default settings\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eblock\u003c/em\u003e argument to \u003ccode\u003eXMLResource\u003c/code\u003e class (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/464\"\u003e#464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_SCHEMA_SOURCES\u003c/em\u003e package limit (\u003ccode\u003e1000\u003c/code\u003e, applied to \u003ccode\u003eXsdGlobals\u003c/code\u003e global maps instances)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_XML_ELEMENTS\u003c/em\u003e package limit (\u003ccode\u003e1,000,000\u003c/code\u003e, applied to non-lazy \u003ccode\u003eXMLResource\u003c/code\u003e instances)\u003c/li\u003e\n\u003cli\u003eReduce \u003cem\u003eMAX_XML_DEPTH\u003c/em\u003e limit to 1000 and apply it to all \u003ccode\u003eXMLResource\u003c/code\u003e instances\u003c/li\u003e\n\u003cli\u003eFix for substitute match in case of unexpected child (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\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 href=\"https://github.com/sissaschool/xmlschema/commit/2783030fcdcd5307563822906862a9e7088931b2\"\u003e\u003ccode\u003e2783030\u003c/code\u003e\u003c/a\u003e Bump minor release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/7c77a12f0fe16c8da0256a0f13281a03e4a0f717\"\u003e\u003ccode\u003e7c77a12\u003c/code\u003e\u003c/a\u003e Include publiccode.yml validation workflow for CI and README changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/04c19d54d4578f34a0c04d6cc82daa8d3ef9d90c\"\u003e\u003ccode\u003e04c19d5\u003c/code\u003e\u003c/a\u003e Fix XsdGroup.match_element (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/dd4f279e56b8a5ce89f78a6c88337f5032af0b2f\"\u003e\u003ccode\u003edd4f279\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/463\"\u003e#463\u003c/a\u003e from publiccode-pr-bot/chore/add-publiccode-parser-ac...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/1bd7aa6eebf4947e7ae76e47a2f706b58fed22cd\"\u003e\u003ccode\u003e1bd7aa6\u003c/code\u003e\u003c/a\u003e Update GitHub workflow for CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/76b0f67e900777166bcd3773cc109efae933682d\"\u003e\u003ccode\u003e76b0f67\u003c/code\u003e\u003c/a\u003e Patch mypy tests with protocols\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/28727bb0af89f129d59772550c6998164c37aeff\"\u003e\u003ccode\u003e28727bb\u003c/code\u003e\u003c/a\u003e Update docs and release info\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/e4131eaf6bc1a223292f3f19e78573a4317d131a\"\u003e\u003ccode\u003ee4131ea\u003c/code\u003e\u003c/a\u003e Add from_settings() class method to schemas\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/0aea8debef13b62156e7297bdc54198057ea3611\"\u003e\u003ccode\u003e0aea8de\u003c/code\u003e\u003c/a\u003e Rewrite validation contexts as normal classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/d443d7ba0e3de8fad6d6df8f314b12735af4bac3\"\u003e\u003ccode\u003ed443d7b\u003c/code\u003e\u003c/a\u003e Full validation of context arguments\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sissaschool/xmlschema/compare/v4.1.0...v4.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lark` from 1.2.2 to 1.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lark-parser/lark/releases\"\u003elark's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.3.1 - Bugfix + source build now contains complete project data\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix: Restore support for custom input, alongside text and TextSlice by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1562\"\u003elark-parser/lark#1562\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep sdist in sync with git (include all files in source build, including docs, tests and examples) by \u003ca href=\"https://github.com/chanicpanic\"\u003e\u003ccode\u003e@​chanicpanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1561\"\u003elark-parser/lark#1561\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/lark-parser/lark/compare/1.3.0...1.3.1\"\u003ehttps://github.com/lark-parser/lark/compare/1.3.0...1.3.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e1.3.0 - Introduces text-slices, Earley fix, and various small improvements\u003c/h2\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLark can now parse in sections of strings, using \u003ccode\u003eTextSlice\u003c/code\u003e, as a faster alternative to creating a \u0026quot;copy-slice\u0026quot; with \u003ccode\u003es[i:j]\u003c/code\u003e. \u003ca href=\"https://lark-parser.readthedocs.io/en/latest/classes.html#lark.utils.TextSlice\"\u003eLearn more\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded support to \u003ccode\u003ematch\u003c/code\u003e on Tree instances\u003c/li\u003e\n\u003cli\u003eWhen serializing a Lark instance, added the option to include the grammar object (before compilation).\u003c/li\u003e\n\u003cli\u003eAdded convenience method \u003ccode\u003eTree.find_token()\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix of an edge case in Earley related to representation of ambiguity.\u003c/li\u003e\n\u003cli\u003eBugfixes in the standalone parser related to imports\u003c/li\u003e\n\u003cli\u003eBugfix in indenter - now dedents always contain line information\u003c/li\u003e\n\u003cli\u003eVarious small bugfixes (see PR list below)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFull list of PRs\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDocs: Rephrase v_args() documentation to underline it only applies to Transformer classes by \u003ca href=\"https://github.com/skepppy\"\u003e\u003ccode\u003e@​skepppy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1458\"\u003elark-parser/lark#1458\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTiny refactor for PR \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1451\"\u003e#1451\u003c/a\u003e by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1459\"\u003elark-parser/lark#1459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEarley: share nodes created by the scanner with the completer by \u003ca href=\"https://github.com/chanicpanic\"\u003e\u003ccode\u003e@​chanicpanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1451\"\u003elark-parser/lark#1451\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter error in Lark.parse when using on_error when parser!=lalr (issue \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1311\"\u003e#1311\u003c/a\u003e) by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1460\"\u003elark-parser/lark#1460\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eSymbol.__eq__\u003c/code\u003e to return false when comparing with None by \u003ca href=\"https://github.com/weaversam8\"\u003e\u003ccode\u003e@​weaversam8\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1481\"\u003elark-parser/lark#1481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMention internal/external transformers in the documentation by \u003ca href=\"https://github.com/odanoburu\"\u003e\u003ccode\u003e@​odanoburu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1486\"\u003elark-parser/lark#1486\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Tree.find_token() method by \u003ca href=\"https://github.com/makukha\"\u003e\u003ccode\u003e@​makukha\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1467\"\u003elark-parser/lark#1467\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eType \u003ccode\u003eTerminal.__init__\u003c/code\u003e by \u003ca href=\"https://github.com/Liam-DeVoe\"\u003e\u003ccode\u003e@​Liam-DeVoe\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1503\"\u003elark-parser/lark#1503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd guidance on handling comments in languages with significant indentation by \u003ca href=\"https://github.com/nchammas\"\u003e\u003ccode\u003e@​nchammas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1502\"\u003elark-parser/lark#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Small fix for PR 1507 by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1508\"\u003elark-parser/lark#1508\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd note on binding power of numeric quantifiers by \u003ca href=\"https://github.com/414owen\"\u003e\u003ccode\u003e@​414owen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1507\"\u003elark-parser/lark#1507\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrap functools.partial in staticmethod() to add compatibility with Python 3.14 by \u003ca href=\"https://github.com/hrnciar\"\u003e\u003ccode\u003e@​hrnciar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1483\"\u003elark-parser/lark#1483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix generic type of Transformer_InPlaceRecursive by \u003ca href=\"https://github.com/lbhm\"\u003e\u003ccode\u003e@​lbhm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1518\"\u003elark-parser/lark#1518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded TextSlice; Lark can now parse/lex a text-slice by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1452\"\u003elark-parser/lark#1452\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport match on tree by \u003c...\n\n_Description has been truncated_","html_url":"https://github.com/chrislkl/seed/pull/7","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrislkl%2Fseed/issues/7","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/7/packages"}},{"old_version":"2.0.26","new_version":"2.0.31","update_type":"patch","path":null,"pr_created_at":"2025-11-12T06:46:02.000Z","version_change":"2.0.26 → 2.0.31","issue":{"uuid":"3615215494","node_id":"PR_kwDOHc8_yM6y6VAD","number":295,"state":"closed","title":"Bump uwsgi from 2.0.26 to 2.0.31","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":"2025-11-12T13:04:54.000Z","author_association":null,"state_reason":null,"created_at":"2025-11-12T06:46:02.000Z","updated_at":"2025-11-12T13:04:56.000Z","time_to_close":22732,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"uwsgi","old_version":"2.0.26","new_version":"2.0.31","repository_url":null}],"path":null,"ecosystem":"pip"},"body":"Bumps [uwsgi](https://uwsgi-docs.readthedocs.io/en/latest/) from 2.0.26 to 2.0.31.\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=uwsgi\u0026package-manager=pip\u0026previous-version=2.0.26\u0026new-version=2.0.31)](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't alter it yourself. You can also trigger a rebase manually by commenting `@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 that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/nisyuu/sumuma/pull/295","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/nisyuu%2Fsumuma/issues/295","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/295/packages"}},{"old_version":"2.0.30","new_version":"2.0.31","update_type":"patch","path":null,"pr_created_at":"2025-11-10T06:48:32.000Z","version_change":"2.0.30 → 2.0.31","issue":{"uuid":"3606400562","node_id":"PR_kwDOQDraYs6ycup4","number":4,"state":"open","title":"deps: bump the prod-deps group across 1 directory with 28 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-11-10T06:48:32.000Z","updated_at":"2025-11-10T06:48:33.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps: bump","group_name":"prod-deps","update_count":28,"packages":[{"name":"django","old_version":"4.2.24","new_version":"5.2.8","repository_url":"https://github.com/django/django"},{"name":"psycopg2-binary","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"hiredis","old_version":"3.2.1","new_version":"3.3.0","repository_url":"https://github.com/redis/hiredis-py"},{"name":"brotli","old_version":"1.1.0","new_version":"1.2.0","repository_url":"https://github.com/google/brotli"},{"name":"drf-yasg","old_version":"1.21.10","new_version":"1.21.11","repository_url":"https://github.com/axnsan12/drf-yasg"},{"name":"jellyfish","old_version":"1.2.0","new_version":"1.2.1"},{"name":"markdown","old_version":"3.9","new_version":"3.10","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"xlsxwriter","old_version":"3.2.5","new_version":"3.2.9","repository_url":"https://github.com/jmcnamara/XlsxWriter"},{"name":"xmltodict","old_version":"0.15.1","new_version":"1.0.2","repository_url":"https://github.com/martinblech/xmltodict"},{"name":"xmlschema","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/sissaschool/xmlschema"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"shapely","old_version":"2.0.7","new_version":"2.1.2","repository_url":"https://github.com/shapely/shapely"},{"name":"django-two-factor-auth","old_version":"1.17.0","new_version":"1.18.1"},{"name":"boto3","old_version":"1.40.27","new_version":"1.40.69","repository_url":"https://github.com/boto/boto3"},{"name":"uwsgi","old_version":"2.0.30","new_version":"2.0.31"},{"name":"coverage","old_version":"7.10.6","new_version":"7.11.3","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"coveralls","old_version":"4.0.1","new_version":"4.0.2","repository_url":"https://github.com/TheKevJames/coveralls-python"},{"name":"tox","old_version":"4.30.2","new_version":"4.32.0","repository_url":"https://github.com/tox-dev/tox"},{"name":"psutil","old_version":"7.0.0","new_version":"7.1.3","repository_url":"https://github.com/giampaolo/psutil"},{"name":"faker","old_version":"37.6.0","new_version":"37.12.0","repository_url":"https://github.com/joke2k/faker"},{"name":"pytest","old_version":"8.4.2","new_version":"9.0.0","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pre-commit","old_version":"4.3.0","new_version":"4.4.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"sphinx","old_version":"7.4.7","new_version":"8.2.3","repository_url":"https://github.com/sphinx-doc/sphinx"},{"name":"sphinxcontrib-spelling","old_version":"8.0.0","new_version":"8.0.1","repository_url":"https://github.com/sphinx-contrib/spelling"},{"name":"docutils","old_version":"0.21.2","new_version":"0.22.3","repository_url":"https://github.com/rtfd/recommonmark"},{"name":"hypothesis","old_version":"6.138.15","new_version":"6.147.0","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"django-debug-toolbar","old_version":"6.0.0","new_version":"6.1.0","repository_url":"https://github.com/django-commons/django-debug-toolbar"}],"path":null,"ecosystem":"pip"},"body":"Bumps the prod-deps group with 28 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [django](https://github.com/django/django) | `4.2.24` | `5.2.8` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.2.1` | `3.3.0` |\n| [brotli](https://github.com/google/brotli) | `1.1.0` | `1.2.0` |\n| [drf-yasg](https://github.com/axnsan12/drf-yasg) | `1.21.10` | `1.21.11` |\n| [jellyfish](https://jellyfish.jpt.sh/) | `1.2.0` | `1.2.1` |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.9` | `3.10` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [xlsxwriter](https://github.com/jmcnamara/XlsxWriter) | `3.2.5` | `3.2.9` |\n| [xmltodict](https://github.com/martinblech/xmltodict) | `0.15.1` | `1.0.2` |\n| [xmlschema](https://github.com/sissaschool/xmlschema) | `4.1.0` | `4.2.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [shapely](https://github.com/shapely/shapely) | `2.0.7` | `2.1.2` |\n| [django-two-factor-auth[phonenumbers]](https://github.com/jazzband/django-two-factor-auth) | `1.17.0` | `1.18.1` |\n| [boto3](https://github.com/boto/boto3) | `1.40.27` | `1.40.69` |\n| [uwsgi](https://uwsgi-docs.readthedocs.io/en/latest/) | `2.0.30` | `2.0.31` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.11.3` |\n| [coveralls](https://github.com/TheKevJames/coveralls-python) | `4.0.1` | `4.0.2` |\n| [tox](https://github.com/tox-dev/tox) | `4.30.2` | `4.32.0` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.1.3` |\n| [faker](https://github.com/joke2k/faker) | `37.6.0` | `37.12.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.2` | `9.0.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.3.0` | `4.4.0` |\n| [sphinx](https://github.com/sphinx-doc/sphinx) | `7.4.7` | `8.2.3` |\n| [sphinxcontrib-spelling](https://github.com/sphinx-contrib/spelling) | `8.0.0` | `8.0.1` |\n| [docutils](https://github.com/rtfd/recommonmark) | `0.21.2` | `0.22.3` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.138.15` | `6.147.0` |\n| [django-debug-toolbar](https://github.com/django-commons/django-debug-toolbar) | `6.0.0` | `6.1.0` |\n\n\nUpdates `django` from 4.2.24 to 5.2.8\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/47fe39af56ecd0ad73b9c7562511015e96b91b80\"\u003e\u003ccode\u003e47fe39a\u003c/code\u003e\u003c/a\u003e [5.2.x] Bumped version for 5.2.8 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/ac9fcf6eb2c909f4150c5287808f49170ce1f9e2\"\u003e\u003ccode\u003eac9fcf6\u003c/code\u003e\u003c/a\u003e [5.2.x] Refs CVE-2025-64459 -- Avoided propagating invalid arguments to Q on ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/6703f364d767e949c5b0e4016433ef75063b4f9b\"\u003e\u003ccode\u003e6703f36\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2025-64459 -- Prevented SQL injections in Q/QuerySet via th...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/4f5d904b63751dea9ffc3b0e046404a7fa5881ac\"\u003e\u003ccode\u003e4f5d904\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2025-64458 -- Mitigated potential DoS in HttpResponseRedire...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/cbdf128cb316bccf9ca3b3b4966e57bd050bfc8a\"\u003e\u003ccode\u003ecbdf128\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36704\"\u003e#36704\u003c/a\u003e -- Fixed system check error for proxy model with a compo...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/6775888470317a6d69121779b489bb2dc7350318\"\u003e\u003ccode\u003e6775888\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36696\"\u003e#36696\u003c/a\u003e -- Fixed NameError when inspecting functions with deferr...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/d5dfffaae52b9dcb4857d42b1e2902290a5c5e3c\"\u003e\u003ccode\u003ed5dfffa\u003c/code\u003e\u003c/a\u003e [5.2.x] Added stub release notes and release date for 5.2.8, 5.1.14, and 4.2.26.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/368f955c371cab5db18e9e239d10560cf15f5ea4\"\u003e\u003ccode\u003e368f955\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36681\"\u003e#36681\u003c/a\u003e -- Removed English pluralization bias from example in do...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/71267c97db211f1d7f1b8b794ceb2167a7619a4d\"\u003e\u003ccode\u003e71267c9\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/35095\"\u003e#35095\u003c/a\u003e -- Clarified Swiss number formatting in docs/topics/i18n...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/9b37bd5fe73b0d614ad8e503071d6f7bf2bdf6b2\"\u003e\u003ccode\u003e9b37bd5\u003c/code\u003e\u003c/a\u003e [5.2.x] Made RemoteTestResultTest.test_pickle_errors_detection() compatible w...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/4.2.24...5.2.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2-binary` from 2.9.10 to 2.9.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2-binary's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix building when pg_config returns an empty string (:ticket:\u003ccode\u003e[#1599](https://github.com/psycopg/psycopg2/issues/1599)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eWheel package bundled with OpenSSL 1.1.1v.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.6\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\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 href=\"https://github.com/psycopg/psycopg2/commit/fd9ae8cad2bcfc3e7e9410e7b6f07cda8f4f05ec\"\u003e\u003ccode\u003efd9ae8c\u003c/code\u003e\u003c/a\u003e chore: bump to version 2.9.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d923840546942534f0956d9202f914fd9feac5fd\"\u003e\u003ccode\u003ed923840\u003c/code\u003e\u003c/a\u003e chore: update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d42dc7169d3cd93517e282e9ef5dc2a2b40650a2\"\u003e\u003ccode\u003ed42dc71\u003c/code\u003e\u003c/a\u003e Merge branch 'fix-1791'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4fde6560c32f06ad1304404c9f7f86148dcc4be0\"\u003e\u003ccode\u003e4fde656\u003c/code\u003e\u003c/a\u003e fix: avoid failed assert passing more arguments than placeholders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/8308c19d6af0d904b313997539ed33415990a74e\"\u003e\u003ccode\u003e8308c19\u003c/code\u003e\u003c/a\u003e fix: drop warning about the use of deprecated PyWeakref_GetObject function\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1a1eabf098a3374409bb2ab4b594777b900f396d\"\u003e\u003ccode\u003e1a1eabf\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/github-script from 7 to 8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/897af8b38beda851d7257dfc525129e37c0ec9e0\"\u003e\u003ccode\u003e897af8b\u003c/code\u003e\u003c/a\u003e build(deps): bump peter-evans/repository-dispatch from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ceefd305117113ca10e383a626e87ba0796f3638\"\u003e\u003ccode\u003eceefd30\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4dc585430cabe94cee96c5a9de0265d0f55370f1\"\u003e\u003ccode\u003e4dc5854\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1945788dcf6172bb1b9328ebc3587ccf0e6a659c\"\u003e\u003ccode\u003e1945788\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1802\"\u003e#1802\u003c/a\u003e from edgarrmondragon/cp314-wheels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.10...2.9.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `hiredis` from 3.2.1 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/hiredis-py/releases\"\u003ehiredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.3.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e by \u003ca href=\"https://github.com/zweizeichen\"\u003e\u003ccode\u003e@​zweizeichen\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\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 href=\"https://github.com/redis/hiredis-py/commit/187d0f387afed58a955a42ea8c5467100871f98b\"\u003e\u003ccode\u003e187d0f3\u003c/code\u003e\u003c/a\u003e Version 3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/3efcf037edc5a9f7abfaedbd3f60b2a03feb4787\"\u003e\u003ccode\u003e3efcf03\u003c/code\u003e\u003c/a\u003e Add Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/215\"\u003e#215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/966cede2c0ca0a8ac4fe0786571e5c230f39c36e\"\u003e\u003ccode\u003e966cede\u003c/code\u003e\u003c/a\u003e Fix assertion in reader.c (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/212\"\u003e#212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/78def309e58126fdaacb66e6fd40df9c46494062\"\u003e\u003ccode\u003e78def30\u003c/code\u003e\u003c/a\u003e Bump version to 3.3.0-dev\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/redis/hiredis-py/compare/v3.2.1...v3.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `brotli` from 1.1.0 to 1.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/google/brotli/releases\"\u003ebrotli's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.0\u003c/h2\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\u003c/li\u003e\n\u003cli\u003eCLI: \u003ccode\u003ebrcat\u003c/code\u003e alias; allow decoding concatenated brotli streams\u003c/li\u003e\n\u003cli\u003ekt: pure Kotlin decoder\u003c/li\u003e\n\u003cli\u003ecgo: support \u0026quot;raw\u0026quot; dictionaries\u003c/li\u003e\n\u003cli\u003ebuild: Bazel modules\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: dropped \u003ccode\u003efinalize()\u003c/code\u003e for native entities\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: in \u003ccode\u003ecompress\u003c/code\u003e pass correct length to native encoder\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebuild: install man pages\u003c/li\u003e\n\u003cli\u003ebuild: updated / fixed / refined Bazel buildfiles\u003c/li\u003e\n\u003cli\u003eencoder: faster encoding\u003c/li\u003e\n\u003cli\u003ecgo: link via pkg-config\u003c/li\u003e\n\u003cli\u003epython: modernize extension / allow multi-phase module initialization\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edecoder / encoder: static tables use \u0026quot;small\u0026quot; model (allows 2GiB+ binaries)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.0 RC2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed (compared to RC1)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epick changes from Debian patch by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1349\"\u003egoogle/brotli#1349\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epick changes from Alpine patch by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1348\"\u003egoogle/brotli#1348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epick VCPKG patches by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1350\"\u003egoogle/brotli#1350\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix copy-paste in Java decoder by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1357\"\u003egoogle/brotli#1357\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.0 RC1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eIMPORTANT\u003c/strong\u003e: though this is a pre-release for v1.2.0, it is expected that some changes will be added before release; most notably concerning build files: patches applied by Alpine, Debian, Conan, VCPKG will be partially/fully integrated.\u003c/p\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\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 href=\"https://github.com/google/brotli/blob/master/CHANGELOG.md\"\u003ebrotli's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.2.0] - 2025-10-27\u003c/h2\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\u003c/li\u003e\n\u003cli\u003eCLI: \u003ccode\u003ebrcat\u003c/code\u003e alias; allow decoding concatenated brotli streams\u003c/li\u003e\n\u003cli\u003ekt: pure Kotlin decoder\u003c/li\u003e\n\u003cli\u003ecgo: support \u0026quot;raw\u0026quot; dictionaries\u003c/li\u003e\n\u003cli\u003ebuild: Bazel modules\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: dropped \u003ccode\u003efinalize()\u003c/code\u003e for native entities\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: in \u003ccode\u003ecompress\u003c/code\u003e pass correct length to native encoder\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebuild: install man pages\u003c/li\u003e\n\u003cli\u003ebuild: updated / fixed / refined Bazel buildfiles\u003c/li\u003e\n\u003cli\u003eencoder: faster encoding\u003c/li\u003e\n\u003cli\u003ecgo: link via pkg-config\u003c/li\u003e\n\u003cli\u003epython: modernize extension / allow multi-phase module initialization\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edecoder / encoder: static tables use \u0026quot;small\u0026quot; model (allows 2GiB+ binaries)\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 href=\"https://github.com/google/brotli/commit/028fb5a23661f123017c060daa546b55cf4bde29\"\u003e\u003ccode\u003e028fb5a\u003c/code\u003e\u003c/a\u003e release v1.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/390de5b472ec8c40a7b8e5029e47fd6493f7a755\"\u003e\u003ccode\u003e390de5b\u003c/code\u003e\u003c/a\u003e build and test csharp decoder\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/3499acbb7ac7818c1b929a8c9c5c5f8a634751da\"\u003e\u003ccode\u003e3499acb\u003c/code\u003e\u003c/a\u003e regenerate go/kt/js/ts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/8ca2312c61f1f5853be0708f9b1d6a6ad002d2a4\"\u003e\u003ccode\u003e8ca2312\u003c/code\u003e\u003c/a\u003e fix release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/ee771daf20bab6533cbc629407c50cff1c87d9f1\"\u003e\u003ccode\u003eee771da\u003c/code\u003e\u003c/a\u003e fix copy-paste in Java decoder\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/42aee3289154cb3e8db1c7a8ebfa639c857578b9\"\u003e\u003ccode\u003e42aee32\u003c/code\u003e\u003c/a\u003e try to fix release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/392c06bac05cc1d098ab105cbbda766f19853d92\"\u003e\u003ccode\u003e392c06b\u003c/code\u003e\u003c/a\u003e redesign release resource uploading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/1964cdb1b9e16a2a0c27fbd3b2a3bccb2c1a8294\"\u003e\u003ccode\u003e1964cdb\u003c/code\u003e\u003c/a\u003e ramp up all GH actions plugins\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/61605b1cb34ba84ae71c13b383d850a59cac85b2\"\u003e\u003ccode\u003e61605b1\u003c/code\u003e\u003c/a\u003e pick VCPKG patches\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/4b0f27b6f985b4301ad5cec4a31b9792ecf252bc\"\u003e\u003ccode\u003e4b0f27b\u003c/code\u003e\u003c/a\u003e pick changes from Alpine patch\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/google/brotli/compare/go/cbrotli/v1.1.0...v1.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `drf-yasg` from 1.21.10 to 1.21.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/axnsan12/drf-yasg/releases\"\u003edrf-yasg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.21.11\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/917\"\u003e#917\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/916\"\u003e#916\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/926\"\u003e#926\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/922\"\u003e#922\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/928\"\u003e#928\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/923\"\u003e#923\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/848\"\u003e#848\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/903\"\u003e#903\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 href=\"https://github.com/axnsan12/drf-yasg/blob/master/docs/changelog.rst\"\u003edrf-yasg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e#########\nChangelog\n#########\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.11\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (:pr:\u003ccode\u003e917\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (:pr:\u003ccode\u003e916\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (:pr:\u003ccode\u003e926\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (:pr:\u003ccode\u003e922\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (:pr:\u003ccode\u003e928\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (:pr:\u003ccode\u003e923\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (:pr:\u003ccode\u003e848\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (:pr:\u003ccode\u003e903\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.10\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix type hints when using postponed evaluation of annotations (PEP-563) (:pr:\u003ccode\u003e840\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update JSON \u0026amp; YAML renderers to not use a \u0026quot;.\u0026quot; in their format string (:pr:\u003ccode\u003e911\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix lint errors when comparing types with == instead of is (:pr:\u003ccode\u003e868\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update swagger-ui-dist to address CVE-2021-46708 (:pr:\u003ccode\u003e904\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.9\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Added support for zoneinfo object fields (:pr:\u003ccode\u003e908\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.8\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Python 3.11 and 3.12 support (:pr:\u003ccode\u003e891\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix pkg_resources version lookups for Python 3.9+ (:pr:\u003ccode\u003e891\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.7\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cem\u003eRelease date: Jul 20, 2023\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Added \u003ccode\u003edrf_yasg.inspectors.query.DrfAPICompatInspector\u003c/code\u003e (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Added \u003ccode\u003eDrfAPICompatInspector\u003c/code\u003e to serve as a replacement \u003ccode\u003eCoreAPICompatInspector\u003c/code\u003e (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow \u003ccode\u003eDEFAULT_SPEC_RENDERERS\u003c/code\u003e default renderers to be overriden in the settings (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fixed redoc source mapping (:pr:\u003ccode\u003e859\u003c/code\u003e)\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/f8cb2db70ca42fb709565f89fdd152b614dc865d\"\u003e\u003ccode\u003ef8cb2db\u003c/code\u003e\u003c/a\u003e Add version 1.21.11 details to the changelog (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/939\"\u003e#939\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/0c6d08d5ebc52e802e5e1acbabbadfe179d4087d\"\u003e\u003ccode\u003e0c6d08d\u003c/code\u003e\u003c/a\u003e Update the ruff lint rules (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/920\"\u003e#920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/055a74dc10128fd55a48f7f74f6b58ffcc48e83d\"\u003e\u003ccode\u003e055a74d\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 in the github-actions group (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/937\"\u003e#937\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/a8813ace8e39cc2c28a916053c74415e10db1425\"\u003e\u003ccode\u003ea8813ac\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 in the github-actions group (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/936\"\u003e#936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/9f4b44943ad930e23e979b80090102dfca1d588b\"\u003e\u003ccode\u003e9f4b449\u003c/code\u003e\u003c/a\u003e Restore the live demo and replace heroku with apprunner (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/935\"\u003e#935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/298325122e11aeba87e6c8f16604e45d870649e7\"\u003e\u003ccode\u003e2983251\u003c/code\u003e\u003c/a\u003e fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/a74689370c393432debbe6285b3afb3e462aee58\"\u003e\u003ccode\u003ea746893\u003c/code\u003e\u003c/a\u003e allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/916\"\u003e#916\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/e747ad6db413c2d20c3eab79739e22ffde5930c7\"\u003e\u003ccode\u003ee747ad6\u003c/code\u003e\u003c/a\u003e Fixes issue with filter parameters not appearing in Swagger after upgrading t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/ee3c871501dad5f0585c8c62ac0659fedab999a1\"\u003e\u003ccode\u003eee3c871\u003c/code\u003e\u003c/a\u003e update Python, Django, and DRF versions \u0026amp; packaging configuration (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/922\"\u003e#922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/be6eeedcbebcb45151a9d18018d880d1fcdcf143\"\u003e\u003ccode\u003ebe6eeed\u003c/code\u003e\u003c/a\u003e Remove usage of pkg_resources (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/928\"\u003e#928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/axnsan12/drf-yasg/compare/1.21.10...1.21.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jellyfish` from 1.2.0 to 1.2.1\n\nUpdates `markdown` from 3.9 to 3.10\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/releases\"\u003emarkdown's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.10.0\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\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 href=\"https://github.com/Python-Markdown/markdown/blob/master/docs/changelog.md\"\u003emarkdown's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003etitle: Changelog\ntoc_depth: 2\u003c/p\u003e\n\u003ch1\u003ePython-Markdown Changelog\u003c/h1\u003e\n\u003cp\u003eAll notable changes to this project will be documented in this file.\u003c/p\u003e\n\u003cp\u003eThe format is based on \u003ca href=\"https://keepachangelog.com/en/1.1.0/\"\u003eKeep a Changelog\u003c/a\u003e,\nand this project adheres to the\n\u003ca href=\"https://packaging.python.org/en/latest/specifications/version-specifiers/\"\u003ePython Version Specification\u003c/a\u003e.\nSee the \u003ca href=\"https://github.com/Python-Markdown/markdown/blob/master/docs/contributing.md\"\u003eContributing Guide\u003c/a\u003e for details.\u003c/p\u003e\n\u003ch2\u003e[3.10.0] - 2025-11-03\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.9.0] - 2025-09-04\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFootnotes are now ordered by the occurrence of their references in the\ndocument. A new configuration option for the footnotes extension,\n\u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e, has been added to support restoring the previous\nbehavior of ordering footnotes by the occurrence of definitions (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1367\"\u003e#1367\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure inline processing iterates through elements in document order (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1546\"\u003e#1546\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix handling of incomplete HTML tags in code spans in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1547\"\u003e#1547\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.8.2] - 2025-06-19\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003ecodecs\u003c/code\u003e deprecation in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed comment parsing in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed declarations in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed HTML tag \u003ccode\u003e\u0026lt;foo\u003c/code\u003e and Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\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 href=\"https://github.com/Python-Markdown/markdown/commit/22e89c1fc346f72218a10e392a0c3b4731912522\"\u003e\u003ccode\u003e22e89c1\u003c/code\u003e\u003c/a\u003e Bump version to 3.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/c138aea5139a6aceae05bb957e866d9ce7577b94\"\u003e\u003ccode\u003ec138aea\u003c/code\u003e\u003c/a\u003e + PY314 - PY39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/746f7f527b15f63845253e3b86947b806ef1b98f\"\u003e\u003ccode\u003e746f7f5\u003c/code\u003e\u003c/a\u003e cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/a5ee2b4aad05531898ab8fd726c7ece31ddadf8b\"\u003e\u003ccode\u003ea5ee2b4\u003c/code\u003e\u003c/a\u003e Revert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/5354daf618149f92580a1407c036115753c5df73\"\u003e\u003ccode\u003e5354daf\u003c/code\u003e\u003c/a\u003e Fix an HTML comment parsing case that can cause an infinite loop\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Python-Markdown/markdown/compare/3.9.0...3.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyyaml` from 6.0.2 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/yaml/pyyaml/releases\"\u003epyyaml's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14 and free-threading (experimental).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ehttps://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\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 href=\"https://github.com/yaml/pyyaml/blob/6.0.3/CHANGES\"\u003epyyaml's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e6.0.3 (2025-09-25)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/yaml/pyyaml/pull/864\"\u003eyaml/pyyaml#864\u003c/a\u003e -- Support for Python 3.14 and free-threading (experimental)\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 href=\"https://github.com/yaml/pyyaml/commit/49790e73684bebad1df05ef8d828fa12f685bffb\"\u003e\u003ccode\u003e49790e7\u003c/code\u003e\u003c/a\u003e Release 6.0.3 (\u003ca href=\"https://redirect.github.com/yaml/pyyaml/issues/889\"\u003e#889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xlsxwriter` from 3.2.5 to 3.2.9\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jmcnamara/XlsxWriter/blob/main/Changes\"\u003exlsxwriter's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.2.9 - September 16 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved the \u003ccode\u003epy.typed\u003c/code\u003e file since it was causing a lot of downstream CI\nfailures where consumers weren't handling the xlsxwriter types correctly or\ntaking them into account.\u003c/p\u003e\n\u003cp\u003eThe file will be re-added once the xlsxwriter typing is more comprehensive.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.2.8 - September 14 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003emypy\u003c/code\u003e implicit export error caused by the \u003ccode\u003eWorkbook()\u003c/code\u003e type\nannotations changes in v3.2.7 and v3.2.6.\u003c/p\u003e\n\u003cp\u003e:issue:\u003ccode\u003e1154\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.2.7 - September 13 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed typing issue in \u003ccode\u003eWorkbook()\u003c/code\u003e constructor.\u003c/p\u003e\n\u003cp\u003e:issue:\u003ccode\u003e1152\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.2.6 - September 12 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded an option to position custom data labels in the same way that the data\nlabels can be positioned for the entire series.\u003c/p\u003e\n\u003cp\u003e:feature:\u003ccode\u003e1147\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd border, fill, gradient and pattern formatting options for\nchart titles and also chart axis titles.\u003c/p\u003e\n\u003cp\u003e:feature:\u003ccode\u003e957\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd additional type annotations. This is an ongoing refactoring.\u003c/p\u003e\n\u003cp\u003e:feature:\u003ccode\u003e1123\u003c/code\u003e.\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 href=\"https://github.com/jmcnamara/XlsxWriter/commit/e943bee8c9cdf0661cfdb83d5497e0725390e41e\"\u003e\u003ccode\u003ee943bee\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/392bd9e6572785394c6553e2d4f7ae2bb80782f4\"\u003e\u003ccode\u003e392bd9e\u003c/code\u003e\u003c/a\u003e typing: remove py.typed file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/eb99afecdd0050209835f9f237d580dc53e42afa\"\u003e\u003ccode\u003eeb99afe\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/5ec29826d5e398bb5adebaabafbeb9d443a6ed8c\"\u003e\u003ccode\u003e5ec2982\u003c/code\u003e\u003c/a\u003e workbook: add explicit export for mypy compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/ca85cbb03a5898c9e7b66c78ac67a365e7f53002\"\u003e\u003ccode\u003eca85cbb\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/3710251aaaa9524ee302ec04608bfc1b577d4ba5\"\u003e\u003ccode\u003e3710251\u003c/code\u003e\u003c/a\u003e typing: add more supported types to Workbook() constructor\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/27db7a14672bfe1a18f29dfbab646aa0149a369b\"\u003e\u003ccode\u003e27db7a1\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/f05067654b42283557c3621e411b6fbadb7051b6\"\u003e\u003ccode\u003ef050676\u003c/code\u003e\u003c/a\u003e docs: add CI spell check\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/60f708cc1e10c0c66ae870be4f350f45a9d3ecc8\"\u003e\u003ccode\u003e60f708c\u003c/code\u003e\u003c/a\u003e chart: add axis title formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/53dc08e5d240310c88bbfce8d1a42330ae256535\"\u003e\u003ccode\u003e53dc08e\u003c/code\u003e\u003c/a\u003e chart: add chart title formatting options\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jmcnamara/XlsxWriter/compare/RELEASE_3.2.5...RELEASE_3.2.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xmltodict` from 0.15.1 to 1.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/martinblech/xmltodict/releases\"\u003exmltodict's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.0.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.1...v1.0.2\"\u003e1.0.2\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eallow DOCTYPE with disable_entities=True (default) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/25b61a41f580cfc211df07c5fbbf603bd8eb5a5f\"\u003e25b61a4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.0...v1.0.1\"\u003e1.0.1\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efail closed when entities disabled (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c986d2d37a93d45fcc059b09063d9d9c45a655ec\"\u003ec986d2d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003evalidate XML comments (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/3d4d2d3a4cd0f68d1211dba549010261fa87b969\"\u003e3d4d2d3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd SECURITY.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/64130233c8fea272a5f82f2f585e1593523ec1b1\"\u003e6413023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify behavior for empty lists (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2025b5cb5e64fc9c4d54b8644187a0a193bdd0ed\"\u003e2025b5c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify process_comments docs (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/6b464fce284a93dbb292f3d063c9f310a478a014\"\u003e6b464fc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify strip whitespace comment behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/b3e22032d21cc387d6cecf3930116e8fdc3151cf\"\u003eb3e2203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ecreate AGENTS.md for coding agents (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/0da66ee797ced7479312aecef92c6a25e235007c\"\u003e0da66ee\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace travis with actions badge (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2576b94c918fbd154489a95dbbb3feda8bd3cbd8\"\u003e2576b94\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate CONTRIBUTING.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/db3918057cf125af989a1263d52df8df5ef8c642\"\u003edb39180\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v0.15.1...v1.0.0\"\u003e1.0.0\u003c/a\u003e (2025-09-12)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emodernize for Python 3.9+; drop legacy compat paths\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add limited XML comment round-trip; unify \u003ccode\u003e_emit\u003c/code\u003e behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/e43537eee61c20ef50f0e4242eb9223de7a6aefd\"\u003ee43537e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add selective \u003ccode\u003eforce_cdata\u003c/code\u003e support (bool/tuple/callable) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/a497fedb7d6103d68af155543ac3337a73778b19\"\u003ea497fed\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/375\"\u003e#375\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003enamespaces:\u003c/strong\u003e attach \u003ccode\u003e[@xmlns](https://github.com/xmlns)\u003c/code\u003e to declaring element when process_namespaces=True (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/f0322e578184421693434902547f330f4f0a44c3\"\u003ef0322e5\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/163\"\u003e#163\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e avoid parent accumulation at item_depth; add regression tests (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/220240c5eb2d12b75adf26cc84ec9c803ce8bb2b\"\u003e220240c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e handle non-string \u003ccode\u003e#text\u003c/code\u003e with attributes; unify value conversion (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/927a025ae8a62cbb542d5caff38b29161a2096fa\"\u003e927a025\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/366\"\u003e#366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e skip empty lists to keep pretty/compact outputs consistent (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/ab4c86fed24dc8ef0e932a524edfb01c6453ecf6\"\u003eab4c86f\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/martinblech/xmltodict/blob/master/CHANGELOG.md\"\u003exmltodict's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.1...v1.0.2\"\u003e1.0.2\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eallow DOCTYPE with disable_entities=True (default) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/25b61a41f580cfc211df07c5fbbf603bd8eb5a5f\"\u003e25b61a4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.0...v1.0.1\"\u003e1.0.1\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efail closed when entities disabled (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c986d2d37a93d45fcc059b09063d9d9c45a655ec\"\u003ec986d2d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003evalidate XML comments (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/3d4d2d3a4cd0f68d1211dba549010261fa87b969\"\u003e3d4d2d3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd SECURITY.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/64130233c8fea272a5f82f2f585e1593523ec1b1\"\u003e6413023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify behavior for empty lists (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2025b5cb5e64fc9c4d54b8644187a0a193bdd0ed\"\u003e2025b5c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify process_comments docs (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/6b464fce284a93dbb292f3d063c9f310a478a014\"\u003e6b464fc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify strip whitespace comment behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/b3e22032d21cc387d6cecf3930116e8fdc3151cf\"\u003eb3e2203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ecreate AGENTS.md for coding agents (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/0da66ee797ced7479312aecef92c6a25e235007c\"\u003e0da66ee\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace travis with actions badge (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2576b94c918fbd154489a95dbbb3feda8bd3cbd8\"\u003e2576b94\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate CONTRIBUTING.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/db3918057cf125af989a1263d52df8df5ef8c642\"\u003edb39180\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v0.15.1...v1.0.0\"\u003e1.0.0\u003c/a\u003e (2025-09-12)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emodernize for Python 3.9+; drop legacy compat paths\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add limited XML comment round-trip; unify \u003ccode\u003e_emit\u003c/code\u003e behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/e43537eee61c20ef50f0e4242eb9223de7a6aefd\"\u003ee43537e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add selective \u003ccode\u003eforce_cdata\u003c/code\u003e support (bool/tuple/callable) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/a497fedb7d6103d68af155543ac3337a73778b19\"\u003ea497fed\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/375\"\u003e#375\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003enamespaces:\u003c/strong\u003e attach \u003ccode\u003e[@xmlns](https://github.com/xmlns)\u003c/code\u003e to declaring element when process_namespaces=True (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/f0322e578184421693434902547f330f4f0a44c3\"\u003ef0322e5\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/163\"\u003e#163\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e avoid parent accumulation at item_depth; add regression tests (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/220240c5eb2d12b75adf26cc84ec9c803ce8bb2b\"\u003e220240c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e handle non-string \u003ccode\u003e#text\u003c/code\u003e with attributes; unify value conversion (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/927a025ae8a62cbb542d5caff38b29161a2096fa\"\u003e927a025\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/366\"\u003e#366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e skip empty lists to keep pretty/compact outputs consistent (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/ab4c86fed24dc8ef0e932a524edfb01c6453ecf6\"\u003eab4c86f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eReverts\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove initial Release Drafter config (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c0b74ed58f933bffd160c60a58620f672710ff7c\"\u003ec0b74ed\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 href=\"https://github.com/martinblech/xmltodict/commit/d079849136b031c471ec96a168ad7859ed5994ff\"\u003e\u003ccode\u003ed079849\u003c/code\u003e\u003c/a\u003e chore(master): release 1.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/25b61a41f580cfc211df07c5fbbf603bd8eb5a5f\"\u003e\u003ccode\u003e25b61a4\u003c/code\u003e\u003c/a\u003e fix: allow DOCTYPE with disable_entities=True (default)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/a2a9ab7e0692a62f64d97ff12553d0d53368c854\"\u003e\u003ccode\u003ea2a9ab7\u003c/code\u003e\u003c/a\u003e ci(publish): allow uploading release assets\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/656e6af9543e640fda7e96d6bdd6e693756687be\"\u003e\u003ccode\u003e656e6af\u003c/code\u003e\u003c/a\u003e chore(master): release 1.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c986d2d37a93d45fcc059b09063d9d9c45a655ec\"\u003e\u003ccode\u003ec986d2d\u003c/code\u003e\u003c/a\u003e fix: fail closed when entities disabled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/3d4d2d3a4cd0f68d1211dba549010261fa87b969\"\u003e\u003ccode\u003e3d4d2d3\u003c/code\u003e\u003c/a\u003e fix: validate XML comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/b4a5f2a3f04aff68384486e957632c8438396fd6\"\u003e\u003ccode\u003eb4a5f2a\u003c/code\u003e\u003c/a\u003e refactor: remove jython-specific parsing branches\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/6b464fce284a93dbb292f3d063c9f310a478a014\"\u003e\u003ccode\u003e6b464fc\u003c/code\u003e\u003c/a\u003e docs: clarify process_comments docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/34daa304d443e49113d195294d99c6f58ce4714c\"\u003e\u003ccode\u003e34daa30\u003c/code\u003e\u003c/a\u003e refactor: remove unused helper functions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2025b5cb5e64fc9c4d54b8644187a0a193bdd0ed\"\u003e\u003ccode\u003e2025b5c\u003c/code\u003e\u003c/a\u003e docs: clarify behavior for empty lists\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/martinblech/xmltodict/compare/v0.15.1...v1.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xmlschema` from 4.1.0 to 4.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sissaschool/xmlschema/releases\"\u003exmlschema's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.2.0 (2025-10-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd arguments validation for schemas and validation methods (by validation contexts)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSchemaSettings\u003c/code\u003e dataclass for storing read-only settings for schema instances\nand for managing package default settings\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eblock\u003c/em\u003e argument to \u003ccode\u003eXMLResource\u003c/code\u003e class (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/464\"\u003e#464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_SCHEMA_SOURCES\u003c/em\u003e package limit (\u003ccode\u003e1000\u003c/code\u003e, applied to \u003ccode\u003eXsdGlobals\u003c/code\u003e global maps instances)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_XML_ELEMENTS\u003c/em\u003e package limit (\u003ccode\u003e1,000,000\u003c/code\u003e, applied to non-lazy \u003ccode\u003eXMLResource\u003c/code\u003e instances)\u003c/li\u003e\n\u003cli\u003eReduce \u003cem\u003eMAX_XML_DEPTH\u003c/em\u003e limit to 1000 and apply it to all \u003ccode\u003eXMLResource\u003c/code\u003e instances\u003c/li\u003e\n\u003cli\u003eFix for substitute match in case of unexpected child (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\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 href=\"https://github.com/sissaschool/xmlschema/blob/master/CHANGELOG.rst\"\u003exmlschema's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ccode\u003ev4.2.0\u003c/code\u003e_ (2025-10-14)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd arguments validation for schemas and validation methods (by validation contexts)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSchemaSettings\u003c/code\u003e dataclass for storing read-only settings for schema instances\nand for managing package default settings\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eblock\u003c/em\u003e argument to \u003ccode\u003eXMLResource\u003c/code\u003e class (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/464\"\u003e#464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_SCHEMA_SOURCES\u003c/em\u003e package limit (\u003ccode\u003e1000\u003c/code\u003e, applied to \u003ccode\u003eXsdGlobals\u003c/code\u003e global maps instances)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_XML_ELEMENTS\u003c/em\u003e package limit (\u003ccode\u003e1,000,000\u003c/code\u003e, applied to non-lazy \u003ccode\u003eXMLResource\u003c/code\u003e instances)\u003c/li\u003e\n\u003cli\u003eReduce \u003cem\u003eMAX_XML_DEPTH\u003c/em\u003e limit to 1000 and apply it to all \u003ccode\u003eXMLResource\u003c/code\u003e instances\u003c/li\u003e\n\u003cli\u003eFix for substitute match in case of unexpected child (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\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 href=\"https://github.com/sissaschool/xmlschema/commit/2783030fcdcd5307563822906862a9e7088931b2\"\u003e\u003ccode\u003e2783030\u003c/code\u003e\u003c/a\u003e Bump minor release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/7c77a12f0fe16c8da0256a0f13281a03e4a0f717\"\u003e\u003ccode\u003e7c77a12\u003c/code\u003e\u003c/a\u003e Include publiccode.yml validation workflow for CI and README changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/04c19d54d4578f34a0c04d6cc82daa8d3ef9d90c\"\u003e\u003ccode\u003e04c19d5\u003c/code\u003e\u003c/a\u003e Fix XsdGroup.match_element (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/dd4f279e56b8a5ce89f78a6c88337f5032af0b2f\"\u003e\u003ccode\u003edd4f279\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/463\"\u003e#463\u003c/a\u003e from publiccode-pr-bot/chore/add-publiccode-parser-ac...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/1bd7aa6eebf4947e7ae76e47a2f706b58fed22cd\"\u003e\u003ccode\u003e1bd7aa6\u003c/code\u003e\u003c/a\u003e Update GitHub workflow for CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/76b0f67e900777166bcd3773cc109efae933682d\"\u003e\u003ccode\u003e76b0f67\u003c/code\u003e\u003c/a\u003e Patch mypy tests with protocols\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/28727bb0af89f129d59772550c6998164c37aeff\"\u003e\u003ccode\u003e28727bb\u003c/code\u003e\u003c/a\u003e Update docs and release info\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/e4131eaf6bc1a223292f3f19e78573a4317d131a\"\u003e\u003ccode\u003ee4131ea\u003c/code\u003e\u003c/a\u003e Add from_settings() class method to schemas\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/0aea8debef13b62156e7297bdc54198057ea3611\"\u003e\u003ccode\u003e0aea8de\u003c/code\u003e\u003c/a\u003e Rewrite validation contexts as normal classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/d443d7ba0e3de8fad6d6df8f314b12735af4bac3\"\u003e\u003ccode\u003ed443d7b\u003c/code\u003e\u003c/a\u003e Full validation of context arguments\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sissaschool/xmlschema/compare/v4.1.0...v4.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lark` from 1.2.2 to 1.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lark-parser/lark/releases\"\u003elark's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.3.1 - Bugfix + source build now contains complete project data\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix: Restore support for custom input, alongside text and TextSlice by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1562\"\u003elark-parser/lark#1562\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep sdist in sync with git (include all files in source build, including docs, tests and examples) by \u003ca href=\"https://github.com/chanicpanic\"\u003e\u003ccode\u003e@​chanicpanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1561\"\u003elark-parser/lark#1561\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/lark-parser/lark/compare/1.3.0...1.3.1\"\u003ehttps://github.com/lark-parser/lark/compare/1.3.0...1.3.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e1.3.0 - Introduces text-slices, Earley fix, and various small improvements\u003c/h2\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLark can now parse in sections of strings, using \u003ccode\u003eTextSlice\u003c/code\u003e, as a faster alternative to creating a \u0026quot;copy-slice\u0026quot; with \u003ccode\u003es[i:j]\u003c/code\u003e. \u003ca href=\"https://lark-parser.readthedocs.io/en/latest/classes.html#lark.utils.TextSlice\"\u003eLearn more\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded support to \u003ccode\u003ematch\u003c/code\u003e on Tree instances\u003c/li\u003e\n\u003cli\u003eWhen serializing a Lark instance, added the option to include the grammar object (before compilation).\u003c/li\u003e\n\u003cli\u003eAdded convenience method \u003ccode\u003eTree.find_token()\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix of an edge case in Earley related to representation of ambiguity.\u003c/li\u003e\n\u003cli\u003eBugfixes in the standalone parser related to imports\u003c/li\u003e\n\u003cli\u003eBugfix in indenter - now dedents always contain line information\u003c/li\u003e\n\u003cli\u003eVarious small bugfixes (see PR list below)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFull list of PRs\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDocs: Rephrase v_args() documentation to underline it only applies to Transformer classes by \u003ca href=\"https://github.com/skepppy\"\u003e\u003ccode\u003e@​skepppy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1458\"\u003elark-parser/lark#1458\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTiny refactor for PR \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1451\"\u003e#1451\u003c/a\u003e by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1459\"\u003elark-parser/lark#1459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEarley: share nodes created by the scanner with the completer by \u003ca href=\"https://github.com/chanicpanic\"\u003e\u003ccode\u003e@​chanicpanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1451\"\u003elark-parser/lark#1451\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter error in Lark.parse when using on_error when parser!=lalr (issue \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1311\"\u003e#1311\u003c/a\u003e) by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1460\"\u003elark-parser/lark#1460\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eSymbol.__eq__\u003c/code\u003e to return false when comparing with None by \u003ca href=\"https://github.com/weaversam8\"\u003e\u003ccode\u003e@​weaversam8\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1481\"\u003elark-parser/lark#1481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMention internal/external transformers in the documentation by \u003ca href=\"https://github.com/odanoburu\"\u003e\u003ccode\u003e@​odanoburu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1486\"\u003elark-parser/lark#1486\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Tree.find_token() method by \u003ca href=\"https://github.com/makukha\"\u003e\u003ccode\u003e@​makukha\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1467\"\u003elark-parser/lark#1467\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eType \u003ccode\u003eTerminal.__init__\u003c/code\u003e by \u003ca href=\"https://github.com/Liam-DeVoe\"\u003e\u003ccode\u003e@​Liam-DeVoe\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1503\"\u003elark-parser/lark#1503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd guidance on handling comments in languages with significant indentation by \u003ca href=\"https://github.com/nchammas\"\u003e\u003ccode\u003e@​nchammas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1502\"\u003elark-parser/lark#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Small fix for PR 1507 by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1508\"\u003elark-parser/lark#1508\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd note on binding power of numeric quantifiers by \u003ca href=\"https://github.com/414owen\"\u003e\u003ccode\u003e@​414owen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1507\"\u003elark-parser/lark#1507\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrap functools.partial in staticmethod() to add compatibility with Python 3.14 by \u003ca href=\"https://github.com/hrnciar\"\u003e\u003ccode\u003e@​hrnciar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1483\"\u003elark-parser/lark#1483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix generic type of Transformer_InPlaceRecursive by \u003ca href=\"https://github.com/lbhm\"\u003e\u003ccode\u003e@​lbhm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1518\"\u003elark-parser/lark#1518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded TextSlice; Lark can now parse/lex a text-slice by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1452\"\u003elark-parser/lark#1452\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport match on tree by \u003ca href=\"https://github.com/colmmurphyxyz\"\u003e\u003ccode\u003e@​colmmurphyxyz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1521\"\u003elark-parser/lark#1521\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: Updated link of DSL article to a new version by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1529\"\u003elark-parser/lark#1529\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebetter error messages for shift/reduct conflicts by \u003ca href=\"https://github.com/skogsbaer\"\u003e\u003ccode\u003e@​skogsbaer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1531\"\u003elark-parser/lark#1531\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSerialize Lark.grammar (fixes issue \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1472\"\u003e#1472\u003c/a\u003e) by \u003ca href=\"https://github.com/NasalDaemon\"\u003e\u003ccode\u003e@​NasalDaemon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1506\"\u003elark-parser/lark#1506\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes for PR \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1506\"\u003e#1506\u003c/a\u003e, which adds the option to cache the grammar definition by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1540\"\u003elark-parser/lark#1540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix in indenter - now always creating dedents with line information by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1547\"\u003elark-parser/lark#1547\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix: issue when unpickling in the standalone parser, due to lingering Token instances by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1553\"\u003elark-parser/lark#1553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInclude missing import in standalone parser by \u003ca href=\"https://github.com/pdeibert\"\u003e\u003ccode\u003e@​pdeibert\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1541\"\u003elark-parser/lark#1541\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVersion bump (1.3.0) by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1554\"\u003elark-parser/lark#1554\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=\"https://github.com/skepppy\"\u003e\u003ccode\u003e@​skepppy\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1458\"\u003elark-parser/lark#1458\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 href=\"https://github.com/lark-parser/lark/commit/f79772cd4c6d2076b5dc01f399dbb816cc484f77\"\u003e\u003ccode\u003ef79772c\u003c/code\u003e\u003c/a\u003e Version bump (1.3.1)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/b64e9f42c93e9c05c17fac694ae5cbd18c041a2b\"\u003e\u003ccode\u003eb64e9f4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1561\"\u003e#1561\u003c/a\u003e from chanicpanic/sdist-git\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/ad0ea5f14ee4afbaf617cc088e1b8fe2fcff08fc\"\u003e\u003ccode\u003ead0ea5f\u003c/code\u003e\u003c/a\u003e Update MANIFEST.in\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/1f6f03c10540d4646c1a70b1da16a90592d7ec58\"\u003e\u003ccode\u003e1f6f03c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1562\"\u003e#1562\u003c/a\u003e from lark-parser/issue1560\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/7c365de586325620a20f2753b36ffa313c1d9b45\"\u003e\u003ccode\u003e7c365de\u003c/code\u003e\u003c/a\u003e Added custom input test (based on code from examples)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/19bbbee5d79845123f7f07ab716ec88185e2fa9d\"\u003e\u003ccode\u003e19bbbee\u003c/code\u003e\u003c/a\u003e Bugfix: Restore support for custom input, alongside text and TextSlice (Issue...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/dbcb60e888c5c8a3656c9f0c1ef0f928bb7c5ad6\"\u003e\u003ccode\u003edbcb60e\u003c/code\u003e\u003c/a\u003e Keep sdist in sync with git\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/e332c2df2f7d400460a5f1204d9bc36b49b25635\"\u003e\u003ccode\u003ee332c2d\u003c/code\u003e\u003c/a\u003e Version bump (1.3.0)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/aa5666c30e255257b0c36ef93c80d800f84a04ca\"\u003e\u003ccode\u003eaa5666c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1541\"\u003e#1541\u003c/a\u003e from pdeibert/master\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/41934d390dd7661a82df5ed28bd75655fe797cf7\"\u003e\u003ccode\u003e41934d3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1553\"\u003e#1553\u003c/a\u003e from lark-parser/issue1552\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lark-parser/lark/compare/1.2.2...1.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `shapely` from 2.0.7 to 2.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/shapely/shapely/releases\"\u003eshapely's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.1.2\u003c/h2\u003e\n\u003cp\u003eWheels are available for Python 3.14 (and still include GEOS 3.13.1).\u003c/p\u003e\n\u003ch2\u003e2.1.1\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix performance degradation calling shapely functions (caused by deprecation of certain positional arguments) (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2283\"\u003e#2283\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix crash caused by \u003ccode\u003efrom_ragged_array()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2291\"\u003e#2291\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix compilation error building with recent LLVM toolchain (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2293\"\u003e#2293\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFor a full changelog , see \u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-1\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.1.0\u003c/h2\u003e\n\u003cp\u003eShapely 2.1.0 is a feature release with various new functions, improvements and bug fixes. Highlights include initial support for geometries with M or ZM values, functionality for coverage validation and simplification, and a set of new top-level functions.\u003c/p\u003e\n\u003cp\u003eShapely supports Python \u0026gt;= 3.10, and binary wheels on PyPI include GEOS 3.13.1 and are now also provided for musllinux (Alpine) x86_64 platforms.\u003c/p\u003e\n\u003cp\u003eFor a full changelog, see \u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.1.0rc1\u003c/h2\u003e\n\u003cp\u003eShapely version 2.1.0 is a major release featuring various new functions, improvements and bug fixes. This is a first release candidate.\u003c/p\u003e\n\u003cp\u003eFor a full changelog, see \u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0-unreleased\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0-unreleased\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 href=\"https://github.com/shapely/shapely/blob/main/CHANGES.txt\"\u003eshapely's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.1.2 (unreleased)\u003c/h2\u003e\n\u003cp\u003eImproved performance of the Geometry -\u0026gt; float scalar operations: \u003ccode\u003earea\u003c/code\u003e, \u003ccode\u003elength\u003c/code\u003e,\n\u003ccode\u003eminimum_clearance\u003c/code\u003e, \u003ccode\u003ex\u003c/code\u003e, \u003ccode\u003ey\u003c/code\u003e, \u003ccode\u003ez\u003c/code\u003e and \u003ccode\u003em\u003c/code\u003e. Benchmarks showed a change of call duration\nfrom 2.6 microseconds to 0.2 microseconds (on the \u003ccode\u003ePoint.x\u003c/code\u003e attribute).\u003c/p\u003e\n\u003ch2\u003e2.1.2 (2025-09-24)\u003c/h2\u003e\n\u003cp\u003eWheels are available for Python 3.14 (and still include GEOS 3.13.1).\u003c/p\u003e\n\u003ch2\u003e2.1.1 (2025-05-19)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix performance degradation calling shapely functions (caused by deprecation\nof certain positional arguments) (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2283\"\u003e#2283\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix crash caused by \u003ccode\u003efrom_ragged_array()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2291\"\u003e#2291\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix compilation error building with recent LLVM toolchain (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2293\"\u003e#2293\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.0 (2025-04-03)\u003c/h2\u003e\n\u003cp\u003eShapely 2.1.0 is a feature release with various new functions,\nimprovements and bug fixes. Highlights include initial support for geometries\nwith M or ZM values, functionality for coverage validation and\nsimplification, and a set of new top-level functions.\u003c/p\u003e\n\u003cp\u003eShapely supports Python \u0026gt;= 3.10, and binary wheels on PyPI include GEOS 3.13.1\nand are now also provided for musllinux (Alpine) x86_64 platforms.\u003c/p\u003e\n\u003cp\u003eFor a full changelog, see\n\u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/5fb639d1056888d135fe56bfaf750c9648addeec\"\u003e\u003ccode\u003e5fb639d\u003c/code\u003e\u003c/a\u003e RLS: 2.1.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/70509a1bee5ebd6637cda98b5c9d83707c341888\"\u003e\u003ccode\u003e70509a1\u003c/code\u003e\u003c/a\u003e DOC/RLS: indicate Python 3.14 support in pyproject.toml and release notes for...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/5c572b622027f6917c75afd728f201a144fb597d\"\u003e\u003ccode\u003e5c572b6\u003c/code\u003e\u003c/a\u003e CI: add testing with GEOS 3.14 and Python 3.14 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2330\"\u003e#2330\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/a9093336b1ea77559d44148a7f1ed92ab3bc2999\"\u003e\u003ccode\u003ea909333\u003c/code\u003e\u003c/a\u003e Bump pypa/cibuildwheel from 3.1.3 to 3.2.0 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2328\"\u003e#2328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/2086d4428e29da17bafc684acbfb04bb537ce573\"\u003e\u003ccode\u003e2086d44\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2326\"\u003e#2326\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/50c1cf30be0e37081991b6d5a5dc3531cfbe35da\"\u003e\u003ccode\u003e50c1cf3\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4 to 5 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2321\"\u003e#2321\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/39490ab685a42a2c189f2ce7a45b7d07053e8e8f\"\u003e\u003ccode\u003e39490ab\u003c/code\u003e\u003c/a\u003e TST: update test_coverage_union_overlapping_inputs for upstream GEOS change (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/5ef437c898b54f723ad0e4a8b6b513b9cc5d68a2\"\u003e\u003ccode\u003e5ef437c\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2320\"\u003e#2320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/7b5ff3d24b7889d35f96ee3ae9ec26250b3d6147\"\u003e\u003ccode\u003e7b5ff3d\u003c/code\u003e\u003c/a\u003e BLD: add Python 3.14 wheels [Bump pypa/cibuildwheel from 3.0.1 to 3.1.3] (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2316\"\u003e#2316\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/480dbb14f47b685e95c03654983405185c15babd\"\u003e\u003ccode\u003e480dbb1\u003c/code\u003e\u003c/a\u003e TST: update frechet_distance densify test for latest GEOS main (densify\u0026gt;0.001...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/shapely/shapely/compare/2.0.7...2.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-two-factor-auth[phonenumbers]` from 1.17.0 to 1.18.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jazzband/django-two-factor-auth/releases\"\u003edjango-two-factor-auth[phonenumbers]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.18.1\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew translations for Azerbaijani and Serbian\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.18.0\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocumentation for setting yubikey support forgot to inform users they would\nneed to add our yubikey plugin to \u003ccode\u003eINSTALLED_APPS\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRemove reference to release-notes that had been missed, docs now build\nwithout warnings\u003c/li\u003e\n\u003cli\u003eWebAuthn: avoid submitting the wrong form\u003c/li\u003e\n\u003cli\u003eEmail gateway: tell user to use correct django-otp plugin\u003c/li\u003e\n\u003cli\u003eFix infinite redirect o...\n\n_Description has been truncated_","html_url":"https://github.com/chrislkl/seed/pull/4","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrislkl%2Fseed/issues/4","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/4/packages"}},{"old_version":"2.0.30","new_version":"2.0.31","update_type":"patch","path":null,"pr_created_at":"2025-11-10T05:53:13.000Z","version_change":"2.0.30 → 2.0.31","issue":{"uuid":"3606242355","node_id":"PR_kwDOAYRY2s6ycM26","number":5136,"state":"closed","title":"deps: bump the prod-deps group across 1 directory with 27 updates","user":"dependabot[bot]","labels":["Maintenance"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2025-11-21T15:59:00.000Z","author_association":null,"state_reason":null,"created_at":"2025-11-10T05:53:13.000Z","updated_at":"2025-11-21T15:59:02.000Z","time_to_close":986747,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps: bump","group_name":"prod-deps","update_count":27,"packages":[{"name":"django","old_version":"4.2.26","new_version":"5.2.8","repository_url":"https://github.com/django/django"},{"name":"psycopg2-binary","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"hiredis","old_version":"3.2.1","new_version":"3.3.0","repository_url":"https://github.com/redis/hiredis-py"},{"name":"brotli","old_version":"1.1.0","new_version":"1.2.0","repository_url":"https://github.com/google/brotli"},{"name":"drf-yasg","old_version":"1.21.10","new_version":"1.21.11","repository_url":"https://github.com/axnsan12/drf-yasg"},{"name":"jellyfish","old_version":"1.2.0","new_version":"1.2.1"},{"name":"markdown","old_version":"3.9","new_version":"3.10","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"xlsxwriter","old_version":"3.2.8","new_version":"3.2.9","repository_url":"https://github.com/jmcnamara/XlsxWriter"},{"name":"xmlschema","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/sissaschool/xmlschema"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"shapely","old_version":"2.0.7","new_version":"2.1.2","repository_url":"https://github.com/shapely/shapely"},{"name":"django-two-factor-auth","old_version":"1.17.0","new_version":"1.18.1"},{"name":"boto3","old_version":"1.40.30","new_version":"1.40.69","repository_url":"https://github.com/boto/boto3"},{"name":"uwsgi","old_version":"2.0.30","new_version":"2.0.31"},{"name":"coverage","old_version":"7.10.6","new_version":"7.11.3","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"coveralls","old_version":"4.0.1","new_version":"4.0.2","repository_url":"https://github.com/TheKevJames/coveralls-python"},{"name":"tox","old_version":"4.30.2","new_version":"4.32.0","repository_url":"https://github.com/tox-dev/tox"},{"name":"psutil","old_version":"7.0.0","new_version":"7.1.3","repository_url":"https://github.com/giampaolo/psutil"},{"name":"faker","old_version":"37.6.0","new_version":"37.12.0","repository_url":"https://github.com/joke2k/faker"},{"name":"pytest","old_version":"8.4.2","new_version":"9.0.0","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pre-commit","old_version":"4.3.0","new_version":"4.4.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"sphinx","old_version":"7.4.7","new_version":"8.2.3","repository_url":"https://github.com/sphinx-doc/sphinx"},{"name":"sphinxcontrib-spelling","old_version":"8.0.0","new_version":"8.0.1","repository_url":"https://github.com/sphinx-contrib/spelling"},{"name":"docutils","old_version":"0.21.2","new_version":"0.22.3","repository_url":"https://github.com/rtfd/recommonmark"},{"name":"hypothesis","old_version":"6.138.16","new_version":"6.147.0","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"django-debug-toolbar","old_version":"6.0.0","new_version":"6.1.0","repository_url":"https://github.com/django-commons/django-debug-toolbar"}],"path":null,"ecosystem":"pip"},"body":"Bumps the prod-deps group with 27 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [django](https://github.com/django/django) | `4.2.26` | `5.2.8` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.2.1` | `3.3.0` |\n| [brotli](https://github.com/google/brotli) | `1.1.0` | `1.2.0` |\n| [drf-yasg](https://github.com/axnsan12/drf-yasg) | `1.21.10` | `1.21.11` |\n| [jellyfish](https://jellyfish.jpt.sh/) | `1.2.0` | `1.2.1` |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.9` | `3.10` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [xlsxwriter](https://github.com/jmcnamara/XlsxWriter) | `3.2.8` | `3.2.9` |\n| [xmlschema](https://github.com/sissaschool/xmlschema) | `4.1.0` | `4.2.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [shapely](https://github.com/shapely/shapely) | `2.0.7` | `2.1.2` |\n| [django-two-factor-auth[phonenumbers]](https://github.com/jazzband/django-two-factor-auth) | `1.17.0` | `1.18.1` |\n| [boto3](https://github.com/boto/boto3) | `1.40.30` | `1.40.69` |\n| [uwsgi](https://uwsgi-docs.readthedocs.io/en/latest/) | `2.0.30` | `2.0.31` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.11.3` |\n| [coveralls](https://github.com/TheKevJames/coveralls-python) | `4.0.1` | `4.0.2` |\n| [tox](https://github.com/tox-dev/tox) | `4.30.2` | `4.32.0` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.1.3` |\n| [faker](https://github.com/joke2k/faker) | `37.6.0` | `37.12.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.2` | `9.0.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.3.0` | `4.4.0` |\n| [sphinx](https://github.com/sphinx-doc/sphinx) | `7.4.7` | `8.2.3` |\n| [sphinxcontrib-spelling](https://github.com/sphinx-contrib/spelling) | `8.0.0` | `8.0.1` |\n| [docutils](https://github.com/rtfd/recommonmark) | `0.21.2` | `0.22.3` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.138.16` | `6.147.0` |\n| [django-debug-toolbar](https://github.com/django-commons/django-debug-toolbar) | `6.0.0` | `6.1.0` |\n\n\nUpdates `django` from 4.2.26 to 5.2.8\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/47fe39af56ecd0ad73b9c7562511015e96b91b80\"\u003e\u003ccode\u003e47fe39a\u003c/code\u003e\u003c/a\u003e [5.2.x] Bumped version for 5.2.8 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/ac9fcf6eb2c909f4150c5287808f49170ce1f9e2\"\u003e\u003ccode\u003eac9fcf6\u003c/code\u003e\u003c/a\u003e [5.2.x] Refs CVE-2025-64459 -- Avoided propagating invalid arguments to Q on ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/6703f364d767e949c5b0e4016433ef75063b4f9b\"\u003e\u003ccode\u003e6703f36\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2025-64459 -- Prevented SQL injections in Q/QuerySet via th...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/4f5d904b63751dea9ffc3b0e046404a7fa5881ac\"\u003e\u003ccode\u003e4f5d904\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2025-64458 -- Mitigated potential DoS in HttpResponseRedire...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/cbdf128cb316bccf9ca3b3b4966e57bd050bfc8a\"\u003e\u003ccode\u003ecbdf128\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36704\"\u003e#36704\u003c/a\u003e -- Fixed system check error for proxy model with a compo...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/6775888470317a6d69121779b489bb2dc7350318\"\u003e\u003ccode\u003e6775888\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36696\"\u003e#36696\u003c/a\u003e -- Fixed NameError when inspecting functions with deferr...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/d5dfffaae52b9dcb4857d42b1e2902290a5c5e3c\"\u003e\u003ccode\u003ed5dfffa\u003c/code\u003e\u003c/a\u003e [5.2.x] Added stub release notes and release date for 5.2.8, 5.1.14, and 4.2.26.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/368f955c371cab5db18e9e239d10560cf15f5ea4\"\u003e\u003ccode\u003e368f955\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36681\"\u003e#36681\u003c/a\u003e -- Removed English pluralization bias from example in do...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/71267c97db211f1d7f1b8b794ceb2167a7619a4d\"\u003e\u003ccode\u003e71267c9\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/35095\"\u003e#35095\u003c/a\u003e -- Clarified Swiss number formatting in docs/topics/i18n...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/9b37bd5fe73b0d614ad8e503071d6f7bf2bdf6b2\"\u003e\u003ccode\u003e9b37bd5\u003c/code\u003e\u003c/a\u003e [5.2.x] Made RemoteTestResultTest.test_pickle_errors_detection() compatible w...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/4.2.26...5.2.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2-binary` from 2.9.10 to 2.9.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2-binary's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix building when pg_config returns an empty string (:ticket:\u003ccode\u003e[#1599](https://github.com/psycopg/psycopg2/issues/1599)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eWheel package bundled with OpenSSL 1.1.1v.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.6\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\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 href=\"https://github.com/psycopg/psycopg2/commit/fd9ae8cad2bcfc3e7e9410e7b6f07cda8f4f05ec\"\u003e\u003ccode\u003efd9ae8c\u003c/code\u003e\u003c/a\u003e chore: bump to version 2.9.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d923840546942534f0956d9202f914fd9feac5fd\"\u003e\u003ccode\u003ed923840\u003c/code\u003e\u003c/a\u003e chore: update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d42dc7169d3cd93517e282e9ef5dc2a2b40650a2\"\u003e\u003ccode\u003ed42dc71\u003c/code\u003e\u003c/a\u003e Merge branch 'fix-1791'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4fde6560c32f06ad1304404c9f7f86148dcc4be0\"\u003e\u003ccode\u003e4fde656\u003c/code\u003e\u003c/a\u003e fix: avoid failed assert passing more arguments than placeholders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/8308c19d6af0d904b313997539ed33415990a74e\"\u003e\u003ccode\u003e8308c19\u003c/code\u003e\u003c/a\u003e fix: drop warning about the use of deprecated PyWeakref_GetObject function\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1a1eabf098a3374409bb2ab4b594777b900f396d\"\u003e\u003ccode\u003e1a1eabf\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/github-script from 7 to 8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/897af8b38beda851d7257dfc525129e37c0ec9e0\"\u003e\u003ccode\u003e897af8b\u003c/code\u003e\u003c/a\u003e build(deps): bump peter-evans/repository-dispatch from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ceefd305117113ca10e383a626e87ba0796f3638\"\u003e\u003ccode\u003eceefd30\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4dc585430cabe94cee96c5a9de0265d0f55370f1\"\u003e\u003ccode\u003e4dc5854\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1945788dcf6172bb1b9328ebc3587ccf0e6a659c\"\u003e\u003ccode\u003e1945788\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1802\"\u003e#1802\u003c/a\u003e from edgarrmondragon/cp314-wheels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.10...2.9.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `hiredis` from 3.2.1 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/hiredis-py/releases\"\u003ehiredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.3.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e by \u003ca href=\"https://github.com/zweizeichen\"\u003e\u003ccode\u003e@​zweizeichen\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\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 href=\"https://github.com/redis/hiredis-py/commit/187d0f387afed58a955a42ea8c5467100871f98b\"\u003e\u003ccode\u003e187d0f3\u003c/code\u003e\u003c/a\u003e Version 3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/3efcf037edc5a9f7abfaedbd3f60b2a03feb4787\"\u003e\u003ccode\u003e3efcf03\u003c/code\u003e\u003c/a\u003e Add Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/215\"\u003e#215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/966cede2c0ca0a8ac4fe0786571e5c230f39c36e\"\u003e\u003ccode\u003e966cede\u003c/code\u003e\u003c/a\u003e Fix assertion in reader.c (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/212\"\u003e#212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/78def309e58126fdaacb66e6fd40df9c46494062\"\u003e\u003ccode\u003e78def30\u003c/code\u003e\u003c/a\u003e Bump version to 3.3.0-dev\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/redis/hiredis-py/compare/v3.2.1...v3.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `brotli` from 1.1.0 to 1.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/google/brotli/releases\"\u003ebrotli's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.0\u003c/h2\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\u003c/li\u003e\n\u003cli\u003eCLI: \u003ccode\u003ebrcat\u003c/code\u003e alias; allow decoding concatenated brotli streams\u003c/li\u003e\n\u003cli\u003ekt: pure Kotlin decoder\u003c/li\u003e\n\u003cli\u003ecgo: support \u0026quot;raw\u0026quot; dictionaries\u003c/li\u003e\n\u003cli\u003ebuild: Bazel modules\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: dropped \u003ccode\u003efinalize()\u003c/code\u003e for native entities\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: in \u003ccode\u003ecompress\u003c/code\u003e pass correct length to native encoder\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebuild: install man pages\u003c/li\u003e\n\u003cli\u003ebuild: updated / fixed / refined Bazel buildfiles\u003c/li\u003e\n\u003cli\u003eencoder: faster encoding\u003c/li\u003e\n\u003cli\u003ecgo: link via pkg-config\u003c/li\u003e\n\u003cli\u003epython: modernize extension / allow multi-phase module initialization\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edecoder / encoder: static tables use \u0026quot;small\u0026quot; model (allows 2GiB+ binaries)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.0 RC2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed (compared to RC1)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epick changes from Debian patch by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1349\"\u003egoogle/brotli#1349\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epick changes from Alpine patch by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1348\"\u003egoogle/brotli#1348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epick VCPKG patches by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1350\"\u003egoogle/brotli#1350\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix copy-paste in Java decoder by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1357\"\u003egoogle/brotli#1357\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.0 RC1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eIMPORTANT\u003c/strong\u003e: though this is a pre-release for v1.2.0, it is expected that some changes will be added before release; most notably concerning build files: patches applied by Alpine, Debian, Conan, VCPKG will be partially/fully integrated.\u003c/p\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\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 href=\"https://github.com/google/brotli/blob/master/CHANGELOG.md\"\u003ebrotli's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.2.0] - 2025-10-27\u003c/h2\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\u003c/li\u003e\n\u003cli\u003eCLI: \u003ccode\u003ebrcat\u003c/code\u003e alias; allow decoding concatenated brotli streams\u003c/li\u003e\n\u003cli\u003ekt: pure Kotlin decoder\u003c/li\u003e\n\u003cli\u003ecgo: support \u0026quot;raw\u0026quot; dictionaries\u003c/li\u003e\n\u003cli\u003ebuild: Bazel modules\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: dropped \u003ccode\u003efinalize()\u003c/code\u003e for native entities\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: in \u003ccode\u003ecompress\u003c/code\u003e pass correct length to native encoder\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebuild: install man pages\u003c/li\u003e\n\u003cli\u003ebuild: updated / fixed / refined Bazel buildfiles\u003c/li\u003e\n\u003cli\u003eencoder: faster encoding\u003c/li\u003e\n\u003cli\u003ecgo: link via pkg-config\u003c/li\u003e\n\u003cli\u003epython: modernize extension / allow multi-phase module initialization\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edecoder / encoder: static tables use \u0026quot;small\u0026quot; model (allows 2GiB+ binaries)\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 href=\"https://github.com/google/brotli/commit/028fb5a23661f123017c060daa546b55cf4bde29\"\u003e\u003ccode\u003e028fb5a\u003c/code\u003e\u003c/a\u003e release v1.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/390de5b472ec8c40a7b8e5029e47fd6493f7a755\"\u003e\u003ccode\u003e390de5b\u003c/code\u003e\u003c/a\u003e build and test csharp decoder\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/3499acbb7ac7818c1b929a8c9c5c5f8a634751da\"\u003e\u003ccode\u003e3499acb\u003c/code\u003e\u003c/a\u003e regenerate go/kt/js/ts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/8ca2312c61f1f5853be0708f9b1d6a6ad002d2a4\"\u003e\u003ccode\u003e8ca2312\u003c/code\u003e\u003c/a\u003e fix release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/ee771daf20bab6533cbc629407c50cff1c87d9f1\"\u003e\u003ccode\u003eee771da\u003c/code\u003e\u003c/a\u003e fix copy-paste in Java decoder\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/42aee3289154cb3e8db1c7a8ebfa639c857578b9\"\u003e\u003ccode\u003e42aee32\u003c/code\u003e\u003c/a\u003e try to fix release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/392c06bac05cc1d098ab105cbbda766f19853d92\"\u003e\u003ccode\u003e392c06b\u003c/code\u003e\u003c/a\u003e redesign release resource uploading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/1964cdb1b9e16a2a0c27fbd3b2a3bccb2c1a8294\"\u003e\u003ccode\u003e1964cdb\u003c/code\u003e\u003c/a\u003e ramp up all GH actions plugins\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/61605b1cb34ba84ae71c13b383d850a59cac85b2\"\u003e\u003ccode\u003e61605b1\u003c/code\u003e\u003c/a\u003e pick VCPKG patches\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/4b0f27b6f985b4301ad5cec4a31b9792ecf252bc\"\u003e\u003ccode\u003e4b0f27b\u003c/code\u003e\u003c/a\u003e pick changes from Alpine patch\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/google/brotli/compare/go/cbrotli/v1.1.0...v1.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `drf-yasg` from 1.21.10 to 1.21.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/axnsan12/drf-yasg/releases\"\u003edrf-yasg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.21.11\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/917\"\u003e#917\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/916\"\u003e#916\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/926\"\u003e#926\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/922\"\u003e#922\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/928\"\u003e#928\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/923\"\u003e#923\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/848\"\u003e#848\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/903\"\u003e#903\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 href=\"https://github.com/axnsan12/drf-yasg/blob/master/docs/changelog.rst\"\u003edrf-yasg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e#########\nChangelog\n#########\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.11\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (:pr:\u003ccode\u003e917\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (:pr:\u003ccode\u003e916\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (:pr:\u003ccode\u003e926\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (:pr:\u003ccode\u003e922\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (:pr:\u003ccode\u003e928\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (:pr:\u003ccode\u003e923\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (:pr:\u003ccode\u003e848\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (:pr:\u003ccode\u003e903\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.10\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix type hints when using postponed evaluation of annotations (PEP-563) (:pr:\u003ccode\u003e840\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update JSON \u0026amp; YAML renderers to not use a \u0026quot;.\u0026quot; in their format string (:pr:\u003ccode\u003e911\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix lint errors when comparing types with == instead of is (:pr:\u003ccode\u003e868\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update swagger-ui-dist to address CVE-2021-46708 (:pr:\u003ccode\u003e904\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.9\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Added support for zoneinfo object fields (:pr:\u003ccode\u003e908\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.8\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Python 3.11 and 3.12 support (:pr:\u003ccode\u003e891\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix pkg_resources version lookups for Python 3.9+ (:pr:\u003ccode\u003e891\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.7\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cem\u003eRelease date: Jul 20, 2023\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Added \u003ccode\u003edrf_yasg.inspectors.query.DrfAPICompatInspector\u003c/code\u003e (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Added \u003ccode\u003eDrfAPICompatInspector\u003c/code\u003e to serve as a replacement \u003ccode\u003eCoreAPICompatInspector\u003c/code\u003e (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow \u003ccode\u003eDEFAULT_SPEC_RENDERERS\u003c/code\u003e default renderers to be overriden in the settings (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fixed redoc source mapping (:pr:\u003ccode\u003e859\u003c/code\u003e)\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/f8cb2db70ca42fb709565f89fdd152b614dc865d\"\u003e\u003ccode\u003ef8cb2db\u003c/code\u003e\u003c/a\u003e Add version 1.21.11 details to the changelog (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/939\"\u003e#939\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/0c6d08d5ebc52e802e5e1acbabbadfe179d4087d\"\u003e\u003ccode\u003e0c6d08d\u003c/code\u003e\u003c/a\u003e Update the ruff lint rules (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/920\"\u003e#920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/055a74dc10128fd55a48f7f74f6b58ffcc48e83d\"\u003e\u003ccode\u003e055a74d\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 in the github-actions group (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/937\"\u003e#937\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/a8813ace8e39cc2c28a916053c74415e10db1425\"\u003e\u003ccode\u003ea8813ac\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 in the github-actions group (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/936\"\u003e#936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/9f4b44943ad930e23e979b80090102dfca1d588b\"\u003e\u003ccode\u003e9f4b449\u003c/code\u003e\u003c/a\u003e Restore the live demo and replace heroku with apprunner (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/935\"\u003e#935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/298325122e11aeba87e6c8f16604e45d870649e7\"\u003e\u003ccode\u003e2983251\u003c/code\u003e\u003c/a\u003e fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/a74689370c393432debbe6285b3afb3e462aee58\"\u003e\u003ccode\u003ea746893\u003c/code\u003e\u003c/a\u003e allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/916\"\u003e#916\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/e747ad6db413c2d20c3eab79739e22ffde5930c7\"\u003e\u003ccode\u003ee747ad6\u003c/code\u003e\u003c/a\u003e Fixes issue with filter parameters not appearing in Swagger after upgrading t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/ee3c871501dad5f0585c8c62ac0659fedab999a1\"\u003e\u003ccode\u003eee3c871\u003c/code\u003e\u003c/a\u003e update Python, Django, and DRF versions \u0026amp; packaging configuration (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/922\"\u003e#922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/be6eeedcbebcb45151a9d18018d880d1fcdcf143\"\u003e\u003ccode\u003ebe6eeed\u003c/code\u003e\u003c/a\u003e Remove usage of pkg_resources (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/928\"\u003e#928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/axnsan12/drf-yasg/compare/1.21.10...1.21.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jellyfish` from 1.2.0 to 1.2.1\n\nUpdates `markdown` from 3.9 to 3.10\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/releases\"\u003emarkdown's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.10.0\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\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 href=\"https://github.com/Python-Markdown/markdown/blob/master/docs/changelog.md\"\u003emarkdown's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003etitle: Changelog\ntoc_depth: 2\u003c/p\u003e\n\u003ch1\u003ePython-Markdown Changelog\u003c/h1\u003e\n\u003cp\u003eAll notable changes to this project will be documented in this file.\u003c/p\u003e\n\u003cp\u003eThe format is based on \u003ca href=\"https://keepachangelog.com/en/1.1.0/\"\u003eKeep a Changelog\u003c/a\u003e,\nand this project adheres to the\n\u003ca href=\"https://packaging.python.org/en/latest/specifications/version-specifiers/\"\u003ePython Version Specification\u003c/a\u003e.\nSee the \u003ca href=\"https://github.com/Python-Markdown/markdown/blob/master/docs/contributing.md\"\u003eContributing Guide\u003c/a\u003e for details.\u003c/p\u003e\n\u003ch2\u003e[3.10.0] - 2025-11-03\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.9.0] - 2025-09-04\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFootnotes are now ordered by the occurrence of their references in the\ndocument. A new configuration option for the footnotes extension,\n\u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e, has been added to support restoring the previous\nbehavior of ordering footnotes by the occurrence of definitions (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1367\"\u003e#1367\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure inline processing iterates through elements in document order (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1546\"\u003e#1546\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix handling of incomplete HTML tags in code spans in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1547\"\u003e#1547\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.8.2] - 2025-06-19\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003ecodecs\u003c/code\u003e deprecation in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed comment parsing in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed declarations in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed HTML tag \u003ccode\u003e\u0026lt;foo\u003c/code\u003e and Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\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 href=\"https://github.com/Python-Markdown/markdown/commit/22e89c1fc346f72218a10e392a0c3b4731912522\"\u003e\u003ccode\u003e22e89c1\u003c/code\u003e\u003c/a\u003e Bump version to 3.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/c138aea5139a6aceae05bb957e866d9ce7577b94\"\u003e\u003ccode\u003ec138aea\u003c/code\u003e\u003c/a\u003e + PY314 - PY39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/746f7f527b15f63845253e3b86947b806ef1b98f\"\u003e\u003ccode\u003e746f7f5\u003c/code\u003e\u003c/a\u003e cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/a5ee2b4aad05531898ab8fd726c7ece31ddadf8b\"\u003e\u003ccode\u003ea5ee2b4\u003c/code\u003e\u003c/a\u003e Revert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/5354daf618149f92580a1407c036115753c5df73\"\u003e\u003ccode\u003e5354daf\u003c/code\u003e\u003c/a\u003e Fix an HTML comment parsing case that can cause an infinite loop\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Python-Markdown/markdown/compare/3.9.0...3.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyyaml` from 6.0.2 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/yaml/pyyaml/releases\"\u003epyyaml's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14 and free-threading (experimental).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ehttps://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\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 href=\"https://github.com/yaml/pyyaml/blob/6.0.3/CHANGES\"\u003epyyaml's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e6.0.3 (2025-09-25)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/yaml/pyyaml/pull/864\"\u003eyaml/pyyaml#864\u003c/a\u003e -- Support for Python 3.14 and free-threading (experimental)\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 href=\"https://github.com/yaml/pyyaml/commit/49790e73684bebad1df05ef8d828fa12f685bffb\"\u003e\u003ccode\u003e49790e7\u003c/code\u003e\u003c/a\u003e Release 6.0.3 (\u003ca href=\"https://redirect.github.com/yaml/pyyaml/issues/889\"\u003e#889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xlsxwriter` from 3.2.8 to 3.2.9\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jmcnamara/XlsxWriter/blob/main/Changes\"\u003exlsxwriter's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.2.9 - September 16 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved the \u003ccode\u003epy.typed\u003c/code\u003e file since it was causing a lot of downstream CI\nfailures where consumers weren't handling the xlsxwriter types correctly or\ntaking them into account.\u003c/p\u003e\n\u003cp\u003eThe file will be re-added once the xlsxwriter typing is more comprehensive.\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 href=\"https://github.com/jmcnamara/XlsxWriter/commit/e943bee8c9cdf0661cfdb83d5497e0725390e41e\"\u003e\u003ccode\u003ee943bee\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/392bd9e6572785394c6553e2d4f7ae2bb80782f4\"\u003e\u003ccode\u003e392bd9e\u003c/code\u003e\u003c/a\u003e typing: remove py.typed file\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/jmcnamara/XlsxWriter/compare/RELEASE_3.2.8...RELEASE_3.2.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xmlschema` from 4.1.0 to 4.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sissaschool/xmlschema/releases\"\u003exmlschema's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.2.0 (2025-10-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd arguments validation for schemas and validation methods (by validation contexts)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSchemaSettings\u003c/code\u003e dataclass for storing read-only settings for schema instances\nand for managing package default settings\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eblock\u003c/em\u003e argument to \u003ccode\u003eXMLResource\u003c/code\u003e class (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/464\"\u003e#464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_SCHEMA_SOURCES\u003c/em\u003e package limit (\u003ccode\u003e1000\u003c/code\u003e, applied to \u003ccode\u003eXsdGlobals\u003c/code\u003e global maps instances)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_XML_ELEMENTS\u003c/em\u003e package limit (\u003ccode\u003e1,000,000\u003c/code\u003e, applied to non-lazy \u003ccode\u003eXMLResource\u003c/code\u003e instances)\u003c/li\u003e\n\u003cli\u003eReduce \u003cem\u003eMAX_XML_DEPTH\u003c/em\u003e limit to 1000 and apply it to all \u003ccode\u003eXMLResource\u003c/code\u003e instances\u003c/li\u003e\n\u003cli\u003eFix for substitute match in case of unexpected child (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\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 href=\"https://github.com/sissaschool/xmlschema/blob/master/CHANGELOG.rst\"\u003exmlschema's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ccode\u003ev4.2.0\u003c/code\u003e_ (2025-10-14)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd arguments validation for schemas and validation methods (by validation contexts)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSchemaSettings\u003c/code\u003e dataclass for storing read-only settings for schema instances\nand for managing package default settings\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eblock\u003c/em\u003e argument to \u003ccode\u003eXMLResource\u003c/code\u003e class (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/464\"\u003e#464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_SCHEMA_SOURCES\u003c/em\u003e package limit (\u003ccode\u003e1000\u003c/code\u003e, applied to \u003ccode\u003eXsdGlobals\u003c/code\u003e global maps instances)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_XML_ELEMENTS\u003c/em\u003e package limit (\u003ccode\u003e1,000,000\u003c/code\u003e, applied to non-lazy \u003ccode\u003eXMLResource\u003c/code\u003e instances)\u003c/li\u003e\n\u003cli\u003eReduce \u003cem\u003eMAX_XML_DEPTH\u003c/em\u003e limit to 1000 and apply it to all \u003ccode\u003eXMLResource\u003c/code\u003e instances\u003c/li\u003e\n\u003cli\u003eFix for substitute match in case of unexpected child (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\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 href=\"https://github.com/sissaschool/xmlschema/commit/2783030fcdcd5307563822906862a9e7088931b2\"\u003e\u003ccode\u003e2783030\u003c/code\u003e\u003c/a\u003e Bump minor release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/7c77a12f0fe16c8da0256a0f13281a03e4a0f717\"\u003e\u003ccode\u003e7c77a12\u003c/code\u003e\u003c/a\u003e Include publiccode.yml validation workflow for CI and README changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/04c19d54d4578f34a0c04d6cc82daa8d3ef9d90c\"\u003e\u003ccode\u003e04c19d5\u003c/code\u003e\u003c/a\u003e Fix XsdGroup.match_element (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/dd4f279e56b8a5ce89f78a6c88337f5032af0b2f\"\u003e\u003ccode\u003edd4f279\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/463\"\u003e#463\u003c/a\u003e from publiccode-pr-bot/chore/add-publiccode-parser-ac...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/1bd7aa6eebf4947e7ae76e47a2f706b58fed22cd\"\u003e\u003ccode\u003e1bd7aa6\u003c/code\u003e\u003c/a\u003e Update GitHub workflow for CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/76b0f67e900777166bcd3773cc109efae933682d\"\u003e\u003ccode\u003e76b0f67\u003c/code\u003e\u003c/a\u003e Patch mypy tests with protocols\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/28727bb0af89f129d59772550c6998164c37aeff\"\u003e\u003ccode\u003e28727bb\u003c/code\u003e\u003c/a\u003e Update docs and release info\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/e4131eaf6bc1a223292f3f19e78573a4317d131a\"\u003e\u003ccode\u003ee4131ea\u003c/code\u003e\u003c/a\u003e Add from_settings() class method to schemas\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/0aea8debef13b62156e7297bdc54198057ea3611\"\u003e\u003ccode\u003e0aea8de\u003c/code\u003e\u003c/a\u003e Rewrite validation contexts as normal classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/d443d7ba0e3de8fad6d6df8f314b12735af4bac3\"\u003e\u003ccode\u003ed443d7b\u003c/code\u003e\u003c/a\u003e Full validation of context arguments\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sissaschool/xmlschema/compare/v4.1.0...v4.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lark` from 1.2.2 to 1.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lark-parser/lark/releases\"\u003elark's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.3.1 - Bugfix + source build now contains complete project data\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix: Restore support for custom input, alongside text and TextSlice by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1562\"\u003elark-parser/lark#1562\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep sdist in sync with git (include all files in source build, including docs, tests and examples) by \u003ca href=\"https://github.com/chanicpanic\"\u003e\u003ccode\u003e@​chanicpanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1561\"\u003elark-parser/lark#1561\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/lark-parser/lark/compare/1.3.0...1.3.1\"\u003ehttps://github.com/lark-parser/lark/compare/1.3.0...1.3.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e1.3.0 - Introduces text-slices, Earley fix, and various small improvements\u003c/h2\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLark can now parse in sections of strings, using \u003ccode\u003eTextSlice\u003c/code\u003e, as a faster alternative to creating a \u0026quot;copy-slice\u0026quot; with \u003ccode\u003es[i:j]\u003c/code\u003e. \u003ca href=\"https://lark-parser.readthedocs.io/en/latest/classes.html#lark.utils.TextSlice\"\u003eLearn more\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded support to \u003ccode\u003ematch\u003c/code\u003e on Tree instances\u003c/li\u003e\n\u003cli\u003eWhen serializing a Lark instance, added the option to include the grammar object (before compilation).\u003c/li\u003e\n\u003cli\u003eAdded convenience method \u003ccode\u003eTree.find_token()\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix of an edge case in Earley related to representation of ambiguity.\u003c/li\u003e\n\u003cli\u003eBugfixes in the standalone parser related to imports\u003c/li\u003e\n\u003cli\u003eBugfix in indenter - now dedents always contain line information\u003c/li\u003e\n\u003cli\u003eVarious small bugfixes (see PR list below)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFull list of PRs\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDocs: Rephrase v_args() documentation to underline it only applies to Transformer classes by \u003ca href=\"https://github.com/skepppy\"\u003e\u003ccode\u003e@​skepppy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1458\"\u003elark-parser/lark#1458\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTiny refactor for PR \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1451\"\u003e#1451\u003c/a\u003e by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1459\"\u003elark-parser/lark#1459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEarley: share nodes created by the scanner with the completer by \u003ca href=\"https://github.com/chanicpanic\"\u003e\u003ccode\u003e@​chanicpanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1451\"\u003elark-parser/lark#1451\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter error in Lark.parse when using on_error when parser!=lalr (issue \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1311\"\u003e#1311\u003c/a\u003e) by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1460\"\u003elark-parser/lark#1460\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eSymbol.__eq__\u003c/code\u003e to return false when comparing with None by \u003ca href=\"https://github.com/weaversam8\"\u003e\u003ccode\u003e@​weaversam8\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1481\"\u003elark-parser/lark#1481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMention internal/external transformers in the documentation by \u003ca href=\"https://github.com/odanoburu\"\u003e\u003ccode\u003e@​odanoburu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1486\"\u003elark-parser/lark#1486\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Tree.find_token() method by \u003ca href=\"https://github.com/makukha\"\u003e\u003ccode\u003e@​makukha\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1467\"\u003elark-parser/lark#1467\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eType \u003ccode\u003eTerminal.__init__\u003c/code\u003e by \u003ca href=\"https://github.com/Liam-DeVoe\"\u003e\u003ccode\u003e@​Liam-DeVoe\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1503\"\u003elark-parser/lark#1503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd guidance on handling comments in languages with significant indentation by \u003ca href=\"https://github.com/nchammas\"\u003e\u003ccode\u003e@​nchammas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1502\"\u003elark-parser/lark#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Small fix for PR 1507 by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1508\"\u003elark-parser/lark#1508\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd note on binding power of numeric quantifiers by \u003ca href=\"https://github.com/414owen\"\u003e\u003ccode\u003e@​414owen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1507\"\u003elark-parser/lark#1507\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrap functools.partial in staticmethod() to add compatibility with Python 3.14 by \u003ca href=\"https://github.com/hrnciar\"\u003e\u003ccode\u003e@​hrnciar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1483\"\u003elark-parser/lark#1483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix generic type of Transformer_InPlaceRecursive by \u003ca href=\"https://github.com/lbhm\"\u003e\u003ccode\u003e@​lbhm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1518\"\u003elark-parser/lark#1518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded TextSlice; Lark can now parse/lex a text-slice by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1452\"\u003elark-parser/lark#1452\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport match on tree by \u003ca href=\"https://github.com/colmmurphyxyz\"\u003e\u003ccode\u003e@​colmmurphyxyz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1521\"\u003elark-parser/lark#1521\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: Updated link of DSL article to a new version by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1529\"\u003elark-parser/lark#1529\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebetter error messages for shift/reduct conflicts by \u003ca href=\"https://github.com/skogsbaer\"\u003e\u003ccode\u003e@​skogsbaer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1531\"\u003elark-parser/lark#1531\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSerialize Lark.grammar (fixes issue \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1472\"\u003e#1472\u003c/a\u003e) by \u003ca href=\"https://github.com/NasalDaemon\"\u003e\u003ccode\u003e@​NasalDaemon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1506\"\u003elark-parser/lark#1506\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes for PR \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1506\"\u003e#1506\u003c/a\u003e, which adds the option to cache the grammar definition by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1540\"\u003elark-parser/lark#1540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix in indenter - now always creating dedents with line information by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1547\"\u003elark-parser/lark#1547\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix: issue when unpickling in the standalone parser, due to lingering Token instances by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1553\"\u003elark-parser/lark#1553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInclude missing import in standalone parser by \u003ca href=\"https://github.com/pdeibert\"\u003e\u003ccode\u003e@​pdeibert\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1541\"\u003elark-parser/lark#1541\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVersion bump (1.3.0) by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1554\"\u003elark-parser/lark#1554\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=\"https://github.com/skepppy\"\u003e\u003ccode\u003e@​skepppy\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1458\"\u003elark-parser/lark#1458\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 href=\"https://github.com/lark-parser/lark/commit/f79772cd4c6d2076b5dc01f399dbb816cc484f77\"\u003e\u003ccode\u003ef79772c\u003c/code\u003e\u003c/a\u003e Version bump (1.3.1)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/b64e9f42c93e9c05c17fac694ae5cbd18c041a2b\"\u003e\u003ccode\u003eb64e9f4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1561\"\u003e#1561\u003c/a\u003e from chanicpanic/sdist-git\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/ad0ea5f14ee4afbaf617cc088e1b8fe2fcff08fc\"\u003e\u003ccode\u003ead0ea5f\u003c/code\u003e\u003c/a\u003e Update MANIFEST.in\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/1f6f03c10540d4646c1a70b1da16a90592d7ec58\"\u003e\u003ccode\u003e1f6f03c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1562\"\u003e#1562\u003c/a\u003e from lark-parser/issue1560\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/7c365de586325620a20f2753b36ffa313c1d9b45\"\u003e\u003ccode\u003e7c365de\u003c/code\u003e\u003c/a\u003e Added custom input test (based on code from examples)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/19bbbee5d79845123f7f07ab716ec88185e2fa9d\"\u003e\u003ccode\u003e19bbbee\u003c/code\u003e\u003c/a\u003e Bugfix: Restore support for custom input, alongside text and TextSlice (Issue...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/dbcb60e888c5c8a3656c9f0c1ef0f928bb7c5ad6\"\u003e\u003ccode\u003edbcb60e\u003c/code\u003e\u003c/a\u003e Keep sdist in sync with git\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/e332c2df2f7d400460a5f1204d9bc36b49b25635\"\u003e\u003ccode\u003ee332c2d\u003c/code\u003e\u003c/a\u003e Version bump (1.3.0)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/aa5666c30e255257b0c36ef93c80d800f84a04ca\"\u003e\u003ccode\u003eaa5666c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1541\"\u003e#1541\u003c/a\u003e from pdeibert/master\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/41934d390dd7661a82df5ed28bd75655fe797cf7\"\u003e\u003ccode\u003e41934d3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1553\"\u003e#1553\u003c/a\u003e from lark-parser/issue1552\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lark-parser/lark/compare/1.2.2...1.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `shapely` from 2.0.7 to 2.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/shapely/shapely/releases\"\u003eshapely's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.1.2\u003c/h2\u003e\n\u003cp\u003eWheels are available for Python 3.14 (and still include GEOS 3.13.1).\u003c/p\u003e\n\u003ch2\u003e2.1.1\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix performance degradation calling shapely functions (caused by deprecation of certain positional arguments) (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2283\"\u003e#2283\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix crash caused by \u003ccode\u003efrom_ragged_array()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2291\"\u003e#2291\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix compilation error building with recent LLVM toolchain (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2293\"\u003e#2293\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFor a full changelog , see \u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-1\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.1.0\u003c/h2\u003e\n\u003cp\u003eShapely 2.1.0 is a feature release with various new functions, improvements and bug fixes. Highlights include initial support for geometries with M or ZM values, functionality for coverage validation and simplification, and a set of new top-level functions.\u003c/p\u003e\n\u003cp\u003eShapely supports Python \u0026gt;= 3.10, and binary wheels on PyPI include GEOS 3.13.1 and are now also provided for musllinux (Alpine) x86_64 platforms.\u003c/p\u003e\n\u003cp\u003eFor a full changelog, see \u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.1.0rc1\u003c/h2\u003e\n\u003cp\u003eShapely version 2.1.0 is a major release featuring various new functions, improvements and bug fixes. This is a first release candidate.\u003c/p\u003e\n\u003cp\u003eFor a full changelog, see \u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0-unreleased\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0-unreleased\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 href=\"https://github.com/shapely/shapely/blob/main/CHANGES.txt\"\u003eshapely's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.1.2 (unreleased)\u003c/h2\u003e\n\u003cp\u003eImproved performance of the Geometry -\u0026gt; float scalar operations: \u003ccode\u003earea\u003c/code\u003e, \u003ccode\u003elength\u003c/code\u003e,\n\u003ccode\u003eminimum_clearance\u003c/code\u003e, \u003ccode\u003ex\u003c/code\u003e, \u003ccode\u003ey\u003c/code\u003e, \u003ccode\u003ez\u003c/code\u003e and \u003ccode\u003em\u003c/code\u003e. Benchmarks showed a change of call duration\nfrom 2.6 microseconds to 0.2 microseconds (on the \u003ccode\u003ePoint.x\u003c/code\u003e attribute).\u003c/p\u003e\n\u003ch2\u003e2.1.2 (2025-09-24)\u003c/h2\u003e\n\u003cp\u003eWheels are available for Python 3.14 (and still include GEOS 3.13.1).\u003c/p\u003e\n\u003ch2\u003e2.1.1 (2025-05-19)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix performance degradation calling shapely functions (caused by deprecation\nof certain positional arguments) (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2283\"\u003e#2283\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix crash caused by \u003ccode\u003efrom_ragged_array()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2291\"\u003e#2291\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix compilation error building with recent LLVM toolchain (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2293\"\u003e#2293\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.0 (2025-04-03)\u003c/h2\u003e\n\u003cp\u003eShapely 2.1.0 is a feature release with various new functions,\nimprovements and bug fixes. Highlights include initial support for geometries\nwith M or ZM values, functionality for coverage validation and\nsimplification, and a set of new top-level functions.\u003c/p\u003e\n\u003cp\u003eShapely supports Python \u0026gt;= 3.10, and binary wheels on PyPI include GEOS 3.13.1\nand are now also provided for musllinux (Alpine) x86_64 platforms.\u003c/p\u003e\n\u003cp\u003eFor a full changelog, see\n\u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/5fb639d1056888d135fe56bfaf750c9648addeec\"\u003e\u003ccode\u003e5fb639d\u003c/code\u003e\u003c/a\u003e RLS: 2.1.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/70509a1bee5ebd6637cda98b5c9d83707c341888\"\u003e\u003ccode\u003e70509a1\u003c/code\u003e\u003c/a\u003e DOC/RLS: indicate Python 3.14 support in pyproject.toml and release notes for...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/5c572b622027f6917c75afd728f201a144fb597d\"\u003e\u003ccode\u003e5c572b6\u003c/code\u003e\u003c/a\u003e CI: add testing with GEOS 3.14 and Python 3.14 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2330\"\u003e#2330\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/a9093336b1ea77559d44148a7f1ed92ab3bc2999\"\u003e\u003ccode\u003ea909333\u003c/code\u003e\u003c/a\u003e Bump pypa/cibuildwheel from 3.1.3 to 3.2.0 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2328\"\u003e#2328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/2086d4428e29da17bafc684acbfb04bb537ce573\"\u003e\u003ccode\u003e2086d44\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2326\"\u003e#2326\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/50c1cf30be0e37081991b6d5a5dc3531cfbe35da\"\u003e\u003ccode\u003e50c1cf3\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4 to 5 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2321\"\u003e#2321\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/39490ab685a42a2c189f2ce7a45b7d07053e8e8f\"\u003e\u003ccode\u003e39490ab\u003c/code\u003e\u003c/a\u003e TST: update test_coverage_union_overlapping_inputs for upstream GEOS change (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/5ef437c898b54f723ad0e4a8b6b513b9cc5d68a2\"\u003e\u003ccode\u003e5ef437c\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2320\"\u003e#2320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/7b5ff3d24b7889d35f96ee3ae9ec26250b3d6147\"\u003e\u003ccode\u003e7b5ff3d\u003c/code\u003e\u003c/a\u003e BLD: add Python 3.14 wheels [Bump pypa/cibuildwheel from 3.0.1 to 3.1.3] (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2316\"\u003e#2316\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/480dbb14f47b685e95c03654983405185c15babd\"\u003e\u003ccode\u003e480dbb1\u003c/code\u003e\u003c/a\u003e TST: update frechet_distance densify test for latest GEOS main (densify\u0026gt;0.001...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/shapely/shapely/compare/2.0.7...2.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-two-factor-auth[phonenumbers]` from 1.17.0 to 1.18.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jazzband/django-two-factor-auth/releases\"\u003edjango-two-factor-auth[phonenumbers]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.18.1\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew translations for Azerbaijani and Serbian\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.18.0\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocumentation for setting yubikey support forgot to inform users they would\nneed to add our yubikey plugin to \u003ccode\u003eINSTALLED_APPS\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRemove reference to release-notes that had been missed, docs now build\nwithout warnings\u003c/li\u003e\n\u003cli\u003eWebAuthn: avoid submitting the wrong form\u003c/li\u003e\n\u003cli\u003eEmail gateway: tell user to use correct django-otp plugin\u003c/li\u003e\n\u003cli\u003eFix infinite redirect on admin site with AdminSiteOTPRequiredMixin\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow qrcode 8.x.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ephonenumbers\u003c/code\u003e is no longer a hard requirement for users who don't require it.\u003c/li\u003e\n\u003cli\u003eChange \u003ccode\u003eEmailDevice.confirmed\u003c/code\u003e default to \u003ccode\u003eFalse\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAny \u003ccode\u003eStaticDevice\u003c/code\u003e can be used as backup tokens, not just those labelled\n\u0026quot;backup\u0026quot;\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Django 5.2\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.13\u003c/li\u003e\n\u003cli\u003eDjango check for \u003ccode\u003eINSTALLED_APPS\u003c/code\u003e to make sure \u003ccode\u003etwo_factor\u003c/code\u003e is present and\ncomes before its plugins\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8\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 href=\"https://github.com/jazzband/django-two-factor-auth/blob/master/CHANGELOG.md\"\u003edjango-two-factor-auth[phonenumbers]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.18.1\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew translations for Azerbaijani and Serbian\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.18.0\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocumentation for setting yubikey support forgot to inform users they would\nneed to add our yubikey plugin to \u003ccode\u003eINSTALLED_APPS\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRemove reference to release-notes that had been missed, docs now build\nwithout warnings\u003c/li\u003e\n\u003cli\u003eWebAuthn: avoid submitting the wrong form\u003c/li\u003e\n\u003cli\u003eEmail gateway: tell user to use correct django-otp plugin\u003c/li\u003e\n\u003cli\u003eFix infinite redirect on admin site with AdminSiteOTPRequiredMixin\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow qrcode 8.x.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ephonenumbers\u003c/code\u003e is no longer a hard requirement for users who don't require it.\u003c/li\u003e\n\u003cli\u003eChange \u003ccode\u003eEmailDevice.confirmed\u003c/code\u003e default to \u003ccode\u003eFalse\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAny \u003ccode\u003eStaticDevice\u003c/code\u003e can be used as backup tokens, not just those labelled\n\u0026quot;backup\u0026quot;\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Django 5.2\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.13\u003c/li\u003e\n\u003cli\u003eDjango check for \u003ccode\u003eINSTALLED_APPS\u003c/code\u003e to make sure \u003ccode\u003etwo_factor\u003c/code\u003e is present and\ncomes before its plugins\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8\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 href=\"https://github.com/jazzband/django-two-factor-auth/commit/38a6ba7b6fb579b3465d66f33c4e2f25ffad28c0\"\u003e\u003ccode\u003e38a6ba7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/django-two-factor-auth/issues/778\"\u003e#778\u003c/a\u003e from claudep/missing_trans\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/004c93839e331e72740c4e6e73516d05afbca855\"\u003e\u003ccode\u003e004c938\u003c/code\u003e\u003c/a\u003e Fixes \u003ca href=\"https://redirect.github.com/jazzband/django-two-factor-auth/issues/777\"\u003e#777\u003c/a\u003e - Add missing Azerbaijani and Serbian translations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/59f44669649f281ca9b25a2beba438609f72a3a5\"\u003e\u003ccode\u003e59f4466\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/django-two-factor-auth/issues/776\"\u003e#776\u003c/a\u003e from jazzband/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/d5517043e9f9cdec4e4850f0f33e28eea485fb79\"\u003e\u003ccode\u003ed551704\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/7405b6fd545ddbbd67d28292fca2c8ef6cf0de92\"\u003e\u003ccode\u003e7405b6f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/django-two-factor-auth/issues/774\"\u003e#774\u003c/a\u003e from moggers87/release-1.18.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/b47945c8188e46ad2f64bf929c1a745682b6de15\"\u003e\u003ccode\u003eb47945c\u003c/code\u003e\u003c/a\u003e Update CHANGELOG with latest changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/b20741c609ca3fd3fe52dd3cfe1ebc3e98ce2383\"\u003e\u003ccode\u003eb20741c\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into release-1.18.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/966dab4c5bdf11b88e42bc820c8adea684b4e0d0\"\u003e\u003ccode\u003e966dab4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/django-two-factor-auth/issues/775\"\u003e#775\u003c/a\u003e from claudep/phoneplugin2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/9c72f871f0ebd3bede20d823372b02608480c4c7\"\u003e\u003ccode\u003e9c72f87\u003c/code\u003e\u003c/a\u003e Refs \u003ca href=\"https://redirect.github.com/jazzband/django-two-factor-auth/issues/469\"\u003e#469\u003c/a\u003e - Only import phonenumber functions when plugin is installed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/ec0923bf400d6faf3c82acff312c1fe5add70047\"\u003e\u003ccode\u003eec0923b\u003c/code\u003e\u003c/a\u003e Pull latest translations from Transifex\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jazzband/django-two-factor-auth/compare/1.17.0...1.18.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `boto3` from 1.40.30 to 1.40.69\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/aecb2bb02c0af646e07fdc13751e478d4611c992\"\u003e\u003ccode\u003eaecb2bb\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.69'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/ac7646e2bdbf42c6485e291236b65c6b34962311\"\u003e\u003ccode\u003eac7646e\u003c/code\u003e\u003c/a\u003e Bumping version to 1.40.69\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/f16254efa15f61e398a4a711b2f2962f45d9535a\"\u003e\u003ccode\u003ef16254e\u003c/code\u003e\u003c/a\u003e Add changelog entries from botocore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/17eb00486e0dfa6fc5fab23b7c8256f3d37c97fe\"\u003e\u003ccode\u003e17eb004\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.68'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/6a34b30475f63c9eb7a84d7eaf7f44908468cf77\"\u003e\u003ccode\u003e6a34b30\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.68' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/3dc1e85172db100b0a5597e603ff046388bedd61\"\u003e\u003ccode\u003e3dc1e85\u003c/code\u003e\u003c/a\u003e Bumping version to 1.40.68\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/014e41eeaa6eee59837c8a0aee60becc73a009a6\"\u003e\u003ccode\u003e014e41e\u003c/code\u003e\u003c/a\u003e Add changelog entries from botocore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/6a72deb2a996de0d017890192ef3028fff1fcb20\"\u003e\u003ccode\u003e6a72deb\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.67'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/f9c83204a24a05e6d0c386643682c21518215c8b\"\u003e\u003ccode\u003ef9c8320\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.67' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/4a88e5069f58107977d514cc93bdbccd08493976\"\u003e\u003ccode\u003e4a88e50\u003c/code\u003e\u003c/a\u003e Bumping version to 1.40.67\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boto/boto3/compare/1.40.30...1.40.69\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uwsgi` from 2.0.30 to 2.0.31\n\nUpdates `coverage` from 7.10.6 to 7.11.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/releases\"\u003ecoverage's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.11.3\u003c/h2\u003e\n\u003ch2\u003eVersion 7.11.3 — 2025-11-09\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the 7.11.1 changes meant that conflicts between a requested measurement core and other settings would raise an error. This was a breaking change from previous behavior, as reported in \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2076\"\u003eissue 2076\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2078\"\u003eissue 2078\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe previous behavior has been restored: when the requested core conflicts with other settings, another core is used instead, and a warning is issued.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFor contributors: the repo has moved from Ned’s \u003ca href=\"https://github.com/nedbat\"\u003enedbat GitHub account\u003c/a\u003e to the \u003ca href=\"https://github.com/coveragepy\"\u003ecoveragepy GitHub organization\u003c/a\u003e. The default branch has changed from master to main.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e:arrow_right:  PyPI page: \u003ca href=\"https://pypi.org/project/coverage/7.11.3\"\u003ecoverage 7.11.3\u003c/a\u003e.\n:arrow_right:  To install: \u003ccode\u003epython3 -m pip install coverage==7.11.3\u003c/code\u003e\u003c/p\u003e\n\u003ch2\u003e7.11.2\u003c/h2\u003e\n\u003ch2\u003eVersion 7.11.2 — 2025-11-08\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: using the “sysmon” measurement core in 7.11.1, if Python code was claimed to come from a non-Python file, a \u003ccode\u003eNotPython\u003c/code\u003e exception could be raised. This could happen for example with Jinja templates compiled to Python, as reported in \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2077\"\u003eissue 2077\u003c/a\u003e. This is now fixed.\u003c/li\u003e\n\u003cli\u003eDoc: corrected the first entry in the 7.11.1 changelog.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e:arrow_right:  PyPI page: \u003ca href=\"https://pypi.org/project/coverage/7.11.2\"\u003ecoverage 7.11.2\u003c/a\u003e.\n:arrow_right:  To install: \u003ccode\u003epython3 -m pip install coverage==7.11.2\u003c/code\u003e\u003c/p\u003e\n\u003ch2\u003e7.11.1\u003c/h2\u003e\n\u003ch2\u003eVersion 7.11.1 — 2025-11-07\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: some chanages to details of how the measurement core is chosen, and how conflicting settings are handled. The “sysmon” core cannot be used with some conurrency settings, with dynamic context, and in Python 3.12/3.13, with branch measurement.\n\u003cul\u003e\n\u003cli\u003eIf the core is not specified and defaults to “sysmon” (Python 3.14+), but other settings conflict with sysmon, then the “ctrace” core will be used instead with no warning. For concurrency conflicts, this used to produce an error, as described in \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2064\"\u003eissue 2064\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eIf the “sysmon” core is explicitly requested in your configuration, but other settings conflict, an error is now raised. This used to produce a warning.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix: some multi-line case clauses or for loops (and probably other constructs) could cause incorrect claims of missing branches with the sys.monitoring core, as described in \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2070\"\u003eissue 2070\u003c/a\u003e. This is now fixed.\u003c/li\u003e\n\u003cli\u003eFix: when running in pytest under coverage, a \u003ccode\u003ebreakpoint()\u003c/code\u003e would stop in the wrong frame, one level down from where it should, as described in \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/1420\"\u003eissue 1420\u003c/a\u003e. This was due to a coverage change in v6.4.1 that seemed to give a slight performance improvement, but I couldn’t reproduce the performance gain, so it’s been reverted, fixing the debugger problem.\u003c/li\u003e\n\u003cli\u003eA new debug option \u003ccode\u003e--debug=core\u003c/code\u003e shows which core is in use and why.\u003c/li\u003e\n\u003cli\u003eSplit \u003ccode\u003esqlite\u003c/code\u003e debugging information out of the \u003ccode\u003esys\u003c/code\u003e \u003ca href=\"https://github.com/coveragepy/coveragepy/blob/HEAD/commands/cmd_debug.rst#cmd-debug\"\u003ecoverage debug\u003c/a\u003e and \u003ca href=\"https://github.com/coveragepy/coveragepy/blob/HEAD/commands/cmd_debug.rst#cmd-run-debug\"\u003e--debug option\u003c/a\u003e options since it’s bulky and not very useful.\u003c/li\u003e\n\u003cli\u003eUpdated the \u003ca href=\"https://coverage.readthedocs.io/en/latest/howitworks.html#howitworks\"\u003eHow coverage.py works\u003c/a\u003e page to better describe the three different measurement cores.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e:arrow_right:  PyPI page: \u003ca href=\"https://pypi.org/project/coverage/7.11.1\"\u003ecoverage 7.11.1\u003c/a\u003e.\n:arrow_right:  To install: \u003ccode\u003epython3 -m pip install coverage==7.11.1\u003c/code\u003e\u003c/p\u003e\n\u003ch2\u003e7.11.1\u003c/h2\u003e\n\u003ch2\u003eVersion 7.11.1 — 2025-11-07\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: some chanages to details of how the measurement core is chosen, and how conflicting settings are handled. The “sysmon” core cannot be used with some conurrency settings, with dynamic context, and in Python 3.12/3.13, with branch measurement.\n\u003cul\u003e\n\u003cli\u003eIf the core is not specified and defaults to “sysmon” (Python 3.14+), but other settings conflict with sysmon, then the “ctrace” core will be used instead with no warning. For concurrency conflicts, this used to produce an error, as described in \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2064\"\u003eissue 2064\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eIf the “sysmon” core is explicitly requested in your configuration, but other settings conflict, an error is now raised. This used to produce a warning.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix: some multi-line case clauses or for loops (and probably other constructs) could cause incorrect claims of missing branches with the sys.monitoring core, as described in \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2070\"\u003eissue 2070\u003c/a\u003e. This is now fixed.\u003c/li\u003e\n\u003cli\u003eFix: when running in pytest under coverage, a \u003ccode\u003ebreakpoint()\u003c/code\u003e would stop in the wrong frame, one level down from where it should, as described in \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/1420\"\u003eissue 1420\u003c/a\u003e. This was due to a coverage change in v6.4.1 that seemed to give a slight performance improve...\n\n_Description has been truncated_","html_url":"https://github.com/SEED-platform/seed/pull/5136","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/SEED-platform%2Fseed/issues/5136","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/5136/packages"}},{"old_version":"2.0.30","new_version":"2.0.31","update_type":"patch","path":null,"pr_created_at":"2025-10-20T19:03:05.000Z","version_change":"2.0.30 → 2.0.31","issue":{"uuid":"3533575170","node_id":"PR_kwDOELezjM6usTcY","number":1136,"state":"closed","title":"chore: bump the minor-and-patch group across 1 directory with 9 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2025-12-08T19:02:00.000Z","author_association":null,"state_reason":null,"created_at":"2025-10-20T19:03:05.000Z","updated_at":"2025-12-08T19:02:02.000Z","time_to_close":4233535,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore: bump","group_name":"minor-and-patch","update_count":9,"packages":[{"name":"django","old_version":"5.0.14","new_version":"5.2.7","repository_url":"https://github.com/django/django"},{"name":"django-cors-headers","old_version":"4.7.0","new_version":"4.9.0","repository_url":"https://github.com/adamchainz/django-cors-headers"},{"name":"drf-yasg","old_version":"1.21.10","new_version":"1.21.11","repository_url":"https://github.com/axnsan12/drf-yasg"},{"name":"psycopg2-binary","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"uwsgi","old_version":"2.0.30","new_version":"2.0.31"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"msal","old_version":"1.33.0","new_version":"1.34.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"whitenoise","old_version":"6.9.0","new_version":"6.11.0","repository_url":"https://github.com/evansd/whitenoise"},{"name":"azure-storage-blob","old_version":"12.26.0","new_version":"12.27.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-and-patch group with 9 updates in the /cit-api directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [django](https://github.com/django/django) | `5.0.14` | `5.2.7` |\n| [django-cors-headers](https://github.com/adamchainz/django-cors-headers) | `4.7.0` | `4.9.0` |\n| [drf-yasg](https://github.com/axnsan12/drf-yasg) | `1.21.10` | `1.21.11` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [uwsgi](https://uwsgi-docs.readthedocs.io/en/latest/) | `2.0.30` | `2.0.31` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.33.0` | `1.34.0` |\n| [whitenoise](https://github.com/evansd/whitenoise) | `6.9.0` | `6.11.0` |\n| [azure-storage-blob](https://github.com/Azure/azure-sdk-for-python) | `12.26.0` | `12.27.0` |\n\n\nUpdates `django` from 5.0.14 to 5.2.7\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/3cff3209e35a560f94801d428cf7f2a3ecb2a051\"\u003e\u003ccode\u003e3cff320\u003c/code\u003e\u003c/a\u003e [5.2.x] Bumped version for 5.2.7 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/ed8fc39d77465eddbde1191a054ae965f6a8a584\"\u003e\u003ccode\u003eed8fc39\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2025-59682 -- Fixed potential partial directory-traversal v...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/52fbae0a4dbbe5faa59827f8f05694a0065cc135\"\u003e\u003ccode\u003e52fbae0\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2025-59681 -- Protected QuerySet.annotate(), alias(), aggre...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/1794cbf961f9ea54715fb094fe8adc80a5054947\"\u003e\u003ccode\u003e1794cbf\u003c/code\u003e\u003c/a\u003e [5.2.x] Made cosmetic edits to 5.2.7 release notes.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/81625a141e1feaaea877fc18876fdd7b6394442c\"\u003e\u003ccode\u003e81625a1\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36587\"\u003e#36587\u003c/a\u003e -- Clarified usage of \u003ccode\u003elist.insert()\u003c/code\u003e for upload handlers.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/6f3813e4b6e3db7fa3cc612c78f898142468bca9\"\u003e\u003ccode\u003e6f3813e\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/35877\"\u003e#35877\u003c/a\u003e, Refs \u003ca href=\"https://redirect.github.com/django/django/issues/36128\"\u003e#36128\u003c/a\u003e -- Documented unique constraint when migrat...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/10a2d3b837c5d8c1ac0cabd399ad7edcc66bfa8e\"\u003e\u003ccode\u003e10a2d3b\u003c/code\u003e\u003c/a\u003e [5.2.x] Added stub release notes and release date for 5.2.7, 5.1.13, and 4.2.25.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/b2773a39a34f0f0ca768fa1daaf8bf72fca56e06\"\u003e\u003ccode\u003eb2773a3\u003c/code\u003e\u003c/a\u003e [5.2.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/25508\"\u003e#25508\u003c/a\u003e -- Used QuerySet.\u003cstrong\u003erepr\u003c/strong\u003e in docs/ref/contrib/postgres/se...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/7554c54e5f02566520dee81c8b95f47429f1b553\"\u003e\u003ccode\u003e7554c54\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36581\"\u003e#36581\u003c/a\u003e -- Updated serialization examples from XML to JSON.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/2a2936c3e6444a0f37156773ca405cedaf28dea7\"\u003e\u003ccode\u003e2a2936c\u003c/code\u003e\u003c/a\u003e [5.2.x] Updated translations from Transifex.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/5.0.14...5.2.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-cors-headers` from 4.7.0 to 4.9.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/adamchainz/django-cors-headers/blob/main/CHANGELOG.rst\"\u003edjango-cors-headers's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.9.0 (2025-09-18)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Django 6.0.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.8.0 (2025-09-08)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14.\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 href=\"https://github.com/adamchainz/django-cors-headers/commit/a3a3ad28cb4527f5189fc8ea032a66b100befdc9\"\u003e\u003ccode\u003ea3a3ad2\u003c/code\u003e\u003c/a\u003e Version 4.9.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-cors-headers/commit/2f5a94bf62b58f3dd31f088902d0334bfa2bffdd\"\u003e\u003ccode\u003e2f5a94b\u003c/code\u003e\u003c/a\u003e Correct testing of Django 6.0 (\u003ca href=\"https://redirect.github.com/adamchainz/django-cors-headers/issues/1015\"\u003e#1015\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-cors-headers/commit/4356514815a722d6e1e63ea3315919097de57af5\"\u003e\u003ccode\u003e4356514\u003c/code\u003e\u003c/a\u003e Support Django 6.0 (\u003ca href=\"https://redirect.github.com/adamchainz/django-cors-headers/issues/1014\"\u003e#1014\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-cors-headers/commit/eeaa0419584a115d81e5ba0f3744eecd2161d2b6\"\u003e\u003ccode\u003eeeaa041\u003c/code\u003e\u003c/a\u003e Version 4.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-cors-headers/commit/b760e4d1c8fa84b7e90c9c96f9385bcf1ec0d01f\"\u003e\u003ccode\u003eb760e4d\u003c/code\u003e\u003c/a\u003e Support Python 3.14 (\u003ca href=\"https://redirect.github.com/adamchainz/django-cors-headers/issues/1013\"\u003e#1013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-cors-headers/commit/bf6abfbbacedfe134ae4ff96a5dd38d8f85dde7a\"\u003e\u003ccode\u003ebf6abfb\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/adamchainz/django-cors-headers/issues/1012\"\u003e#1012\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-cors-headers/commit/5d0c6512e8b1613c719ab383cad2dbfeda8902a0\"\u003e\u003ccode\u003e5d0c651\u003c/code\u003e\u003c/a\u003e Upgrade dependencies (\u003ca href=\"https://redirect.github.com/adamchainz/django-cors-headers/issues/1011\"\u003e#1011\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-cors-headers/commit/873fd5ff5c2c1c7b91eb012b51ffe15eac6f7201\"\u003e\u003ccode\u003e873fd5f\u003c/code\u003e\u003c/a\u003e Use uvx to run tox on GitHub Actions (\u003ca href=\"https://redirect.github.com/adamchainz/django-cors-headers/issues/1010\"\u003e#1010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-cors-headers/commit/f8aa330734c3e1627ccbb83cb79a332db29d42e4\"\u003e\u003ccode\u003ef8aa330\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/adamchainz/django-cors-headers/issues/1009\"\u003e#1009\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-cors-headers/commit/b04460f37cbf458984bb377d8e6afb56776c3465\"\u003e\u003ccode\u003eb04460f\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/adamchainz/django-cors-headers/issues/1008\"\u003e#1008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/adamchainz/django-cors-headers/compare/4.7.0...4.9.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `drf-yasg` from 1.21.10 to 1.21.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/axnsan12/drf-yasg/releases\"\u003edrf-yasg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.21.11\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/917\"\u003e#917\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/916\"\u003e#916\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/926\"\u003e#926\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/922\"\u003e#922\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/928\"\u003e#928\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/923\"\u003e#923\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/848\"\u003e#848\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/903\"\u003e#903\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 href=\"https://github.com/axnsan12/drf-yasg/blob/master/docs/changelog.rst\"\u003edrf-yasg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e#########\nChangelog\n#########\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.11\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (:pr:\u003ccode\u003e917\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (:pr:\u003ccode\u003e916\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (:pr:\u003ccode\u003e926\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (:pr:\u003ccode\u003e922\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (:pr:\u003ccode\u003e928\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (:pr:\u003ccode\u003e923\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (:pr:\u003ccode\u003e848\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (:pr:\u003ccode\u003e903\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.10\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix type hints when using postponed evaluation of annotations (PEP-563) (:pr:\u003ccode\u003e840\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update JSON \u0026amp; YAML renderers to not use a \u0026quot;.\u0026quot; in their format string (:pr:\u003ccode\u003e911\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix lint errors when comparing types with == instead of is (:pr:\u003ccode\u003e868\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update swagger-ui-dist to address CVE-2021-46708 (:pr:\u003ccode\u003e904\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.9\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Added support for zoneinfo object fields (:pr:\u003ccode\u003e908\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.8\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Python 3.11 and 3.12 support (:pr:\u003ccode\u003e891\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix pkg_resources version lookups for Python 3.9+ (:pr:\u003ccode\u003e891\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.7\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cem\u003eRelease date: Jul 20, 2023\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Added \u003ccode\u003edrf_yasg.inspectors.query.DrfAPICompatInspector\u003c/code\u003e (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Added \u003ccode\u003eDrfAPICompatInspector\u003c/code\u003e to serve as a replacement \u003ccode\u003eCoreAPICompatInspector\u003c/code\u003e (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow \u003ccode\u003eDEFAULT_SPEC_RENDERERS\u003c/code\u003e default renderers to be overriden in the settings (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fixed redoc source mapping (:pr:\u003ccode\u003e859\u003c/code\u003e)\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/f8cb2db70ca42fb709565f89fdd152b614dc865d\"\u003e\u003ccode\u003ef8cb2db\u003c/code\u003e\u003c/a\u003e Add version 1.21.11 details to the changelog (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/939\"\u003e#939\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/0c6d08d5ebc52e802e5e1acbabbadfe179d4087d\"\u003e\u003ccode\u003e0c6d08d\u003c/code\u003e\u003c/a\u003e Update the ruff lint rules (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/920\"\u003e#920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/055a74dc10128fd55a48f7f74f6b58ffcc48e83d\"\u003e\u003ccode\u003e055a74d\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 in the github-actions group (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/937\"\u003e#937\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/a8813ace8e39cc2c28a916053c74415e10db1425\"\u003e\u003ccode\u003ea8813ac\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 in the github-actions group (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/936\"\u003e#936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/9f4b44943ad930e23e979b80090102dfca1d588b\"\u003e\u003ccode\u003e9f4b449\u003c/code\u003e\u003c/a\u003e Restore the live demo and replace heroku with apprunner (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/935\"\u003e#935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/298325122e11aeba87e6c8f16604e45d870649e7\"\u003e\u003ccode\u003e2983251\u003c/code\u003e\u003c/a\u003e fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/a74689370c393432debbe6285b3afb3e462aee58\"\u003e\u003ccode\u003ea746893\u003c/code\u003e\u003c/a\u003e allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/916\"\u003e#916\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/e747ad6db413c2d20c3eab79739e22ffde5930c7\"\u003e\u003ccode\u003ee747ad6\u003c/code\u003e\u003c/a\u003e Fixes issue with filter parameters not appearing in Swagger after upgrading t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/ee3c871501dad5f0585c8c62ac0659fedab999a1\"\u003e\u003ccode\u003eee3c871\u003c/code\u003e\u003c/a\u003e update Python, Django, and DRF versions \u0026amp; packaging configuration (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/922\"\u003e#922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/be6eeedcbebcb45151a9d18018d880d1fcdcf143\"\u003e\u003ccode\u003ebe6eeed\u003c/code\u003e\u003c/a\u003e Remove usage of pkg_resources (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/928\"\u003e#928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/axnsan12/drf-yasg/compare/1.21.10...1.21.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2-binary` from 2.9.10 to 2.9.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2-binary's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix building when pg_config returns an empty string (:ticket:\u003ccode\u003e[#1599](https://github.com/psycopg/psycopg2/issues/1599)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eWheel package bundled with OpenSSL 1.1.1v.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.6\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\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 href=\"https://github.com/psycopg/psycopg2/commit/fd9ae8cad2bcfc3e7e9410e7b6f07cda8f4f05ec\"\u003e\u003ccode\u003efd9ae8c\u003c/code\u003e\u003c/a\u003e chore: bump to version 2.9.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d923840546942534f0956d9202f914fd9feac5fd\"\u003e\u003ccode\u003ed923840\u003c/code\u003e\u003c/a\u003e chore: update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d42dc7169d3cd93517e282e9ef5dc2a2b40650a2\"\u003e\u003ccode\u003ed42dc71\u003c/code\u003e\u003c/a\u003e Merge branch 'fix-1791'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4fde6560c32f06ad1304404c9f7f86148dcc4be0\"\u003e\u003ccode\u003e4fde656\u003c/code\u003e\u003c/a\u003e fix: avoid failed assert passing more arguments than placeholders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/8308c19d6af0d904b313997539ed33415990a74e\"\u003e\u003ccode\u003e8308c19\u003c/code\u003e\u003c/a\u003e fix: drop warning about the use of deprecated PyWeakref_GetObject function\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1a1eabf098a3374409bb2ab4b594777b900f396d\"\u003e\u003ccode\u003e1a1eabf\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/github-script from 7 to 8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/897af8b38beda851d7257dfc525129e37c0ec9e0\"\u003e\u003ccode\u003e897af8b\u003c/code\u003e\u003c/a\u003e build(deps): bump peter-evans/repository-dispatch from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ceefd305117113ca10e383a626e87ba0796f3638\"\u003e\u003ccode\u003eceefd30\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4dc585430cabe94cee96c5a9de0265d0f55370f1\"\u003e\u003ccode\u003e4dc5854\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1945788dcf6172bb1b9328ebc3587ccf0e6a659c\"\u003e\u003ccode\u003e1945788\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1802\"\u003e#1802\u003c/a\u003e from edgarrmondragon/cp314-wheels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.10...2.9.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uwsgi` from 2.0.30 to 2.0.31\n\nUpdates `pyyaml` from 6.0.2 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/yaml/pyyaml/releases\"\u003epyyaml's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14 and free-threading (experimental).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ehttps://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\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 href=\"https://github.com/yaml/pyyaml/blob/6.0.3/CHANGES\"\u003epyyaml's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e6.0.3 (2025-09-25)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/yaml/pyyaml/pull/864\"\u003eyaml/pyyaml#864\u003c/a\u003e -- Support for Python 3.14 and free-threading (experimental)\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 href=\"https://github.com/yaml/pyyaml/commit/49790e73684bebad1df05ef8d828fa12f685bffb\"\u003e\u003ccode\u003e49790e7\u003c/code\u003e\u003c/a\u003e Release 6.0.3 (\u003ca href=\"https://redirect.github.com/yaml/pyyaml/issues/889\"\u003e#889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `msal` from 1.33.0 to 1.34.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases\"\u003emsal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eMSAL Python 1.34.0\u003c/h2\u003e\n\u003cp\u003eThis release includes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAll the changes in 1.34.0b1, plus bumping the dependency \u003ccode\u003ecryptography\u003c/code\u003e upper bound, which also drops Python 3.7 support.\u003c/li\u003e\n\u003cli\u003eOfficially support Python 3.13\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eManagedIdentityClient(..., client_capabilities=[\u0026quot;cp1\u0026quot;]).acquire_token_for_client(..., claims_challenge=\u0026quot;...\u0026quot;) by \u003ca href=\"https://github.com/rayluo\"\u003e\u003ccode\u003e@​rayluo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/791\"\u003eAzureAD/microsoft-authentication-library-for-python#791\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate deprecated TokenCache API usage by \u003ca href=\"https://github.com/pvaneck\"\u003e\u003ccode\u003e@​pvaneck\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/805\"\u003eAzureAD/microsoft-authentication-library-for-python#805\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnable broker support on Linux for WSL by \u003ca href=\"https://github.com/DharshanBJ\"\u003e\u003ccode\u003e@​DharshanBJ\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/766\"\u003eAzureAD/microsoft-authentication-library-for-python#766\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix username/password validation in broker test by \u003ca href=\"https://github.com/emmanuel-ferdman\"\u003e\u003ccode\u003e@​emmanuel-ferdman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/807\"\u003eAzureAD/microsoft-authentication-library-for-python#807\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMerge release 1.32.3 back to dev branch by \u003ca href=\"https://github.com/rayluo\"\u003e\u003ccode\u003e@​rayluo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/816\"\u003eAzureAD/microsoft-authentication-library-for-python#816\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd dependency management suggestions by \u003ca href=\"https://github.com/rayluo\"\u003e\u003ccode\u003e@​rayluo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/819\"\u003eAzureAD/microsoft-authentication-library-for-python#819\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemind developers about http_cache's unstable format by \u003ca href=\"https://github.com/rayluo\"\u003e\u003ccode\u003e@​rayluo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/821\"\u003eAzureAD/microsoft-authentication-library-for-python#821\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eProperly throw MsalServiceError exception by \u003ca href=\"https://github.com/rayluo\"\u003e\u003ccode\u003e@​rayluo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/820\"\u003eAzureAD/microsoft-authentication-library-for-python#820\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove test cases to test header-less response by \u003ca href=\"https://github.com/rayluo\"\u003e\u003ccode\u003e@​rayluo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/822\"\u003eAzureAD/microsoft-authentication-library-for-python#822\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade dependency by \u003ca href=\"https://github.com/rayluo\"\u003e\u003ccode\u003e@​rayluo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/824\"\u003eAzureAD/microsoft-authentication-library-for-python#824\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLinux broker needs a specific redirect_uri by \u003ca href=\"https://github.com/rayluo\"\u003e\u003ccode\u003e@​rayluo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/826\"\u003eAzureAD/microsoft-authentication-library-for-python#826\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMSAL Python 1.33.0b1 release by \u003ca href=\"https://github.com/rayluo\"\u003e\u003ccode\u003e@​rayluo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/827\"\u003eAzureAD/microsoft-authentication-library-for-python#827\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse lowercase environment value during searching by \u003ca href=\"https://github.com/rayluo\"\u003e\u003ccode\u003e@​rayluo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/831\"\u003eAzureAD/microsoft-authentication-library-for-python#831\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd claims challenge parameter in initiate_device_flow by \u003ca href=\"https://github.com/ashok672\"\u003e\u003ccode\u003e@​ashok672\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/839\"\u003eAzureAD/microsoft-authentication-library-for-python#839\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMSAL Python 1.33.0 by \u003ca href=\"https://github.com/rayluo\"\u003e\u003ccode\u003e@​rayluo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/841\"\u003eAzureAD/microsoft-authentication-library-for-python#841\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeclare support for Python 3.13 by \u003ca href=\"https://github.com/rayluo\"\u003e\u003ccode\u003e@​rayluo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/851\"\u003eAzureAD/microsoft-authentication-library-for-python#851\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=\"https://github.com/pvaneck\"\u003e\u003ccode\u003e@​pvaneck\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/805\"\u003eAzureAD/microsoft-authentication-library-for-python#805\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/emmanuel-ferdman\"\u003e\u003ccode\u003e@​emmanuel-ferdman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/807\"\u003eAzureAD/microsoft-authentication-library-for-python#807\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ashok672\"\u003e\u003ccode\u003e@​ashok672\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/839\"\u003eAzureAD/microsoft-authentication-library-for-python#839\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.32.3...1.34.0\"\u003ehttps://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.32.3...1.34.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eMSAL Python 1.34.0b1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUse lowercase environment value during searching by \u003ca href=\"https://github.com/rayluo\"\u003e\u003ccode\u003e@​rayluo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/831\"\u003eAzureAD/microsoft-authentication-library-for-python#831\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd claims challenge parameter in initiate_device_flow by \u003ca href=\"https://github.com/ashok672\"\u003e\u003ccode\u003e@​ashok672\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/839\"\u003eAzureAD/microsoft-authentication-library-for-python#839\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=\"https://github.com/ashok672\"\u003e\u003ccode\u003e@​ashok672\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/839\"\u003eAzureAD/microsoft-authentication-library-for-python#839\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.33.0...1.34.0b1\"\u003ehttps://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.33.0...1.34.0b1\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 href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/3edd99a1c1c01c356aff48c320ac9d07382409c5\"\u003e\u003ccode\u003e3edd99a\u003c/code\u003e\u003c/a\u003e 1.34.0b1 + minor changes = 1.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/a59bd09279d3d2c03ed45776c41ace1993f12bb9\"\u003e\u003ccode\u003ea59bd09\u003c/code\u003e\u003c/a\u003e Bumping cryptography which also drops Python 3.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/e6997a9780af71e2f3809287d1ab88c08e3a3e43\"\u003e\u003ccode\u003ee6997a9\u003c/code\u003e\u003c/a\u003e Declare support for Python 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/f3651cd09f2c3f23f6bd1bdd0663183b93d69821\"\u003e\u003ccode\u003ef3651cd\u003c/code\u003e\u003c/a\u003e MSAL Python 1.34.0b1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/854136a47ebe87dbe0320bb1cd7b193eeee9270e\"\u003e\u003ccode\u003e854136a\u003c/code\u003e\u003c/a\u003e ADFS labs were decommissioned since late July 2025\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/923a7321a53df28e6acce1c5c182b59262bd9ca0\"\u003e\u003ccode\u003e923a732\u003c/code\u003e\u003c/a\u003e MSAL Python 1.33.0 (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/841\"\u003e#841\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/70fd4d1599fc15c876c8eaccd29b9f7ae73fecd6\"\u003e\u003ccode\u003e70fd4d1\u003c/code\u003e\u003c/a\u003e Add claims challenge parameter in initiate_device_flow (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/839\"\u003e#839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/b1d8cd71145a8b1889b490f9b0dfbe4b1ac3a7f1\"\u003e\u003ccode\u003eb1d8cd7\u003c/code\u003e\u003c/a\u003e Use lowercase environment value during searching\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.33.0...1.34.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `whitenoise` from 6.9.0 to 6.11.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/evansd/whitenoise/blob/main/docs/changelog.rst\"\u003ewhitenoise's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.11.0 (2025-09-18)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Django 6.0.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.10.0 (2025-09-09)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14.\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 href=\"https://github.com/evansd/whitenoise/commit/c9c06e9382b92fc959ffdfc3e2ec63057de82561\"\u003e\u003ccode\u003ec9c06e9\u003c/code\u003e\u003c/a\u003e Version 6.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/051c4e997a07fd3ae5e9f3ec092080102ab89d93\"\u003e\u003ccode\u003e051c4e9\u003c/code\u003e\u003c/a\u003e Support Django 6.0 (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/665\"\u003e#665\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/c903cc13394895cbb3926e48c7acecf364efcd26\"\u003e\u003ccode\u003ec903cc1\u003c/code\u003e\u003c/a\u003e Version 6.10.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/a81bcb0ae2dd0c5884ebadb762f46827ecb54d0f\"\u003e\u003ccode\u003ea81bcb0\u003c/code\u003e\u003c/a\u003e docs(django): use the stable version in URLs (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/626\"\u003e#626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/67b4f32b12a9700b6dcc30ced8e9ad23bf39baa1\"\u003e\u003ccode\u003e67b4f32\u003c/code\u003e\u003c/a\u003e Support Python 3.14 (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/664\"\u003e#664\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/da8d333d165be1bdd9e7decbb3a293b5e55ff608\"\u003e\u003ccode\u003eda8d333\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/663\"\u003e#663\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/800072482c0652f81864ae78c26539d3dfc765b2\"\u003e\u003ccode\u003e8000724\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/662\"\u003e#662\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/8fb339f0eaee9219b1e02a840b5fd2227cf2fbbf\"\u003e\u003ccode\u003e8fb339f\u003c/code\u003e\u003c/a\u003e Upgrade dependencies (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/661\"\u003e#661\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/adf64ddfa5329d622cbc4740aec49b7baf0df792\"\u003e\u003ccode\u003eadf64dd\u003c/code\u003e\u003c/a\u003e Use uvx to run tox on GitHub Actions (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/660\"\u003e#660\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/ad6eb204640ff69498f8fc60bd9eb876ee5771b8\"\u003e\u003ccode\u003ead6eb20\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/659\"\u003e#659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/evansd/whitenoise/compare/6.9.0...6.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `azure-storage-blob` from 12.26.0 to 12.27.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/releases\"\u003eazure-storage-blob's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eazure-storage-blob_12.27.0\u003c/h2\u003e\n\u003ch2\u003e12.27.0 (2025-10-15)\u003c/h2\u003e\n\u003ch3\u003eFeatures Added\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eStable release of features from 12.27.0b1\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated any previously documented \u003ccode\u003ekwarg\u003c/code\u003e arguments to be named keywords.\nSome public types may have been adjusted if they were previously erroneous or incomplete.\u003c/li\u003e\n\u003cli\u003eRemoved \u003ccode\u003e__enter__\u003c/code\u003e and \u003ccode\u003e__exit__\u003c/code\u003e attributes for all asynchronous client objects for raising explicit \u003ccode\u003eTypeError\u003c/code\u003e,\nand let the \u003ccode\u003eAttributeError\u003c/code\u003e raise directly.\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 href=\"https://github.com/Azure/azure-sdk-for-python/commit/0568271b3111d0430ffcbb707c5d87110fff6dfb\"\u003e\u003ccode\u003e0568271\u003c/code\u003e\u003c/a\u003e [Storage] [STG 99] Changelogs for Removing \u003ccode\u003e__enter__\u003c/code\u003e and \u003ccode\u003e__exit__\u003c/code\u003e from As...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/ad013470dc8dfdc3b92cb5b733fb927bd075f15c\"\u003e\u003ccode\u003ead01347\u003c/code\u003e\u003c/a\u003e Updated release date\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/680072aac4799c5871f735ff29fc39e288eb577f\"\u003e\u003ccode\u003e680072a\u003c/code\u003e\u003c/a\u003e Added back download_blob overloads to fix API Views (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/42769\"\u003e#42769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/49dd75d9020e6b80552ef3d8cc07cf8346eeefb1\"\u003e\u003ccode\u003e49dd75d\u003c/code\u003e\u003c/a\u003e Added changelogs for the bug fix (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/43105\"\u003e#43105\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/c8ba802480b3d03223cdbd15750a43aa9bfafdcb\"\u003e\u003ccode\u003ec8ba802\u003c/code\u003e\u003c/a\u003e [Storage] Fixed Pagination for \u003ccode\u003elist_directories_and_files\u003c/code\u003e when `name_starts...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/ad36c0cbb52421e5bb5a5d9563c09bac09349233\"\u003e\u003ccode\u003ead36c0c\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into release/storage/stg99-ga\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/1c0344e83413c7c2b5d66808f78c499be8e8a35f\"\u003e\u003ccode\u003e1c0344e\u003c/code\u003e\u003c/a\u003e Fix NFS tests (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/42894\"\u003e#42894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/20f7d18eaea2f2db36b81fbe1c19c653a882e199\"\u003e\u003ccode\u003e20f7d18\u003c/code\u003e\u003c/a\u003e Added back download_blob overloads to fix API Views (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/42769\"\u003e#42769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/28abd08c5fb966d1460dea5c1ebb25b3af138dd0\"\u003e\u003ccode\u003e28abd08\u003c/code\u003e\u003c/a\u003e [Storage] Fix Blob test_helpers.py (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/42712\"\u003e#42712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/b1a9add8ba37a1b4fc856de3059be075bf26bb2f\"\u003e\u003ccode\u003eb1a9add\u003c/code\u003e\u003c/a\u003e Fix failing storage tests (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/42680\"\u003e#42680\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/compare/azure-storage-blob_12.26.0...azure-storage-blob_12.27.0\"\u003ecompare view\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't alter it yourself. You can also trigger a rebase manually by commenting `@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 that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/bcgov/CIT/pull/1136","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/bcgov%2FCIT/issues/1136","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1136/packages"}},{"old_version":"2.0.30","new_version":"2.0.31","update_type":"patch","path":null,"pr_created_at":"2025-10-20T05:49:37.000Z","version_change":"2.0.30 → 2.0.31","issue":{"uuid":"3531140795","node_id":"PR_kwDOAYRY2s6ukCft","number":5123,"state":"closed","title":"deps: bump the prod-deps group across 1 directory with 21 updates","user":"dependabot[bot]","labels":["Maintenance"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-11-03T05:29:47.000Z","author_association":null,"state_reason":null,"created_at":"2025-10-20T05:49:37.000Z","updated_at":"2025-11-03T05:29:49.000Z","time_to_close":1208410,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps: bump","group_name":"prod-deps","update_count":21,"packages":[{"name":"django","old_version":"4.2.24","new_version":"5.2.7","repository_url":"https://github.com/django/django"},{"name":"psycopg2-binary","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"hiredis","old_version":"3.2.1","new_version":"3.3.0","repository_url":"https://github.com/redis/hiredis-py"},{"name":"drf-yasg","old_version":"1.21.10","new_version":"1.21.11","repository_url":"https://github.com/axnsan12/drf-yasg"},{"name":"jellyfish","old_version":"1.2.0","new_version":"1.2.1"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"xlsxwriter","old_version":"3.2.8","new_version":"3.2.9","repository_url":"https://github.com/jmcnamara/XlsxWriter"},{"name":"xmlschema","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/sissaschool/xmlschema"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.0","repository_url":"https://github.com/lark-parser/lark"},{"name":"shapely","old_version":"2.0.7","new_version":"2.1.2","repository_url":"https://github.com/shapely/shapely"},{"name":"django-two-factor-auth","old_version":"1.17.0","new_version":"1.18.1"},{"name":"boto3","old_version":"1.40.30","new_version":"1.40.55","repository_url":"https://github.com/boto/boto3"},{"name":"uwsgi","old_version":"2.0.30","new_version":"2.0.31"},{"name":"coverage","old_version":"7.10.6","new_version":"7.11.0","repository_url":"https://github.com/nedbat/coveragepy"},{"name":"tox","old_version":"4.30.2","new_version":"4.31.0","repository_url":"https://github.com/tox-dev/tox"},{"name":"psutil","old_version":"7.0.0","new_version":"7.1.1","repository_url":"https://github.com/giampaolo/psutil"},{"name":"faker","old_version":"37.6.0","new_version":"37.11.0","repository_url":"https://github.com/joke2k/faker"},{"name":"sphinx","old_version":"7.4.7","new_version":"8.2.3","repository_url":"https://github.com/sphinx-doc/sphinx"},{"name":"sphinxcontrib-spelling","old_version":"8.0.0","new_version":"8.0.1","repository_url":"https://github.com/sphinx-contrib/spelling"},{"name":"docutils","old_version":"0.21.2","new_version":"0.22.2","repository_url":"https://github.com/rtfd/recommonmark"},{"name":"hypothesis","old_version":"6.138.16","new_version":"6.142.1","repository_url":"https://github.com/HypothesisWorks/hypothesis"}],"path":null,"ecosystem":"pip"},"body":"Bumps the prod-deps group with 21 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [django](https://github.com/django/django) | `4.2.24` | `5.2.7` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.2.1` | `3.3.0` |\n| [drf-yasg](https://github.com/axnsan12/drf-yasg) | `1.21.10` | `1.21.11` |\n| [jellyfish](https://jellyfish.jpt.sh/) | `1.2.0` | `1.2.1` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [xlsxwriter](https://github.com/jmcnamara/XlsxWriter) | `3.2.8` | `3.2.9` |\n| [xmlschema](https://github.com/sissaschool/xmlschema) | `4.1.0` | `4.2.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.0` |\n| [shapely](https://github.com/shapely/shapely) | `2.0.7` | `2.1.2` |\n| [django-two-factor-auth[phonenumbers]](https://github.com/jazzband/django-two-factor-auth) | `1.17.0` | `1.18.1` |\n| [boto3](https://github.com/boto/boto3) | `1.40.30` | `1.40.55` |\n| [uwsgi](https://uwsgi-docs.readthedocs.io/en/latest/) | `2.0.30` | `2.0.31` |\n| [coverage](https://github.com/nedbat/coveragepy) | `7.10.6` | `7.11.0` |\n| [tox](https://github.com/tox-dev/tox) | `4.30.2` | `4.31.0` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.1.1` |\n| [faker](https://github.com/joke2k/faker) | `37.6.0` | `37.11.0` |\n| [sphinx](https://github.com/sphinx-doc/sphinx) | `7.4.7` | `8.2.3` |\n| [sphinxcontrib-spelling](https://github.com/sphinx-contrib/spelling) | `8.0.0` | `8.0.1` |\n| [docutils](https://github.com/rtfd/recommonmark) | `0.21.2` | `0.22.2` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.138.16` | `6.142.1` |\n\n\nUpdates `django` from 4.2.24 to 5.2.7\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/3cff3209e35a560f94801d428cf7f2a3ecb2a051\"\u003e\u003ccode\u003e3cff320\u003c/code\u003e\u003c/a\u003e [5.2.x] Bumped version for 5.2.7 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/ed8fc39d77465eddbde1191a054ae965f6a8a584\"\u003e\u003ccode\u003eed8fc39\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2025-59682 -- Fixed potential partial directory-traversal v...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/52fbae0a4dbbe5faa59827f8f05694a0065cc135\"\u003e\u003ccode\u003e52fbae0\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2025-59681 -- Protected QuerySet.annotate(), alias(), aggre...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/1794cbf961f9ea54715fb094fe8adc80a5054947\"\u003e\u003ccode\u003e1794cbf\u003c/code\u003e\u003c/a\u003e [5.2.x] Made cosmetic edits to 5.2.7 release notes.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/81625a141e1feaaea877fc18876fdd7b6394442c\"\u003e\u003ccode\u003e81625a1\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36587\"\u003e#36587\u003c/a\u003e -- Clarified usage of \u003ccode\u003elist.insert()\u003c/code\u003e for upload handlers.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/6f3813e4b6e3db7fa3cc612c78f898142468bca9\"\u003e\u003ccode\u003e6f3813e\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/35877\"\u003e#35877\u003c/a\u003e, Refs \u003ca href=\"https://redirect.github.com/django/django/issues/36128\"\u003e#36128\u003c/a\u003e -- Documented unique constraint when migrat...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/10a2d3b837c5d8c1ac0cabd399ad7edcc66bfa8e\"\u003e\u003ccode\u003e10a2d3b\u003c/code\u003e\u003c/a\u003e [5.2.x] Added stub release notes and release date for 5.2.7, 5.1.13, and 4.2.25.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/b2773a39a34f0f0ca768fa1daaf8bf72fca56e06\"\u003e\u003ccode\u003eb2773a3\u003c/code\u003e\u003c/a\u003e [5.2.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/25508\"\u003e#25508\u003c/a\u003e -- Used QuerySet.\u003cstrong\u003erepr\u003c/strong\u003e in docs/ref/contrib/postgres/se...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/7554c54e5f02566520dee81c8b95f47429f1b553\"\u003e\u003ccode\u003e7554c54\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36581\"\u003e#36581\u003c/a\u003e -- Updated serialization examples from XML to JSON.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/2a2936c3e6444a0f37156773ca405cedaf28dea7\"\u003e\u003ccode\u003e2a2936c\u003c/code\u003e\u003c/a\u003e [5.2.x] Updated translations from Transifex.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/4.2.24...5.2.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2-binary` from 2.9.10 to 2.9.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2-binary's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix building when pg_config returns an empty string (:ticket:\u003ccode\u003e[#1599](https://github.com/psycopg/psycopg2/issues/1599)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eWheel package bundled with OpenSSL 1.1.1v.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.6\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\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 href=\"https://github.com/psycopg/psycopg2/commit/fd9ae8cad2bcfc3e7e9410e7b6f07cda8f4f05ec\"\u003e\u003ccode\u003efd9ae8c\u003c/code\u003e\u003c/a\u003e chore: bump to version 2.9.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d923840546942534f0956d9202f914fd9feac5fd\"\u003e\u003ccode\u003ed923840\u003c/code\u003e\u003c/a\u003e chore: update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d42dc7169d3cd93517e282e9ef5dc2a2b40650a2\"\u003e\u003ccode\u003ed42dc71\u003c/code\u003e\u003c/a\u003e Merge branch 'fix-1791'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4fde6560c32f06ad1304404c9f7f86148dcc4be0\"\u003e\u003ccode\u003e4fde656\u003c/code\u003e\u003c/a\u003e fix: avoid failed assert passing more arguments than placeholders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/8308c19d6af0d904b313997539ed33415990a74e\"\u003e\u003ccode\u003e8308c19\u003c/code\u003e\u003c/a\u003e fix: drop warning about the use of deprecated PyWeakref_GetObject function\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1a1eabf098a3374409bb2ab4b594777b900f396d\"\u003e\u003ccode\u003e1a1eabf\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/github-script from 7 to 8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/897af8b38beda851d7257dfc525129e37c0ec9e0\"\u003e\u003ccode\u003e897af8b\u003c/code\u003e\u003c/a\u003e build(deps): bump peter-evans/repository-dispatch from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ceefd305117113ca10e383a626e87ba0796f3638\"\u003e\u003ccode\u003eceefd30\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4dc585430cabe94cee96c5a9de0265d0f55370f1\"\u003e\u003ccode\u003e4dc5854\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1945788dcf6172bb1b9328ebc3587ccf0e6a659c\"\u003e\u003ccode\u003e1945788\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1802\"\u003e#1802\u003c/a\u003e from edgarrmondragon/cp314-wheels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.10...2.9.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `hiredis` from 3.2.1 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/hiredis-py/releases\"\u003ehiredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.3.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e by \u003ca href=\"https://github.com/zweizeichen\"\u003e\u003ccode\u003e@​zweizeichen\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\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 href=\"https://github.com/redis/hiredis-py/commit/187d0f387afed58a955a42ea8c5467100871f98b\"\u003e\u003ccode\u003e187d0f3\u003c/code\u003e\u003c/a\u003e Version 3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/3efcf037edc5a9f7abfaedbd3f60b2a03feb4787\"\u003e\u003ccode\u003e3efcf03\u003c/code\u003e\u003c/a\u003e Add Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/215\"\u003e#215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/966cede2c0ca0a8ac4fe0786571e5c230f39c36e\"\u003e\u003ccode\u003e966cede\u003c/code\u003e\u003c/a\u003e Fix assertion in reader.c (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/212\"\u003e#212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/78def309e58126fdaacb66e6fd40df9c46494062\"\u003e\u003ccode\u003e78def30\u003c/code\u003e\u003c/a\u003e Bump version to 3.3.0-dev\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/redis/hiredis-py/compare/v3.2.1...v3.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `drf-yasg` from 1.21.10 to 1.21.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/axnsan12/drf-yasg/releases\"\u003edrf-yasg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.21.11\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/917\"\u003e#917\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/916\"\u003e#916\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/926\"\u003e#926\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/922\"\u003e#922\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/928\"\u003e#928\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/923\"\u003e#923\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/848\"\u003e#848\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/903\"\u003e#903\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 href=\"https://github.com/axnsan12/drf-yasg/blob/master/docs/changelog.rst\"\u003edrf-yasg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e#########\nChangelog\n#########\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.11\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (:pr:\u003ccode\u003e917\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (:pr:\u003ccode\u003e916\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (:pr:\u003ccode\u003e926\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (:pr:\u003ccode\u003e922\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (:pr:\u003ccode\u003e928\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (:pr:\u003ccode\u003e923\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (:pr:\u003ccode\u003e848\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (:pr:\u003ccode\u003e903\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.10\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix type hints when using postponed evaluation of annotations (PEP-563) (:pr:\u003ccode\u003e840\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update JSON \u0026amp; YAML renderers to not use a \u0026quot;.\u0026quot; in their format string (:pr:\u003ccode\u003e911\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix lint errors when comparing types with == instead of is (:pr:\u003ccode\u003e868\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update swagger-ui-dist to address CVE-2021-46708 (:pr:\u003ccode\u003e904\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.9\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Added support for zoneinfo object fields (:pr:\u003ccode\u003e908\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.8\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Python 3.11 and 3.12 support (:pr:\u003ccode\u003e891\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix pkg_resources version lookups for Python 3.9+ (:pr:\u003ccode\u003e891\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.7\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cem\u003eRelease date: Jul 20, 2023\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Added \u003ccode\u003edrf_yasg.inspectors.query.DrfAPICompatInspector\u003c/code\u003e (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Added \u003ccode\u003eDrfAPICompatInspector\u003c/code\u003e to serve as a replacement \u003ccode\u003eCoreAPICompatInspector\u003c/code\u003e (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow \u003ccode\u003eDEFAULT_SPEC_RENDERERS\u003c/code\u003e default renderers to be overriden in the settings (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fixed redoc source mapping (:pr:\u003ccode\u003e859\u003c/code\u003e)\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/f8cb2db70ca42fb709565f89fdd152b614dc865d\"\u003e\u003ccode\u003ef8cb2db\u003c/code\u003e\u003c/a\u003e Add version 1.21.11 details to the changelog (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/939\"\u003e#939\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/0c6d08d5ebc52e802e5e1acbabbadfe179d4087d\"\u003e\u003ccode\u003e0c6d08d\u003c/code\u003e\u003c/a\u003e Update the ruff lint rules (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/920\"\u003e#920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/055a74dc10128fd55a48f7f74f6b58ffcc48e83d\"\u003e\u003ccode\u003e055a74d\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 in the github-actions group (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/937\"\u003e#937\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/a8813ace8e39cc2c28a916053c74415e10db1425\"\u003e\u003ccode\u003ea8813ac\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 in the github-actions group (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/936\"\u003e#936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/9f4b44943ad930e23e979b80090102dfca1d588b\"\u003e\u003ccode\u003e9f4b449\u003c/code\u003e\u003c/a\u003e Restore the live demo and replace heroku with apprunner (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/935\"\u003e#935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/298325122e11aeba87e6c8f16604e45d870649e7\"\u003e\u003ccode\u003e2983251\u003c/code\u003e\u003c/a\u003e fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/a74689370c393432debbe6285b3afb3e462aee58\"\u003e\u003ccode\u003ea746893\u003c/code\u003e\u003c/a\u003e allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/916\"\u003e#916\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/e747ad6db413c2d20c3eab79739e22ffde5930c7\"\u003e\u003ccode\u003ee747ad6\u003c/code\u003e\u003c/a\u003e Fixes issue with filter parameters not appearing in Swagger after upgrading t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/ee3c871501dad5f0585c8c62ac0659fedab999a1\"\u003e\u003ccode\u003eee3c871\u003c/code\u003e\u003c/a\u003e update Python, Django, and DRF versions \u0026amp; packaging configuration (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/922\"\u003e#922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/be6eeedcbebcb45151a9d18018d880d1fcdcf143\"\u003e\u003ccode\u003ebe6eeed\u003c/code\u003e\u003c/a\u003e Remove usage of pkg_resources (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/928\"\u003e#928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/axnsan12/drf-yasg/compare/1.21.10...1.21.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jellyfish` from 1.2.0 to 1.2.1\n\nUpdates `pyyaml` from 6.0.2 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/yaml/pyyaml/releases\"\u003epyyaml's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14 and free-threading (experimental).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ehttps://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\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 href=\"https://github.com/yaml/pyyaml/blob/6.0.3/CHANGES\"\u003epyyaml's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e6.0.3 (2025-09-25)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/yaml/pyyaml/pull/864\"\u003eyaml/pyyaml#864\u003c/a\u003e -- Support for Python 3.14 and free-threading (experimental)\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 href=\"https://github.com/yaml/pyyaml/commit/49790e73684bebad1df05ef8d828fa12f685bffb\"\u003e\u003ccode\u003e49790e7\u003c/code\u003e\u003c/a\u003e Release 6.0.3 (\u003ca href=\"https://redirect.github.com/yaml/pyyaml/issues/889\"\u003e#889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xlsxwriter` from 3.2.8 to 3.2.9\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jmcnamara/XlsxWriter/blob/main/Changes\"\u003exlsxwriter's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.2.9 - September 16 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved the \u003ccode\u003epy.typed\u003c/code\u003e file since it was causing a lot of downstream CI\nfailures where consumers weren't handling the xlsxwriter types correctly or\ntaking them into account.\u003c/p\u003e\n\u003cp\u003eThe file will be re-added once the xlsxwriter typing is more comprehensive.\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 href=\"https://github.com/jmcnamara/XlsxWriter/commit/e943bee8c9cdf0661cfdb83d5497e0725390e41e\"\u003e\u003ccode\u003ee943bee\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/392bd9e6572785394c6553e2d4f7ae2bb80782f4\"\u003e\u003ccode\u003e392bd9e\u003c/code\u003e\u003c/a\u003e typing: remove py.typed file\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/jmcnamara/XlsxWriter/compare/RELEASE_3.2.8...RELEASE_3.2.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xmlschema` from 4.1.0 to 4.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sissaschool/xmlschema/releases\"\u003exmlschema's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.2.0 (2025-10-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd arguments validation for schemas and validation methods (by validation contexts)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSchemaSettings\u003c/code\u003e dataclass for storing read-only settings for schema instances\nand for managing package default settings\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eblock\u003c/em\u003e argument to \u003ccode\u003eXMLResource\u003c/code\u003e class (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/464\"\u003e#464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_SCHEMA_SOURCES\u003c/em\u003e package limit (\u003ccode\u003e1000\u003c/code\u003e, applied to \u003ccode\u003eXsdGlobals\u003c/code\u003e global maps instances)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_XML_ELEMENTS\u003c/em\u003e package limit (\u003ccode\u003e1,000,000\u003c/code\u003e, applied to non-lazy \u003ccode\u003eXMLResource\u003c/code\u003e instances)\u003c/li\u003e\n\u003cli\u003eReduce \u003cem\u003eMAX_XML_DEPTH\u003c/em\u003e limit to 1000 and apply it to all \u003ccode\u003eXMLResource\u003c/code\u003e instances\u003c/li\u003e\n\u003cli\u003eFix for substitute match in case of unexpected child (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\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 href=\"https://github.com/sissaschool/xmlschema/blob/master/CHANGELOG.rst\"\u003exmlschema's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ccode\u003ev4.2.0\u003c/code\u003e_ (2025-10-14)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd arguments validation for schemas and validation methods (by validation contexts)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSchemaSettings\u003c/code\u003e dataclass for storing read-only settings for schema instances\nand for managing package default settings\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eblock\u003c/em\u003e argument to \u003ccode\u003eXMLResource\u003c/code\u003e class (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/464\"\u003e#464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_SCHEMA_SOURCES\u003c/em\u003e package limit (\u003ccode\u003e1000\u003c/code\u003e, applied to \u003ccode\u003eXsdGlobals\u003c/code\u003e global maps instances)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_XML_ELEMENTS\u003c/em\u003e package limit (\u003ccode\u003e1,000,000\u003c/code\u003e, applied to non-lazy \u003ccode\u003eXMLResource\u003c/code\u003e instances)\u003c/li\u003e\n\u003cli\u003eReduce \u003cem\u003eMAX_XML_DEPTH\u003c/em\u003e limit to 1000 and apply it to all \u003ccode\u003eXMLResource\u003c/code\u003e instances\u003c/li\u003e\n\u003cli\u003eFix for substitute match in case of unexpected child (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\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 href=\"https://github.com/sissaschool/xmlschema/commit/2783030fcdcd5307563822906862a9e7088931b2\"\u003e\u003ccode\u003e2783030\u003c/code\u003e\u003c/a\u003e Bump minor release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/7c77a12f0fe16c8da0256a0f13281a03e4a0f717\"\u003e\u003ccode\u003e7c77a12\u003c/code\u003e\u003c/a\u003e Include publiccode.yml validation workflow for CI and README changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/04c19d54d4578f34a0c04d6cc82daa8d3ef9d90c\"\u003e\u003ccode\u003e04c19d5\u003c/code\u003e\u003c/a\u003e Fix XsdGroup.match_element (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/dd4f279e56b8a5ce89f78a6c88337f5032af0b2f\"\u003e\u003ccode\u003edd4f279\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/463\"\u003e#463\u003c/a\u003e from publiccode-pr-bot/chore/add-publiccode-parser-ac...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/1bd7aa6eebf4947e7ae76e47a2f706b58fed22cd\"\u003e\u003ccode\u003e1bd7aa6\u003c/code\u003e\u003c/a\u003e Update GitHub workflow for CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/76b0f67e900777166bcd3773cc109efae933682d\"\u003e\u003ccode\u003e76b0f67\u003c/code\u003e\u003c/a\u003e Patch mypy tests with protocols\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/28727bb0af89f129d59772550c6998164c37aeff\"\u003e\u003ccode\u003e28727bb\u003c/code\u003e\u003c/a\u003e Update docs and release info\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/e4131eaf6bc1a223292f3f19e78573a4317d131a\"\u003e\u003ccode\u003ee4131ea\u003c/code\u003e\u003c/a\u003e Add from_settings() class method to schemas\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/0aea8debef13b62156e7297bdc54198057ea3611\"\u003e\u003ccode\u003e0aea8de\u003c/code\u003e\u003c/a\u003e Rewrite validation contexts as normal classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/d443d7ba0e3de8fad6d6df8f314b12735af4bac3\"\u003e\u003ccode\u003ed443d7b\u003c/code\u003e\u003c/a\u003e Full validation of context arguments\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sissaschool/xmlschema/compare/v4.1.0...v4.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lark` from 1.2.2 to 1.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lark-parser/lark/releases\"\u003elark's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.3.0 - Introduces text-slices, Earley fix, and various small improvements\u003c/h2\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLark can now parse in sections of strings, using \u003ccode\u003eTextSlice\u003c/code\u003e, as a faster alternative to creating a \u0026quot;copy-slice\u0026quot; with \u003ccode\u003es[i:j]\u003c/code\u003e. \u003ca href=\"https://lark-parser.readthedocs.io/en/latest/classes.html#lark.utils.TextSlice\"\u003eLearn more\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded support to \u003ccode\u003ematch\u003c/code\u003e on Tree instances\u003c/li\u003e\n\u003cli\u003eWhen serializing a Lark instance, added the option to include the grammar object (before compilation).\u003c/li\u003e\n\u003cli\u003eAdded convenience method \u003ccode\u003eTree.find_token()\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix of an edge case in Earley related to representation of ambiguity.\u003c/li\u003e\n\u003cli\u003eBugfixes in the standalone parser related to imports\u003c/li\u003e\n\u003cli\u003eBugfix in indenter - now dedents always contain line information\u003c/li\u003e\n\u003cli\u003eVarious small bugfixes (see PR list below)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFull list of PRs\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDocs: Rephrase v_args() documentation to underline it only applies to Transformer classes by \u003ca href=\"https://github.com/skepppy\"\u003e\u003ccode\u003e@​skepppy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1458\"\u003elark-parser/lark#1458\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTiny refactor for PR \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1451\"\u003e#1451\u003c/a\u003e by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1459\"\u003elark-parser/lark#1459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEarley: share nodes created by the scanner with the completer by \u003ca href=\"https://github.com/chanicpanic\"\u003e\u003ccode\u003e@​chanicpanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1451\"\u003elark-parser/lark#1451\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter error in Lark.parse when using on_error when parser!=lalr (issue \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1311\"\u003e#1311\u003c/a\u003e) by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1460\"\u003elark-parser/lark#1460\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eSymbol.__eq__\u003c/code\u003e to return false when comparing with None by \u003ca href=\"https://github.com/weaversam8\"\u003e\u003ccode\u003e@​weaversam8\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1481\"\u003elark-parser/lark#1481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMention internal/external transformers in the documentation by \u003ca href=\"https://github.com/odanoburu\"\u003e\u003ccode\u003e@​odanoburu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1486\"\u003elark-parser/lark#1486\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Tree.find_token() method by \u003ca href=\"https://github.com/makukha\"\u003e\u003ccode\u003e@​makukha\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1467\"\u003elark-parser/lark#1467\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eType \u003ccode\u003eTerminal.__init__\u003c/code\u003e by \u003ca href=\"https://github.com/Liam-DeVoe\"\u003e\u003ccode\u003e@​Liam-DeVoe\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1503\"\u003elark-parser/lark#1503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd guidance on handling comments in languages with significant indentation by \u003ca href=\"https://github.com/nchammas\"\u003e\u003ccode\u003e@​nchammas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1502\"\u003elark-parser/lark#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Small fix for PR 1507 by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1508\"\u003elark-parser/lark#1508\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd note on binding power of numeric quantifiers by \u003ca href=\"https://github.com/414owen\"\u003e\u003ccode\u003e@​414owen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1507\"\u003elark-parser/lark#1507\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrap functools.partial in staticmethod() to add compatibility with Python 3.14 by \u003ca href=\"https://github.com/hrnciar\"\u003e\u003ccode\u003e@​hrnciar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1483\"\u003elark-parser/lark#1483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix generic type of Transformer_InPlaceRecursive by \u003ca href=\"https://github.com/lbhm\"\u003e\u003ccode\u003e@​lbhm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1518\"\u003elark-parser/lark#1518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded TextSlice; Lark can now parse/lex a text-slice by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1452\"\u003elark-parser/lark#1452\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport match on tree by \u003ca href=\"https://github.com/colmmurphyxyz\"\u003e\u003ccode\u003e@​colmmurphyxyz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1521\"\u003elark-parser/lark#1521\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: Updated link of DSL article to a new version by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1529\"\u003elark-parser/lark#1529\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebetter error messages for shift/reduct conflicts by \u003ca href=\"https://github.com/skogsbaer\"\u003e\u003ccode\u003e@​skogsbaer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1531\"\u003elark-parser/lark#1531\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSerialize Lark.grammar (fixes issue \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1472\"\u003e#1472\u003c/a\u003e) by \u003ca href=\"https://github.com/NasalDaemon\"\u003e\u003ccode\u003e@​NasalDaemon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1506\"\u003elark-parser/lark#1506\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes for PR \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1506\"\u003e#1506\u003c/a\u003e, which adds the option to cache the grammar definition by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1540\"\u003elark-parser/lark#1540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix in indenter - now always creating dedents with line information by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1547\"\u003elark-parser/lark#1547\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix: issue when unpickling in the standalone parser, due to lingering Token instances by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1553\"\u003elark-parser/lark#1553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInclude missing import in standalone parser by \u003ca href=\"https://github.com/pdeibert\"\u003e\u003ccode\u003e@​pdeibert\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1541\"\u003elark-parser/lark#1541\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVersion bump (1.3.0) by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1554\"\u003elark-parser/lark#1554\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=\"https://github.com/skepppy\"\u003e\u003ccode\u003e@​skepppy\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1458\"\u003elark-parser/lark#1458\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/weaversam8\"\u003e\u003ccode\u003e@​weaversam8\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1481\"\u003elark-parser/lark#1481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/odanoburu\"\u003e\u003ccode\u003e@​odanoburu\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1486\"\u003elark-parser/lark#1486\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/makukha\"\u003e\u003ccode\u003e@​makukha\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1467\"\u003elark-parser/lark#1467\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Liam-DeVoe\"\u003e\u003ccode\u003e@​Liam-DeVoe\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1503\"\u003elark-parser/lark#1503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/414owen\"\u003e\u003ccode\u003e@​414owen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1507\"\u003elark-parser/lark#1507\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hrnciar\"\u003e\u003ccode\u003e@​hrnciar\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1483\"\u003elark-parser/lark#1483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lbhm\"\u003e\u003ccode\u003e@​lbhm\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1518\"\u003elark-parser/lark#1518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/colmmurphyxyz\"\u003e\u003ccode\u003e@​colmmurphyxyz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1521\"\u003elark-parser/lark#1521\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 href=\"https://github.com/lark-parser/lark/commit/e332c2df2f7d400460a5f1204d9bc36b49b25635\"\u003e\u003ccode\u003ee332c2d\u003c/code\u003e\u003c/a\u003e Version bump (1.3.0)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/aa5666c30e255257b0c36ef93c80d800f84a04ca\"\u003e\u003ccode\u003eaa5666c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1541\"\u003e#1541\u003c/a\u003e from pdeibert/master\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/41934d390dd7661a82df5ed28bd75655fe797cf7\"\u003e\u003ccode\u003e41934d3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1553\"\u003e#1553\u003c/a\u003e from lark-parser/issue1552\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/23c95ea33f76a1bdba686bb1e79a0bd25f3c4d08\"\u003e\u003ccode\u003e23c95ea\u003c/code\u003e\u003c/a\u003e Bugfix: issue when unpickling in the standalone parser, due to lingering\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/d1a456dd365603bbcb4b5b4ec2c29e6096b82f59\"\u003e\u003ccode\u003ed1a456d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1547\"\u003e#1547\u003c/a\u003e from lark-parser/dev\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/2e3108e770aede14000e010322c501c9066dbabc\"\u003e\u003ccode\u003e2e3108e\u003c/code\u003e\u003c/a\u003e UnexpectedInput.pos_in_stream now defaults to 0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/0d248fc59f03ac82c26d12b4b6a86733cffe4d52\"\u003e\u003ccode\u003e0d248fc\u003c/code\u003e\u003c/a\u003e Fix in indenter - now always creating dedents with line information\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/c2e2048bbdb07f6efd0b36252ee90e419e0ee292\"\u003e\u003ccode\u003ec2e2048\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1540\"\u003e#1540\u003c/a\u003e from lark-parser/pr1506\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/2f286cc25a626c7107ad63bc69fcaf213e330433\"\u003e\u003ccode\u003e2f286cc\u003c/code\u003e\u003c/a\u003e Added tests for cache_grammar\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/8a0b02d78989ea328ce0726aa551de9689419dce\"\u003e\u003ccode\u003e8a0b02d\u003c/code\u003e\u003c/a\u003e Small fix, comments, added some types\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lark-parser/lark/compare/1.2.2...1.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `shapely` from 2.0.7 to 2.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/shapely/shapely/releases\"\u003eshapely's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.1.2\u003c/h2\u003e\n\u003cp\u003eWheels are available for Python 3.14 (and still include GEOS 3.13.1).\u003c/p\u003e\n\u003ch2\u003e2.1.1\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix performance degradation calling shapely functions (caused by deprecation of certain positional arguments) (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2283\"\u003e#2283\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix crash caused by \u003ccode\u003efrom_ragged_array()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2291\"\u003e#2291\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix compilation error building with recent LLVM toolchain (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2293\"\u003e#2293\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFor a full changelog , see \u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-1\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.1.0\u003c/h2\u003e\n\u003cp\u003eShapely 2.1.0 is a feature release with various new functions, improvements and bug fixes. Highlights include initial support for geometries with M or ZM values, functionality for coverage validation and simplification, and a set of new top-level functions.\u003c/p\u003e\n\u003cp\u003eShapely supports Python \u0026gt;= 3.10, and binary wheels on PyPI include GEOS 3.13.1 and are now also provided for musllinux (Alpine) x86_64 platforms.\u003c/p\u003e\n\u003cp\u003eFor a full changelog, see \u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.1.0rc1\u003c/h2\u003e\n\u003cp\u003eShapely version 2.1.0 is a major release featuring various new functions, improvements and bug fixes. This is a first release candidate.\u003c/p\u003e\n\u003cp\u003eFor a full changelog, see \u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0-unreleased\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0-unreleased\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 href=\"https://github.com/shapely/shapely/blob/main/CHANGES.txt\"\u003eshapely's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.1.2 (2025-09-24)\u003c/h2\u003e\n\u003cp\u003eWheels are available for Python 3.14 (and still include GEOS 3.13.1).\u003c/p\u003e\n\u003ch2\u003e2.1.1 (2025-05-19)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix performance degradation calling shapely functions (caused by deprecation\nof certain positional arguments) (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2283\"\u003e#2283\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix crash caused by \u003ccode\u003efrom_ragged_array()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2291\"\u003e#2291\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix compilation error building with recent LLVM toolchain (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2293\"\u003e#2293\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.0 (2025-04-03)\u003c/h2\u003e\n\u003cp\u003eShapely 2.1.0 is a feature release with various new functions,\nimprovements and bug fixes. Highlights include initial support for geometries\nwith M or ZM values, functionality for coverage validation and\nsimplification, and a set of new top-level functions.\u003c/p\u003e\n\u003cp\u003eShapely supports Python \u0026gt;= 3.10, and binary wheels on PyPI include GEOS 3.13.1\nand are now also provided for musllinux (Alpine) x86_64 platforms.\u003c/p\u003e\n\u003cp\u003eFor a full changelog, see\n\u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/5fb639d1056888d135fe56bfaf750c9648addeec\"\u003e\u003ccode\u003e5fb639d\u003c/code\u003e\u003c/a\u003e RLS: 2.1.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/70509a1bee5ebd6637cda98b5c9d83707c341888\"\u003e\u003ccode\u003e70509a1\u003c/code\u003e\u003c/a\u003e DOC/RLS: indicate Python 3.14 support in pyproject.toml and release notes for...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/5c572b622027f6917c75afd728f201a144fb597d\"\u003e\u003ccode\u003e5c572b6\u003c/code\u003e\u003c/a\u003e CI: add testing with GEOS 3.14 and Python 3.14 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2330\"\u003e#2330\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/a9093336b1ea77559d44148a7f1ed92ab3bc2999\"\u003e\u003ccode\u003ea909333\u003c/code\u003e\u003c/a\u003e Bump pypa/cibuildwheel from 3.1.3 to 3.2.0 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2328\"\u003e#2328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/2086d4428e29da17bafc684acbfb04bb537ce573\"\u003e\u003ccode\u003e2086d44\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2326\"\u003e#2326\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/50c1cf30be0e37081991b6d5a5dc3531cfbe35da\"\u003e\u003ccode\u003e50c1cf3\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4 to 5 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2321\"\u003e#2321\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/39490ab685a42a2c189f2ce7a45b7d07053e8e8f\"\u003e\u003ccode\u003e39490ab\u003c/code\u003e\u003c/a\u003e TST: update test_coverage_union_overlapping_inputs for upstream GEOS change (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/5ef437c898b54f723ad0e4a8b6b513b9cc5d68a2\"\u003e\u003ccode\u003e5ef437c\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2320\"\u003e#2320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/7b5ff3d24b7889d35f96ee3ae9ec26250b3d6147\"\u003e\u003ccode\u003e7b5ff3d\u003c/code\u003e\u003c/a\u003e BLD: add Python 3.14 wheels [Bump pypa/cibuildwheel from 3.0.1 to 3.1.3] (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2316\"\u003e#2316\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/480dbb14f47b685e95c03654983405185c15babd\"\u003e\u003ccode\u003e480dbb1\u003c/code\u003e\u003c/a\u003e TST: update frechet_distance densify test for latest GEOS main (densify\u0026gt;0.001...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/shapely/shapely/compare/2.0.7...2.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-two-factor-auth[phonenumbers]` from 1.17.0 to 1.18.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jazzband/django-two-factor-auth/releases\"\u003edjango-two-factor-auth[phonenumbers]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.18.1\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew translations for Azerbaijani and Serbian\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.18.0\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocumentation for setting yubikey support forgot to inform users they would\nneed to add our yubikey plugin to \u003ccode\u003eINSTALLED_APPS\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRemove reference to release-notes that had been missed, docs now build\nwithout warnings\u003c/li\u003e\n\u003cli\u003eWebAuthn: avoid submitting the wrong form\u003c/li\u003e\n\u003cli\u003eEmail gateway: tell user to use correct django-otp plugin\u003c/li\u003e\n\u003cli\u003eFix infinite redirect on admin site with AdminSiteOTPRequiredMixin\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow qrcode 8.x.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ephonenumbers\u003c/code\u003e is no longer a hard requirement for users who don't require it.\u003c/li\u003e\n\u003cli\u003eChange \u003ccode\u003eEmailDevice.confirmed\u003c/code\u003e default to \u003ccode\u003eFalse\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAny \u003ccode\u003eStaticDevice\u003c/code\u003e can be used as backup tokens, not just those labelled\n\u0026quot;backup\u0026quot;\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Django 5.2\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.13\u003c/li\u003e\n\u003cli\u003eDjango check for \u003ccode\u003eINSTALLED_APPS\u003c/code\u003e to make sure \u003ccode\u003etwo_factor\u003c/code\u003e is present and\ncomes before its plugins\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8\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 href=\"https://github.com/jazzband/django-two-factor-auth/blob/master/CHANGELOG.md\"\u003edjango-two-factor-auth[phonenumbers]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.18.1\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew translations for Azerbaijani and Serbian\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.18.0\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocumentation for setting yubikey support forgot to inform users they would\nneed to add our yubikey plugin to \u003ccode\u003eINSTALLED_APPS\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRemove reference to release-notes that had been missed, docs now build\nwithout warnings\u003c/li\u003e\n\u003cli\u003eWebAuthn: avoid submitting the wrong form\u003c/li\u003e\n\u003cli\u003eEmail gateway: tell user to use correct django-otp plugin\u003c/li\u003e\n\u003cli\u003eFix infinite redirect on admin site with AdminSiteOTPRequiredMixin\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow qrcode 8.x.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ephonenumbers\u003c/code\u003e is no longer a hard requirement for users who don't require it.\u003c/li\u003e\n\u003cli\u003eChange \u003ccode\u003eEmailDevice.confirmed\u003c/code\u003e default to \u003ccode\u003eFalse\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAny \u003ccode\u003eStaticDevice\u003c/code\u003e can be used as backup tokens, not just those labelled\n\u0026quot;backup\u0026quot;\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Django 5.2\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.13\u003c/li\u003e\n\u003cli\u003eDjango check for \u003ccode\u003eINSTALLED_APPS\u003c/code\u003e to make sure \u003ccode\u003etwo_factor\u003c/code\u003e is present and\ncomes before its plugins\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8\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 href=\"https://github.com/jazzband/django-two-factor-auth/commit/38a6ba7b6fb579b3465d66f33c4e2f25ffad28c0\"\u003e\u003ccode\u003e38a6ba7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/django-two-factor-auth/issues/778\"\u003e#778\u003c/a\u003e from claudep/missing_trans\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/004c93839e331e72740c4e6e73516d05afbca855\"\u003e\u003ccode\u003e004c938\u003c/code\u003e\u003c/a\u003e Fixes \u003ca href=\"https://redirect.github.com/jazzband/django-two-factor-auth/issues/777\"\u003e#777\u003c/a\u003e - Add missing Azerbaijani and Serbian translations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/59f44669649f281ca9b25a2beba438609f72a3a5\"\u003e\u003ccode\u003e59f4466\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/django-two-factor-auth/issues/776\"\u003e#776\u003c/a\u003e from jazzband/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/d5517043e9f9cdec4e4850f0f33e28eea485fb79\"\u003e\u003ccode\u003ed551704\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/7405b6fd545ddbbd67d28292fca2c8ef6cf0de92\"\u003e\u003ccode\u003e7405b6f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/django-two-factor-auth/issues/774\"\u003e#774\u003c/a\u003e from moggers87/release-1.18.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/b47945c8188e46ad2f64bf929c1a745682b6de15\"\u003e\u003ccode\u003eb47945c\u003c/code\u003e\u003c/a\u003e Update CHANGELOG with latest changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/b20741c609ca3fd3fe52dd3cfe1ebc3e98ce2383\"\u003e\u003ccode\u003eb20741c\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into release-1.18.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/966dab4c5bdf11b88e42bc820c8adea684b4e0d0\"\u003e\u003ccode\u003e966dab4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/django-two-factor-auth/issues/775\"\u003e#775\u003c/a\u003e from claudep/phoneplugin2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/9c72f871f0ebd3bede20d823372b02608480c4c7\"\u003e\u003ccode\u003e9c72f87\u003c/code\u003e\u003c/a\u003e Refs \u003ca href=\"https://redirect.github.com/jazzband/django-two-factor-auth/issues/469\"\u003e#469\u003c/a\u003e - Only import phonenumber functions when plugin is installed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/ec0923bf400d6faf3c82acff312c1fe5add70047\"\u003e\u003ccode\u003eec0923b\u003c/code\u003e\u003c/a\u003e Pull latest translations from Transifex\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jazzband/django-two-factor-auth/compare/1.17.0...1.18.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `boto3` from 1.40.30 to 1.40.55\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/eb5f82773991f715b62dc38f6801d76d1035a868\"\u003e\u003ccode\u003eeb5f827\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.55'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/52a3496b66a6ff66755c4315c55f22b07826e758\"\u003e\u003ccode\u003e52a3496\u003c/code\u003e\u003c/a\u003e Bumping version to 1.40.55\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/0c90e25258ee214b06e96f3b458a6e0d843a990a\"\u003e\u003ccode\u003e0c90e25\u003c/code\u003e\u003c/a\u003e Add changelog entries from botocore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/2f92c15bdda649d95fce1d865c65f81dfab5f3f4\"\u003e\u003ccode\u003e2f92c15\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.54'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/eaf0158a0a0b80633d2e6a5c58bf78c1fbfb4bd1\"\u003e\u003ccode\u003eeaf0158\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.54' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/574a0d474790a8c548f7b8618b29a874fffe10e6\"\u003e\u003ccode\u003e574a0d4\u003c/code\u003e\u003c/a\u003e Bumping version to 1.40.54\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/1ada209aa81b0919af8c7df09c04efa7b4bfa626\"\u003e\u003ccode\u003e1ada209\u003c/code\u003e\u003c/a\u003e Add changelog entries from botocore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/9a9288aae8f60bc20679b57291fd642af33f4102\"\u003e\u003ccode\u003e9a9288a\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.53'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/7d581c32f273a4835fe8fc67917e856f2bb2a1c3\"\u003e\u003ccode\u003e7d581c3\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.53' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/312bc51267cbf62136b2f37543e88aa46f770506\"\u003e\u003ccode\u003e312bc51\u003c/code\u003e\u003c/a\u003e Bumping version to 1.40.53\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boto/boto3/compare/1.40.30...1.40.55\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uwsgi` from 2.0.30 to 2.0.31\n\nUpdates `coverage` from 7.10.6 to 7.11.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.11.0 — 2025-10-15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9, declared support for Python 3.15 alpha.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _changes_7-10-7:\u003c/p\u003e\n\u003ch2\u003eVersion 7.10.7 — 2025-09-21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance: with branch coverage in large files, generating HTML, JSON, or\nLCOV reports could take far too long due to some quadratic behavior when\ncreating the function and class index pages.  This is now fixed, closing\n\u003ccode\u003eissue 2048\u003c/code\u003e_.  Thanks to Daniel Diniz for help diagnosing the problem.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMost warnings and a few errors now have links to a page in the docs\nexplaining the specific message.  Closes \u003ccode\u003eissue 1921\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1921: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1921\"\u003enedbat/coveragepy#1921\u003c/a\u003e\n.. _issue 2048: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2048\"\u003enedbat/coveragepy#2048\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-10-6:\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 href=\"https://github.com/nedbat/coveragepy/commit/20ef00b4abc33a52ffcb10de4d3144e29dbea6a3\"\u003e\u003ccode\u003e20ef00b\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/5edf8ebf1f9754b32bad92d4826ed651614d9b94\"\u003e\u003ccode\u003e5edf8eb\u003c/code\u003e\u003c/a\u003e docs: prep for 7.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/2c023ae7a1c50e375d20c31b0b8c693416ba92a5\"\u003e\u003ccode\u003e2c023ae\u003c/code\u003e\u003c/a\u003e build: 3.15 is supported\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/2f1b95b0bd913397da3236155ca78e2117731247\"\u003e\u003ccode\u003e2f1b95b\u003c/code\u003e\u003c/a\u003e refactor: no need for _BaseCoverageException\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/72b1bcc77e0062eefaf9d1da40c6b8c2ef0ec27e\"\u003e\u003ccode\u003e72b1bcc\u003c/code\u003e\u003c/a\u003e build: test light-threads on all versions of Python\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/16e93797527eada3417afc439fc4b28a432d6efc\"\u003e\u003ccode\u003e16e9379\u003c/code\u003e\u003c/a\u003e refactor: move core tests to their own file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/bc8875db8f98439c046f4c141cb7aecdaa8d1f56\"\u003e\u003ccode\u003ebc8875d\u003c/code\u003e\u003c/a\u003e test: change a test to be in-process so metacov can capture its work\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/8e5d5b1bd53147e8618019191a062d2b86747355\"\u003e\u003ccode\u003e8e5d5b1\u003c/code\u003e\u003c/a\u003e build: tweak some version info\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/b0236dffef02f1aa219326b96230bdf26b9f5e6c\"\u003e\u003ccode\u003eb0236df\u003c/code\u003e\u003c/a\u003e test: more tests for core selection, and some refactoring of them\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/56edde623ae497c3638e608ef6803583c1db8720\"\u003e\u003ccode\u003e56edde6\u003c/code\u003e\u003c/a\u003e build: next version will be 7.11.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nedbat/coveragepy/compare/7.10.6...7.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tox` from 4.30.2 to 4.31.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/tox/releases\"\u003etox's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.31.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAddress a type-conversion noted during doc builds by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3623\"\u003etox-dev/tox#3623\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd 3.14, drop 3.9 and support | union style by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3624\"\u003etox-dev/tox#3624\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/tox/compare/4.30.3...4.31.0\"\u003ehttps://github.com/tox-dev/tox/compare/4.30.3...4.31.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.30.3\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIsolate the test suite from any existing \u003ccode\u003eDEFAULT_CONFIG_FILE\u003c/code\u003e file by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3612\"\u003etox-dev/tox#3612\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix none config file issue 3611 by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3613\"\u003etox-dev/tox#3613\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3608\"\u003etox-dev/tox#3608\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix incorrect type annotations in PythonPathPackageWithDeps (fixes \u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3607\"\u003e#3607\u003c/a\u003e) by \u003ca href=\"https://github.com/PreistlyPython\"\u003e\u003ccode\u003e@​PreistlyPython\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3616\"\u003etox-dev/tox#3616\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3615\"\u003etox-dev/tox#3615\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=\"https://github.com/PreistlyPython\"\u003e\u003ccode\u003e@​PreistlyPython\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3616\"\u003etox-dev/tox#3616\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/tox/compare/4.30.2...4.30.3\"\u003ehttps://github.com/tox-dev/tox/compare/4.30.2...4.30.3\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 href=\"https://github.com/tox-dev/tox/blob/main/docs/changelog.rst\"\u003etox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.31.0 (2025-10-09)\u003c/h2\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch2\u003ev4.30.3 (2025-10-02)\u003c/h2\u003e\n\u003cp\u003eBugfixes - 4.30.3\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e- Fix incorrect type annotation in ``PythonPathPackageWithDeps.__init__()``\n  where ``deps`` was annotated as ``Sequence[Package]`` but should be\n  ``Sequence[Requirement]`` to match actual runtime usage - by :user:`PreistlyPython` (:issue:`3607`)\n- Fix ``None`` appearing as the config filename in error output\n  when the user's default config file is corrupt. - by :user:`kurtmckee` (:issue:`3611`)\n\u003c/code\u003e\u003c/pre\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 href=\"https://github.com/tox-dev/tox/commit/eac78c1b6376ff37967b1f18a1d985ce3987c3c0\"\u003e\u003ccode\u003eeac78c1\u003c/code\u003e\u003c/a\u003e release 4.31.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/733f5aac5808cc45404aab592bbb27768b8f5a68\"\u003e\u003ccode\u003e733f5aa\u003c/code\u003e\u003c/a\u003e Add 3.14, drop 3.9 and support | union style (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3624\"\u003e#3624\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/b5f1cd8be910505df5a61699568150ee9b33a26f\"\u003e\u003ccode\u003eb5f1cd8\u003c/code\u003e\u003c/a\u003e Address a type-conversion noted during doc builds (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3623\"\u003e#3623\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/1f284224a1e30c0bf14efc56d46856e1c4154c23\"\u003e\u003ccode\u003e1f28422\u003c/code\u003e\u003c/a\u003e Bump astral-sh/setup-uv from 6 to 7 (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3620\"\u003e#3620\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/01442da183f81b63846182110f9cd697ad2a0eb5\"\u003e\u003ccode\u003e01442da\u003c/code\u003e\u003c/a\u003e release 4.30.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/984dc78b77278ec7640f301471f1b98756833ac8\"\u003e\u003ccode\u003e984dc78\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3615\"\u003e#3615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/660adb5ce9cbac73082231baa2b3a12494121b48\"\u003e\u003ccode\u003e660adb5\u003c/code\u003e\u003c/a\u003e Fix incorrect type annotations in PythonPathPackageWithDeps (fixes \u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3607\"\u003e#3607\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3\"\u003e#3\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/393de39c10414e1ff9d02d70686373a185634199\"\u003e\u003ccode\u003e393de39\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3608\"\u003e#3608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/6e3242613ae17fbe46ce28d8e41a5dd54dc322cc\"\u003e\u003ccode\u003e6e32426\u003c/code\u003e\u003c/a\u003e Fix none config file issue 3611 (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3613\"\u003e#3613\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/0805c8358687f6902b1793ed4616162dff733cb8\"\u003e\u003ccode\u003e0805c83\u003c/code\u003e\u003c/a\u003e Isolate the test suite from any existing \u003ccode\u003eDEFAULT_CONFIG_FILE\u003c/code\u003e file (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3612\"\u003e#3612\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tox-dev/tox/compare/4.30.2...4.31.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psutil` from 7.0.0 to 7.1.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/giampaolo/psutil/blob/master/HISTORY.rst\"\u003epsutil's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e7.1.1\u003c/h1\u003e\n\u003cp\u003e2025-10-19\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2645_, [SunOS]: dropped support for SunOS 10.\u003c/li\u003e\n\u003cli\u003e2646_, [SunOS]: add CI test runner for SunOS.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2641_, [SunOS]: cannot compile psutil from sources due to missing C include.\u003c/li\u003e\n\u003cli\u003e2357_, [SunOS]: \u003ccode\u003eProcess.cmdline()\u003c/code\u003e_ does not handle spaces properly. (patch\nby Ben Raz)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eCompatibility notes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2645_: SunOS 10 is no longer supported.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e7.1.0\u003c/h1\u003e\n\u003cp\u003e2025-09-17\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2581_, [Windows]: publish ARM64 wheels.  (patch by Matthieu Darbois)\u003c/li\u003e\n\u003cli\u003e2571_, [FreeBSD]: Dropped support for FreeBSD 8 and earlier. FreeBSD 8 was\nmaintained from 2009 to 2013.\u003c/li\u003e\n\u003cli\u003e2575_: introduced \u003ccode\u003edprint\u003c/code\u003e CLI tool to format .yml and .md files.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2473_, [macOS]: Fix build issue on macOS 11 and lower.\u003c/li\u003e\n\u003cli\u003e2494_, [Windows]: All APIs dealing with paths, such as\n\u003ccode\u003eProcess.memory_maps()\u003c/code\u003e\u003cem\u003e, \u003ccode\u003eProcess.exe()\u003c/code\u003e\u003c/em\u003e and \u003ccode\u003eProcess.open_files()\u003c/code\u003e_ does\nnot properly handle UNC paths. Paths such as \u003ccode\u003e\\\\??\\\\C:\\\\Windows\\\\Temp\u003c/code\u003e and\n\u003ccode\u003e'\\\\Device\\\\HarddiskVolume1\\\\Windows\\\\Temp'\u003c/code\u003e are now converted to\n\u003ccode\u003eC:\\\\Windows\\\\Temp\u003c/code\u003e.  (patch by Ben Peddell)\u003c/li\u003e\n\u003cli\u003e2506_, [Windows]: Windows service APIs had issues with unicode services using\nspecial characters in their name.\u003c/li\u003e\n\u003cli\u003e2514_, [Linux]: \u003ccode\u003eProcess.cwd()\u003c/code\u003e_ sometimes fail with \u003ccode\u003eFileNotFoundError\u003c/code\u003e due\nto a race condition.\u003c/li\u003e\n\u003cli\u003e2526_, [Linux]: \u003ccode\u003eProcess.create_time()\u003c/code\u003e\u003cem\u003e, which is used to univocally\nidentify a process over time, is subject to system clock updates, and as such\ncan lead to \u003ccode\u003eProcess.is_running()\u003c/code\u003e\u003c/em\u003e returning a wrong result. A monotonic\ncreation time is now used instead.  (patch by Jonathan Kohler)\u003c/li\u003e\n\u003cli\u003e2528_, [Linux]: \u003ccode\u003eProcess.children()\u003c/code\u003e_ may raise \u003ccode\u003ePermissionError\u003c/code\u003e. It will\nnow raise \u003ccode\u003eAccessDenied\u003c/code\u003e_ instead.\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 href=\"https://github.com/giampaolo/psutil/commit/a07e87a1336678cbcc929116cd826137779cf654\"\u003e\u003ccode\u003ea07e87a\u003c/code\u003e\u003c/a\u003e Pre release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/7a0756f0adf9c7191b01281f868aa1ca83488f43\"\u003e\u003ccode\u003e7a0756f\u003c/code\u003e\u003c/a\u003e Upgrade actions/setup-python@v6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/03c5c69fe6326c0857881aa6a253314785bd95b3\"\u003e\u003ccode\u003e03c5c69\u003c/code\u003e\u003c/a\u003e setup.py: link external libs also when compiling _psutil_posix.c ext\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/49b56c2ae1299e1157ce8126ae8e3aad36750e37\"\u003e\u003ccode\u003e49b56c2\u003c/code\u003e\u003c/a\u003e [SunOS] Drop SunOS 10 support (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2647\"\u003e#2647\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/8aca550dd16ec6b78d0160471bda4d24fe7e4d21\"\u003e\u003ccode\u003e8aca550\u003c/code\u003e\u003c/a\u003e [SunOS] add CI test runner for SunOS (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2646\"\u003e#2646\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/c4dd48a7788bcc4a680edef6eb28198e53710076\"\u003e\u003ccode\u003ec4dd48a\u003c/code\u003e\u003c/a\u003e Rename psutil_get_proc_list() to _psutil_pids()\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/567b6c993a06769bcfcbd9fe19e3fe092fb37bcb\"\u003e\u003ccode\u003e567b6c9\u003c/code\u003e\u003c/a\u003e CI: rename ci-* Makefile target\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/c3f655136628a2f88b5c16fb9dd61cedb79faeea\"\u003e\u003ccode\u003ec3f6551\u003c/code\u003e\u003c/a\u003e avoid raising the result of pytest.skip/pytest.fail (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2638\"\u003e#2638\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/a2091b950f65c66583f5a67fbb5d030671141f63\"\u003e\u003ccode\u003ea2091b9\u003c/code\u003e\u003c/a\u003e Centralize distribution sanity check into Makefile\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/4250b8e9e3520516766f30716daf113558cf61fd\"\u003e\u003ccode\u003e4250b8e\u003c/code\u003e\u003c/a\u003e Make ruff happy\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/giampaolo/psutil/compare/release-7.0.0...release-7.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `faker` from 37.6.0 to 37.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/joke2k/faker/releases\"\u003efaker's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v37.11.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/joke2k/faker/blob/refs/tags/v37.11.0/CHANGELOG.md\"\u003eCHANGELOG.md\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eRelease v37.10.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/joke2k/faker/blob/refs/tags/v37.10.0/CHANGELOG.md\"\u003eCHANGELOG.md\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eRelease v37.9.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/joke2k/faker/blob/refs/tags/v37.9.0/CHANGELOG.md\"\u003eCHANGELOG.md\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eRelease v37.8.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/joke2k/faker/blob/refs/tags/v37.8.0/CHANGELOG.md\"\u003eCHANGELOG.md\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eRelease v37.7.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/joke2k/faker/blob/refs/tags/v37.7.0/CHANGELOG.md\"\u003eCHANGELOG.md\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 href=\"https://github.com/joke2k/faker/blob/master/CHANGELOG.md\"\u003efaker's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003e\u003ca href=\"https://github.com/joke2k/faker/compare/v37.9.0...v37.10.0\"\u003ev37.11.0 - 2025-10-07\u003c/a\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd French company APE code. Thanks \u003ca href=\"https://github.com/fabien-michel\"\u003e\u003ccode\u003e@​fabien-michel\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003ca href=\"https://github.com/joke2k/faker/compare/v37.8.0...v37.9.0\"\u003ev37.9.0 - 2025-10-07\u003c/a\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd names generation to \u003ccode\u003een_KE\u003c/code\u003e locale. Thanks \u003ca href=\"https://github.com/titustum\"\u003e\u003ccode\u003e@​titustum\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003ca href=\"https://github.com/joke2k/faker/compare/v37.7.0...v37.8.0\"\u003ev37.8.0 - 2025-09-15\u003c/a\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Automotive providers for \u003ccode\u003eja_JP\u003c/code\u003e locale. Thanks \u003ca href=\"https://github.com/ItoRino424\"\u003e\u003ccode\u003e@​ItoRino424\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003ca href=\"https://github.com/joke2k/faker/compare/v37.6.0...v37.7.0\"\u003ev37.7.0 - 2025-09-15\u003c/a\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Nigerian name locales (\u003ccode\u003eyo_NG\u003c/code\u003e, \u003ccode\u003eha_NG\u003c/code\u003e, \u003ccode\u003eig_NG\u003c/code\u003e, \u003ccode\u003een_NG\u003c/code\u003e). Thanks \u003ca href=\"https://github.com/ifeoluwaoladeji\"\u003e\u003ccode\u003e@​ifeoluwaoladeji\u003c/code\u003e\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 href=\"https://github.com/joke2k/faker/commit/2a366a6163dfd767a1ccdb1684109e6156a745ee\"\u003e\u003ccode\u003e2a366a6\u003c/code\u003e\u003c/a\u003e Bump version: 37.10.0 → 37.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/84890eb6d84c333f73eea04b7f8128aef9740c00\"\u003e\u003ccode\u003e84890eb\u003c/code\u003e\u003c/a\u003e Bump version: 37.9.0 → 37.10.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/6e9b7ef3f1ea2c5b9d3abafb340d496d4d6dc0a3\"\u003e\u003ccode\u003e6e9b7ef\u003c/code\u003e\u003c/a\u003e 📝 Update CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/e8f344fa5a4ae01ed77c28c3b8ffa8d6c1b9a1ed\"\u003e\u003ccode\u003ee8f344f\u003c/code\u003e\u003c/a\u003e 💄 Lint code\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/de0efef770826ec2683448c4445f134633ddb823\"\u003e\u003ccode\u003ede0efef\u003c/code\u003e\u003c/a\u003e feat: add french company APE code (\u003ca href=\"https://redirect.github.com/joke2k/faker/issues/2263\"\u003e#2263\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/d4826a7c85228768a2281392cc918957e74b69ce\"\u003e\u003ccode\u003ed4826a7\u003c/code\u003e\u003c/a\u003e Bump version: 37.8.0 → 37.9.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/e49d9a164dd774e07304d36fab9761e821b82148\"\u003e\u003ccode\u003ee49d9a1\u003c/code\u003e\u003c/a\u003e 📝 Update CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/923863e9a80ccff9830a40a86b86167221dc03bd\"\u003e\u003ccode\u003e923863e\u003c/code\u003e\u003c/a\u003e 📝 Update CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/e089c8fbd778cb43c20866c01d69b77c4583d4cd\"\u003e\u003ccode\u003ee089c8f\u003c/code\u003e\u003c/a\u003e 💄 Lint code\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/b91c7c1a7c0028c7f6b4139c1b718623a3d306f7\"\u003e\u003ccode\u003eb91c7c1\u003c/code\u003e\u003c/a\u003e Add names generation to \u003ccode\u003een_KE\u003c/code\u003e locale (\u003ca href=\"https://redirect.github.com/joke2k/faker/issues/2255\"\u003e#2255\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/joke2k/faker/compare/v37.6.0...v37.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx` from 7.4.7 to 8.2.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sphinx-doc/sphinx/r...\n\n_Description has been truncated_","html_url":"https://github.com/SEED-platform/seed/pull/5123","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/SEED-platform%2Fseed/issues/5123","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/5123/packages"}},{"old_version":"2.0.30","new_version":"2.0.31","update_type":"patch","path":null,"pr_created_at":"2025-10-16T22:29:07.000Z","version_change":"2.0.30 → 2.0.31","issue":{"uuid":"3523710815","node_id":"PR_kwDOPdzh-c6uLwBd","number":56,"state":"closed","title":"Bump the python group across 1 directory with 27 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-10-30T22:26:17.000Z","author_association":null,"state_reason":null,"created_at":"2025-10-16T22:29:07.000Z","updated_at":"2025-10-30T22:26:18.000Z","time_to_close":1209430,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python","update_count":27,"packages":[{"name":"rcssmin","old_version":"1.1.2","new_version":"1.2.2","repository_url":"https://github.com/ndparker/rcssmin"},{"name":"whitenoise","old_version":"6.9.0","new_version":"6.11.0","repository_url":"https://github.com/evansd/whitenoise"},{"name":"hiredis","old_version":"3.2.1","new_version":"3.3.0","repository_url":"https://github.com/redis/hiredis-py"},{"name":"django","old_version":"5.1.11","new_version":"5.2.7","repository_url":"https://github.com/django/django"},{"name":"django-allauth","old_version":"65.10.0","new_version":"65.12.1"},{"name":"uwsgi","old_version":"2.0.30","new_version":"2.0.31"},{"name":"easy-thumbnails","old_version":"2.10","new_version":"2.10.1"},{"name":"django-cms","old_version":"5.0.2","new_version":"5.0.4","repository_url":"https://github.com/django-cms/django-cms"},{"name":"django-entangled","old_version":"0.6.3","new_version":"0.7","repository_url":"https://github.com/jrief/django-entangled"},{"name":"djangocms-text","old_version":"0.9.2","new_version":"0.9.3","repository_url":"https://github.com/django-cms/djangocms-text"},{"name":"djangocms-frontend","old_version":"2.1.4","new_version":"2.2.0","repository_url":"https://github.com/django-cms/djangocms-frontend"},{"name":"svglib","old_version":"1.5.1","new_version":"1.6.0","repository_url":"https://github.com/deeplook/svglib"},{"name":"reportlab","old_version":"4.4.3","new_version":"4.4.4"},{"name":"django-filer","old_version":"3.3.1","new_version":"3.3.2","repository_url":"https://github.com/django-cms/django-filer"},{"name":"pip-tools","old_version":"7.5.0","new_version":"7.5.1","repository_url":"https://github.com/jazzband/pip-tools"},{"name":"djangocms-snippet","old_version":"5.0.1","new_version":"5.0.2","repository_url":"https://github.com/django-cms/djangocms-snippet"},{"name":"psycopg","old_version":"3.2.9","new_version":"3.2.10"},{"name":"django-anymail","old_version":"13.0.1","new_version":"13.1"},{"name":"watchfiles","old_version":"1.1.0","new_version":"1.1.1","repository_url":"https://github.com/samuelcolvin/watchfiles"},{"name":"mypy","old_version":"1.17.1","new_version":"1.18.2","repository_url":"https://github.com/python/mypy"},{"name":"django-stubs","old_version":"5.2.2","new_version":"5.2.7"},{"name":"pytest","old_version":"8.4.1","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-sugar","old_version":"1.0.0","new_version":"1.1.1","repository_url":"https://github.com/Teemu/pytest-sugar"},{"name":"ruff","old_version":"0.12.8","new_version":"0.14.1","repository_url":"https://github.com/astral-sh/ruff"},{"name":"coverage","old_version":"7.10.3","new_version":"7.11.0","repository_url":"https://github.com/nedbat/coveragepy"},{"name":"factory-boy","old_version":"3.3.2","new_version":"3.3.3","repository_url":"https://github.com/FactoryBoy/factory_boy"},{"name":"django-coverage-plugin","old_version":"3.1.1","new_version":"3.2.0","repository_url":"https://github.com/nedbat/django_coverage_plugin"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python group with 27 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [rcssmin](https://github.com/ndparker/rcssmin) | `1.1.2` | `1.2.2` |\n| [whitenoise](https://github.com/evansd/whitenoise) | `6.9.0` | `6.11.0` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.2.1` | `3.3.0` |\n| [django](https://github.com/django/django) | `5.1.11` | `5.2.7` |\n| [django-allauth[mfa]](https://github.com/sponsors/pennersr) | `65.10.0` | `65.12.1` |\n| [uwsgi](https://uwsgi-docs.readthedocs.io/en/latest/) | `2.0.30` | `2.0.31` |\n| [easy-thumbnails[svg]](https://github.com/SmileyChris/easy-thumbnails) | `2.10` | `2.10.1` |\n| [django-cms](https://github.com/django-cms/django-cms) | `5.0.2` | `5.0.4` |\n| [django-entangled](https://github.com/jrief/django-entangled) | `0.6.3` | `0.7` |\n| [djangocms-text](https://github.com/django-cms/djangocms-text) | `0.9.2` | `0.9.3` |\n| [djangocms-frontend](https://github.com/django-cms/djangocms-frontend) | `2.1.4` | `2.2.0` |\n| [svglib](https://github.com/deeplook/svglib) | `1.5.1` | `1.6.0` |\n| [reportlab](https://www.reportlab.com/) | `4.4.3` | `4.4.4` |\n| [django-filer](https://github.com/django-cms/django-filer) | `3.3.1` | `3.3.2` |\n| [pip-tools](https://github.com/jazzband/pip-tools) | `7.5.0` | `7.5.1` |\n| [djangocms-snippet](https://github.com/django-cms/djangocms-snippet) | `5.0.1` | `5.0.2` |\n| [psycopg[c]](https://github.com/psycopg/psycopg) | `3.2.9` | `3.2.10` |\n| [django-anymail[mailgun]](https://github.com/anymail/django-anymail) | `13.0.1` | `13.1` |\n| [watchfiles](https://github.com/samuelcolvin/watchfiles) | `1.1.0` | `1.1.1` |\n| [mypy](https://github.com/python/mypy) | `1.17.1` | `1.18.2` |\n| [django-stubs[compatible-mypy]](https://github.com/sponsors/typeddjango) | `5.2.2` | `5.2.7` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.1` | `8.4.2` |\n| [pytest-sugar](https://github.com/Teemu/pytest-sugar) | `1.0.0` | `1.1.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.12.8` | `0.14.1` |\n| [coverage](https://github.com/nedbat/coveragepy) | `7.10.3` | `7.11.0` |\n| [factory-boy](https://github.com/FactoryBoy/factory_boy) | `3.3.2` | `3.3.3` |\n| [django-coverage-plugin](https://github.com/nedbat/django_coverage_plugin) | `3.1.1` | `3.2.0` |\n\n\nUpdates `rcssmin` from 1.1.2 to 1.2.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ndparker/rcssmin/blob/master/CHANGES\"\u003ercssmin's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eChanges with version 1.2.2\u003c/p\u003e\n\u003cp\u003e*) Update benchmarks\u003c/p\u003e\n\u003cp\u003e*) Add support for Python 3.14\u003c/p\u003e\n\u003cp\u003e*) Update project boilerplate\u003c/p\u003e\n\u003cp\u003eChanges with version 1.2.1\u003c/p\u003e\n\u003cp\u003e*) Change doc theme to \u0026quot;furo\u0026quot;\u003c/p\u003e\n\u003cp\u003e*) Remove build dependency pinning (resolves \u003ca href=\"https://redirect.github.com/ndparker/rcssmin/issues/18\"\u003e#18\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e*) Update project boilerplate\u003c/p\u003e\n\u003cp\u003eChanges with version 1.2.0\u003c/p\u003e\n\u003cp\u003e*) Add support for nesting selector (\u0026amp;)\u003c/p\u003e\n\u003cp\u003e*) Update project boilerplate\u003c/p\u003e\n\u003cp\u003eChanges with version 1.1.3\u003c/p\u003e\n\u003cp\u003e*) Add support for Python 3.13\u003c/p\u003e\n\u003cp\u003e*) Update project boilerplate\u003c/p\u003e\n\u003cp\u003eChanges with version 1.1.2\u003c/p\u003e\n\u003cp\u003e*) Add support for Python 3.12\u003c/p\u003e\n\u003cp\u003e*) Add musllinux wheels\u003c/p\u003e\n\u003cp\u003e*) Update project boilerplate\u003c/p\u003e\n\u003cp\u003eChanges with version 1.1.1\u003c/p\u003e\n\u003cp\u003e*) Add support for Python 3.11\u003c/p\u003e\n\u003cp\u003e*) Update project boilerplate\u003c/p\u003e\n\u003cp\u003eChanges with version 1.1.0\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 href=\"https://github.com/ndparker/rcssmin/commit/b4cac4d1ffd665aa3b8d2f9e0e09529578a67193\"\u003e\u003ccode\u003eb4cac4d\u003c/code\u003e\u003c/a\u003e Bump version to 1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/db3f06eefa05860bbe1e8fa373e0249cb6adedbb\"\u003e\u003ccode\u003edb3f06e\u003c/code\u003e\u003c/a\u003e Update benchmarks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/77816d3cf9e2f3dc03c00e1f8526e471dffdc3fe\"\u003e\u003ccode\u003e77816d3\u003c/code\u003e\u003c/a\u003e Add Python 3.14 support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/ecac7747c1a68781cf1b524ea54db44aae7c7bd2\"\u003e\u003ccode\u003eecac774\u003c/code\u003e\u003c/a\u003e Project boilerplate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/5bac716410f460f75e243961f482b1895e487b6b\"\u003e\u003ccode\u003e5bac716\u003c/code\u003e\u003c/a\u003e Bump version to 1.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/8d4312f864efa55d36742a728adffebfd27a6aa3\"\u003e\u003ccode\u003e8d4312f\u003c/code\u003e\u003c/a\u003e Hello 2025\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/41d1e1f7ae6242a80854509d7181f8a91278722b\"\u003e\u003ccode\u003e41d1e1f\u003c/code\u003e\u003c/a\u003e Update dependencies, change sphinx theme\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/5396f5ec399b2ac57293657fb87ca888f3ecda8e\"\u003e\u003ccode\u003e5396f5e\u003c/code\u003e\u003c/a\u003e Bump version to 1.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/81da21987bfe614153711217f1b50bc0fa5f4c55\"\u003e\u003ccode\u003e81da219\u003c/code\u003e\u003c/a\u003e Update benchmarks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/1f9ff6d2d89f03108ccf53332352e328ee010b82\"\u003e\u003ccode\u003e1f9ff6d\u003c/code\u003e\u003c/a\u003e Add support for nesting selector (\u0026amp;)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ndparker/rcssmin/compare/1.1.2...1.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `whitenoise` from 6.9.0 to 6.11.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/evansd/whitenoise/blob/main/docs/changelog.rst\"\u003ewhitenoise's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.11.0 (2025-09-18)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Django 6.0.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.10.0 (2025-09-09)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14.\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 href=\"https://github.com/evansd/whitenoise/commit/c9c06e9382b92fc959ffdfc3e2ec63057de82561\"\u003e\u003ccode\u003ec9c06e9\u003c/code\u003e\u003c/a\u003e Version 6.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/051c4e997a07fd3ae5e9f3ec092080102ab89d93\"\u003e\u003ccode\u003e051c4e9\u003c/code\u003e\u003c/a\u003e Support Django 6.0 (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/665\"\u003e#665\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/c903cc13394895cbb3926e48c7acecf364efcd26\"\u003e\u003ccode\u003ec903cc1\u003c/code\u003e\u003c/a\u003e Version 6.10.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/a81bcb0ae2dd0c5884ebadb762f46827ecb54d0f\"\u003e\u003ccode\u003ea81bcb0\u003c/code\u003e\u003c/a\u003e docs(django): use the stable version in URLs (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/626\"\u003e#626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/67b4f32b12a9700b6dcc30ced8e9ad23bf39baa1\"\u003e\u003ccode\u003e67b4f32\u003c/code\u003e\u003c/a\u003e Support Python 3.14 (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/664\"\u003e#664\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/da8d333d165be1bdd9e7decbb3a293b5e55ff608\"\u003e\u003ccode\u003eda8d333\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/663\"\u003e#663\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/800072482c0652f81864ae78c26539d3dfc765b2\"\u003e\u003ccode\u003e8000724\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/662\"\u003e#662\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/8fb339f0eaee9219b1e02a840b5fd2227cf2fbbf\"\u003e\u003ccode\u003e8fb339f\u003c/code\u003e\u003c/a\u003e Upgrade dependencies (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/661\"\u003e#661\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/adf64ddfa5329d622cbc4740aec49b7baf0df792\"\u003e\u003ccode\u003eadf64dd\u003c/code\u003e\u003c/a\u003e Use uvx to run tox on GitHub Actions (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/660\"\u003e#660\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/ad6eb204640ff69498f8fc60bd9eb876ee5771b8\"\u003e\u003ccode\u003ead6eb20\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/659\"\u003e#659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/evansd/whitenoise/compare/6.9.0...6.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `hiredis` from 3.2.1 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/hiredis-py/releases\"\u003ehiredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.3.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e by \u003ca href=\"https://github.com/zweizeichen\"\u003e\u003ccode\u003e@​zweizeichen\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\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 href=\"https://github.com/redis/hiredis-py/commit/187d0f387afed58a955a42ea8c5467100871f98b\"\u003e\u003ccode\u003e187d0f3\u003c/code\u003e\u003c/a\u003e Version 3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/3efcf037edc5a9f7abfaedbd3f60b2a03feb4787\"\u003e\u003ccode\u003e3efcf03\u003c/code\u003e\u003c/a\u003e Add Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/215\"\u003e#215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/966cede2c0ca0a8ac4fe0786571e5c230f39c36e\"\u003e\u003ccode\u003e966cede\u003c/code\u003e\u003c/a\u003e Fix assertion in reader.c (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/212\"\u003e#212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/78def309e58126fdaacb66e6fd40df9c46494062\"\u003e\u003ccode\u003e78def30\u003c/code\u003e\u003c/a\u003e Bump version to 3.3.0-dev\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/redis/hiredis-py/compare/v3.2.1...v3.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django` from 5.1.11 to 5.2.7\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/3cff3209e35a560f94801d428cf7f2a3ecb2a051\"\u003e\u003ccode\u003e3cff320\u003c/code\u003e\u003c/a\u003e [5.2.x] Bumped version for 5.2.7 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/ed8fc39d77465eddbde1191a054ae965f6a8a584\"\u003e\u003ccode\u003eed8fc39\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2025-59682 -- Fixed potential partial directory-traversal v...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/52fbae0a4dbbe5faa59827f8f05694a0065cc135\"\u003e\u003ccode\u003e52fbae0\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2025-59681 -- Protected QuerySet.annotate(), alias(), aggre...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/1794cbf961f9ea54715fb094fe8adc80a5054947\"\u003e\u003ccode\u003e1794cbf\u003c/code\u003e\u003c/a\u003e [5.2.x] Made cosmetic edits to 5.2.7 release notes.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/81625a141e1feaaea877fc18876fdd7b6394442c\"\u003e\u003ccode\u003e81625a1\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36587\"\u003e#36587\u003c/a\u003e -- Clarified usage of \u003ccode\u003elist.insert()\u003c/code\u003e for upload handlers.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/6f3813e4b6e3db7fa3cc612c78f898142468bca9\"\u003e\u003ccode\u003e6f3813e\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/35877\"\u003e#35877\u003c/a\u003e, Refs \u003ca href=\"https://redirect.github.com/django/django/issues/36128\"\u003e#36128\u003c/a\u003e -- Documented unique constraint when migrat...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/10a2d3b837c5d8c1ac0cabd399ad7edcc66bfa8e\"\u003e\u003ccode\u003e10a2d3b\u003c/code\u003e\u003c/a\u003e [5.2.x] Added stub release notes and release date for 5.2.7, 5.1.13, and 4.2.25.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/b2773a39a34f0f0ca768fa1daaf8bf72fca56e06\"\u003e\u003ccode\u003eb2773a3\u003c/code\u003e\u003c/a\u003e [5.2.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/25508\"\u003e#25508\u003c/a\u003e -- Used QuerySet.\u003cstrong\u003erepr\u003c/strong\u003e in docs/ref/contrib/postgres/se...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/7554c54e5f02566520dee81c8b95f47429f1b553\"\u003e\u003ccode\u003e7554c54\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36581\"\u003e#36581\u003c/a\u003e -- Updated serialization examples from XML to JSON.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/2a2936c3e6444a0f37156773ca405cedaf28dea7\"\u003e\u003ccode\u003e2a2936c\u003c/code\u003e\u003c/a\u003e [5.2.x] Updated translations from Transifex.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/5.1.11...5.2.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-allauth[mfa]` from 65.10.0 to 65.12.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sponsors/pennersr/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uwsgi` from 2.0.30 to 2.0.31\n\nUpdates `easy-thumbnails[svg]` from 2.10 to 2.10.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/blob/master/CHANGES.rst\"\u003eeasy-thumbnails[svg]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.10.1 (2025-08-17)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Django-5.2.\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 href=\"https://github.com/SmileyChris/easy-thumbnails/commit/208f672ab53e3c7596c966b5282e64ed9747a3e4\"\u003e\u003ccode\u003e208f672\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/SmileyChris/easy-thumbnails/issues/664\"\u003e#664\u003c/a\u003e from SmileyChris/jrief-patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/318a2847391bb0e3fdc0a17a52af49a5851b53c9\"\u003e\u003ccode\u003e318a284\u003c/code\u003e\u003c/a\u003e Update CHANGES.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/0989a40226197b78bfa47939e44017bedea564fa\"\u003e\u003ccode\u003e0989a40\u003c/code\u003e\u003c/a\u003e version 2.10.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/3b86790c40788ebf9ce0cb66f529d745abe715b5\"\u003e\u003ccode\u003e3b86790\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/SmileyChris/easy-thumbnails/issues/663\"\u003e#663\u003c/a\u003e from tomkins/django-5.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/221679530109e5f92b2ad4d3e25f759d6dd90ced\"\u003e\u003ccode\u003e2216795\u003c/code\u003e\u003c/a\u003e Drop support for Django 5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/2cf9af0d7dc341ccaaabc79500033584aae88fbb\"\u003e\u003ccode\u003e2cf9af0\u003c/code\u003e\u003c/a\u003e Add support for Django 5.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/4957daa823a8ee17a90859281c2d93b06930e6fa\"\u003e\u003ccode\u003e4957daa\u003c/code\u003e\u003c/a\u003e Drop py38 from Django 4.2 testing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/21759697b0b5b600e6ebd5cce336a7d25f94099b\"\u003e\u003ccode\u003e2175969\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/SmileyChris/easy-thumbnails/issues/654\"\u003e#654\u003c/a\u003e from ArcaniteSolutions/fix-remote-storages-location-l...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/26351108ed706721492e606fe4ff51179d8a4844\"\u003e\u003ccode\u003e2635110\u003c/code\u003e\u003c/a\u003e check storage has location before fixing path\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/9d6fe6632ba4f175e9f4ad61eb4b3457b8124711\"\u003e\u003ccode\u003e9d6fe66\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/SmileyChris/easy-thumbnails/issues/650\"\u003e#650\u003c/a\u003e from benkonrath/python-3.13\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/compare/2.10.0...2.10.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-cms` from 5.0.2 to 5.0.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-cms/django-cms/releases\"\u003edjango-cms's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.0.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Wrong placeholders rendered when using apphooks with own placeholders (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8343\"\u003e#8343\u003c/a\u003e) by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8348\"\u003edjango-cms/django-cms#8348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Prepare release 5.0.4 by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8352\"\u003edjango-cms/django-cms#8352\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-cms/django-cms/compare/5.0.3...5.0.4\"\u003ehttps://github.com/django-cms/django-cms/compare/5.0.3...5.0.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: Django 6 compatibility (July 2025) by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8302\"\u003edjango-cms/django-cms#8302\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: Add documentation for toolbar get_object and set_object methods by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8314\"\u003edjango-cms/django-cms#8314\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Respect individual placeholder checks if they can be changed (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8317\"\u003e#8317\u003c/a\u003e) by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8318\"\u003edjango-cms/django-cms#8318\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Cut children from inactive menu nodes when level is less or equal to 0 (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8322\"\u003e#8322\u003c/a\u003e) by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8324\"\u003edjango-cms/django-cms#8324\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: copy lang management command - include PageUrl (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/7548\"\u003e#7548\u003c/a\u003e) by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8335\"\u003edjango-cms/django-cms#8335\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Optimize placeholder and plugin utilities by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8337\"\u003edjango-cms/django-cms#8337\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Migration 0033 failed when empty placeholder objects were not present in the db by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8339\"\u003edjango-cms/django-cms#8339\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Build 5.0.3 release by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8341\"\u003edjango-cms/django-cms#8341\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-cms/django-cms/compare/5.0.2...5.0.3\"\u003ehttps://github.com/django-cms/django-cms/compare/5.0.2...5.0.3\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 href=\"https://github.com/django-cms/django-cms/blob/5.0.4/CHANGELOG.rst\"\u003edjango-cms's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.0.4 (2025-10-03)\u003c/h1\u003e\n\u003ch2\u003eBug Fixes:\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWrong placeholders rendered when using apphooks with own placeholders (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8343\"\u003e#8343\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8348\"\u003e#8348\u003c/a\u003e) (775392390) -- Fabian Braun\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eStatistics:\u003c/h2\u003e\n\u003cp\u003eThis release includes 1 pull request, and was created with the help of the following contributors (in alphabetical order):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFabian Braun (1 pull request)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWith the review help of the following contributors:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVinit Kumar\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to all contributors for their efforts!\u003c/p\u003e\n\u003ch1\u003e5.0.3 (2025-09-17)\u003c/h1\u003e\n\u003ch2\u003eBug Fixes:\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDjango 6 compatibility (July 2025) (8302) -- Fabian Braun\u003c/li\u003e\n\u003cli\u003eRespect individual placeholder checks if they can be changed (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8318\"\u003e#8318\u003c/a\u003e) -- Fabian Braun\u003c/li\u003e\n\u003cli\u003eCut children from inactive menu nodes when level is less or equal to 0 (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8324\"\u003e#8324\u003c/a\u003e) -- Stefan Wehrmeyer\u003c/li\u003e\n\u003cli\u003eCopy lang management command - include PageUrl (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8335\"\u003e#8335\u003c/a\u003e) -- Vašek Chalupníček\u003c/li\u003e\n\u003cli\u003eOptimize placeholder and plugin utilities (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8337\"\u003e#8337\u003c/a\u003e) -- Fabian Braun\u003c/li\u003e\n\u003cli\u003eMigration 0033 failed when empty placeholder objects were not present in the db (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8339\"\u003e#8339\u003c/a\u003e) -- Fabian Braun\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eStatistics:\u003c/h2\u003e\n\u003cp\u003eThis release includes 9 pull requests, and was created with the help of the following contributors (in alphabetical order):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFabian Braun (5 pull requests)\u003c/li\u003e\n\u003cli\u003eStefan Wehrmeyer (1 pull request)\u003c/li\u003e\n\u003cli\u003eVašek Chalupníček (1 pull request)\u003c/li\u003e\n\u003cli\u003eGithub Release Action (3 pull requests)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWith the review help of the following contributors:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFabian Braun\u003c/li\u003e\n\u003cli\u003eVinit Kumar\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 href=\"https://github.com/django-cms/django-cms/commit/ed3a004b62ee69f099b0f647dd33778ba0b0d1fb\"\u003e\u003ccode\u003eed3a004\u003c/code\u003e\u003c/a\u003e chore: Prepare release 5.0.4 (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8352\"\u003e#8352\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/775392390eea0ffcdeccb0d21306d6e34fb859df\"\u003e\u003ccode\u003e7753923\u003c/code\u003e\u003c/a\u003e fix: Wrong placeholders rendered when using apphooks with own placeholders (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/cb8bdcecf623e125ea789a0551279a3dc0152deb\"\u003e\u003ccode\u003ecb8bdce\u003c/code\u003e\u003c/a\u003e chore: Build 5.0.3 release (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8341\"\u003e#8341\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/7ec333dc84a443813a2ae980eab685711e9554b4\"\u003e\u003ccode\u003e7ec333d\u003c/code\u003e\u003c/a\u003e fix: Migration 0033 failed when empty placeholder objects were not present in...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/9375101a310c39dbce214845dabe9dfe9c0fd346\"\u003e\u003ccode\u003e9375101\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8337\"\u003e#8337\u003c/a\u003e from django-cms/chore/bp-8319\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/054113d845e550e6be11d97493b45acb2611dce4\"\u003e\u003ccode\u003e054113d\u003c/code\u003e\u003c/a\u003e fix: Add missing space\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/e2e78c1539f2171962abaed8f9807fc83695c20f\"\u003e\u003ccode\u003ee2e78c1\u003c/code\u003e\u003c/a\u003e fix: Undo thread critical opt.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/89dd7677c301a6a6d8de827fc78bbd712cfa5f4f\"\u003e\u003ccode\u003e89dd767\u003c/code\u003e\u003c/a\u003e perf: Optimize placeholder and plugin utilities\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/d568e811f53b67caf0fac71473015437509e75f3\"\u003e\u003ccode\u003ed568e81\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8335\"\u003e#8335\u003c/a\u003e from django-cms/chore/bp-7548\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/6c699d7f5043af9d01710a62bc2aee6ed7f16bd7\"\u003e\u003ccode\u003e6c699d7\u003c/code\u003e\u003c/a\u003e fix: copy lang management command - include PageUrl (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/7548\"\u003e#7548\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-cms/django-cms/compare/5.0.2...5.0.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-entangled` from 0.6.3 to 0.7\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jrief/django-entangled/blob/master/CHANGELOG.md\"\u003edjango-entangled's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.7\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Django 5.2.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.13.\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 href=\"https://github.com/jrief/django-entangled/commit/734bd8f8b316663a1f31d4fa7e9248a955baea21\"\u003e\u003ccode\u003e734bd8f\u003c/code\u003e\u003c/a\u003e Bump to version 0.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jrief/django-entangled/commit/fcad6c824be14d052456df759e23bc4b44646d3e\"\u003e\u003ccode\u003efcad6c8\u003c/code\u003e\u003c/a\u003e Add support for Django-5.2 and Python 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jrief/django-entangled/commit/a89b615cafcdbb939d71fb34dc30253d2dcf5c00\"\u003e\u003ccode\u003ea89b615\u003c/code\u003e\u003c/a\u003e Propagate django-formset\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/jrief/django-entangled/compare/0.6.3...0.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `djangocms-text` from 0.9.2 to 0.9.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-cms/djangocms-text/releases\"\u003edjangocms-text's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.9.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Fixed issues for non-CMS installations and added test coverage for non-CMS installations by \u003ca href=\"https://github.com/Grosskopf\"\u003e\u003ccode\u003e@​Grosskopf\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/119\"\u003edjango-cms/djangocms-text#119\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Respect plugin language for link field by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/113\"\u003edjango-cms/djangocms-text#113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/114\"\u003edjango-cms/djangocms-text#114\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/checkout from 4 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/115\"\u003edjango-cms/djangocms-text#115\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=\"https://github.com/Grosskopf\"\u003e\u003ccode\u003e@​Grosskopf\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/119\"\u003edjango-cms/djangocms-text#119\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-cms/djangocms-text/compare/0.9.2...0.9.3\"\u003ehttps://github.com/django-cms/djangocms-text/compare/0.9.2...0.9.3\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 href=\"https://github.com/django-cms/djangocms-text/blob/main/CHANGELOG.rst\"\u003edjangocms-text's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e0.9.3 (22-08-2025)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix: Fixed issues for non-CMS installations and added test coverage for non-CMS installations by \u003ca href=\"https://github.com/Grosskopf\"\u003e\u003ccode\u003e@​Grosskopf\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/119\"\u003edjango-cms/djangocms-text#119\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Respect plugin language for link field by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/113\"\u003edjango-cms/djangocms-text#113\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/Grosskopf\"\u003e\u003ccode\u003e@​Grosskopf\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/119\"\u003edjango-cms/djangocms-text#119\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 href=\"https://github.com/django-cms/djangocms-text/commit/23c8c5b276547459db18fad7bd2b45bf978c2d4b\"\u003e\u003ccode\u003e23c8c5b\u003c/code\u003e\u003c/a\u003e chore: Prepare release 0.9.3 (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/issues/120\"\u003e#120\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-text/commit/070dc3bff81b6aaad57b34bbbdce905a9a753fef\"\u003e\u003ccode\u003e070dc3b\u003c/code\u003e\u003c/a\u003e fix: Fixed issues for non-CMS installations and added test coverage for non-C...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-text/commit/d23c7830b72afd3d143bbd54dc5c3e25c7a844a7\"\u003e\u003ccode\u003ed23c783\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/issues/115\"\u003e#115\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-text/commit/4c78ee95ac529d9444a0c0342c41fe06c5edf9c1\"\u003e\u003ccode\u003e4c78ee9\u003c/code\u003e\u003c/a\u003e Merge branch 'main' of github.com:django-cms/djangocms-text\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-text/commit/d13df72a07522f1e1f84a50a4448a3ecde4bef65\"\u003e\u003ccode\u003ed13df72\u003c/code\u003e\u003c/a\u003e feat: node 24\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-text/commit/cf7b3b82f92999bb9297b213844696374f524937\"\u003e\u003ccode\u003ecf7b3b8\u003c/code\u003e\u003c/a\u003e ci: pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/issues/114\"\u003e#114\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-text/commit/5fa6205a5910b34334bdb14744f59b62a275a09e\"\u003e\u003ccode\u003e5fa6205\u003c/code\u003e\u003c/a\u003e Update comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-text/commit/79568c6b98a6e4adda9f84b84aa016254db60481\"\u003e\u003ccode\u003e79568c6\u003c/code\u003e\u003c/a\u003e fix: Respect plugin language for link field (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/issues/113\"\u003e#113\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/django-cms/djangocms-text/compare/0.9.2...0.9.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `djangocms-frontend` from 2.1.4 to 2.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-cms/djangocms-frontend/releases\"\u003edjangocms-frontend's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.2.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eci:(deps): bump actions/cache from 4.2.3 to 4.2.4 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-frontend/pull/297\"\u003edjango-cms/djangocms-frontend#297\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Only partially functional preview removed, CSS and JS refactor by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-frontend/pull/301\"\u003edjango-cms/djangocms-frontend#301\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Button group too condensed when using djangocms-admin-style by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-frontend/pull/303\"\u003edjango-cms/djangocms-frontend#303\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-cms/djangocms-frontend/compare/2.1.4...2.2.0\"\u003ehttps://github.com/django-cms/djangocms-frontend/compare/2.1.4...2.2.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 href=\"https://github.com/django-cms/djangocms-frontend/blob/main/CHANGELOG.rst\"\u003edjangocms-frontend's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.2.0 (2025-08-16)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efeat: Refactored CSS for faster and more reliable loading by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Removed link and button preview\u003c/li\u003e\n\u003cli\u003efix: Some UI Components were not discovered by the \u003ccode\u003e{% plugin %}\u003c/code\u003e template tag in django CMS 5\u003c/li\u003e\n\u003cli\u003efix: Restored Python 3.9 compatibility\u003c/li\u003e\n\u003cli\u003echore: Update node version\u003c/li\u003e\n\u003cli\u003echore: Remove bootstrap dependency\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 href=\"https://github.com/django-cms/djangocms-frontend/commit/6ec69a0c7fa36165e9bc3d5cfa333d60422985bf\"\u003e\u003ccode\u003e6ec69a0\u003c/code\u003e\u003c/a\u003e fix: Button group too condensed when using djangocms-admin-style (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-frontend/issues/303\"\u003e#303\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/662b357e8ad4642f18a73874eceac899a26ede66\"\u003e\u003ccode\u003e662b357\u003c/code\u003e\u003c/a\u003e fix: Docs references \u003ccode\u003efrontend_tags\u003c/code\u003e instead of \u003ccode\u003efrontend\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/5135e527beb741446f626e4c0c116f2e146c7667\"\u003e\u003ccode\u003e5135e52\u003c/code\u003e\u003c/a\u003e chore: Update LICENSE\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/b84bab7439442345ea8db89145a1079e4ba871bf\"\u003e\u003ccode\u003eb84bab7\u003c/code\u003e\u003c/a\u003e feat: Only partially functional preview removed, CSS and JS refactor (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-frontend/issues/301\"\u003e#301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/554418c1d4642279bef6e601ae2297ff5d634ba0\"\u003e\u003ccode\u003e554418c\u003c/code\u003e\u003c/a\u003e ci:(deps): bump actions/cache from 4.2.3 to 4.2.4 (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-frontend/issues/297\"\u003e#297\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/53a958051b6f475a3df3e48131956db0eed72d5e\"\u003e\u003ccode\u003e53a9580\u003c/code\u003e\u003c/a\u003e fix: typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/5f8829b6e5adbdf4689cc3747756e7ff4ae86dc1\"\u003e\u003ccode\u003e5f8829b\u003c/code\u003e\u003c/a\u003e Merge branch 'main' of github.com:django-cms/djangocms-frontend\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/b3a0eb6afc484c63520a2166dccff47ca0ec653e\"\u003e\u003ccode\u003eb3a0eb6\u003c/code\u003e\u003c/a\u003e fix: Python 3.9 support for plugin_tag.py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/4d3a3cf60485a9d17292a24db7654b75c19a1be9\"\u003e\u003ccode\u003e4d3a3cf\u003c/code\u003e\u003c/a\u003e fix test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/453e4c29d928076a3bf8c9e52b5a2f1f2e692231\"\u003e\u003ccode\u003e453e4c2\u003c/code\u003e\u003c/a\u003e chore: add test for py 3.9\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-cms/djangocms-frontend/compare/2.1.4...2.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `svglib` from 1.5.1 to 1.6.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/deeplook/svglib/blob/main/CHANGELOG.rst\"\u003esvglib's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.6.0 (2025-09-25)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplace setup.py with pyproject.toml, rework GitHub workflows (\u003ca href=\"https://redirect.github.com/deeplook/svglib/issues/405\"\u003e#405\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003cli\u003eModernize codebase, added type annotations, expanded docstrings, etc.\u003c/li\u003e\n\u003cli\u003eAdd a Makefile.\u003c/li\u003e\n\u003cli\u003eAdd publishing workflows.\u003c/li\u003e\n\u003cli\u003eRemove dunder constants and use importlib.metadata to get the version number.\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 href=\"https://github.com/deeplook/svglib/commit/1dce6584fb40de115479da10880dbf3b75cda955\"\u003e\u003ccode\u003e1dce658\u003c/code\u003e\u003c/a\u003e Expanded many docstrings, sanitized pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deeplook/svglib/commit/4c69f45919b181b98ebeb2614f84797217efd759\"\u003e\u003ccode\u003e4c69f45\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/deeplook/svglib/issues/412\"\u003e#412\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deeplook/svglib/commit/35a69b9af1eafbec5e4ff8eb759de7a506c4a83f\"\u003e\u003ccode\u003e35a69b9\u003c/code\u003e\u003c/a\u003e Fix format complaints\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deeplook/svglib/commit/d7eec2d2deef3a6ec5993854e0af679d4bd866f0\"\u003e\u003ccode\u003ed7eec2d\u003c/code\u003e\u003c/a\u003e Add workflow to publish on pypi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deeplook/svglib/commit/7bbbd33be99a75da97b4179935eec2dfdb64f9c0\"\u003e\u003ccode\u003e7bbbd33\u003c/code\u003e\u003c/a\u003e Fix underlines for publishing workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deeplook/svglib/commit/5bb73b8dea39a0058f6427b06ad246b09771057f\"\u003e\u003ccode\u003e5bb73b8\u003c/code\u003e\u003c/a\u003e Add workflow to publish on test.pypi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deeplook/svglib/commit/8eb422db6ec7ebeb22b69a14c3fff328c4b292ad\"\u003e\u003ccode\u003e8eb422d\u003c/code\u003e\u003c/a\u003e Fix PIL-related warning (\u003ca href=\"https://redirect.github.com/deeplook/svglib/issues/411\"\u003e#411\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deeplook/svglib/commit/3237aa1e75d1d0e924afddd4386f7f0015cfac79\"\u003e\u003ccode\u003e3237aa1\u003c/code\u003e\u003c/a\u003e Add type-checking (\u003ca href=\"https://redirect.github.com/deeplook/svglib/issues/410\"\u003e#410\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deeplook/svglib/commit/7eb6c774e73297c116f3c870c4ec4a448e7363a2\"\u003e\u003ccode\u003e7eb6c77\u003c/code\u003e\u003c/a\u003e Modernize code (\u003ca href=\"https://redirect.github.com/deeplook/svglib/issues/408\"\u003e#408\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deeplook/svglib/commit/7e9e92df52cefd5db9c73d142b9133944fd5067e\"\u003e\u003ccode\u003e7e9e92d\u003c/code\u003e\u003c/a\u003e Mention minimum supported Python version is 3.9\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/deeplook/svglib/compare/v1.5.1...v1.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `reportlab` from 4.4.3 to 4.4.4\n\nUpdates `django-filer` from 3.3.1 to 3.3.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-cms/django-filer/releases\"\u003edjango-filer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.3.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: add filename length safety check with random suffix by \u003ca href=\"https://github.com/Baraff24\"\u003e\u003ccode\u003e@​Baraff24\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1515\"\u003edjango-cms/django-filer#1515\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1516\"\u003edjango-cms/django-filer#1516\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Remove user from autocomplete fields if (swapped) user model does not have search fields by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1517\"\u003edjango-cms/django-filer#1517\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Include Private Storage in Orphan File Scanning for filer_check Command by \u003ca href=\"https://github.com/Baraff24\"\u003e\u003ccode\u003e@​Baraff24\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1518\"\u003edjango-cms/django-filer#1518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1520\"\u003edjango-cms/django-filer#1520\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Reflect template block structure of Django 5.2+ by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1523\"\u003edjango-cms/django-filer#1523\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded Full Persian (Farsi) Translate by \u003ca href=\"https://github.com/dimacodev\"\u003e\u003ccode\u003e@​dimacodev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1524\"\u003edjango-cms/django-filer#1524\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate directory_table_list.html by \u003ca href=\"https://github.com/AliAkbarSobhanpoor\"\u003e\u003ccode\u003e@​AliAkbarSobhanpoor\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1528\"\u003edjango-cms/django-filer#1528\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Avoid locale-dependent ratio by \u003ca href=\"https://github.com/albanbochsler\"\u003e\u003ccode\u003e@​albanbochsler\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1536\"\u003edjango-cms/django-filer#1536\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1531\"\u003edjango-cms/django-filer#1531\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: docs GitHub action built by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1540\"\u003edjango-cms/django-filer#1540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Update project meta data and use pyproject.toml by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1541\"\u003edjango-cms/django-filer#1541\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Folder permission cache update sometimes raised TypeError by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1539\"\u003edjango-cms/django-filer#1539\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Failed to install submodules of filer by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1544\"\u003edjango-cms/django-filer#1544\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Prepare release 3.3.2 by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1545\"\u003edjango-cms/django-filer#1545\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=\"https://github.com/Baraff24\"\u003e\u003ccode\u003e@​Baraff24\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1515\"\u003edjango-cms/django-filer#1515\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dimacodev\"\u003e\u003ccode\u003e@​dimacodev\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1524\"\u003edjango-cms/django-filer#1524\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AliAkbarSobhanpoor\"\u003e\u003ccode\u003e@​AliAkbarSobhanpoor\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1528\"\u003edjango-cms/django-filer#1528\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/albanbochsler\"\u003e\u003ccode\u003e@​albanbochsler\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1536\"\u003edjango-cms/django-filer#1536\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-cms/django-filer/compare/3.3.1...3.3.2\"\u003ehttps://github.com/django-cms/django-filer/compare/3.3.1...3.3.2\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 href=\"https://github.com/django-cms/django-filer/blob/master/CHANGELOG.rst\"\u003edjango-filer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.3.2 (2025-09-01)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix: add filename length safety check with random suffix by \u003ca href=\"https://github.com/Baraff24\"\u003e\u003ccode\u003e@​Baraff24\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1515\"\u003edjango-cms/django-filer#1515\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Remove user from autocomplete fields if (swapped) user model does not have search fields by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1517\"\u003edjango-cms/django-filer#1517\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Include Private Storage in Orphan File Scanning for filer_check Command by \u003ca href=\"https://github.com/Baraff24\"\u003e\u003ccode\u003e@​Baraff24\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1518\"\u003edjango-cms/django-filer#1518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Relect template block structure of Django 5.2+ by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1523\"\u003edjango-cms/django-filer#1523\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Added Full Persian (Farsi) Translate by \u003ca href=\"https://github.com/dimacodev\"\u003e\u003ccode\u003e@​dimacodev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1524\"\u003edjango-cms/django-filer#1524\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Update directory_table_list.html by \u003ca href=\"https://github.com/AliAkbarSobhanpoor\"\u003e\u003ccode\u003e@​AliAkbarSobhanpoor\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1528\"\u003edjango-cms/django-filer#1528\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Avoid locale-dependent ratio by \u003ca href=\"https://github.com/albanbochsler\"\u003e\u003ccode\u003e@​albanbochsler\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1536\"\u003edjango-cms/django-filer#1536\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: docs GitHub action built by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1540\"\u003edjango-cms/django-filer#1540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Folder permission cache update sometimes raised TypeError by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1539\"\u003edjango-cms/django-filer#1539\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Failed to install submodules of filer by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1544\"\u003edjango-cms/django-filer#1544\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eNew Contributors\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Baraff24\"\u003e\u003ccode\u003e@​Baraff24\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1515\"\u003edjango-cms/django-filer#1515\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dimacodev\"\u003e\u003ccode\u003e@​dimacodev\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1524\"\u003edjango-cms/django-filer#1524\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AliAkbarSobhanpoor\"\u003e\u003ccode\u003e@​AliAkbarSobhanpoor\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1528\"\u003edjango-cms/django-filer#1528\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/albanbochsler\"\u003e\u003ccode\u003e@​albanbochsler\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1536\"\u003edjango-cms/django-filer#1536\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 href=\"https://github.com/django-cms/django-filer/commit/3a5713c82a15b1f6576c13d9d35c8ba6590a5e58\"\u003e\u003ccode\u003e3a5713c\u003c/code\u003e\u003c/a\u003e chore: Prepare release 3.3.2 (\u003ca href=\"https://redirect.github.com/django-cms/django-filer/issues/1545\"\u003e#1545\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-filer/commit/3cd00e9797a6313c99d23c797ea9b71b78c0d4ca\"\u003e\u003ccode\u003e3cd00e9\u003c/code\u003e\u003c/a\u003e chore: Configure package data in pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-filer/commit/06236c41c2338f76251e4ce39acee2c1af734e7b\"\u003e\u003ccode\u003e06236c4\u003c/code\u003e\u003c/a\u003e fix: Failed to install submodules of filer (\u003ca href=\"https://redirect.github.com/django-cms/django-filer/issues/1544\"\u003e#1544\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-filer/commit/9df2d5ceba58291bc6cf34f9592db7838f54a843\"\u003e\u003ccode\u003e9df2d5c\u003c/code\u003e\u003c/a\u003e fix: Folder permission cache update sometimes raised TypeError (\u003ca href=\"https://redirect.github.com/django-cms/django-filer/issues/1539\"\u003e#1539\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-filer/commit/f3ce53ee40c40ca1460a1814779ef206b4408b18\"\u003e\u003ccode\u003ef3ce53e\u003c/code\u003e\u003c/a\u003e chore: Update project meta data and use pyproject.toml (\u003ca href=\"https://redirect.github.com/django-cms/django-filer/issues/1541\"\u003e#1541\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-filer/commit/e618986c7f9bcb84a67cc7431f56f9769a05d402\"\u003e\u003ccode\u003ee618986\u003c/code\u003e\u003c/a\u003e fix: docs GitHub action built (\u003ca href=\"https://redirect.github.com/django-cms/django-filer/issues/1540\"\u003e#1540\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-filer/commit/7d7acddb1180dca0903dd46c1e4c84ee99b7032d\"\u003e\u003ccode\u003e7d7acdd\u003c/code\u003e\u003c/a\u003e ci: pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/django-cms/django-filer/issues/1531\"\u003e#1531\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-filer/commit/da1c634f5f34ce160d69809a27cc76a4bf1f52e5\"\u003e\u003ccode\u003eda1c634\u003c/code\u003e\u003c/a\u003e fix: Avoid locale-dependent ratio (\u003ca href=\"https://redirect.github.com/django-cms/django-filer/issues/1536\"\u003e#1536\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-filer/commit/55a0e70d64fbb60d468dadf727650cce607d5edf\"\u003e\u003ccode\u003e55a0e70\u003c/code\u003e\u003c/a\u003e Update directory_table_list.html (\u003ca href=\"https://redirect.github.com/django-cms/django-filer/issues/1528\"\u003e#1528\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-filer/commit/b409ab16a940055b3dea5e03641a6073fd647774\"\u003e\u003ccode\u003eb409ab1\u003c/code\u003e\u003c/a\u003e Added Full Persain (Farsi) Translate (\u003ca href=\"https://redirect.github.com/django-cms/django-filer/issues/1524\"\u003e#1524\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-cms/django-filer/compare/3.3.1...3.3.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pip-tools` from 7.5.0 to 7.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jazzband/pip-tools/releases\"\u003epip-tools's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.5.1\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2025-09-26\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed static parsing of \u003ccode\u003epyproject.toml\u003c/code\u003e data when the \u003ccode\u003epyproject.toml\u003c/code\u003e is supplied as a relative path -- by \u003ca href=\"https://github.com/sirosen\"\u003e\u003ccode\u003e@​sirosen\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2215\"\u003e#2215\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2221\"\u003e#2221\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2233\"\u003e#2233\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe \u0026quot;via\u0026quot; paths in \u003ccode\u003epip-compile\u003c/code\u003e output for requirements discovered from \u003ccode\u003epyproject.toml\u003c/code\u003e data are now written in POSIX format -- by \u003ca href=\"https://github.com/sirosen\"\u003e\u003ccode\u003e@​sirosen\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2221\"\u003e#2221\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed a bug which removed slashes from URLs in \u003ccode\u003e-r\u003c/code\u003e and \u003ccode\u003e-c\u003c/code\u003e in the output of \u003ccode\u003epip-compile\u003c/code\u003e -- by \u003ca href=\"https://github.com/sirosen\"\u003e\u003ccode\u003e@​sirosen\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2223\"\u003e#2223\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed an incompatibility with \u003ccode\u003eclick \u0026gt;= 8.3\u003c/code\u003e which made \u003ccode\u003epip-compile\u003c/code\u003e display incorrect options in the compile command in output headers -- by \u003ca href=\"https://github.com/sirosen\"\u003e\u003ccode\u003e@​sirosen\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2235\"\u003e#2235\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003epip-tools\u003c/code\u003e now officially supports \u003ccode\u003epip\u003c/code\u003e version 25.2 -- by \u003ca href=\"https://github.com/sirosen\"\u003e\u003ccode\u003e@​sirosen\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2214\"\u003e#2214\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved documentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eReadTheDocs builds for \u003ccode\u003epip-tools\u003c/code\u003e no longer include htmlzip and pdf outputs -- by \u003ca href=\"https://github.com/sirosen\"\u003e\u003ccode\u003e@​sirosen\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2218\"\u003e#2218\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributor-facing changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003epip-tools\u003c/code\u003e now tests on \u003ccode\u003epip\u003c/code\u003e version 25.2 -- by \u003ca href=\"https://github.com/sirosen\"\u003e\u003ccode\u003e@​sirosen\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2214\"\u003e#2214\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe changelog documentation for contributors now provides hyperlinks to the source of each example change note -- by \u003ca href=\"https://github.com/jayaddison\"\u003e\u003ccode\u003e@​jayaddison\u003c/code\u003e\u003c/a\u003e (for OpenCulinary).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2217\"\u003e#2217\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe CPython versions tested in nightly CI runs are now separate from branch and PR CI, and don't include very old versions -- by \u003ca href=\"https://github.com/sirosen\"\u003e\u003ccode\u003e@​sirosen\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2226\"\u003e#2226\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jazzband/pip-tools/blob/main/CHANGELOG.md\"\u003epip-tools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.5.1\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2025-09-26\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed static parsing of {file}\u003ccode\u003epyproject.toml\u003c/code\u003e data when the\n{file}\u003ccode\u003epyproject.toml\u003c/code\u003e is supplied as a relative path -- by {user}\u003ccode\u003esirosen\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e {issue}\u003ccode\u003e2215\u003c/code\u003e, {issue}\u003ccode\u003e2221\u003c/code\u003e, {issue}\u003ccode\u003e2233\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe \u0026quot;via\u0026quot; paths in \u003ccode\u003epip-compile\u003c/code\u003e output for requirements discovered from\n\u003ccode\u003epyproject.toml\u003c/code\u003e data are now written in POSIX format -- by {user}\u003ccode\u003esirosen\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e {issue}\u003ccode\u003e2221\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed a bug which removed slashes from URLs in \u003ccode\u003e-r\u003c/code\u003e and \u003ccode\u003e-c\u003c/code\u003e in the output\nof \u003ccode\u003epip-compile\u003c/code\u003e -- by {user}\u003ccode\u003esirosen\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e {issue}\u003ccode\u003e2223\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed an incompatibility with \u003ccode\u003eclick \u0026gt;= 8.3\u003c/code\u003e which made \u003ccode\u003epip-compile\u003c/code\u003e display incorrect\noptions in the compile command in output headers -- by {user}\u003ccode\u003esirosen\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e {issue}\u003ccode\u003e2235\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003epip-tools\u003c/code\u003e now officially supports \u003ccode\u003epip\u003c/code\u003e version 25.2 -- by {user}\u003ccode\u003esirosen\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e {issue}\u003ccode\u003e2214\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved documentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eReadTheDocs builds for \u003ccode\u003epip-tools\u003c/code\u003e no longer include htmlzip and pdf outputs -- by {user}\u003ccode\u003esirosen\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e {issue}\u003ccode\u003e2218\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributor-facing changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003epip-tools\u003c/code\u003e now tests on \u003ccode\u003epip\u003c/code\u003e version 25.2 -- by {user}\u003ccode\u003esirosen\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e {issue}\u003ccode\u003e2214\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe changelog documentation for contributors now provides hyperlinks to the source of each example change note -- by {user}\u003ccode\u003ejayaddison\u003c/code\u003e (for OpenCulinary).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e {issue}\u003ccode\u003e2217\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe CPython versions tested in nightly CI runs are now separate from\nbranch and PR CI, and don't include very old versions -- by {user}\u003ccode\u003esirosen\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 href=\"https://github.com/jazzband/pip-tools/commit/1c2692b7f45a94d93e3f4bb252da3fd711ad08a9\"\u003e\u003ccode\u003e1c2692b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2245\"\u003e#2245\u003c/a\u003e from sirosen/release-7.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/6a863fdebc8481adcda6fd0d019e0e1cc052b6ae\"\u003e\u003ccode\u003e6a863fd\u003c/code\u003e\u003c/a\u003e Various small fixes to the changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/e8adc41d8054c998cc1c927f1a9cddb9a13f812a\"\u003e\u003ccode\u003ee8adc41\u003c/code\u003e\u003c/a\u003e Update changelog for version 7.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/9b4de7d3b8f3a4f12650a00fd6d63793ff0d4d38\"\u003e\u003ccode\u003e9b4de7d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2242\"\u003e#2242\u003c/a\u003e from sirosen/bump-nightly-ci-job-to-310\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/cd233ddb638f555d8a05012ffd6d61d9dc2f7b5c\"\u003e\u003ccode\u003ecd233dd\u003c/code\u003e\u003c/a\u003e Separately control CPython versions in nightly CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/78020b415bf6a023d45532ddcc8f87482336b43e\"\u003e\u003ccode\u003e78020b4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2243\"\u003e#2243\u003c/a\u003e from openculinary/pr-2217-followup/add-changelog-entry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/2be5b1f76a8b34f0f4555d5761bb4ec86116d461\"\u003e\u003ccode\u003e2be5b1f\u003c/code\u003e\u003c/a\u003e Add changelog entry for \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2217\"\u003e#2217\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/16c793b06897e1ab22d326ebe249780a2fac9116\"\u003e\u003ccode\u003e16c793b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2221\"\u003e#2221\u003c/a\u003e from sirosen/fix-relpath-static-pyproject-parse\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/76bdc77f2cc44470347921c6aaa232719aab49cf\"\u003e\u003ccode\u003e76bdc77\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2217\"\u003e#2217\u003c/a\u003e from openculinary/pr-2203-followup/reify-changenote-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/a5cf40c6418fcc241078845509fb47fa04fbe2cb\"\u003e\u003ccode\u003ea5cf40c\u003c/code\u003e\u003c/a\u003e Link second resolved issue in changelog\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jazzband/pip-tools/compare/v7.5.0...v7.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `djangocms-snippet` from 5.0.1 to 5.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-cms/djangocms-snippet/releases\"\u003edjangocms-snippet's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.0.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eBigAutoField\u003c/code\u003e to \u003ccode\u003eid\u003c/code\u003e fields by \u003ca href=\"https://github.com/arkain\"\u003e\u003ccode\u003e@​arkain\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/pull/189\"\u003edjango-cms/djangocms-snippet#189\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/pull/188\"\u003edjango-cms/djangocms-snippet#188\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAutomatically remove orphaned grouper instances by \u003ca href=\"https://github.com/ms-18\"\u003e\u003ccode\u003e@​ms-18\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/pull/190\"\u003edjango-cms/djangocms-snippet#190\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/pull/191\"\u003edjango-cms/djangocms-snippet#191\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 4 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/pull/193\"\u003edjango-cms/djangocms-snippet#193\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/download-artifact from 4 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/pull/192\"\u003edjango-cms/djangocms-snippet#192\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=\"https://github.com/arkain\"\u003e\u003ccode\u003e@​arkain\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/pull/189\"\u003edjango-cms/djangocms-snippet#189\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ms-18\"\u003e\u003ccode\u003e@​ms-18\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/pull/190\"\u003edjango-cms/djangocms-snippet#190\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-cms/djangocms-snippet/compare/5.0.1...5.0.2\"\u003ehttps://github.com/django-cms/djangocms-snippet/compare/5.0.1...5.0.2\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 href=\"https://github.com/django-cms/djangocms-snippet/blob/master/CHANGELOG.rst\"\u003edjangocms-snippet's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.0.2 (2025-09-03)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eBigAutoField\u003c/code\u003e to \u003ccode\u003eid\u003c/code\u003e fields by \u003ca href=\"https://github.com/arkain\"\u003e\u003ccode\u003e@​arkain\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/pull/189\"\u003edjango-cms/djangocms-snippet#189\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAutomatically remove orphaned grouper instances by \u003ca href=\"https://github.com/ms-18\"\u003e\u003ccode\u003e@​ms-18\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/pull/190\"\u003edjango-cms/djangocms-snippet#190\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eNew Contributors\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arkain\"\u003e\u003ccode\u003e@​arkain\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/pull/189\"\u003edjango-cms/djangocms-snippet#189\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ms-18\"\u003e\u003ccode\u003e@​ms-18\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/pull/190\"\u003edjango-cms/djangocms-snippet#190\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 href=\"https://github.com/django-cms/djangocms-snippet/commit/f8df3f0055f72d145188c1218524342f8db00dc8\"\u003e\u003ccode\u003ef8df3f0\u003c/code\u003e\u003c/a\u003e Bump version to 5.0.2 (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/issues/194\"\u003e#194\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-snippet/commit/81333f0173e30a282d968a30c50b198464fc2960\"\u003e\u003ccode\u003e81333f0\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4 to 5 (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/issues/192\"\u003e#192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-snippet/commit/9108b93dfa1d98e5982673264067179dbbd25e6a\"\u003e\u003ccode\u003e9108b93\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/issues/193\"\u003e#193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-snippet/commit/66df4c1590232f7372a91106ce05cfc4000f1b15\"\u003e\u003ccode\u003e66df4c1\u003c/code\u003e\u003c/a\u003e ci: pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/issues/191\"\u003e#191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-snippet/commit/0fbfa1de5adc885bc8ed1186ebb2473b07c686b8\"\u003e\u003ccode\u003e0fbfa1d\u003c/code\u003e\u003c/a\u003e Automatically remove orphaned grouper instances (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/issues/190\"\u003e#190\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-snippet/commit/8ed5edaeab7093b0b3faa4508edd815e66ccb682\"\u003e\u003ccode\u003e8ed5eda\u003c/code\u003e\u003c/a\u003e ci: pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/issues/188\"\u003e#188\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-snippet/commit/60d3f181a01b69befb2911e44a791cd9f9481e94\"\u003e\u003ccode\u003e60d3f18\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eBigAutoField\u003c/code\u003e to \u003ccode\u003eid\u003c/code\u003e fields (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/issues/189\"\u003e#189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/django-cms/djangocms-snippet/compare/5.0.1...5.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg[c]` from 3.2.9 to 3.2.10\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg/blob/master/docs/news.rst\"\u003epsycopg[c]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e.. currentmodule:: psycopg\u003c/p\u003e\n\u003cp\u003e.. index::\nsingle: Release notes\nsingle: News\u003c/p\u003e\n\u003ch1\u003e\u003ccode\u003epsycopg\u003c/code\u003e release notes\u003c/h1\u003e\n\u003ch2\u003eFuture releases\u003c/h2\u003e\n\u003cp\u003ePsycopg 3.3.0 (unreleased)\n^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003e.. rubric:: New top-level features\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd :ref:\u003ccode\u003etemplate strings queries \\\u0026lt;template-strings\u0026gt;\u003c/code\u003e (:ticket:\u003ccode\u003e[#1054](https://github.com/psycopg/psycopg/issues/1054)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eCursors are now iterators, not only iterables. This means you can call\n\u003ccode\u003enext(cur)\u003c/code\u003e to fetch the next row (:ticket:\u003ccode\u003e[#1064](https://github.com/psycopg/psycopg/issues/1064)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eCursor.results()\u003c/code\u003e to iterate over the result sets of the queries\nexecuted though \u003ccode\u003e~Cursor.executemany()\u003c/code\u003e or \u003ccode\u003e~Cursor.execute()\u003c/code\u003e\n(:ticket:\u003ccode\u003e[#1080](https://github.com/psycopg/psycopg/issues/1080)\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. rubric:: New libpq wrapper features\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epq.PGconn.used_gssapi\u003c/code\u003e attribute and \u003ccode\u003eCapabilities.has_used_gssapi()\u003c/code\u003e\nfunction (:ticket:\u003ccode\u003e[#1138](https://github.com/psycopg/psycopg/issues/1138)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eConnectionInfo.full_protocol_version\u003c/code\u003e attribute,\n\u003ccode\u003eCapabilities.has_full_protocol_version()\u003c/code\u003e function (:ticket:\u003ccode\u003e[#1079](https://github.com/psycopg/psycopg/issues/1079)\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. rubric:: Other changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDisable default GSSAPI preferential connection in the binary package\n(:ticket:\u003ccode\u003e[#1136](https://github.com/psycopg/psycopg/issues/1136)\u003c/code\u003e).\u003c/p\u003e\n\u003cp\u003e.. warning::\u003c/p\u003e\n\u003cp\u003ePlease explicitly set the gssencmode_ connection parameter or the\n:envvar:\u003ccode\u003ePGGSSENCMODE\u003c/code\u003e environment variable to interact reliably with the\nGSSAPI.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDrop support for Python 3.8 (:ticket:\u003ccode\u003e[#976](https://github.com/psycopg/psycopg/issues/976)\u003c/code\u003e) and 3.9 (:ticket:\u003ccode\u003e[#1056](https://github.com/psycopg/psycopg/issues/1056)\u003c/code\u003e).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePsycopg 3.2.11 (unreleased)\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix spurious readiness flags in some of the wait functions (:ticket:\u003ccode\u003e[#1141](https://github.com/psycopg/psycopg/issues/1141)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix high CPU usage using the \u003ccode\u003ewait_c\u003c/code\u003e function on Windows (:ticket:\u003ccode\u003e[#645](https://github.com/psycopg/psycopg/issues/645)\u003c/code\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 href=\"https://github.com/psycopg/psycopg/commit/6cc2adfb45464f201bb7a15dd95189a7af16c26e\"\u003e\u003ccode\u003e6cc2adf\u003c/code\u003e\u003c/a\u003e chore: bump psycopg package version to 3.2.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/4c2fd3735c0670d63b92a7ad098fc0a0a2c7f52a\"\u003e\u003ccode\u003e4c2fd37\u003c/code\u003e\u003c/a\u003e Merge branch 'pg18-3.2' into maint-3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/6ddad7b4bb7144b317e41ea57fcf3b720756fc8a\"\u003e\u003ccode\u003e6ddad7b\u003c/code\u003e\u003c/a\u003e docs: mention PostgreSQL v18 support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/30bfdb954ea93cf92ce9a823f41ea6f67fd03d52\"\u003e\u003ccode\u003e30bfdb9\u003c/code\u003e\u003c/a\u003e ci: add PostgreSQL 18 to the test grid\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/57236b83b83cbfb588fcfcf70c1ca81c62d05a5b\"\u003e\u003ccode\u003e57236b8\u003c/code\u003e\u003c/a\u003e chore: add PostgreSQL 18 exceptions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/970a307b3d6d2b5125abf8337320aab97292f34f\"\u003e\u003ccode\u003e970a307\u003c/code\u003e\u003c/a\u003e fix: add ConnStatus.CONNECTION_AUTHENTICATING value\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/6903a92b5f9dc40e25f3a3d7ba62a4b4e739a638\"\u003e\u003ccode\u003e6903a92\u003c/code\u003e\u003c/a\u003e Merge branch 'fix-1091' into maint-3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/43ad961c85703c0458c58eccc512ec1e1f2d9fae\"\u003e\u003ccode\u003e43ad961\u003c/code\u003e\u003c/a\u003e docs: document the changes to notifies generator\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/eac8115523d1b569e279eaec5fc31d76da25ef55\"\u003e\u003cc...\n\n_Description has been truncated_","html_url":"https://github.com/maxnoelp2/coolify-template/pull/56","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/maxnoelp2%2Fcoolify-template/issues/56","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/56/packages"}},{"old_version":"2.0.30","new_version":"2.0.31","update_type":"patch","path":null,"pr_created_at":"2025-10-16T21:25:20.000Z","version_change":"2.0.30 → 2.0.31","issue":{"uuid":"3523565948","node_id":"PR_kwDOPfcqS86uLQUA","number":55,"state":"closed","title":"Bump the python group across 1 directory with 27 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-10-30T21:26:58.000Z","author_association":null,"state_reason":null,"created_at":"2025-10-16T21:25:20.000Z","updated_at":"2025-10-30T21:26:59.000Z","time_to_close":1209698,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python","update_count":27,"packages":[{"name":"rcssmin","old_version":"1.1.2","new_version":"1.2.2","repository_url":"https://github.com/ndparker/rcssmin"},{"name":"whitenoise","old_version":"6.9.0","new_version":"6.11.0","repository_url":"https://github.com/evansd/whitenoise"},{"name":"hiredis","old_version":"3.2.1","new_version":"3.3.0","repository_url":"https://github.com/redis/hiredis-py"},{"name":"django","old_version":"5.1.11","new_version":"5.2.7","repository_url":"https://github.com/django/django"},{"name":"django-allauth","old_version":"65.10.0","new_version":"65.12.1"},{"name":"uwsgi","old_version":"2.0.30","new_version":"2.0.31"},{"name":"easy-thumbnails","old_version":"2.10","new_version":"2.10.1"},{"name":"django-cms","old_version":"5.0.2","new_version":"5.0.4","repository_url":"https://github.com/django-cms/django-cms"},{"name":"django-entangled","old_version":"0.6.3","new_version":"0.7","repository_url":"https://github.com/jrief/django-entangled"},{"name":"djangocms-text","old_version":"0.9.2","new_version":"0.9.3","repository_url":"https://github.com/django-cms/djangocms-text"},{"name":"djangocms-frontend","old_version":"2.1.4","new_version":"2.2.0","repository_url":"https://github.com/django-cms/djangocms-frontend"},{"name":"svglib","old_version":"1.5.1","new_version":"1.6.0","repository_url":"https://github.com/deeplook/svglib"},{"name":"reportlab","old_version":"4.4.3","new_version":"4.4.4"},{"name":"django-filer","old_version":"3.3.1","new_version":"3.3.2","repository_url":"https://github.com/django-cms/django-filer"},{"name":"pip-tools","old_version":"7.5.0","new_version":"7.5.1","repository_url":"https://github.com/jazzband/pip-tools"},{"name":"djangocms-snippet","old_version":"5.0.1","new_version":"5.0.2","repository_url":"https://github.com/django-cms/djangocms-snippet"},{"name":"psycopg","old_version":"3.2.9","new_version":"3.2.10"},{"name":"django-anymail","old_version":"13.0.1","new_version":"13.1"},{"name":"watchfiles","old_version":"1.1.0","new_version":"1.1.1","repository_url":"https://github.com/samuelcolvin/watchfiles"},{"name":"mypy","old_version":"1.17.1","new_version":"1.18.2","repository_url":"https://github.com/python/mypy"},{"name":"django-stubs","old_version":"5.2.2","new_version":"5.2.7"},{"name":"pytest","old_version":"8.4.1","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-sugar","old_version":"1.0.0","new_version":"1.1.1","repository_url":"https://github.com/Teemu/pytest-sugar"},{"name":"ruff","old_version":"0.12.8","new_version":"0.14.1","repository_url":"https://github.com/astral-sh/ruff"},{"name":"coverage","old_version":"7.10.3","new_version":"7.11.0","repository_url":"https://github.com/nedbat/coveragepy"},{"name":"factory-boy","old_version":"3.3.2","new_version":"3.3.3","repository_url":"https://github.com/FactoryBoy/factory_boy"},{"name":"django-coverage-plugin","old_version":"3.1.1","new_version":"3.2.0","repository_url":"https://github.com/nedbat/django_coverage_plugin"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python group with 27 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [rcssmin](https://github.com/ndparker/rcssmin) | `1.1.2` | `1.2.2` |\n| [whitenoise](https://github.com/evansd/whitenoise) | `6.9.0` | `6.11.0` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.2.1` | `3.3.0` |\n| [django](https://github.com/django/django) | `5.1.11` | `5.2.7` |\n| [django-allauth[mfa]](https://github.com/sponsors/pennersr) | `65.10.0` | `65.12.1` |\n| [uwsgi](https://uwsgi-docs.readthedocs.io/en/latest/) | `2.0.30` | `2.0.31` |\n| [easy-thumbnails[svg]](https://github.com/SmileyChris/easy-thumbnails) | `2.10` | `2.10.1` |\n| [django-cms](https://github.com/django-cms/django-cms) | `5.0.2` | `5.0.4` |\n| [django-entangled](https://github.com/jrief/django-entangled) | `0.6.3` | `0.7` |\n| [djangocms-text](https://github.com/django-cms/djangocms-text) | `0.9.2` | `0.9.3` |\n| [djangocms-frontend](https://github.com/django-cms/djangocms-frontend) | `2.1.4` | `2.2.0` |\n| [svglib](https://github.com/deeplook/svglib) | `1.5.1` | `1.6.0` |\n| [reportlab](https://www.reportlab.com/) | `4.4.3` | `4.4.4` |\n| [django-filer](https://github.com/django-cms/django-filer) | `3.3.1` | `3.3.2` |\n| [pip-tools](https://github.com/jazzband/pip-tools) | `7.5.0` | `7.5.1` |\n| [djangocms-snippet](https://github.com/django-cms/djangocms-snippet) | `5.0.1` | `5.0.2` |\n| [psycopg[c]](https://github.com/psycopg/psycopg) | `3.2.9` | `3.2.10` |\n| [django-anymail[mailgun]](https://github.com/anymail/django-anymail) | `13.0.1` | `13.1` |\n| [watchfiles](https://github.com/samuelcolvin/watchfiles) | `1.1.0` | `1.1.1` |\n| [mypy](https://github.com/python/mypy) | `1.17.1` | `1.18.2` |\n| [django-stubs[compatible-mypy]](https://github.com/sponsors/typeddjango) | `5.2.2` | `5.2.7` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.1` | `8.4.2` |\n| [pytest-sugar](https://github.com/Teemu/pytest-sugar) | `1.0.0` | `1.1.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.12.8` | `0.14.1` |\n| [coverage](https://github.com/nedbat/coveragepy) | `7.10.3` | `7.11.0` |\n| [factory-boy](https://github.com/FactoryBoy/factory_boy) | `3.3.2` | `3.3.3` |\n| [django-coverage-plugin](https://github.com/nedbat/django_coverage_plugin) | `3.1.1` | `3.2.0` |\n\n\nUpdates `rcssmin` from 1.1.2 to 1.2.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ndparker/rcssmin/blob/master/CHANGES\"\u003ercssmin's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eChanges with version 1.2.2\u003c/p\u003e\n\u003cp\u003e*) Update benchmarks\u003c/p\u003e\n\u003cp\u003e*) Add support for Python 3.14\u003c/p\u003e\n\u003cp\u003e*) Update project boilerplate\u003c/p\u003e\n\u003cp\u003eChanges with version 1.2.1\u003c/p\u003e\n\u003cp\u003e*) Change doc theme to \u0026quot;furo\u0026quot;\u003c/p\u003e\n\u003cp\u003e*) Remove build dependency pinning (resolves \u003ca href=\"https://redirect.github.com/ndparker/rcssmin/issues/18\"\u003e#18\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e*) Update project boilerplate\u003c/p\u003e\n\u003cp\u003eChanges with version 1.2.0\u003c/p\u003e\n\u003cp\u003e*) Add support for nesting selector (\u0026amp;)\u003c/p\u003e\n\u003cp\u003e*) Update project boilerplate\u003c/p\u003e\n\u003cp\u003eChanges with version 1.1.3\u003c/p\u003e\n\u003cp\u003e*) Add support for Python 3.13\u003c/p\u003e\n\u003cp\u003e*) Update project boilerplate\u003c/p\u003e\n\u003cp\u003eChanges with version 1.1.2\u003c/p\u003e\n\u003cp\u003e*) Add support for Python 3.12\u003c/p\u003e\n\u003cp\u003e*) Add musllinux wheels\u003c/p\u003e\n\u003cp\u003e*) Update project boilerplate\u003c/p\u003e\n\u003cp\u003eChanges with version 1.1.1\u003c/p\u003e\n\u003cp\u003e*) Add support for Python 3.11\u003c/p\u003e\n\u003cp\u003e*) Update project boilerplate\u003c/p\u003e\n\u003cp\u003eChanges with version 1.1.0\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 href=\"https://github.com/ndparker/rcssmin/commit/b4cac4d1ffd665aa3b8d2f9e0e09529578a67193\"\u003e\u003ccode\u003eb4cac4d\u003c/code\u003e\u003c/a\u003e Bump version to 1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/db3f06eefa05860bbe1e8fa373e0249cb6adedbb\"\u003e\u003ccode\u003edb3f06e\u003c/code\u003e\u003c/a\u003e Update benchmarks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/77816d3cf9e2f3dc03c00e1f8526e471dffdc3fe\"\u003e\u003ccode\u003e77816d3\u003c/code\u003e\u003c/a\u003e Add Python 3.14 support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/ecac7747c1a68781cf1b524ea54db44aae7c7bd2\"\u003e\u003ccode\u003eecac774\u003c/code\u003e\u003c/a\u003e Project boilerplate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/5bac716410f460f75e243961f482b1895e487b6b\"\u003e\u003ccode\u003e5bac716\u003c/code\u003e\u003c/a\u003e Bump version to 1.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/8d4312f864efa55d36742a728adffebfd27a6aa3\"\u003e\u003ccode\u003e8d4312f\u003c/code\u003e\u003c/a\u003e Hello 2025\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/41d1e1f7ae6242a80854509d7181f8a91278722b\"\u003e\u003ccode\u003e41d1e1f\u003c/code\u003e\u003c/a\u003e Update dependencies, change sphinx theme\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/5396f5ec399b2ac57293657fb87ca888f3ecda8e\"\u003e\u003ccode\u003e5396f5e\u003c/code\u003e\u003c/a\u003e Bump version to 1.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/81da21987bfe614153711217f1b50bc0fa5f4c55\"\u003e\u003ccode\u003e81da219\u003c/code\u003e\u003c/a\u003e Update benchmarks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ndparker/rcssmin/commit/1f9ff6d2d89f03108ccf53332352e328ee010b82\"\u003e\u003ccode\u003e1f9ff6d\u003c/code\u003e\u003c/a\u003e Add support for nesting selector (\u0026amp;)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ndparker/rcssmin/compare/1.1.2...1.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `whitenoise` from 6.9.0 to 6.11.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/evansd/whitenoise/blob/main/docs/changelog.rst\"\u003ewhitenoise's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.11.0 (2025-09-18)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Django 6.0.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.10.0 (2025-09-09)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14.\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 href=\"https://github.com/evansd/whitenoise/commit/c9c06e9382b92fc959ffdfc3e2ec63057de82561\"\u003e\u003ccode\u003ec9c06e9\u003c/code\u003e\u003c/a\u003e Version 6.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/051c4e997a07fd3ae5e9f3ec092080102ab89d93\"\u003e\u003ccode\u003e051c4e9\u003c/code\u003e\u003c/a\u003e Support Django 6.0 (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/665\"\u003e#665\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/c903cc13394895cbb3926e48c7acecf364efcd26\"\u003e\u003ccode\u003ec903cc1\u003c/code\u003e\u003c/a\u003e Version 6.10.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/a81bcb0ae2dd0c5884ebadb762f46827ecb54d0f\"\u003e\u003ccode\u003ea81bcb0\u003c/code\u003e\u003c/a\u003e docs(django): use the stable version in URLs (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/626\"\u003e#626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/67b4f32b12a9700b6dcc30ced8e9ad23bf39baa1\"\u003e\u003ccode\u003e67b4f32\u003c/code\u003e\u003c/a\u003e Support Python 3.14 (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/664\"\u003e#664\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/da8d333d165be1bdd9e7decbb3a293b5e55ff608\"\u003e\u003ccode\u003eda8d333\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/663\"\u003e#663\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/800072482c0652f81864ae78c26539d3dfc765b2\"\u003e\u003ccode\u003e8000724\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/662\"\u003e#662\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/8fb339f0eaee9219b1e02a840b5fd2227cf2fbbf\"\u003e\u003ccode\u003e8fb339f\u003c/code\u003e\u003c/a\u003e Upgrade dependencies (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/661\"\u003e#661\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/adf64ddfa5329d622cbc4740aec49b7baf0df792\"\u003e\u003ccode\u003eadf64dd\u003c/code\u003e\u003c/a\u003e Use uvx to run tox on GitHub Actions (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/660\"\u003e#660\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/ad6eb204640ff69498f8fc60bd9eb876ee5771b8\"\u003e\u003ccode\u003ead6eb20\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/659\"\u003e#659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/evansd/whitenoise/compare/6.9.0...6.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `hiredis` from 3.2.1 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/hiredis-py/releases\"\u003ehiredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.3.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e by \u003ca href=\"https://github.com/zweizeichen\"\u003e\u003ccode\u003e@​zweizeichen\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\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 href=\"https://github.com/redis/hiredis-py/commit/187d0f387afed58a955a42ea8c5467100871f98b\"\u003e\u003ccode\u003e187d0f3\u003c/code\u003e\u003c/a\u003e Version 3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/3efcf037edc5a9f7abfaedbd3f60b2a03feb4787\"\u003e\u003ccode\u003e3efcf03\u003c/code\u003e\u003c/a\u003e Add Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/215\"\u003e#215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/966cede2c0ca0a8ac4fe0786571e5c230f39c36e\"\u003e\u003ccode\u003e966cede\u003c/code\u003e\u003c/a\u003e Fix assertion in reader.c (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/212\"\u003e#212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/78def309e58126fdaacb66e6fd40df9c46494062\"\u003e\u003ccode\u003e78def30\u003c/code\u003e\u003c/a\u003e Bump version to 3.3.0-dev\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/redis/hiredis-py/compare/v3.2.1...v3.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django` from 5.1.11 to 5.2.7\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/3cff3209e35a560f94801d428cf7f2a3ecb2a051\"\u003e\u003ccode\u003e3cff320\u003c/code\u003e\u003c/a\u003e [5.2.x] Bumped version for 5.2.7 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/ed8fc39d77465eddbde1191a054ae965f6a8a584\"\u003e\u003ccode\u003eed8fc39\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2025-59682 -- Fixed potential partial directory-traversal v...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/52fbae0a4dbbe5faa59827f8f05694a0065cc135\"\u003e\u003ccode\u003e52fbae0\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2025-59681 -- Protected QuerySet.annotate(), alias(), aggre...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/1794cbf961f9ea54715fb094fe8adc80a5054947\"\u003e\u003ccode\u003e1794cbf\u003c/code\u003e\u003c/a\u003e [5.2.x] Made cosmetic edits to 5.2.7 release notes.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/81625a141e1feaaea877fc18876fdd7b6394442c\"\u003e\u003ccode\u003e81625a1\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36587\"\u003e#36587\u003c/a\u003e -- Clarified usage of \u003ccode\u003elist.insert()\u003c/code\u003e for upload handlers.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/6f3813e4b6e3db7fa3cc612c78f898142468bca9\"\u003e\u003ccode\u003e6f3813e\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/35877\"\u003e#35877\u003c/a\u003e, Refs \u003ca href=\"https://redirect.github.com/django/django/issues/36128\"\u003e#36128\u003c/a\u003e -- Documented unique constraint when migrat...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/10a2d3b837c5d8c1ac0cabd399ad7edcc66bfa8e\"\u003e\u003ccode\u003e10a2d3b\u003c/code\u003e\u003c/a\u003e [5.2.x] Added stub release notes and release date for 5.2.7, 5.1.13, and 4.2.25.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/b2773a39a34f0f0ca768fa1daaf8bf72fca56e06\"\u003e\u003ccode\u003eb2773a3\u003c/code\u003e\u003c/a\u003e [5.2.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/25508\"\u003e#25508\u003c/a\u003e -- Used QuerySet.\u003cstrong\u003erepr\u003c/strong\u003e in docs/ref/contrib/postgres/se...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/7554c54e5f02566520dee81c8b95f47429f1b553\"\u003e\u003ccode\u003e7554c54\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36581\"\u003e#36581\u003c/a\u003e -- Updated serialization examples from XML to JSON.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/2a2936c3e6444a0f37156773ca405cedaf28dea7\"\u003e\u003ccode\u003e2a2936c\u003c/code\u003e\u003c/a\u003e [5.2.x] Updated translations from Transifex.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/5.1.11...5.2.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-allauth[mfa]` from 65.10.0 to 65.12.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sponsors/pennersr/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uwsgi` from 2.0.30 to 2.0.31\n\nUpdates `easy-thumbnails[svg]` from 2.10 to 2.10.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/blob/master/CHANGES.rst\"\u003eeasy-thumbnails[svg]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.10.1 (2025-08-17)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Django-5.2.\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 href=\"https://github.com/SmileyChris/easy-thumbnails/commit/208f672ab53e3c7596c966b5282e64ed9747a3e4\"\u003e\u003ccode\u003e208f672\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/SmileyChris/easy-thumbnails/issues/664\"\u003e#664\u003c/a\u003e from SmileyChris/jrief-patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/318a2847391bb0e3fdc0a17a52af49a5851b53c9\"\u003e\u003ccode\u003e318a284\u003c/code\u003e\u003c/a\u003e Update CHANGES.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/0989a40226197b78bfa47939e44017bedea564fa\"\u003e\u003ccode\u003e0989a40\u003c/code\u003e\u003c/a\u003e version 2.10.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/3b86790c40788ebf9ce0cb66f529d745abe715b5\"\u003e\u003ccode\u003e3b86790\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/SmileyChris/easy-thumbnails/issues/663\"\u003e#663\u003c/a\u003e from tomkins/django-5.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/221679530109e5f92b2ad4d3e25f759d6dd90ced\"\u003e\u003ccode\u003e2216795\u003c/code\u003e\u003c/a\u003e Drop support for Django 5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/2cf9af0d7dc341ccaaabc79500033584aae88fbb\"\u003e\u003ccode\u003e2cf9af0\u003c/code\u003e\u003c/a\u003e Add support for Django 5.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/4957daa823a8ee17a90859281c2d93b06930e6fa\"\u003e\u003ccode\u003e4957daa\u003c/code\u003e\u003c/a\u003e Drop py38 from Django 4.2 testing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/21759697b0b5b600e6ebd5cce336a7d25f94099b\"\u003e\u003ccode\u003e2175969\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/SmileyChris/easy-thumbnails/issues/654\"\u003e#654\u003c/a\u003e from ArcaniteSolutions/fix-remote-storages-location-l...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/26351108ed706721492e606fe4ff51179d8a4844\"\u003e\u003ccode\u003e2635110\u003c/code\u003e\u003c/a\u003e check storage has location before fixing path\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/commit/9d6fe6632ba4f175e9f4ad61eb4b3457b8124711\"\u003e\u003ccode\u003e9d6fe66\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/SmileyChris/easy-thumbnails/issues/650\"\u003e#650\u003c/a\u003e from benkonrath/python-3.13\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/SmileyChris/easy-thumbnails/compare/2.10.0...2.10.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-cms` from 5.0.2 to 5.0.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-cms/django-cms/releases\"\u003edjango-cms's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.0.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Wrong placeholders rendered when using apphooks with own placeholders (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8343\"\u003e#8343\u003c/a\u003e) by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8348\"\u003edjango-cms/django-cms#8348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Prepare release 5.0.4 by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8352\"\u003edjango-cms/django-cms#8352\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-cms/django-cms/compare/5.0.3...5.0.4\"\u003ehttps://github.com/django-cms/django-cms/compare/5.0.3...5.0.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: Django 6 compatibility (July 2025) by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8302\"\u003edjango-cms/django-cms#8302\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: Add documentation for toolbar get_object and set_object methods by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8314\"\u003edjango-cms/django-cms#8314\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Respect individual placeholder checks if they can be changed (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8317\"\u003e#8317\u003c/a\u003e) by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8318\"\u003edjango-cms/django-cms#8318\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Cut children from inactive menu nodes when level is less or equal to 0 (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8322\"\u003e#8322\u003c/a\u003e) by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8324\"\u003edjango-cms/django-cms#8324\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: copy lang management command - include PageUrl (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/7548\"\u003e#7548\u003c/a\u003e) by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8335\"\u003edjango-cms/django-cms#8335\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Optimize placeholder and plugin utilities by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8337\"\u003edjango-cms/django-cms#8337\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Migration 0033 failed when empty placeholder objects were not present in the db by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8339\"\u003edjango-cms/django-cms#8339\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Build 5.0.3 release by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-cms/pull/8341\"\u003edjango-cms/django-cms#8341\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-cms/django-cms/compare/5.0.2...5.0.3\"\u003ehttps://github.com/django-cms/django-cms/compare/5.0.2...5.0.3\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 href=\"https://github.com/django-cms/django-cms/blob/5.0.4/CHANGELOG.rst\"\u003edjango-cms's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.0.4 (2025-10-03)\u003c/h1\u003e\n\u003ch2\u003eBug Fixes:\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWrong placeholders rendered when using apphooks with own placeholders (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8343\"\u003e#8343\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8348\"\u003e#8348\u003c/a\u003e) (775392390) -- Fabian Braun\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eStatistics:\u003c/h2\u003e\n\u003cp\u003eThis release includes 1 pull request, and was created with the help of the following contributors (in alphabetical order):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFabian Braun (1 pull request)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWith the review help of the following contributors:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVinit Kumar\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to all contributors for their efforts!\u003c/p\u003e\n\u003ch1\u003e5.0.3 (2025-09-17)\u003c/h1\u003e\n\u003ch2\u003eBug Fixes:\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDjango 6 compatibility (July 2025) (8302) -- Fabian Braun\u003c/li\u003e\n\u003cli\u003eRespect individual placeholder checks if they can be changed (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8318\"\u003e#8318\u003c/a\u003e) -- Fabian Braun\u003c/li\u003e\n\u003cli\u003eCut children from inactive menu nodes when level is less or equal to 0 (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8324\"\u003e#8324\u003c/a\u003e) -- Stefan Wehrmeyer\u003c/li\u003e\n\u003cli\u003eCopy lang management command - include PageUrl (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8335\"\u003e#8335\u003c/a\u003e) -- Vašek Chalupníček\u003c/li\u003e\n\u003cli\u003eOptimize placeholder and plugin utilities (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8337\"\u003e#8337\u003c/a\u003e) -- Fabian Braun\u003c/li\u003e\n\u003cli\u003eMigration 0033 failed when empty placeholder objects were not present in the db (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8339\"\u003e#8339\u003c/a\u003e) -- Fabian Braun\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eStatistics:\u003c/h2\u003e\n\u003cp\u003eThis release includes 9 pull requests, and was created with the help of the following contributors (in alphabetical order):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFabian Braun (5 pull requests)\u003c/li\u003e\n\u003cli\u003eStefan Wehrmeyer (1 pull request)\u003c/li\u003e\n\u003cli\u003eVašek Chalupníček (1 pull request)\u003c/li\u003e\n\u003cli\u003eGithub Release Action (3 pull requests)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWith the review help of the following contributors:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFabian Braun\u003c/li\u003e\n\u003cli\u003eVinit Kumar\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 href=\"https://github.com/django-cms/django-cms/commit/ed3a004b62ee69f099b0f647dd33778ba0b0d1fb\"\u003e\u003ccode\u003eed3a004\u003c/code\u003e\u003c/a\u003e chore: Prepare release 5.0.4 (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8352\"\u003e#8352\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/775392390eea0ffcdeccb0d21306d6e34fb859df\"\u003e\u003ccode\u003e7753923\u003c/code\u003e\u003c/a\u003e fix: Wrong placeholders rendered when using apphooks with own placeholders (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/cb8bdcecf623e125ea789a0551279a3dc0152deb\"\u003e\u003ccode\u003ecb8bdce\u003c/code\u003e\u003c/a\u003e chore: Build 5.0.3 release (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8341\"\u003e#8341\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/7ec333dc84a443813a2ae980eab685711e9554b4\"\u003e\u003ccode\u003e7ec333d\u003c/code\u003e\u003c/a\u003e fix: Migration 0033 failed when empty placeholder objects were not present in...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/9375101a310c39dbce214845dabe9dfe9c0fd346\"\u003e\u003ccode\u003e9375101\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8337\"\u003e#8337\u003c/a\u003e from django-cms/chore/bp-8319\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/054113d845e550e6be11d97493b45acb2611dce4\"\u003e\u003ccode\u003e054113d\u003c/code\u003e\u003c/a\u003e fix: Add missing space\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/e2e78c1539f2171962abaed8f9807fc83695c20f\"\u003e\u003ccode\u003ee2e78c1\u003c/code\u003e\u003c/a\u003e fix: Undo thread critical opt.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/89dd7677c301a6a6d8de827fc78bbd712cfa5f4f\"\u003e\u003ccode\u003e89dd767\u003c/code\u003e\u003c/a\u003e perf: Optimize placeholder and plugin utilities\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/d568e811f53b67caf0fac71473015437509e75f3\"\u003e\u003ccode\u003ed568e81\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/8335\"\u003e#8335\u003c/a\u003e from django-cms/chore/bp-7548\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-cms/commit/6c699d7f5043af9d01710a62bc2aee6ed7f16bd7\"\u003e\u003ccode\u003e6c699d7\u003c/code\u003e\u003c/a\u003e fix: copy lang management command - include PageUrl (\u003ca href=\"https://redirect.github.com/django-cms/django-cms/issues/7548\"\u003e#7548\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-cms/django-cms/compare/5.0.2...5.0.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-entangled` from 0.6.3 to 0.7\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jrief/django-entangled/blob/master/CHANGELOG.md\"\u003edjango-entangled's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.7\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Django 5.2.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.13.\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 href=\"https://github.com/jrief/django-entangled/commit/734bd8f8b316663a1f31d4fa7e9248a955baea21\"\u003e\u003ccode\u003e734bd8f\u003c/code\u003e\u003c/a\u003e Bump to version 0.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jrief/django-entangled/commit/fcad6c824be14d052456df759e23bc4b44646d3e\"\u003e\u003ccode\u003efcad6c8\u003c/code\u003e\u003c/a\u003e Add support for Django-5.2 and Python 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jrief/django-entangled/commit/a89b615cafcdbb939d71fb34dc30253d2dcf5c00\"\u003e\u003ccode\u003ea89b615\u003c/code\u003e\u003c/a\u003e Propagate django-formset\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/jrief/django-entangled/compare/0.6.3...0.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `djangocms-text` from 0.9.2 to 0.9.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-cms/djangocms-text/releases\"\u003edjangocms-text's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.9.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Fixed issues for non-CMS installations and added test coverage for non-CMS installations by \u003ca href=\"https://github.com/Grosskopf\"\u003e\u003ccode\u003e@​Grosskopf\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/119\"\u003edjango-cms/djangocms-text#119\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Respect plugin language for link field by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/113\"\u003edjango-cms/djangocms-text#113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/114\"\u003edjango-cms/djangocms-text#114\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/checkout from 4 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/115\"\u003edjango-cms/djangocms-text#115\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=\"https://github.com/Grosskopf\"\u003e\u003ccode\u003e@​Grosskopf\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/119\"\u003edjango-cms/djangocms-text#119\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-cms/djangocms-text/compare/0.9.2...0.9.3\"\u003ehttps://github.com/django-cms/djangocms-text/compare/0.9.2...0.9.3\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 href=\"https://github.com/django-cms/djangocms-text/blob/main/CHANGELOG.rst\"\u003edjangocms-text's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e0.9.3 (22-08-2025)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix: Fixed issues for non-CMS installations and added test coverage for non-CMS installations by \u003ca href=\"https://github.com/Grosskopf\"\u003e\u003ccode\u003e@​Grosskopf\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/119\"\u003edjango-cms/djangocms-text#119\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Respect plugin language for link field by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/113\"\u003edjango-cms/djangocms-text#113\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/Grosskopf\"\u003e\u003ccode\u003e@​Grosskopf\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/pull/119\"\u003edjango-cms/djangocms-text#119\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 href=\"https://github.com/django-cms/djangocms-text/commit/23c8c5b276547459db18fad7bd2b45bf978c2d4b\"\u003e\u003ccode\u003e23c8c5b\u003c/code\u003e\u003c/a\u003e chore: Prepare release 0.9.3 (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/issues/120\"\u003e#120\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-text/commit/070dc3bff81b6aaad57b34bbbdce905a9a753fef\"\u003e\u003ccode\u003e070dc3b\u003c/code\u003e\u003c/a\u003e fix: Fixed issues for non-CMS installations and added test coverage for non-C...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-text/commit/d23c7830b72afd3d143bbd54dc5c3e25c7a844a7\"\u003e\u003ccode\u003ed23c783\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/issues/115\"\u003e#115\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-text/commit/4c78ee95ac529d9444a0c0342c41fe06c5edf9c1\"\u003e\u003ccode\u003e4c78ee9\u003c/code\u003e\u003c/a\u003e Merge branch 'main' of github.com:django-cms/djangocms-text\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-text/commit/d13df72a07522f1e1f84a50a4448a3ecde4bef65\"\u003e\u003ccode\u003ed13df72\u003c/code\u003e\u003c/a\u003e feat: node 24\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-text/commit/cf7b3b82f92999bb9297b213844696374f524937\"\u003e\u003ccode\u003ecf7b3b8\u003c/code\u003e\u003c/a\u003e ci: pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/issues/114\"\u003e#114\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-text/commit/5fa6205a5910b34334bdb14744f59b62a275a09e\"\u003e\u003ccode\u003e5fa6205\u003c/code\u003e\u003c/a\u003e Update comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-text/commit/79568c6b98a6e4adda9f84b84aa016254db60481\"\u003e\u003ccode\u003e79568c6\u003c/code\u003e\u003c/a\u003e fix: Respect plugin language for link field (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-text/issues/113\"\u003e#113\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/django-cms/djangocms-text/compare/0.9.2...0.9.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `djangocms-frontend` from 2.1.4 to 2.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-cms/djangocms-frontend/releases\"\u003edjangocms-frontend's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.2.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eci:(deps): bump actions/cache from 4.2.3 to 4.2.4 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-frontend/pull/297\"\u003edjango-cms/djangocms-frontend#297\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Only partially functional preview removed, CSS and JS refactor by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-frontend/pull/301\"\u003edjango-cms/djangocms-frontend#301\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Button group too condensed when using djangocms-admin-style by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-frontend/pull/303\"\u003edjango-cms/djangocms-frontend#303\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-cms/djangocms-frontend/compare/2.1.4...2.2.0\"\u003ehttps://github.com/django-cms/djangocms-frontend/compare/2.1.4...2.2.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 href=\"https://github.com/django-cms/djangocms-frontend/blob/main/CHANGELOG.rst\"\u003edjangocms-frontend's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.2.0 (2025-08-16)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efeat: Refactored CSS for faster and more reliable loading by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Removed link and button preview\u003c/li\u003e\n\u003cli\u003efix: Some UI Components were not discovered by the \u003ccode\u003e{% plugin %}\u003c/code\u003e template tag in django CMS 5\u003c/li\u003e\n\u003cli\u003efix: Restored Python 3.9 compatibility\u003c/li\u003e\n\u003cli\u003echore: Update node version\u003c/li\u003e\n\u003cli\u003echore: Remove bootstrap dependency\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 href=\"https://github.com/django-cms/djangocms-frontend/commit/6ec69a0c7fa36165e9bc3d5cfa333d60422985bf\"\u003e\u003ccode\u003e6ec69a0\u003c/code\u003e\u003c/a\u003e fix: Button group too condensed when using djangocms-admin-style (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-frontend/issues/303\"\u003e#303\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/662b357e8ad4642f18a73874eceac899a26ede66\"\u003e\u003ccode\u003e662b357\u003c/code\u003e\u003c/a\u003e fix: Docs references \u003ccode\u003efrontend_tags\u003c/code\u003e instead of \u003ccode\u003efrontend\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/5135e527beb741446f626e4c0c116f2e146c7667\"\u003e\u003ccode\u003e5135e52\u003c/code\u003e\u003c/a\u003e chore: Update LICENSE\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/b84bab7439442345ea8db89145a1079e4ba871bf\"\u003e\u003ccode\u003eb84bab7\u003c/code\u003e\u003c/a\u003e feat: Only partially functional preview removed, CSS and JS refactor (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-frontend/issues/301\"\u003e#301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/554418c1d4642279bef6e601ae2297ff5d634ba0\"\u003e\u003ccode\u003e554418c\u003c/code\u003e\u003c/a\u003e ci:(deps): bump actions/cache from 4.2.3 to 4.2.4 (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-frontend/issues/297\"\u003e#297\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/53a958051b6f475a3df3e48131956db0eed72d5e\"\u003e\u003ccode\u003e53a9580\u003c/code\u003e\u003c/a\u003e fix: typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/5f8829b6e5adbdf4689cc3747756e7ff4ae86dc1\"\u003e\u003ccode\u003e5f8829b\u003c/code\u003e\u003c/a\u003e Merge branch 'main' of github.com:django-cms/djangocms-frontend\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/b3a0eb6afc484c63520a2166dccff47ca0ec653e\"\u003e\u003ccode\u003eb3a0eb6\u003c/code\u003e\u003c/a\u003e fix: Python 3.9 support for plugin_tag.py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/4d3a3cf60485a9d17292a24db7654b75c19a1be9\"\u003e\u003ccode\u003e4d3a3cf\u003c/code\u003e\u003c/a\u003e fix test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-frontend/commit/453e4c29d928076a3bf8c9e52b5a2f1f2e692231\"\u003e\u003ccode\u003e453e4c2\u003c/code\u003e\u003c/a\u003e chore: add test for py 3.9\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-cms/djangocms-frontend/compare/2.1.4...2.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `svglib` from 1.5.1 to 1.6.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/deeplook/svglib/blob/main/CHANGELOG.rst\"\u003esvglib's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.6.0 (2025-09-25)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplace setup.py with pyproject.toml, rework GitHub workflows (\u003ca href=\"https://redirect.github.com/deeplook/svglib/issues/405\"\u003e#405\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003cli\u003eModernize codebase, added type annotations, expanded docstrings, etc.\u003c/li\u003e\n\u003cli\u003eAdd a Makefile.\u003c/li\u003e\n\u003cli\u003eAdd publishing workflows.\u003c/li\u003e\n\u003cli\u003eRemove dunder constants and use importlib.metadata to get the version number.\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 href=\"https://github.com/deeplook/svglib/commit/1dce6584fb40de115479da10880dbf3b75cda955\"\u003e\u003ccode\u003e1dce658\u003c/code\u003e\u003c/a\u003e Expanded many docstrings, sanitized pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deeplook/svglib/commit/4c69f45919b181b98ebeb2614f84797217efd759\"\u003e\u003ccode\u003e4c69f45\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/deeplook/svglib/issues/412\"\u003e#412\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deeplook/svglib/commit/35a69b9af1eafbec5e4ff8eb759de7a506c4a83f\"\u003e\u003ccode\u003e35a69b9\u003c/code\u003e\u003c/a\u003e Fix format complaints\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deeplook/svglib/commit/d7eec2d2deef3a6ec5993854e0af679d4bd866f0\"\u003e\u003ccode\u003ed7eec2d\u003c/code\u003e\u003c/a\u003e Add workflow to publish on pypi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deeplook/svglib/commit/7bbbd33be99a75da97b4179935eec2dfdb64f9c0\"\u003e\u003ccode\u003e7bbbd33\u003c/code\u003e\u003c/a\u003e Fix underlines for publishing workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deeplook/svglib/commit/5bb73b8dea39a0058f6427b06ad246b09771057f\"\u003e\u003ccode\u003e5bb73b8\u003c/code\u003e\u003c/a\u003e Add workflow to publish on test.pypi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deeplook/svglib/commit/8eb422db6ec7ebeb22b69a14c3fff328c4b292ad\"\u003e\u003ccode\u003e8eb422d\u003c/code\u003e\u003c/a\u003e Fix PIL-related warning (\u003ca href=\"https://redirect.github.com/deeplook/svglib/issues/411\"\u003e#411\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deeplook/svglib/commit/3237aa1e75d1d0e924afddd4386f7f0015cfac79\"\u003e\u003ccode\u003e3237aa1\u003c/code\u003e\u003c/a\u003e Add type-checking (\u003ca href=\"https://redirect.github.com/deeplook/svglib/issues/410\"\u003e#410\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deeplook/svglib/commit/7eb6c774e73297c116f3c870c4ec4a448e7363a2\"\u003e\u003ccode\u003e7eb6c77\u003c/code\u003e\u003c/a\u003e Modernize code (\u003ca href=\"https://redirect.github.com/deeplook/svglib/issues/408\"\u003e#408\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deeplook/svglib/commit/7e9e92df52cefd5db9c73d142b9133944fd5067e\"\u003e\u003ccode\u003e7e9e92d\u003c/code\u003e\u003c/a\u003e Mention minimum supported Python version is 3.9\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/deeplook/svglib/compare/v1.5.1...v1.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `reportlab` from 4.4.3 to 4.4.4\n\nUpdates `django-filer` from 3.3.1 to 3.3.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-cms/django-filer/releases\"\u003edjango-filer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.3.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: add filename length safety check with random suffix by \u003ca href=\"https://github.com/Baraff24\"\u003e\u003ccode\u003e@​Baraff24\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1515\"\u003edjango-cms/django-filer#1515\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1516\"\u003edjango-cms/django-filer#1516\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Remove user from autocomplete fields if (swapped) user model does not have search fields by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1517\"\u003edjango-cms/django-filer#1517\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Include Private Storage in Orphan File Scanning for filer_check Command by \u003ca href=\"https://github.com/Baraff24\"\u003e\u003ccode\u003e@​Baraff24\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1518\"\u003edjango-cms/django-filer#1518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1520\"\u003edjango-cms/django-filer#1520\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Reflect template block structure of Django 5.2+ by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1523\"\u003edjango-cms/django-filer#1523\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded Full Persian (Farsi) Translate by \u003ca href=\"https://github.com/dimacodev\"\u003e\u003ccode\u003e@​dimacodev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1524\"\u003edjango-cms/django-filer#1524\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate directory_table_list.html by \u003ca href=\"https://github.com/AliAkbarSobhanpoor\"\u003e\u003ccode\u003e@​AliAkbarSobhanpoor\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1528\"\u003edjango-cms/django-filer#1528\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Avoid locale-dependent ratio by \u003ca href=\"https://github.com/albanbochsler\"\u003e\u003ccode\u003e@​albanbochsler\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1536\"\u003edjango-cms/django-filer#1536\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1531\"\u003edjango-cms/django-filer#1531\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: docs GitHub action built by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1540\"\u003edjango-cms/django-filer#1540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Update project meta data and use pyproject.toml by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1541\"\u003edjango-cms/django-filer#1541\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Folder permission cache update sometimes raised TypeError by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1539\"\u003edjango-cms/django-filer#1539\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Failed to install submodules of filer by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1544\"\u003edjango-cms/django-filer#1544\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Prepare release 3.3.2 by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1545\"\u003edjango-cms/django-filer#1545\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=\"https://github.com/Baraff24\"\u003e\u003ccode\u003e@​Baraff24\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1515\"\u003edjango-cms/django-filer#1515\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dimacodev\"\u003e\u003ccode\u003e@​dimacodev\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1524\"\u003edjango-cms/django-filer#1524\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AliAkbarSobhanpoor\"\u003e\u003ccode\u003e@​AliAkbarSobhanpoor\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1528\"\u003edjango-cms/django-filer#1528\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/albanbochsler\"\u003e\u003ccode\u003e@​albanbochsler\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1536\"\u003edjango-cms/django-filer#1536\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-cms/django-filer/compare/3.3.1...3.3.2\"\u003ehttps://github.com/django-cms/django-filer/compare/3.3.1...3.3.2\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 href=\"https://github.com/django-cms/django-filer/blob/master/CHANGELOG.rst\"\u003edjango-filer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.3.2 (2025-09-01)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix: add filename length safety check with random suffix by \u003ca href=\"https://github.com/Baraff24\"\u003e\u003ccode\u003e@​Baraff24\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1515\"\u003edjango-cms/django-filer#1515\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Remove user from autocomplete fields if (swapped) user model does not have search fields by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1517\"\u003edjango-cms/django-filer#1517\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Include Private Storage in Orphan File Scanning for filer_check Command by \u003ca href=\"https://github.com/Baraff24\"\u003e\u003ccode\u003e@​Baraff24\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1518\"\u003edjango-cms/django-filer#1518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Relect template block structure of Django 5.2+ by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1523\"\u003edjango-cms/django-filer#1523\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Added Full Persian (Farsi) Translate by \u003ca href=\"https://github.com/dimacodev\"\u003e\u003ccode\u003e@​dimacodev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1524\"\u003edjango-cms/django-filer#1524\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Update directory_table_list.html by \u003ca href=\"https://github.com/AliAkbarSobhanpoor\"\u003e\u003ccode\u003e@​AliAkbarSobhanpoor\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1528\"\u003edjango-cms/django-filer#1528\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Avoid locale-dependent ratio by \u003ca href=\"https://github.com/albanbochsler\"\u003e\u003ccode\u003e@​albanbochsler\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1536\"\u003edjango-cms/django-filer#1536\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: docs GitHub action built by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1540\"\u003edjango-cms/django-filer#1540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Folder permission cache update sometimes raised TypeError by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1539\"\u003edjango-cms/django-filer#1539\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Failed to install submodules of filer by \u003ca href=\"https://github.com/fsbraun\"\u003e\u003ccode\u003e@​fsbraun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1544\"\u003edjango-cms/django-filer#1544\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eNew Contributors\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Baraff24\"\u003e\u003ccode\u003e@​Baraff24\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1515\"\u003edjango-cms/django-filer#1515\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dimacodev\"\u003e\u003ccode\u003e@​dimacodev\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1524\"\u003edjango-cms/django-filer#1524\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AliAkbarSobhanpoor\"\u003e\u003ccode\u003e@​AliAkbarSobhanpoor\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1528\"\u003edjango-cms/django-filer#1528\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/albanbochsler\"\u003e\u003ccode\u003e@​albanbochsler\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/django-filer/pull/1536\"\u003edjango-cms/django-filer#1536\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 href=\"https://github.com/django-cms/django-filer/commit/3a5713c82a15b1f6576c13d9d35c8ba6590a5e58\"\u003e\u003ccode\u003e3a5713c\u003c/code\u003e\u003c/a\u003e chore: Prepare release 3.3.2 (\u003ca href=\"https://redirect.github.com/django-cms/django-filer/issues/1545\"\u003e#1545\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-filer/commit/3cd00e9797a6313c99d23c797ea9b71b78c0d4ca\"\u003e\u003ccode\u003e3cd00e9\u003c/code\u003e\u003c/a\u003e chore: Configure package data in pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-filer/commit/06236c41c2338f76251e4ce39acee2c1af734e7b\"\u003e\u003ccode\u003e06236c4\u003c/code\u003e\u003c/a\u003e fix: Failed to install submodules of filer (\u003ca href=\"https://redirect.github.com/django-cms/django-filer/issues/1544\"\u003e#1544\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-filer/commit/9df2d5ceba58291bc6cf34f9592db7838f54a843\"\u003e\u003ccode\u003e9df2d5c\u003c/code\u003e\u003c/a\u003e fix: Folder permission cache update sometimes raised TypeError (\u003ca href=\"https://redirect.github.com/django-cms/django-filer/issues/1539\"\u003e#1539\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-filer/commit/f3ce53ee40c40ca1460a1814779ef206b4408b18\"\u003e\u003ccode\u003ef3ce53e\u003c/code\u003e\u003c/a\u003e chore: Update project meta data and use pyproject.toml (\u003ca href=\"https://redirect.github.com/django-cms/django-filer/issues/1541\"\u003e#1541\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-filer/commit/e618986c7f9bcb84a67cc7431f56f9769a05d402\"\u003e\u003ccode\u003ee618986\u003c/code\u003e\u003c/a\u003e fix: docs GitHub action built (\u003ca href=\"https://redirect.github.com/django-cms/django-filer/issues/1540\"\u003e#1540\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-filer/commit/7d7acddb1180dca0903dd46c1e4c84ee99b7032d\"\u003e\u003ccode\u003e7d7acdd\u003c/code\u003e\u003c/a\u003e ci: pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/django-cms/django-filer/issues/1531\"\u003e#1531\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-filer/commit/da1c634f5f34ce160d69809a27cc76a4bf1f52e5\"\u003e\u003ccode\u003eda1c634\u003c/code\u003e\u003c/a\u003e fix: Avoid locale-dependent ratio (\u003ca href=\"https://redirect.github.com/django-cms/django-filer/issues/1536\"\u003e#1536\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-filer/commit/55a0e70d64fbb60d468dadf727650cce607d5edf\"\u003e\u003ccode\u003e55a0e70\u003c/code\u003e\u003c/a\u003e Update directory_table_list.html (\u003ca href=\"https://redirect.github.com/django-cms/django-filer/issues/1528\"\u003e#1528\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/django-filer/commit/b409ab16a940055b3dea5e03641a6073fd647774\"\u003e\u003ccode\u003eb409ab1\u003c/code\u003e\u003c/a\u003e Added Full Persain (Farsi) Translate (\u003ca href=\"https://redirect.github.com/django-cms/django-filer/issues/1524\"\u003e#1524\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-cms/django-filer/compare/3.3.1...3.3.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pip-tools` from 7.5.0 to 7.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jazzband/pip-tools/releases\"\u003epip-tools's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.5.1\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2025-09-26\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed static parsing of \u003ccode\u003epyproject.toml\u003c/code\u003e data when the \u003ccode\u003epyproject.toml\u003c/code\u003e is supplied as a relative path -- by \u003ca href=\"https://github.com/sirosen\"\u003e\u003ccode\u003e@​sirosen\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2215\"\u003e#2215\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2221\"\u003e#2221\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2233\"\u003e#2233\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe \u0026quot;via\u0026quot; paths in \u003ccode\u003epip-compile\u003c/code\u003e output for requirements discovered from \u003ccode\u003epyproject.toml\u003c/code\u003e data are now written in POSIX format -- by \u003ca href=\"https://github.com/sirosen\"\u003e\u003ccode\u003e@​sirosen\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2221\"\u003e#2221\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed a bug which removed slashes from URLs in \u003ccode\u003e-r\u003c/code\u003e and \u003ccode\u003e-c\u003c/code\u003e in the output of \u003ccode\u003epip-compile\u003c/code\u003e -- by \u003ca href=\"https://github.com/sirosen\"\u003e\u003ccode\u003e@​sirosen\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2223\"\u003e#2223\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed an incompatibility with \u003ccode\u003eclick \u0026gt;= 8.3\u003c/code\u003e which made \u003ccode\u003epip-compile\u003c/code\u003e display incorrect options in the compile command in output headers -- by \u003ca href=\"https://github.com/sirosen\"\u003e\u003ccode\u003e@​sirosen\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2235\"\u003e#2235\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003epip-tools\u003c/code\u003e now officially supports \u003ccode\u003epip\u003c/code\u003e version 25.2 -- by \u003ca href=\"https://github.com/sirosen\"\u003e\u003ccode\u003e@​sirosen\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2214\"\u003e#2214\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved documentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eReadTheDocs builds for \u003ccode\u003epip-tools\u003c/code\u003e no longer include htmlzip and pdf outputs -- by \u003ca href=\"https://github.com/sirosen\"\u003e\u003ccode\u003e@​sirosen\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2218\"\u003e#2218\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributor-facing changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003epip-tools\u003c/code\u003e now tests on \u003ccode\u003epip\u003c/code\u003e version 25.2 -- by \u003ca href=\"https://github.com/sirosen\"\u003e\u003ccode\u003e@​sirosen\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2214\"\u003e#2214\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe changelog documentation for contributors now provides hyperlinks to the source of each example change note -- by \u003ca href=\"https://github.com/jayaddison\"\u003e\u003ccode\u003e@​jayaddison\u003c/code\u003e\u003c/a\u003e (for OpenCulinary).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2217\"\u003e#2217\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe CPython versions tested in nightly CI runs are now separate from branch and PR CI, and don't include very old versions -- by \u003ca href=\"https://github.com/sirosen\"\u003e\u003ccode\u003e@​sirosen\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2226\"\u003e#2226\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jazzband/pip-tools/blob/main/CHANGELOG.md\"\u003epip-tools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.5.1\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2025-09-26\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed static parsing of {file}\u003ccode\u003epyproject.toml\u003c/code\u003e data when the\n{file}\u003ccode\u003epyproject.toml\u003c/code\u003e is supplied as a relative path -- by {user}\u003ccode\u003esirosen\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e {issue}\u003ccode\u003e2215\u003c/code\u003e, {issue}\u003ccode\u003e2221\u003c/code\u003e, {issue}\u003ccode\u003e2233\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe \u0026quot;via\u0026quot; paths in \u003ccode\u003epip-compile\u003c/code\u003e output for requirements discovered from\n\u003ccode\u003epyproject.toml\u003c/code\u003e data are now written in POSIX format -- by {user}\u003ccode\u003esirosen\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e {issue}\u003ccode\u003e2221\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed a bug which removed slashes from URLs in \u003ccode\u003e-r\u003c/code\u003e and \u003ccode\u003e-c\u003c/code\u003e in the output\nof \u003ccode\u003epip-compile\u003c/code\u003e -- by {user}\u003ccode\u003esirosen\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e {issue}\u003ccode\u003e2223\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed an incompatibility with \u003ccode\u003eclick \u0026gt;= 8.3\u003c/code\u003e which made \u003ccode\u003epip-compile\u003c/code\u003e display incorrect\noptions in the compile command in output headers -- by {user}\u003ccode\u003esirosen\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e {issue}\u003ccode\u003e2235\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003epip-tools\u003c/code\u003e now officially supports \u003ccode\u003epip\u003c/code\u003e version 25.2 -- by {user}\u003ccode\u003esirosen\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e {issue}\u003ccode\u003e2214\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved documentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eReadTheDocs builds for \u003ccode\u003epip-tools\u003c/code\u003e no longer include htmlzip and pdf outputs -- by {user}\u003ccode\u003esirosen\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e {issue}\u003ccode\u003e2218\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributor-facing changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003epip-tools\u003c/code\u003e now tests on \u003ccode\u003epip\u003c/code\u003e version 25.2 -- by {user}\u003ccode\u003esirosen\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e {issue}\u003ccode\u003e2214\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe changelog documentation for contributors now provides hyperlinks to the source of each example change note -- by {user}\u003ccode\u003ejayaddison\u003c/code\u003e (for OpenCulinary).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e {issue}\u003ccode\u003e2217\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe CPython versions tested in nightly CI runs are now separate from\nbranch and PR CI, and don't include very old versions -- by {user}\u003ccode\u003esirosen\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 href=\"https://github.com/jazzband/pip-tools/commit/1c2692b7f45a94d93e3f4bb252da3fd711ad08a9\"\u003e\u003ccode\u003e1c2692b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2245\"\u003e#2245\u003c/a\u003e from sirosen/release-7.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/6a863fdebc8481adcda6fd0d019e0e1cc052b6ae\"\u003e\u003ccode\u003e6a863fd\u003c/code\u003e\u003c/a\u003e Various small fixes to the changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/e8adc41d8054c998cc1c927f1a9cddb9a13f812a\"\u003e\u003ccode\u003ee8adc41\u003c/code\u003e\u003c/a\u003e Update changelog for version 7.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/9b4de7d3b8f3a4f12650a00fd6d63793ff0d4d38\"\u003e\u003ccode\u003e9b4de7d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2242\"\u003e#2242\u003c/a\u003e from sirosen/bump-nightly-ci-job-to-310\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/cd233ddb638f555d8a05012ffd6d61d9dc2f7b5c\"\u003e\u003ccode\u003ecd233dd\u003c/code\u003e\u003c/a\u003e Separately control CPython versions in nightly CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/78020b415bf6a023d45532ddcc8f87482336b43e\"\u003e\u003ccode\u003e78020b4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2243\"\u003e#2243\u003c/a\u003e from openculinary/pr-2217-followup/add-changelog-entry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/2be5b1f76a8b34f0f4555d5761bb4ec86116d461\"\u003e\u003ccode\u003e2be5b1f\u003c/code\u003e\u003c/a\u003e Add changelog entry for \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2217\"\u003e#2217\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/16c793b06897e1ab22d326ebe249780a2fac9116\"\u003e\u003ccode\u003e16c793b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2221\"\u003e#2221\u003c/a\u003e from sirosen/fix-relpath-static-pyproject-parse\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/76bdc77f2cc44470347921c6aaa232719aab49cf\"\u003e\u003ccode\u003e76bdc77\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2217\"\u003e#2217\u003c/a\u003e from openculinary/pr-2203-followup/reify-changenote-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/a5cf40c6418fcc241078845509fb47fa04fbe2cb\"\u003e\u003ccode\u003ea5cf40c\u003c/code\u003e\u003c/a\u003e Link second resolved issue in changelog\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jazzband/pip-tools/compare/v7.5.0...v7.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `djangocms-snippet` from 5.0.1 to 5.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-cms/djangocms-snippet/releases\"\u003edjangocms-snippet's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.0.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eBigAutoField\u003c/code\u003e to \u003ccode\u003eid\u003c/code\u003e fields by \u003ca href=\"https://github.com/arkain\"\u003e\u003ccode\u003e@​arkain\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/pull/189\"\u003edjango-cms/djangocms-snippet#189\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/pull/188\"\u003edjango-cms/djangocms-snippet#188\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAutomatically remove orphaned grouper instances by \u003ca href=\"https://github.com/ms-18\"\u003e\u003ccode\u003e@​ms-18\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/pull/190\"\u003edjango-cms/djangocms-snippet#190\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/pull/191\"\u003edjango-cms/djangocms-snippet#191\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 4 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/pull/193\"\u003edjango-cms/djangocms-snippet#193\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/download-artifact from 4 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/pull/192\"\u003edjango-cms/djangocms-snippet#192\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=\"https://github.com/arkain\"\u003e\u003ccode\u003e@​arkain\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/pull/189\"\u003edjango-cms/djangocms-snippet#189\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ms-18\"\u003e\u003ccode\u003e@​ms-18\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/pull/190\"\u003edjango-cms/djangocms-snippet#190\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-cms/djangocms-snippet/compare/5.0.1...5.0.2\"\u003ehttps://github.com/django-cms/djangocms-snippet/compare/5.0.1...5.0.2\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 href=\"https://github.com/django-cms/djangocms-snippet/blob/master/CHANGELOG.rst\"\u003edjangocms-snippet's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.0.2 (2025-09-03)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eBigAutoField\u003c/code\u003e to \u003ccode\u003eid\u003c/code\u003e fields by \u003ca href=\"https://github.com/arkain\"\u003e\u003ccode\u003e@​arkain\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/pull/189\"\u003edjango-cms/djangocms-snippet#189\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAutomatically remove orphaned grouper instances by \u003ca href=\"https://github.com/ms-18\"\u003e\u003ccode\u003e@​ms-18\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/pull/190\"\u003edjango-cms/djangocms-snippet#190\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eNew Contributors\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arkain\"\u003e\u003ccode\u003e@​arkain\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/pull/189\"\u003edjango-cms/djangocms-snippet#189\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ms-18\"\u003e\u003ccode\u003e@​ms-18\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/pull/190\"\u003edjango-cms/djangocms-snippet#190\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 href=\"https://github.com/django-cms/djangocms-snippet/commit/f8df3f0055f72d145188c1218524342f8db00dc8\"\u003e\u003ccode\u003ef8df3f0\u003c/code\u003e\u003c/a\u003e Bump version to 5.0.2 (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/issues/194\"\u003e#194\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-snippet/commit/81333f0173e30a282d968a30c50b198464fc2960\"\u003e\u003ccode\u003e81333f0\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4 to 5 (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/issues/192\"\u003e#192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-snippet/commit/9108b93dfa1d98e5982673264067179dbbd25e6a\"\u003e\u003ccode\u003e9108b93\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/issues/193\"\u003e#193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-snippet/commit/66df4c1590232f7372a91106ce05cfc4000f1b15\"\u003e\u003ccode\u003e66df4c1\u003c/code\u003e\u003c/a\u003e ci: pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/issues/191\"\u003e#191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-snippet/commit/0fbfa1de5adc885bc8ed1186ebb2473b07c686b8\"\u003e\u003ccode\u003e0fbfa1d\u003c/code\u003e\u003c/a\u003e Automatically remove orphaned grouper instances (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/issues/190\"\u003e#190\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-snippet/commit/8ed5edaeab7093b0b3faa4508edd815e66ccb682\"\u003e\u003ccode\u003e8ed5eda\u003c/code\u003e\u003c/a\u003e ci: pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/issues/188\"\u003e#188\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-cms/djangocms-snippet/commit/60d3f181a01b69befb2911e44a791cd9f9481e94\"\u003e\u003ccode\u003e60d3f18\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eBigAutoField\u003c/code\u003e to \u003ccode\u003eid\u003c/code\u003e fields (\u003ca href=\"https://redirect.github.com/django-cms/djangocms-snippet/issues/189\"\u003e#189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/django-cms/djangocms-snippet/compare/5.0.1...5.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg[c]` from 3.2.9 to 3.2.10\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg/blob/master/docs/news.rst\"\u003epsycopg[c]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e.. currentmodule:: psycopg\u003c/p\u003e\n\u003cp\u003e.. index::\nsingle: Release notes\nsingle: News\u003c/p\u003e\n\u003ch1\u003e\u003ccode\u003epsycopg\u003c/code\u003e release notes\u003c/h1\u003e\n\u003ch2\u003eFuture releases\u003c/h2\u003e\n\u003cp\u003ePsycopg 3.3.0 (unreleased)\n^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003e.. rubric:: New top-level features\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd :ref:\u003ccode\u003etemplate strings queries \\\u0026lt;template-strings\u0026gt;\u003c/code\u003e (:ticket:\u003ccode\u003e[#1054](https://github.com/psycopg/psycopg/issues/1054)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eCursors are now iterators, not only iterables. This means you can call\n\u003ccode\u003enext(cur)\u003c/code\u003e to fetch the next row (:ticket:\u003ccode\u003e[#1064](https://github.com/psycopg/psycopg/issues/1064)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eCursor.results()\u003c/code\u003e to iterate over the result sets of the queries\nexecuted though \u003ccode\u003e~Cursor.executemany()\u003c/code\u003e or \u003ccode\u003e~Cursor.execute()\u003c/code\u003e\n(:ticket:\u003ccode\u003e[#1080](https://github.com/psycopg/psycopg/issues/1080)\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. rubric:: New libpq wrapper features\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epq.PGconn.used_gssapi\u003c/code\u003e attribute and \u003ccode\u003eCapabilities.has_used_gssapi()\u003c/code\u003e\nfunction (:ticket:\u003ccode\u003e[#1138](https://github.com/psycopg/psycopg/issues/1138)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eConnectionInfo.full_protocol_version\u003c/code\u003e attribute,\n\u003ccode\u003eCapabilities.has_full_protocol_version()\u003c/code\u003e function (:ticket:\u003ccode\u003e[#1079](https://github.com/psycopg/psycopg/issues/1079)\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. rubric:: Other changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDisable default GSSAPI preferential connection in the binary package\n(:ticket:\u003ccode\u003e[#1136](https://github.com/psycopg/psycopg/issues/1136)\u003c/code\u003e).\u003c/p\u003e\n\u003cp\u003e.. warning::\u003c/p\u003e\n\u003cp\u003ePlease explicitly set the gssencmode_ connection parameter or the\n:envvar:\u003ccode\u003ePGGSSENCMODE\u003c/code\u003e environment variable to interact reliably with the\nGSSAPI.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDrop support for Python 3.8 (:ticket:\u003ccode\u003e[#976](https://github.com/psycopg/psycopg/issues/976)\u003c/code\u003e) and 3.9 (:ticket:\u003ccode\u003e[#1056](https://github.com/psycopg/psycopg/issues/1056)\u003c/code\u003e).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePsycopg 3.2.11 (unreleased)\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix spurious readiness flags in some of the wait functions (:ticket:\u003ccode\u003e[#1141](https://github.com/psycopg/psycopg/issues/1141)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix high CPU usage using the \u003ccode\u003ewait_c\u003c/code\u003e function on Windows (:ticket:\u003ccode\u003e[#645](https://github.com/psycopg/psycopg/issues/645)\u003c/code\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 href=\"https://github.com/psycopg/psycopg/commit/6cc2adfb45464f201bb7a15dd95189a7af16c26e\"\u003e\u003ccode\u003e6cc2adf\u003c/code\u003e\u003c/a\u003e chore: bump psycopg package version to 3.2.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/4c2fd3735c0670d63b92a7ad098fc0a0a2c7f52a\"\u003e\u003ccode\u003e4c2fd37\u003c/code\u003e\u003c/a\u003e Merge branch 'pg18-3.2' into maint-3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/6ddad7b4bb7144b317e41ea57fcf3b720756fc8a\"\u003e\u003ccode\u003e6ddad7b\u003c/code\u003e\u003c/a\u003e docs: mention PostgreSQL v18 support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/30bfdb954ea93cf92ce9a823f41ea6f67fd03d52\"\u003e\u003ccode\u003e30bfdb9\u003c/code\u003e\u003c/a\u003e ci: add PostgreSQL 18 to the test grid\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/57236b83b83cbfb588fcfcf70c1ca81c62d05a5b\"\u003e\u003ccode\u003e57236b8\u003c/code\u003e\u003c/a\u003e chore: add PostgreSQL 18 exceptions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/970a307b3d6d2b5125abf8337320aab97292f34f\"\u003e\u003ccode\u003e970a307\u003c/code\u003e\u003c/a\u003e fix: add ConnStatus.CONNECTION_AUTHENTICATING value\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/6903a92b5f9dc40e25f3a3d7ba62a4b4e739a638\"\u003e\u003ccode\u003e6903a92\u003c/code\u003e\u003c/a\u003e Merge branch 'fix-1091' into maint-3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/43ad961c85703c0458c58eccc512ec1e1f2d9fae\"\u003e\u003ccode\u003e43ad961\u003c/code\u003e\u003c/a\u003e docs: document the changes to notifies generator\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/eac8115523d1b569e279eaec5fc31d76da25ef55\"\u003e\u003cc...\n\n_Description has been truncated_","html_url":"https://github.com/surfgreendevteam/coolify-cookiecutter-cms-template/pull/55","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/surfgreendevteam%2Fcoolify-cookiecutter-cms-template/issues/55","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/55/packages"}},{"old_version":"2.0.30","new_version":"2.0.31","update_type":"patch","path":null,"pr_created_at":"2025-10-16T15:01:44.023Z","version_change":"2.0.30 → 2.0.31","issue":{"uuid":"2920781424","node_id":"PR_kwDOQDraYs6uF5Zw","number":2,"state":"closed","title":"deps: bump the prod-deps group with 22 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-10-16T15:01:44.023Z","updated_at":"2025-12-23T19:34:13.572Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps: bump","group_name":"prod-deps","update_count":22,"packages":[{"name":"django","old_version":"4.2.24","new_version":"5.2.7","repository_url":"https://github.com/django/django"},{"name":"psycopg2-binary","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"hiredis","old_version":"3.2.1","new_version":"3.3.0","repository_url":"https://github.com/redis/hiredis-py"},{"name":"drf-yasg","old_version":"1.21.10","new_version":"1.21.11","repository_url":"https://github.com/axnsan12/drf-yasg"},{"name":"jellyfish","old_version":"1.2.0","new_version":"1.2.1"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"xlsxwriter","old_version":"3.2.5","new_version":"3.2.9","repository_url":"https://github.com/jmcnamara/XlsxWriter"},{"name":"xmltodict","old_version":"0.15.1","new_version":"1.0.2","repository_url":"https://github.com/martinblech/xmltodict"},{"name":"xmlschema","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/sissaschool/xmlschema"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.0","repository_url":"https://github.com/lark-parser/lark"},{"name":"shapely","old_version":"2.0.7","new_version":"2.1.2","repository_url":"https://github.com/shapely/shapely"},{"name":"django-two-factor-auth","old_version":"1.17.0","new_version":"1.18.1"},{"name":"boto3","old_version":"1.40.27","new_version":"1.40.53","repository_url":"https://github.com/boto/boto3"},{"name":"uwsgi","old_version":"2.0.30","new_version":"2.0.31"},{"name":"coverage","old_version":"7.10.6","new_version":"7.11.0","repository_url":"https://github.com/nedbat/coveragepy"},{"name":"tox","old_version":"4.30.2","new_version":"4.31.0","repository_url":"https://github.com/tox-dev/tox"},{"name":"psutil","old_version":"7.0.0","new_version":"7.1.0","repository_url":"https://github.com/giampaolo/psutil"},{"name":"faker","old_version":"37.6.0","new_version":"37.11.0","repository_url":"https://github.com/joke2k/faker"},{"name":"sphinx","old_version":"7.4.7","new_version":"8.2.3","repository_url":"https://github.com/sphinx-doc/sphinx"},{"name":"sphinxcontrib-spelling","old_version":"8.0.0","new_version":"8.0.1","repository_url":"https://github.com/sphinx-contrib/spelling"},{"name":"docutils","old_version":"0.21.2","new_version":"0.22.2","repository_url":"https://github.com/rtfd/recommonmark"},{"name":"hypothesis","old_version":"6.138.15","new_version":"6.142.0","repository_url":"https://github.com/HypothesisWorks/hypothesis"}],"path":null,"ecosystem":"pip"},"body":"Bumps the prod-deps group with 22 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [django](https://github.com/django/django) | `4.2.24` | `5.2.7` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.2.1` | `3.3.0` |\n| [drf-yasg](https://github.com/axnsan12/drf-yasg) | `1.21.10` | `1.21.11` |\n| [jellyfish](https://jellyfish.jpt.sh/) | `1.2.0` | `1.2.1` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [xlsxwriter](https://github.com/jmcnamara/XlsxWriter) | `3.2.5` | `3.2.9` |\n| [xmltodict](https://github.com/martinblech/xmltodict) | `0.15.1` | `1.0.2` |\n| [xmlschema](https://github.com/sissaschool/xmlschema) | `4.1.0` | `4.2.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.0` |\n| [shapely](https://github.com/shapely/shapely) | `2.0.7` | `2.1.2` |\n| [django-two-factor-auth[phonenumbers]](https://github.com/jazzband/django-two-factor-auth) | `1.17.0` | `1.18.1` |\n| [boto3](https://github.com/boto/boto3) | `1.40.27` | `1.40.53` |\n| [uwsgi](https://uwsgi-docs.readthedocs.io/en/latest/) | `2.0.30` | `2.0.31` |\n| [coverage](https://github.com/nedbat/coveragepy) | `7.10.6` | `7.11.0` |\n| [tox](https://github.com/tox-dev/tox) | `4.30.2` | `4.31.0` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.1.0` |\n| [faker](https://github.com/joke2k/faker) | `37.6.0` | `37.11.0` |\n| [sphinx](https://github.com/sphinx-doc/sphinx) | `7.4.7` | `8.2.3` |\n| [sphinxcontrib-spelling](https://github.com/sphinx-contrib/spelling) | `8.0.0` | `8.0.1` |\n| [docutils](https://github.com/rtfd/recommonmark) | `0.21.2` | `0.22.2` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.138.15` | `6.142.0` |\n\nUpdates `django` from 4.2.24 to 5.2.7\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/3cff3209e35a560f94801d428cf7f2a3ecb2a051\"\u003e\u003ccode\u003e3cff320\u003c/code\u003e\u003c/a\u003e [5.2.x] Bumped version for 5.2.7 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/ed8fc39d77465eddbde1191a054ae965f6a8a584\"\u003e\u003ccode\u003eed8fc39\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2025-59682 -- Fixed potential partial directory-traversal v...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/52fbae0a4dbbe5faa59827f8f05694a0065cc135\"\u003e\u003ccode\u003e52fbae0\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2025-59681 -- Protected QuerySet.annotate(), alias(), aggre...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/1794cbf961f9ea54715fb094fe8adc80a5054947\"\u003e\u003ccode\u003e1794cbf\u003c/code\u003e\u003c/a\u003e [5.2.x] Made cosmetic edits to 5.2.7 release notes.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/81625a141e1feaaea877fc18876fdd7b6394442c\"\u003e\u003ccode\u003e81625a1\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36587\"\u003e#36587\u003c/a\u003e -- Clarified usage of \u003ccode\u003elist.insert()\u003c/code\u003e for upload handlers.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/6f3813e4b6e3db7fa3cc612c78f898142468bca9\"\u003e\u003ccode\u003e6f3813e\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/35877\"\u003e#35877\u003c/a\u003e, Refs \u003ca href=\"https://redirect.github.com/django/django/issues/36128\"\u003e#36128\u003c/a\u003e -- Documented unique constraint when migrat...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/10a2d3b837c5d8c1ac0cabd399ad7edcc66bfa8e\"\u003e\u003ccode\u003e10a2d3b\u003c/code\u003e\u003c/a\u003e [5.2.x] Added stub release notes and release date for 5.2.7, 5.1.13, and 4.2.25.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/b2773a39a34f0f0ca768fa1daaf8bf72fca56e06\"\u003e\u003ccode\u003eb2773a3\u003c/code\u003e\u003c/a\u003e [5.2.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/25508\"\u003e#25508\u003c/a\u003e -- Used QuerySet.\u003cstrong\u003erepr\u003c/strong\u003e in docs/ref/contrib/postgres/se...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/7554c54e5f02566520dee81c8b95f47429f1b553\"\u003e\u003ccode\u003e7554c54\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36581\"\u003e#36581\u003c/a\u003e -- Updated serialization examples from XML to JSON.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/2a2936c3e6444a0f37156773ca405cedaf28dea7\"\u003e\u003ccode\u003e2a2936c\u003c/code\u003e\u003c/a\u003e [5.2.x] Updated translations from Transifex.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/4.2.24...5.2.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2-binary` from 2.9.10 to 2.9.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2-binary's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix building when pg_config returns an empty string (:ticket:\u003ccode\u003e[#1599](https://github.com/psycopg/psycopg2/issues/1599)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eWheel package bundled with OpenSSL 1.1.1v.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.6\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\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 href=\"https://github.com/psycopg/psycopg2/commit/fd9ae8cad2bcfc3e7e9410e7b6f07cda8f4f05ec\"\u003e\u003ccode\u003efd9ae8c\u003c/code\u003e\u003c/a\u003e chore: bump to version 2.9.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d923840546942534f0956d9202f914fd9feac5fd\"\u003e\u003ccode\u003ed923840\u003c/code\u003e\u003c/a\u003e chore: update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d42dc7169d3cd93517e282e9ef5dc2a2b40650a2\"\u003e\u003ccode\u003ed42dc71\u003c/code\u003e\u003c/a\u003e Merge branch 'fix-1791'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4fde6560c32f06ad1304404c9f7f86148dcc4be0\"\u003e\u003ccode\u003e4fde656\u003c/code\u003e\u003c/a\u003e fix: avoid failed assert passing more arguments than placeholders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/8308c19d6af0d904b313997539ed33415990a74e\"\u003e\u003ccode\u003e8308c19\u003c/code\u003e\u003c/a\u003e fix: drop warning about the use of deprecated PyWeakref_GetObject function\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1a1eabf098a3374409bb2ab4b594777b900f396d\"\u003e\u003ccode\u003e1a1eabf\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/github-script from 7 to 8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/897af8b38beda851d7257dfc525129e37c0ec9e0\"\u003e\u003ccode\u003e897af8b\u003c/code\u003e\u003c/a\u003e build(deps): bump peter-evans/repository-dispatch from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ceefd305117113ca10e383a626e87ba0796f3638\"\u003e\u003ccode\u003eceefd30\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4dc585430cabe94cee96c5a9de0265d0f55370f1\"\u003e\u003ccode\u003e4dc5854\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1945788dcf6172bb1b9328ebc3587ccf0e6a659c\"\u003e\u003ccode\u003e1945788\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1802\"\u003e#1802\u003c/a\u003e from edgarrmondragon/cp314-wheels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.10...2.9.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `hiredis` from 3.2.1 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/hiredis-py/releases\"\u003ehiredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.3.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e by \u003ca href=\"https://github.com/zweizeichen\"\u003e\u003ccode\u003e@​zweizeichen\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\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 href=\"https://github.com/redis/hiredis-py/commit/187d0f387afed58a955a42ea8c5467100871f98b\"\u003e\u003ccode\u003e187d0f3\u003c/code\u003e\u003c/a\u003e Version 3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/3efcf037edc5a9f7abfaedbd3f60b2a03feb4787\"\u003e\u003ccode\u003e3efcf03\u003c/code\u003e\u003c/a\u003e Add Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/215\"\u003e#215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/966cede2c0ca0a8ac4fe0786571e5c230f39c36e\"\u003e\u003ccode\u003e966cede\u003c/code\u003e\u003c/a\u003e Fix assertion in reader.c (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/212\"\u003e#212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/78def309e58126fdaacb66e6fd40df9c46494062\"\u003e\u003ccode\u003e78def30\u003c/code\u003e\u003c/a\u003e Bump version to 3.3.0-dev\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/redis/hiredis-py/compare/v3.2.1...v3.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `drf-yasg` from 1.21.10 to 1.21.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/axnsan12/drf-yasg/releases\"\u003edrf-yasg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.21.11\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/917\"\u003e#917\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/916\"\u003e#916\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/926\"\u003e#926\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/922\"\u003e#922\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/928\"\u003e#928\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/923\"\u003e#923\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/848\"\u003e#848\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/903\"\u003e#903\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 href=\"https://github.com/axnsan12/drf-yasg/blob/master/docs/changelog.rst\"\u003edrf-yasg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e#########\nChangelog\n#########\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.11\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (:pr:\u003ccode\u003e917\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (:pr:\u003ccode\u003e916\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (:pr:\u003ccode\u003e926\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (:pr:\u003ccode\u003e922\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (:pr:\u003ccode\u003e928\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (:pr:\u003ccode\u003e923\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (:pr:\u003ccode\u003e848\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (:pr:\u003ccode\u003e903\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.10\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix type hints when using postponed evaluation of annotations (PEP-563) (:pr:\u003ccode\u003e840\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update JSON \u0026amp; YAML renderers to not use a \u0026quot;.\u0026quot; in their format string (:pr:\u003ccode\u003e911\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix lint errors when comparing types with == instead of is (:pr:\u003ccode\u003e868\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update swagger-ui-dist to address CVE-2021-46708 (:pr:\u003ccode\u003e904\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.9\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Added support for zoneinfo object fields (:pr:\u003ccode\u003e908\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.8\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Python 3.11 and 3.12 support (:pr:\u003ccode\u003e891\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix pkg_resources version lookups for Python 3.9+ (:pr:\u003ccode\u003e891\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.7\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cem\u003eRelease date: Jul 20, 2023\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Added \u003ccode\u003edrf_yasg.inspectors.query.DrfAPICompatInspector\u003c/code\u003e (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Added \u003ccode\u003eDrfAPICompatInspector\u003c/code\u003e to serve as a replacement \u003ccode\u003eCoreAPICompatInspector\u003c/code\u003e (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow \u003ccode\u003eDEFAULT_SPEC_RENDERERS\u003c/code\u003e default renderers to be overriden in the settings (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fixed redoc source mapping (:pr:\u003ccode\u003e859\u003c/code\u003e)\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/f8cb2db70ca42fb709565f89fdd152b614dc865d\"\u003e\u003ccode\u003ef8cb2db\u003c/code\u003e\u003c/a\u003e Add version 1.21.11 details to the changelog (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/939\"\u003e#939\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/0c6d08d5ebc52e802e5e1acbabbadfe179d4087d\"\u003e\u003ccode\u003e0c6d08d\u003c/code\u003e\u003c/a\u003e Update the ruff lint rules (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/920\"\u003e#920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/055a74dc10128fd55a48f7f74f6b58ffcc48e83d\"\u003e\u003ccode\u003e055a74d\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 in the github-actions group (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/937\"\u003e#937\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/a8813ace8e39cc2c28a916053c74415e10db1425\"\u003e\u003ccode\u003ea8813ac\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 in the github-actions group (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/936\"\u003e#936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/9f4b44943ad930e23e979b80090102dfca1d588b\"\u003e\u003ccode\u003e9f4b449\u003c/code\u003e\u003c/a\u003e Restore the live demo and replace heroku with apprunner (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/935\"\u003e#935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/298325122e11aeba87e6c8f16604e45d870649e7\"\u003e\u003ccode\u003e2983251\u003c/code\u003e\u003c/a\u003e fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/a74689370c393432debbe6285b3afb3e462aee58\"\u003e\u003ccode\u003ea746893\u003c/code\u003e\u003c/a\u003e allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/916\"\u003e#916\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/e747ad6db413c2d20c3eab79739e22ffde5930c7\"\u003e\u003ccode\u003ee747ad6\u003c/code\u003e\u003c/a\u003e Fixes issue with filter parameters not appearing in Swagger after upgrading t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/ee3c871501dad5f0585c8c62ac0659fedab999a1\"\u003e\u003ccode\u003eee3c871\u003c/code\u003e\u003c/a\u003e update Python, Django, and DRF versions \u0026amp; packaging configuration (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/922\"\u003e#922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/be6eeedcbebcb45151a9d18018d880d1fcdcf143\"\u003e\u003ccode\u003ebe6eeed\u003c/code\u003e\u003c/a\u003e Remove usage of pkg_resources (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/928\"\u003e#928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/axnsan12/drf-yasg/compare/1.21.10...1.21.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jellyfish` from 1.2.0 to 1.2.1\n\nUpdates `pyyaml` from 6.0.2 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/yaml/pyyaml/releases\"\u003epyyaml's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14 and free-threading (experimental).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ehttps://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\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 href=\"https://github.com/yaml/pyyaml/blob/6.0.3/CHANGES\"\u003epyyaml's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e6.0.3 (2025-09-25)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/yaml/pyyaml/pull/864\"\u003eyaml/pyyaml#864\u003c/a\u003e -- Support for Python 3.14 and free-threading (experimental)\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 href=\"https://github.com/yaml/pyyaml/commit/49790e73684bebad1df05ef8d828fa12f685bffb\"\u003e\u003ccode\u003e49790e7\u003c/code\u003e\u003c/a\u003e Release 6.0.3 (\u003ca href=\"https://redirect.github.com/yaml/pyyaml/issues/889\"\u003e#889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xlsxwriter` from 3.2.5 to 3.2.9\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jmcnamara/XlsxWriter/blob/main/Changes\"\u003exlsxwriter's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.2.9 - September 16 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved the \u003ccode\u003epy.typed\u003c/code\u003e file since it was causing a lot of downstream CI\nfailures where consumers weren't handling the xlsxwriter types correctly or\ntaking them into account.\u003c/p\u003e\n\u003cp\u003eThe file will be re-added once the xlsxwriter typing is more comprehensive.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.2.8 - September 14 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003emypy\u003c/code\u003e implicit export error caused by the \u003ccode\u003eWorkbook()\u003c/code\u003e type\nannotations changes in v3.2.7 and v3.2.6.\u003c/p\u003e\n\u003cp\u003e:issue:\u003ccode\u003e1154\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.2.7 - September 13 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed typing issue in \u003ccode\u003eWorkbook()\u003c/code\u003e constructor.\u003c/p\u003e\n\u003cp\u003e:issue:\u003ccode\u003e1152\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.2.6 - September 12 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded an option to position custom data labels in the same way that the data\nlabels can be positioned for the entire series.\u003c/p\u003e\n\u003cp\u003e:feature:\u003ccode\u003e1147\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd border, fill, gradient and pattern formatting options for\nchart titles and also chart axis titles.\u003c/p\u003e\n\u003cp\u003e:feature:\u003ccode\u003e957\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd additional type annotations. This is an ongoing refactoring.\u003c/p\u003e\n\u003cp\u003e:feature:\u003ccode\u003e1123\u003c/code\u003e.\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 href=\"https://github.com/jmcnamara/XlsxWriter/commit/e943bee8c9cdf0661cfdb83d5497e0725390e41e\"\u003e\u003ccode\u003ee943bee\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/392bd9e6572785394c6553e2d4f7ae2bb80782f4\"\u003e\u003ccode\u003e392bd9e\u003c/code\u003e\u003c/a\u003e typing: remove py.typed file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/eb99afecdd0050209835f9f237d580dc53e42afa\"\u003e\u003ccode\u003eeb99afe\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/5ec29826d5e398bb5adebaabafbeb9d443a6ed8c\"\u003e\u003ccode\u003e5ec2982\u003c/code\u003e\u003c/a\u003e workbook: add explicit export for mypy compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/ca85cbb03a5898c9e7b66c78ac67a365e7f53002\"\u003e\u003ccode\u003eca85cbb\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/3710251aaaa9524ee302ec04608bfc1b577d4ba5\"\u003e\u003ccode\u003e3710251\u003c/code\u003e\u003c/a\u003e typing: add more supported types to Workbook() constructor\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/27db7a14672bfe1a18f29dfbab646aa0149a369b\"\u003e\u003ccode\u003e27db7a1\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/f05067654b42283557c3621e411b6fbadb7051b6\"\u003e\u003ccode\u003ef050676\u003c/code\u003e\u003c/a\u003e docs: add CI spell check\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/60f708cc1e10c0c66ae870be4f350f45a9d3ecc8\"\u003e\u003ccode\u003e60f708c\u003c/code\u003e\u003c/a\u003e chart: add axis title formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/53dc08e5d240310c88bbfce8d1a42330ae256535\"\u003e\u003ccode\u003e53dc08e\u003c/code\u003e\u003c/a\u003e chart: add chart title formatting options\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jmcnamara/XlsxWriter/compare/RELEASE_3.2.5...RELEASE_3.2.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xmltodict` from 0.15.1 to 1.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/martinblech/xmltodict/releases\"\u003exmltodict's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.0.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.1...v1.0.2\"\u003e1.0.2\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eallow DOCTYPE with disable_entities=True (default) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/25b61a41f580cfc211df07c5fbbf603bd8eb5a5f\"\u003e25b61a4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.0...v1.0.1\"\u003e1.0.1\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efail closed when entities disabled (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c986d2d37a93d45fcc059b09063d9d9c45a655ec\"\u003ec986d2d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003evalidate XML comments (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/3d4d2d3a4cd0f68d1211dba549010261fa87b969\"\u003e3d4d2d3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd SECURITY.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/64130233c8fea272a5f82f2f585e1593523ec1b1\"\u003e6413023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify behavior for empty lists (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2025b5cb5e64fc9c4d54b8644187a0a193bdd0ed\"\u003e2025b5c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify process_comments docs (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/6b464fce284a93dbb292f3d063c9f310a478a014\"\u003e6b464fc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify strip whitespace comment behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/b3e22032d21cc387d6cecf3930116e8fdc3151cf\"\u003eb3e2203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ecreate AGENTS.md for coding agents (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/0da66ee797ced7479312aecef92c6a25e235007c\"\u003e0da66ee\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace travis with actions badge (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2576b94c918fbd154489a95dbbb3feda8bd3cbd8\"\u003e2576b94\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate CONTRIBUTING.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/db3918057cf125af989a1263d52df8df5ef8c642\"\u003edb39180\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v0.15.1...v1.0.0\"\u003e1.0.0\u003c/a\u003e (2025-09-12)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emodernize for Python 3.9+; drop legacy compat paths\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add limited XML comment round-trip; unify \u003ccode\u003e_emit\u003c/code\u003e behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/e43537eee61c20ef50f0e4242eb9223de7a6aefd\"\u003ee43537e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add selective \u003ccode\u003eforce_cdata\u003c/code\u003e support (bool/tuple/callable) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/a497fedb7d6103d68af155543ac3337a73778b19\"\u003ea497fed\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/375\"\u003e#375\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003enamespaces:\u003c/strong\u003e attach \u003ccode\u003e[@xmlns](https://github.com/xmlns)\u003c/code\u003e to declaring element when process_namespaces=True (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/f0322e578184421693434902547f330f4f0a44c3\"\u003ef0322e5\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/163\"\u003e#163\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e avoid parent accumulation at item_depth; add regression tests (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/220240c5eb2d12b75adf26cc84ec9c803ce8bb2b\"\u003e220240c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e handle non-string \u003ccode\u003e#text\u003c/code\u003e with attributes; unify value conversion (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/927a025ae8a62cbb542d5caff38b29161a2096fa\"\u003e927a025\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/366\"\u003e#366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e skip empty lists to keep pretty/compact outputs consistent (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/ab4c86fed24dc8ef0e932a524edfb01c6453ecf6\"\u003eab4c86f\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/martinblech/xmltodict/blob/master/CHANGELOG.md\"\u003exmltodict's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.1...v1.0.2\"\u003e1.0.2\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eallow DOCTYPE with disable_entities=True (default) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/25b61a41f580cfc211df07c5fbbf603bd8eb5a5f\"\u003e25b61a4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.0...v1.0.1\"\u003e1.0.1\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efail closed when entities disabled (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c986d2d37a93d45fcc059b09063d9d9c45a655ec\"\u003ec986d2d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003evalidate XML comments (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/3d4d2d3a4cd0f68d1211dba549010261fa87b969\"\u003e3d4d2d3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd SECURITY.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/64130233c8fea272a5f82f2f585e1593523ec1b1\"\u003e6413023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify behavior for empty lists (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2025b5cb5e64fc9c4d54b8644187a0a193bdd0ed\"\u003e2025b5c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify process_comments docs (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/6b464fce284a93dbb292f3d063c9f310a478a014\"\u003e6b464fc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify strip whitespace comment behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/b3e22032d21cc387d6cecf3930116e8fdc3151cf\"\u003eb3e2203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ecreate AGENTS.md for coding agents (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/0da66ee797ced7479312aecef92c6a25e235007c\"\u003e0da66ee\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace travis with actions badge (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2576b94c918fbd154489a95dbbb3feda8bd3cbd8\"\u003e2576b94\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate CONTRIBUTING.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/db3918057cf125af989a1263d52df8df5ef8c642\"\u003edb39180\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v0.15.1...v1.0.0\"\u003e1.0.0\u003c/a\u003e (2025-09-12)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emodernize for Python 3.9+; drop legacy compat paths\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add limited XML comment round-trip; unify \u003ccode\u003e_emit\u003c/code\u003e behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/e43537eee61c20ef50f0e4242eb9223de7a6aefd\"\u003ee43537e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add selective \u003ccode\u003eforce_cdata\u003c/code\u003e support (bool/tuple/callable) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/a497fedb7d6103d68af155543ac3337a73778b19\"\u003ea497fed\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/375\"\u003e#375\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003enamespaces:\u003c/strong\u003e attach \u003ccode\u003e[@xmlns](https://github.com/xmlns)\u003c/code\u003e to declaring element when process_namespaces=True (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/f0322e578184421693434902547f330f4f0a44c3\"\u003ef0322e5\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/163\"\u003e#163\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e avoid parent accumulation at item_depth; add regression tests (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/220240c5eb2d12b75adf26cc84ec9c803ce8bb2b\"\u003e220240c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e handle non-string \u003ccode\u003e#text\u003c/code\u003e with attributes; unify value conversion (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/927a025ae8a62cbb542d5caff38b29161a2096fa\"\u003e927a025\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/366\"\u003e#366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e skip empty lists to keep pretty/compact outputs consistent (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/ab4c86fed24dc8ef0e932a524edfb01c6453ecf6\"\u003eab4c86f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eReverts\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove initial Release Drafter config (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c0b74ed58f933bffd160c60a58620f672710ff7c\"\u003ec0b74ed\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 href=\"https://github.com/martinblech/xmltodict/commit/d079849136b031c471ec96a168ad7859ed5994ff\"\u003e\u003ccode\u003ed079849\u003c/code\u003e\u003c/a\u003e chore(master): release 1.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/25b61a41f580cfc211df07c5fbbf603bd8eb5a5f\"\u003e\u003ccode\u003e25b61a4\u003c/code\u003e\u003c/a\u003e fix: allow DOCTYPE with disable_entities=True (default)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/a2a9ab7e0692a62f64d97ff12553d0d53368c854\"\u003e\u003ccode\u003ea2a9ab7\u003c/code\u003e\u003c/a\u003e ci(publish): allow uploading release assets\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/656e6af9543e640fda7e96d6bdd6e693756687be\"\u003e\u003ccode\u003e656e6af\u003c/code\u003e\u003c/a\u003e chore(master): release 1.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c986d2d37a93d45fcc059b09063d9d9c45a655ec\"\u003e\u003ccode\u003ec986d2d\u003c/code\u003e\u003c/a\u003e fix: fail closed when entities disabled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/3d4d2d3a4cd0f68d1211dba549010261fa87b969\"\u003e\u003ccode\u003e3d4d2d3\u003c/code\u003e\u003c/a\u003e fix: validate XML comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/b4a5f2a3f04aff68384486e957632c8438396fd6\"\u003e\u003ccode\u003eb4a5f2a\u003c/code\u003e\u003c/a\u003e refactor: remove jython-specific parsing branches\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/6b464fce284a93dbb292f3d063c9f310a478a014\"\u003e\u003ccode\u003e6b464fc\u003c/code\u003e\u003c/a\u003e docs: clarify process_comments docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/34daa304d443e49113d195294d99c6f58ce4714c\"\u003e\u003ccode\u003e34daa30\u003c/code\u003e\u003c/a\u003e refactor: remove unused helper functions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2025b5cb5e64fc9c4d54b8644187a0a193bdd0ed\"\u003e\u003ccode\u003e2025b5c\u003c/code\u003e\u003c/a\u003e docs: clarify behavior for empty lists\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/martinblech/xmltodict/compare/v0.15.1...v1.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xmlschema` from 4.1.0 to 4.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sissaschool/xmlschema/releases\"\u003exmlschema's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.2.0 (2025-10-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd arguments validation for schemas and validation methods (by validation contexts)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSchemaSettings\u003c/code\u003e dataclass for storing read-only settings for schema instances\nand for managing package default settings\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eblock\u003c/em\u003e argument to \u003ccode\u003eXMLResource\u003c/code\u003e class (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/464\"\u003e#464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_SCHEMA_SOURCES\u003c/em\u003e package limit (\u003ccode\u003e1000\u003c/code\u003e, applied to \u003ccode\u003eXsdGlobals\u003c/code\u003e global maps instances)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_XML_ELEMENTS\u003c/em\u003e package limit (\u003ccode\u003e1,000,000\u003c/code\u003e, applied to non-lazy \u003ccode\u003eXMLResource\u003c/code\u003e instances)\u003c/li\u003e\n\u003cli\u003eReduce \u003cem\u003eMAX_XML_DEPTH\u003c/em\u003e limit to 1000 and apply it to all \u003ccode\u003eXMLResource\u003c/code\u003e instances\u003c/li\u003e\n\u003cli\u003eFix for substitute match in case of unexpected child (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\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 href=\"https://github.com/sissaschool/xmlschema/blob/master/CHANGELOG.rst\"\u003exmlschema's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ccode\u003ev4.2.0\u003c/code\u003e_ (2025-10-14)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd arguments validation for schemas and validation methods (by validation contexts)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSchemaSettings\u003c/code\u003e dataclass for storing read-only settings for schema instances\nand for managing package default settings\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eblock\u003c/em\u003e argument to \u003ccode\u003eXMLResource\u003c/code\u003e class (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/464\"\u003e#464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_SCHEMA_SOURCES\u003c/em\u003e package limit (\u003ccode\u003e1000\u003c/code\u003e, applied to \u003ccode\u003eXsdGlobals\u003c/code\u003e global maps instances)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_XML_ELEMENTS\u003c/em\u003e package limit (\u003ccode\u003e1,000,000\u003c/code\u003e, applied to non-lazy \u003ccode\u003eXMLResource\u003c/code\u003e instances)\u003c/li\u003e\n\u003cli\u003eReduce \u003cem\u003eMAX_XML_DEPTH\u003c/em\u003e limit to 1000 and apply it to all \u003ccode\u003eXMLResource\u003c/code\u003e instances\u003c/li\u003e\n\u003cli\u003eFix for substitute match in case of unexpected child (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\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 href=\"https://github.com/sissaschool/xmlschema/commit/2783030fcdcd5307563822906862a9e7088931b2\"\u003e\u003ccode\u003e2783030\u003c/code\u003e\u003c/a\u003e Bump minor release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/7c77a12f0fe16c8da0256a0f13281a03e4a0f717\"\u003e\u003ccode\u003e7c77a12\u003c/code\u003e\u003c/a\u003e Include publiccode.yml validation workflow for CI and README changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/04c19d54d4578f34a0c04d6cc82daa8d3ef9d90c\"\u003e\u003ccode\u003e04c19d5\u003c/code\u003e\u003c/a\u003e Fix XsdGroup.match_element (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/dd4f279e56b8a5ce89f78a6c88337f5032af0b2f\"\u003e\u003ccode\u003edd4f279\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/463\"\u003e#463\u003c/a\u003e from publiccode-pr-bot/chore/add-publiccode-parser-ac...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/1bd7aa6eebf4947e7ae76e47a2f706b58fed22cd\"\u003e\u003ccode\u003e1bd7aa6\u003c/code\u003e\u003c/a\u003e Update GitHub workflow for CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/76b0f67e900777166bcd3773cc109efae933682d\"\u003e\u003ccode\u003e76b0f67\u003c/code\u003e\u003c/a\u003e Patch mypy tests with protocols\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/28727bb0af89f129d59772550c6998164c37aeff\"\u003e\u003ccode\u003e28727bb\u003c/code\u003e\u003c/a\u003e Update docs and release info\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/e4131eaf6bc1a223292f3f19e78573a4317d131a\"\u003e\u003ccode\u003ee4131ea\u003c/code\u003e\u003c/a\u003e Add from_settings() class method to schemas\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/0aea8debef13b62156e7297bdc54198057ea3611\"\u003e\u003ccode\u003e0aea8de\u003c/code\u003e\u003c/a\u003e Rewrite validation contexts as normal classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/d443d7ba0e3de8fad6d6df8f314b12735af4bac3\"\u003e\u003ccode\u003ed443d7b\u003c/code\u003e\u003c/a\u003e Full validation of context arguments\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sissaschool/xmlschema/compare/v4.1.0...v4.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lark` from 1.2.2 to 1.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lark-parser/lark/releases\"\u003elark's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.3.0 - Introduces text-slices, Earley fix, and various small improvements\u003c/h2\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLark can now parse in sections of strings, using \u003ccode\u003eTextSlice\u003c/code\u003e, as a faster alternative to creating a \u0026quot;copy-slice\u0026quot; with \u003ccode\u003es[i:j]\u003c/code\u003e. \u003ca href=\"https://lark-parser.readthedocs.io/en/latest/classes.html#lark.utils.TextSlice\"\u003eLearn more\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded support to \u003ccode\u003ematch\u003c/code\u003e on Tree instances\u003c/li\u003e\n\u003cli\u003eWhen serializing a Lark instance, added the option to include the grammar object (before compilation).\u003c/li\u003e\n\u003cli\u003eAdded convenience method \u003ccode\u003eTree.find_token()\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix of an edge case in Earley related to representation of ambiguity.\u003c/li\u003e\n\u003cli\u003eBugfixes in the standalone parser related to imports\u003c/li\u003e\n\u003cli\u003eBugfix in indenter - now dedents always contain line information\u003c/li\u003e\n\u003cli\u003eVarious small bugfixes (see PR list below)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFull list of PRs\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDocs: Rephrase v_args() documentation to underline it only applies to Transformer classes by \u003ca href=\"https://github.com/skepppy\"\u003e\u003ccode\u003e@​skepppy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1458\"\u003elark-parser/lark#1458\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTiny refactor for PR \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1451\"\u003e#1451\u003c/a\u003e by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1459\"\u003elark-parser/lark#1459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEarley: share nodes created by the scanner with the completer by \u003ca href=\"https://github.com/chanicpanic\"\u003e\u003ccode\u003e@​chanicpanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1451\"\u003elark-parser/lark#1451\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter error in Lark.parse when using on_error when parser!=lalr (issue \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1311\"\u003e#1311\u003c/a\u003e) by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1460\"\u003elark-parser/lark#1460\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eSymbol.__eq__\u003c/code\u003e to return false when comparing with None by \u003ca href=\"https://github.com/weaversam8\"\u003e\u003ccode\u003e@​weaversam8\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1481\"\u003elark-parser/lark#1481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMention internal/external transformers in the documentation by \u003ca href=\"https://github.com/odanoburu\"\u003e\u003ccode\u003e@​odanoburu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1486\"\u003elark-parser/lark#1486\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Tree.find_token() method by \u003ca href=\"https://github.com/makukha\"\u003e\u003ccode\u003e@​makukha\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1467\"\u003elark-parser/lark#1467\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eType \u003ccode\u003eTerminal.__init__\u003c/code\u003e by \u003ca href=\"https://github.com/Liam-DeVoe\"\u003e\u003ccode\u003e@​Liam-DeVoe\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1503\"\u003elark-parser/lark#1503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd guidance on handling comments in languages with significant indentation by \u003ca href=\"https://github.com/nchammas\"\u003e\u003ccode\u003e@​nchammas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1502\"\u003elark-parser/lark#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Small fix for PR 1507 by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1508\"\u003elark-parser/lark#1508\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd note on binding power of numeric quantifiers by \u003ca href=\"https://github.com/414owen\"\u003e\u003ccode\u003e@​414owen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1507\"\u003elark-parser/lark#1507\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrap functools.partial in staticmethod() to add compatibility with Python 3.14 by \u003ca href=\"https://github.com/hrnciar\"\u003e\u003ccode\u003e@​hrnciar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1483\"\u003elark-parser/lark#1483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix generic type of Transformer_InPlaceRecursive by \u003ca href=\"https://github.com/lbhm\"\u003e\u003ccode\u003e@​lbhm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1518\"\u003elark-parser/lark#1518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded TextSlice; Lark can now parse/lex a text-slice by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1452\"\u003elark-parser/lark#1452\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport match on tree by \u003ca href=\"https://github.com/colmmurphyxyz\"\u003e\u003ccode\u003e@​colmmurphyxyz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1521\"\u003elark-parser/lark#1521\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: Updated link of DSL article to a new version by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1529\"\u003elark-parser/lark#1529\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebetter error messages for shift/reduct conflicts by \u003ca href=\"https://github.com/skogsbaer\"\u003e\u003ccode\u003e@​skogsbaer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1531\"\u003elark-parser/lark#1531\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSerialize Lark.grammar (fixes issue \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1472\"\u003e#1472\u003c/a\u003e) by \u003ca href=\"https://github.com/NasalDaemon\"\u003e\u003ccode\u003e@​NasalDaemon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1506\"\u003elark-parser/lark#1506\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes for PR \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1506\"\u003e#1506\u003c/a\u003e, which adds the option to cache the grammar definition by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1540\"\u003elark-parser/lark#1540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix in indenter - now always creating dedents with line information by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1547\"\u003elark-parser/lark#1547\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix: issue when unpickling in the standalone parser, due to lingering Token instances by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1553\"\u003elark-parser/lark#1553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInclude missing import in standalone parser by \u003ca href=\"https://github.com/pdeibert\"\u003e\u003ccode\u003e@​pdeibert\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1541\"\u003elark-parser/lark#1541\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVersion bump (1.3.0) by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1554\"\u003elark-parser/lark#1554\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=\"https://github.com/skepppy\"\u003e\u003ccode\u003e@​skepppy\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1458\"\u003elark-parser/lark#1458\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/weaversam8\"\u003e\u003ccode\u003e@​weaversam8\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1481\"\u003elark-parser/lark#1481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/odanoburu\"\u003e\u003ccode\u003e@​odanoburu\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1486\"\u003elark-parser/lark#1486\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/makukha\"\u003e\u003ccode\u003e@​makukha\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1467\"\u003elark-parser/lark#1467\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Liam-DeVoe\"\u003e\u003ccode\u003e@​Liam-DeVoe\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1503\"\u003elark-parser/lark#1503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/414owen\"\u003e\u003ccode\u003e@​414owen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1507\"\u003elark-parser/lark#1507\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hrnciar\"\u003e\u003ccode\u003e@​hrnciar\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1483\"\u003elark-parser/lark#1483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lbhm\"\u003e\u003ccode\u003e@​lbhm\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1518\"\u003elark-parser/lark#1518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/colmmurphyxyz\"\u003e\u003ccode\u003e@​colmmurphyxyz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1521\"\u003elark-parser/lark#1521\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 href=\"https://github.com/lark-parser/lark/commit/e332c2df2f7d400460a5f1204d9bc36b49b25635\"\u003e\u003ccode\u003ee332c2d\u003c/code\u003e\u003c/a\u003e Version bump (1.3.0)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/aa5666c30e255257b0c36ef93c80d800f84a04ca\"\u003e\u003ccode\u003eaa5666c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1541\"\u003e#1541\u003c/a\u003e from pdeibert/master\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/41934d390dd7661a82df5ed28bd75655fe797cf7\"\u003e\u003ccode\u003e41934d3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1553\"\u003e#1553\u003c/a\u003e from lark-parser/issue1552\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/23c95ea33f76a1bdba686bb1e79a0bd25f3c4d08\"\u003e\u003ccode\u003e23c95ea\u003c/code\u003e\u003c/a\u003e Bugfix: issue when unpickling in the standalone parser, due to lingering\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/d1a456dd365603bbcb4b5b4ec2c29e6096b82f59\"\u003e\u003ccode\u003ed1a456d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1547\"\u003e#1547\u003c/a\u003e from lark-parser/dev\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/2e3108e770aede14000e010322c501c9066dbabc\"\u003e\u003ccode\u003e2e3108e\u003c/code\u003e\u003c/a\u003e UnexpectedInput.pos_in_stream now defaults to 0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/0d248fc59f03ac82c26d12b4b6a86733cffe4d52\"\u003e\u003ccode\u003e0d248fc\u003c/code\u003e\u003c/a\u003e Fix in indenter - now always creating dedents with line information\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/c2e2048bbdb07f6efd0b36252ee90e419e0ee292\"\u003e\u003ccode\u003ec2e2048\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1540\"\u003e#1540\u003c/a\u003e from lark-parser/pr1506\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/2f286cc25a626c7107ad63bc69fcaf213e330433\"\u003e\u003ccode\u003e2f286cc\u003c/code\u003e\u003c/a\u003e Added tests for cache_grammar\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/8a0b02d78989ea328ce0726aa551de9689419dce\"\u003e\u003ccode\u003e8a0b02d\u003c/code\u003e\u003c/a\u003e Small fix, comments, added some types\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lark-parser/lark/compare/1.2.2...1.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `shapely` from 2.0.7 to 2.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/shapely/shapely/releases\"\u003eshapely's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.1.2\u003c/h2\u003e\n\u003cp\u003eWheels are available for Python 3.14 (and still include GEOS 3.13.1).\u003c/p\u003e\n\u003ch2\u003e2.1.1\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix performance degradation calling shapely functions (caused by deprecation of certain positional arguments) (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2283\"\u003e#2283\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix crash caused by \u003ccode\u003efrom_ragged_array()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2291\"\u003e#2291\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix compilation error building with recent LLVM toolchain (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2293\"\u003e#2293\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFor a full changelog , see \u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-1\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.1.0\u003c/h2\u003e\n\u003cp\u003eShapely 2.1.0 is a feature release with various new functions, improvements and bug fixes. Highlights include initial support for geometries with M or ZM values, functionality for coverage validation and simplification, and a set of new top-level functions.\u003c/p\u003e\n\u003cp\u003eShapely supports Python \u0026gt;= 3.10, and binary wheels on PyPI include GEOS 3.13.1 and are now also provided for musllinux (Alpine) x86_64 platforms.\u003c/p\u003e\n\u003cp\u003eFor a full changelog, see \u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.1.0rc1\u003c/h2\u003e\n\u003cp\u003eShapely version 2.1.0 is a major release featuring various new functions, improvements and bug fixes. This is a first release candidate.\u003c/p\u003e\n\u003cp\u003eFor a full changelog, see \u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0-unreleased\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0-unreleased\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 href=\"https://github.com/shapely/shapely/blob/main/CHANGES.txt\"\u003eshapely's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.1.2 (2025-09-24)\u003c/h2\u003e\n\u003cp\u003eWheels are available for Python 3.14 (and still include GEOS 3.13.1).\u003c/p\u003e\n\u003ch2\u003e2.1.1 (2025-05-19)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix performance degradation calling shapely functions (caused by deprecation\nof certain positional arguments) (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2283\"\u003e#2283\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix crash caused by \u003ccode\u003efrom_ragged_array()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2291\"\u003e#2291\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix compilation error building with recent LLVM toolchain (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2293\"\u003e#2293\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.0 (2025-04-03)\u003c/h2\u003e\n\u003cp\u003eShapely 2.1.0 is a feature release with various new functions,\nimprovements and bug fixes. Highlights include initial support for geometries\nwith M or ZM values, functionality for coverage validation and\nsimplification, and a set of new top-level functions.\u003c/p\u003e\n\u003cp\u003eShapely supports Python \u0026gt;= 3.10, and binary wheels on PyPI include GEOS 3.13.1\nand are now also provided for musllinux (Alpine) x86_64 platforms.\u003c/p\u003e\n\u003cp\u003eFor a full changelog, see\n\u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/5fb639d1056888d135fe56bfaf750c9648addeec\"\u003e\u003ccode\u003e5fb639d\u003c/code\u003e\u003c/a\u003e RLS: 2.1.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/70509a1bee5ebd6637cda98b5c9d83707c341888\"\u003e\u003ccode\u003e70509a1\u003c/code\u003e\u003c/a\u003e DOC/RLS: indicate Python 3.14 support in pyproject.toml and release notes for...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/5c572b622027f6917c75afd728f201a144fb597d\"\u003e\u003ccode\u003e5c572b6\u003c/code\u003e\u003c/a\u003e CI: add testing with GEOS 3.14 and Python 3.14 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2330\"\u003e#2330\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/a9093336b1ea77559d44148a7f1ed92ab3bc2999\"\u003e\u003ccode\u003ea909333\u003c/code\u003e\u003c/a\u003e Bump pypa/cibuildwheel from 3.1.3 to 3.2.0 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2328\"\u003e#2328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/2086d4428e29da17bafc684acbfb04bb537ce573\"\u003e\u003ccode\u003e2086d44\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2326\"\u003e#2326\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/50c1cf30be0e37081991b6d5a5dc3531cfbe35da\"\u003e\u003ccode\u003e50c1cf3\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4 to 5 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2321\"\u003e#2321\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/39490ab685a42a2c189f2ce7a45b7d07053e8e8f\"\u003e\u003ccode\u003e39490ab\u003c/code\u003e\u003c/a\u003e TST: update test_coverage_union_overlapping_inputs for upstream GEOS change (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/5ef437c898b54f723ad0e4a8b6b513b9cc5d68a2\"\u003e\u003ccode\u003e5ef437c\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2320\"\u003e#2320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/7b5ff3d24b7889d35f96ee3ae9ec26250b3d6147\"\u003e\u003ccode\u003e7b5ff3d\u003c/code\u003e\u003c/a\u003e BLD: add Python 3.14 wheels [Bump pypa/cibuildwheel from 3.0.1 to 3.1.3] (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2316\"\u003e#2316\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/480dbb14f47b685e95c03654983405185c15babd\"\u003e\u003ccode\u003e480dbb1\u003c/code\u003e\u003c/a\u003e TST: update frechet_distance densify test for latest GEOS main (densify\u0026gt;0.001...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/shapely/shapely/compare/2.0.7...2.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-two-factor-auth[phonenumbers]` from 1.17.0 to 1.18.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jazzband/django-two-factor-auth/releases\"\u003edjango-two-factor-auth[phonenumbers]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.18.1\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew translations for Azerbaijani and Serbian\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.18.0\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocumentation for setting yubikey support forgot to inform users they would\nneed to add our yubikey plugin to \u003ccode\u003eINSTALLED_APPS\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRemove reference to release-notes that had been missed, docs now build\nwithout warnings\u003c/li\u003e\n\u003cli\u003eWebAuthn: avoid submitting the wrong form\u003c/li\u003e\n\u003cli\u003eEmail gateway: tell user to use correct django-otp plugin\u003c/li\u003e\n\u003cli\u003eFix infinite redirect on admin site with AdminSiteOTPRequiredMixin\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow qrcode 8.x.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ephonenumbers\u003c/code\u003e is no longer a hard requirement for users who don't require it.\u003c/li\u003e\n\u003cli\u003eChange \u003ccode\u003eEmailDevice.confirmed\u003c/code\u003e default to \u003ccode\u003eFalse\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAny \u003ccode\u003eStaticDevice\u003c/code\u003e can be used as backup tokens, not just those labelled\n\u0026quot;backup\u0026quot;\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Django 5.2\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.13\u003c/li\u003e\n\u003cli\u003eDjango check for \u003ccode\u003eINSTALLED_APPS\u003c/code\u003e to make sure \u003ccode\u003etwo_factor\u003c/code\u003e is present and\ncomes before its plugins\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8\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 href=\"https://github.com/jazzband/django-two-factor-auth/blob/master/CHANGELOG.md\"\u003edjango-two-factor-auth[phonenumbers]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.18.1\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew translations for Azerbaijani and Serbian\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.18.0\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocumentation for setting yubikey support forgot to inform users they would\nneed to add our yubikey plugin to \u003ccode\u003eINSTALLED_APPS\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRemove reference to release-notes that had been missed, docs now build\nwithout warnings\u003c/li\u003e\n\u003cli\u003eWebAuthn: avoid submitting the wrong form\u003c/li\u003e\n\u003cli\u003eEmail gateway: tell user to use correct django-otp plugin\u003c/li\u003e\n\u003cli\u003eFix infinite redirect on admin site with AdminSiteOTPRequiredMixin\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow qrcode 8.x.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ephonenumbers\u003c/code\u003e is no longer a hard requirement for users who don't require it.\u003c/li\u003e\n\u003cli\u003eChange \u003ccode\u003eEmailDevice.confirmed\u003c/code\u003e default to \u003ccode\u003eFalse\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAny \u003ccode\u003eStaticDevice\u003c/code\u003e can be used as backup tokens, not just those labelled\n\u0026quot;backup\u0026quot;\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Django 5.2\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.13\u003c/li\u003e\n\u003cli\u003eDjango check for \u003ccode\u003eINSTALLED_APPS\u003c/code\u003e to make sure \u003ccode\u003etwo_factor\u003c/code\u003e is present and\ncomes before its plugins\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8\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 href=\"https://github.com/jazzband/django-two-factor-auth/commit/38a6ba7b6fb579b3465d66f33c4e2f25ffad28c0\"\u003e\u003ccode\u003e38a6ba7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/django-two-factor-auth/issues/778\"\u003e#778\u003c/a\u003e from claudep/missing_trans\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/004c93839e331e72740c4e6e73516d05afbca855\"\u003e\u003ccode\u003e004c938\u003c/code\u003e\u003c/a\u003e Fixes \u003ca href=\"https://redirect.github.com/jazzband/django-two-factor-auth/issues/777\"\u003e#777\u003c/a\u003e - Add missing Azerbaijani and Serbian translations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/59f44669649f281ca9b25a2beba438609f72a3a5\"\u003e\u003ccode\u003e59f4466\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/django-two-factor-auth/issues/776\"\u003e#776\u003c/a\u003e from jazzband/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/d5517043e9f9cdec4e4850f0f33e28eea485fb79\"\u003e\u003ccode\u003ed551704\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/7405b6fd545ddbbd67d28292fca2c8ef6cf0de92\"\u003e\u003ccode\u003e7405b6f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/django-two-factor-auth/issues/774\"\u003e#774\u003c/a\u003e from moggers87/release-1.18.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/b47945c8188e46ad2f64bf929c1a745682b6de15\"\u003e\u003ccode\u003eb47945c\u003c/code\u003e\u003c/a\u003e Update CHANGELOG with latest changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/b20741c609ca3fd3fe52dd3cfe1ebc3e98ce2383\"\u003e\u003ccode\u003eb20741c\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into release-1.18.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/966dab4c5bdf11b88e42bc820c8adea684b4e0d0\"\u003e\u003ccode\u003e966dab4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/django-two-factor-auth/issues/775\"\u003e#775\u003c/a\u003e from claudep/phoneplugin2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/9c72f871f0ebd3bede20d823372b02608480c4c7\"\u003e\u003ccode\u003e9c72f87\u003c/code\u003e\u003c/a\u003e Refs \u003ca href=\"https://redirect.github.com/jazzband/django-two-factor-auth/issues/469\"\u003e#469\u003c/a\u003e - Only import phonenumber functions when plugin is installed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/ec0923bf400d6faf3c82acff312c1fe5add70047\"\u003e\u003ccode\u003eec0923b\u003c/code\u003e\u003c/a\u003e Pull latest translations from Transifex\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jazzband/django-two-factor-auth/compare/1.17.0...1.18.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `boto3` from 1.40.27 to 1.40.53\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/9a9288aae8f60bc20679b57291fd642af33f4102\"\u003e\u003ccode\u003e9a9288a\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.53'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/312bc51267cbf62136b2f37543e88aa46f770506\"\u003e\u003ccode\u003e312bc51\u003c/code\u003e\u003c/a\u003e Bumping version to 1.40.53\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/24a2a2b400d18bf76021810e751df77b96b72a5e\"\u003e\u003ccode\u003e24a2a2b\u003c/code\u003e\u003c/a\u003e Add changelog entries from botocore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/3c21bf207dfee4f1eed65a1e19450120a8e5b426\"\u003e\u003ccode\u003e3c21bf2\u003c/code\u003e\u003c/a\u003e Remove license classifier deprecation and use up to date license setup (\u003ca href=\"https://redirect.github.com/boto/boto3/issues/4637\"\u003e#4637\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/89d83785e73d144d96f80f80f048d63a49fc1af2\"\u003e\u003ccode\u003e89d8378\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.52'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/a1060c616424d3c9376d694c2785ac58a37e445f\"\u003e\u003ccode\u003ea1060c6\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.52' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/cbe50bab5192ddc265c8f5d6a045a4a6ee019a1a\"\u003e\u003ccode\u003ecbe50ba\u003c/code\u003e\u003c/a\u003e Bumping version to 1.40.52\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/f7b03d196843406d849c0e3f15ab9c893b10c999\"\u003e\u003ccode\u003ef7b03d1\u003c/code\u003e\u003c/a\u003e Add changelog entries from botocore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/92007179325850ec45c742098b9294cc98df4e03\"\u003e\u003ccode\u003e9200717\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.51'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/935e4e7f0a809864cc4ed84eed38be12a2ad4ab1\"\u003e\u003ccode\u003e935e4e7\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.51' into develop\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boto/boto3/compare/1.40.27...1.40.53\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uwsgi` from 2.0.30 to 2.0.31\n\nUpdates `coverage` from 7.10.6 to 7.11.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.11.0 — 2025-10-15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9, declared support for Python 3.15 alpha.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _changes_7-10-7:\u003c/p\u003e\n\u003ch2\u003eVersion 7.10.7 — 2025-09-21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance: with branch coverage in large files, generating HTML, JSON, or\nLCOV reports could take far too long due to some quadratic behavior when\ncreating the function and class index pages.  This is now fixed, closing\n\u003ccode\u003eissue 2048\u003c/code\u003e_.  Thanks to Daniel Diniz for help diagnosing the problem.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMost warnings and a few errors now have links to a page in the docs\nexplaining the specific message.  Closes \u003ccode\u003eissue 1921\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1921: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1921\"\u003enedbat/coveragepy#1921\u003c/a\u003e\n.. _issue 2048: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2048\"\u003enedbat/coveragepy#2048\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-10-6:\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 href=\"https://github.com/nedbat/coveragepy/commit/20ef00b4abc33a52ffcb10de4d3144e29dbea6a3\"\u003e\u003ccode\u003e20ef00b\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/5edf8ebf1f9754b32bad92d4826ed651614d9b94\"\u003e\u003ccode\u003e5edf8eb\u003c/code\u003e\u003c/a\u003e docs: prep for 7.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/2c023ae7a1c50e375d20c31b0b8c693416ba92a5\"\u003e\u003ccode\u003e2c023ae\u003c/code\u003e\u003c/a\u003e build: 3.15 is supported\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/2f1b95b0bd913397da3236155ca78e2117731247\"\u003e\u003ccode\u003e2f1b95b\u003c/code\u003e\u003c/a\u003e refactor: no need for _BaseCoverageException\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/72b1bcc77e0062eefaf9d1da40c6b8c2ef0ec27e\"\u003e\u003ccode\u003e72b1bcc\u003c/code\u003e\u003c/a\u003e build: test light-threads on all versions of Python\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/16e93797527eada3417afc439fc4b28a432d6efc\"\u003e\u003ccode\u003e16e9379\u003c/code\u003e\u003c/a\u003e refactor: move core tests to their own file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/bc8875db8f98439c046f4c141cb7aecdaa8d1f56\"\u003e\u003ccode\u003ebc8875d\u003c/code\u003e\u003c/a\u003e test: change a test to be in-process so metacov can capture its work\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/8e5d5b1bd53147e8618019191a062d2b86747355\"\u003e\u003ccode\u003e8e5d5b1\u003c/code\u003e\u003c/a\u003e build: tweak some version info\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/b0236dffef02f1aa219326b96230bdf26b9f5e6c\"\u003e\u003ccode\u003eb0236df\u003c/code\u003e\u003c/a\u003e test: more tests for core selection, and some refactoring of them\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/56edde623ae497c3638e608ef6803583c1db8720\"\u003e\u003ccode\u003e56edde6\u003c/code\u003e\u003c/a\u003e build: next version will be 7.11.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nedbat/coveragepy/compare/7.10.6...7.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tox` from 4.30.2 to 4.31.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/tox/releases\"\u003etox's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.31.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAddress a type-conversion noted during doc builds by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3623\"\u003etox-dev/tox#3623\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd 3.14, drop 3.9 and support | union style by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3624\"\u003etox-dev/tox#3624\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/tox/compare/4.30.3...4.31.0\"\u003ehttps://github.com/tox-dev/tox/compare/4.30.3...4.31.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.30.3\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIsolate the test suite from any existing \u003ccode\u003eDEFAULT_CONFIG_FILE\u003c/code\u003e file by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3612\"\u003etox-dev/tox#3612\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix none config file issue 3611 by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3613\"\u003etox-dev/tox#3613\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3608\"\u003etox-dev/tox#3608\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix incorrect type annotations in PythonPathPackageWithDeps (fixes \u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3607\"\u003e#3607\u003c/a\u003e) by \u003ca href=\"https://github.com/PreistlyPython\"\u003e\u003ccode\u003e@​PreistlyPython\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/...\n\n_Description has been truncated_","html_url":"https://github.com/chrislkl/seed/pull/2","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrislkl%2Fseed/issues/2","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/2/packages"}},{"old_version":"2.0.30","new_version":"2.0.31","update_type":"patch","path":null,"pr_created_at":"2025-10-16T02:04:28.000Z","version_change":"2.0.30 → 2.0.31","issue":{"uuid":"3520060585","node_id":"PR_kwDOBDhOWs6t_fpV","number":594,"state":"open","title":"Bump uwsgi from 2.0.30 to 2.0.31","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-10-16T02:04:28.000Z","updated_at":"2025-10-17T10:08:17.342Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"uwsgi","old_version":"2.0.30","new_version":"2.0.31","repository_url":null}],"path":null,"ecosystem":"pip"},"body":"Bumps [uwsgi](https://uwsgi-docs.readthedocs.io/en/latest/) from 2.0.30 to 2.0.31.\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=uwsgi\u0026package-manager=pip\u0026previous-version=2.0.30\u0026new-version=2.0.31)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nYou can trigger a rebase of this PR by commenting `@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 that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/ministryofjustice/laa-fee-calculator/pull/594","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ministryofjustice%2Flaa-fee-calculator/issues/594","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/594/packages"}}]}