{"id":8622,"name":"pytest-rerunfailures","ecosystem":"conda","repository_url":"https://github.com/pytest-dev/pytest-rerunfailures","issues_count":20,"created_at":"2025-06-06T22:24:59.864Z","updated_at":"2025-06-06T22:24:59.864Z","purl":"pkg:conda/pytest-rerunfailures","metadata":{"id":5287806,"name":"pytest-rerunfailures","ecosystem":"conda","description":"pytest-rerunfailures is a plugin for pytest that re-runs tests to eliminate intermittent failures","homepage":"https://github.com/pytest-dev/pytest-rerunfailures","licenses":"MPL-2.0","normalized_licenses":["MPL-2.0"],"repository_url":"https://github.com/pytest-dev/pytest-rerunfailures","keywords_array":[],"namespace":null,"versions_count":8,"first_release_published_at":"2020-04-19T15:29:05.000Z","latest_release_published_at":"2020-10-02T16:56:38.000Z","latest_release_number":"9.1.1","last_synced_at":"2025-06-01T07:17:51.716Z","created_at":"2022-10-03T15:44:59.635Z","updated_at":"2025-06-01T07:17:51.716Z","registry_url":"https://anaconda.org/anaconda/pytest-rerunfailures","install_command":"conda install -c anaconda pytest-rerunfailures","documentation_url":null,"metadata":{},"repo_metadata":{"id":4238265,"uuid":"5362370","full_name":"pytest-dev/pytest-rerunfailures","owner":"pytest-dev","description":"a pytest plugin that re-runs failed tests up to -n times to eliminate flakey failures","archived":false,"fork":false,"pushed_at":"2025-02-14T10:54:41.000Z","size":422,"stargazers_count":401,"open_issues_count":42,"forks_count":86,"subscribers_count":25,"default_branch":"master","last_synced_at":"2025-03-17T11:02:54.486Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pytest-dev.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGES.rst","contributing":"CONTRIBUTING.rst","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2012-08-09T22:54:24.000Z","updated_at":"2025-03-12T01:10:58.000Z","dependencies_parsed_at":"2024-06-18T12:25:17.486Z","dependency_job_id":"2252d138-e571-4633-bb19-032fc15d8cb6","html_url":"https://github.com/pytest-dev/pytest-rerunfailures","commit_stats":{"total_commits":381,"total_committers":54,"mean_commits":7.055555555555555,"dds":0.8320209973753281,"last_synced_commit":"a53b9344c0d7a491a3cc53d91c7319696651d21b"},"previous_names":[],"tags_count":32,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest-rerunfailures","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest-rerunfailures/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest-rerunfailures/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest-rerunfailures/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pytest-dev","download_url":"https://codeload.github.com/pytest-dev/pytest-rerunfailures/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247657276,"owners_count":20974344,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"pytest-dev","name":"pytest-dev","uuid":"8897583","kind":"organization","description":"","email":"pytest-dev@python.org","website":"https://pytest.org","location":"Everywhere","twitter":"pytestdotorg","company":null,"icon_url":"https://avatars.githubusercontent.com/u/8897583?v=4","repositories_count":73,"last_synced_at":"2025-03-17T10:57:09.994Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/pytest-dev","funding_links":[],"total_stars":33308,"followers":580,"following":0,"created_at":"2022-11-02T16:22:53.846Z","updated_at":"2025-03-17T10:57:09.994Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pytest-dev","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pytest-dev/repositories"},"tags":[{"name":"15.0","sha":"781139ed4d4a08f85d1b5741b57ad82237aedaa6","kind":"tag","published_at":"2024-11-20T07:23:36.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest-rerunfailures/tar.gz/15.0","html_url":"https://github.com/pytest-dev/pytest-rerunfailures/releases/tag/15.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest-rerunfailures/tags/15.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest-rerunfailures/tags/15.0/manifests"},{"name":"14.0","sha":"5ef1dd008082d0195cf6227141b194d198ba6d35","kind":"tag","published_at":"2024-03-13T08:21:30.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest-rerunfailures/tar.gz/14.0","html_url":"https://github.com/pytest-dev/pytest-rerunfailures/releases/tag/14.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest-rerunfailures/tags/14.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest-rerunfailures/tags/14.0/manifests"},{"name":"13.0","sha":"6300466b50d017a8460a2e1b057d5840b247708a","kind":"tag","published_at":"2023-11-22T12:07:08.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest-rerunfailures/tar.gz/13.0","html_url":"https://github.com/pytest-dev/pytest-rerunfailures/releases/tag/13.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest-rerunfailures/tags/13.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest-rerunfailures/tags/13.0/manifests"},{"name":"12.0","sha":"903c0857017a43b0732f11d3075f1c056eb25fd9","kind":"tag","published_at":"2023-07-05T05:53:41.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest-rerunfailures/tar.gz/12.0","html_url":"https://github.com/pytest-dev/pytest-rerunfailures/releases/tag/12.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest-rerunfailures/tags/12.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest-rerunfailures/tags/12.0/manifests"},{"name":"11.1.2","sha":"eaad60d4fc8f1e84e4184d4eb9a719e36ad539b7","kind":"tag","published_at":"2023-03-09T07:17:54.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest-rerunfailures/tar.gz/11.1.2","html_url":"https://github.com/pytest-dev/pytest-rerunfailures/releases/tag/11.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest-rerunfailures/tags/11.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest-rerunfailures/tags/11.1.2/manifests"},{"name":"11.1.1","sha":"9e5b13e4d669ab3feb7786423bfefae8e3cc34e5","kind":"tag","published_at":"2023-02-17T07:08:56.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest-rerunfailures/tar.gz/11.1.1","html_url":"https://github.com/pytest-dev/pytest-rerunfailures/releases/tag/11.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest-rerunfailures/tags/11.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest-rerunfailures/tags/11.1.1/manifests"},{"name":"11.1","sha":"fee2e96e530256f9f7924104fa563cce5ec1ff6e","kind":"tag","published_at":"2023-02-09T10:16:31.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest-rerunfailures/tar.gz/11.1","html_url":"https://github.com/pytest-dev/pytest-rerunfailures/releases/tag/11.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest-rerunfailures/tags/11.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest-rerunfailures/tags/11.1/manifests"},{"name":"11.0","sha":"4dc493befc4323310b568e461ad184881c0459d1","kind":"tag","published_at":"2023-01-12T07:13:25.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest-rerunfailures/tar.gz/11.0","html_url":"https://github.com/pytest-dev/pytest-rerunfailures/releases/tag/11.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest-rerunfailures/tags/11.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest-rerunfailures/tags/11.0/manifests"},{"name":"10.3","sha":"88496e913c4f7a85debff6a644b989fb5274715a","kind":"tag","published_at":"2022-11-22T07:38:49.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest-rerunfailures/tar.gz/10.3","html_url":"https://github.com/pytest-dev/pytest-rerunfailures/releases/tag/10.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest-rerunfailures/tags/10.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest-rerunfailures/tags/10.3/manifests"},{"name":"10.2","sha":"a77bea227c239deed9cbd1bacdc95716c27e0a87","kind":"tag","published_at":"2021-09-17T06:08:21.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest-rerunfailures/tar.gz/10.2","html_url":"https://github.com/pytest-dev/pytest-rerunfailures/releases/tag/10.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest-rerunfailures/tags/10.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest-rerunfailures/tags/10.2/manifests"},{"name":"10.1","sha":"887e4bda5d5bf8936619b612cfe31293bb72d162","kind":"tag","published_at":"2021-07-02T13:43:25.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest-rerunfailures/tar.gz/10.1","html_url":"https://github.com/pytest-dev/pytest-rerunfailures/releases/tag/10.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest-rerunfailures/tags/10.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest-rerunfailures/tags/10.1/manifests"},{"name":"10.0","sha":"81f5f848c1ee6ad0e561cf72e6cec2dc321a64ee","kind":"tag","published_at":"2021-05-26T13:14:50.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest-rerunfailures/tar.gz/10.0","html_url":"https://github.com/pytest-dev/pytest-rerunfailures/releases/tag/10.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest-rerunfailures/tags/10.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest-rerunfailures/tags/10.0/manifests"},{"name":"9.1.1","sha":"9a58cc12ae54b030f9adfdda7ca4a9fe865003f1","kind":"tag","published_at":"2020-09-29T06:28:31.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest-rerunfailures/tar.gz/9.1.1","html_url":"https://github.com/pytest-dev/pytest-rerunfailures/releases/tag/9.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest-rerunfailures/tags/9.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest-rerunfailures/tags/9.1.1/manifests"},{"name":"9.1","sha":"eec6aeff15b9ca3c6fb6295ceacef09f7c2f6cd6","kind":"tag","published_at":"2020-08-26T21:07:41.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest-rerunfailures/tar.gz/9.1","html_url":"https://github.com/pytest-dev/pytest-rerunfailures/releases/tag/9.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest-rerunfailures/tags/9.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest-rerunfailures/tags/9.1/manifests"},{"name":"9.0","sha":"1529193fbd8f9323edf59687fa5226593fb7b2e3","kind":"tag","published_at":"2020-03-18T08:18:07.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest-rerunfailures/tar.gz/9.0","html_url":"https://github.com/pytest-dev/pytest-rerunfailures/releases/tag/9.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest-rerunfailures/tags/9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest-rerunfailures/tags/9.0/manifests"},{"name":"8.0","sha":"32774219c4df43b60255fa403f05ba97269ab828","kind":"tag","published_at":"2019-11-18T14:13:26.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest-rerunfailures/tar.gz/8.0","html_url":"https://github.com/pytest-dev/pytest-rerunfailures/releases/tag/8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest-rerunfailures/tags/8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest-rerunfailures/tags/8.0/manifests"},{"name":"7.0","sha":"9151f7883e240c604de6d5a85dc28778670a2282","kind":"tag","published_at":"2019-03-28T07:28:08.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest-rerunfailures/tar.gz/7.0","html_url":"https://github.com/pytest-dev/pytest-rerunfailures/releases/tag/7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest-rerunfailures/tags/7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest-rerunfailures/tags/7.0/manifests"},{"name":"6.0","sha":"3c75bc915255b71745aed635ee285521658822e6","kind":"tag","published_at":"2019-01-08T10:34:05.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest-rerunfailures/tar.gz/6.0","html_url":"https://github.com/pytest-dev/pytest-rerunfailures/releases/tag/6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest-rerunfailures/tags/6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest-rerunfailures/tags/6.0/manifests"},{"name":"5.0","sha":"24b7abb3e477b6bd0e5060ee4c12c5dbf803e2f0","kind":"tag","published_at":"2018-11-06T10:20:02.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest-rerunfailures/tar.gz/5.0","html_url":"https://github.com/pytest-dev/pytest-rerunfailures/releases/tag/5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest-rerunfailures/tags/5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest-rerunfailures/tags/5.0/manifests"},{"name":"4.2","sha":"44db7a32f83682f3873d88d14eb987ac27b28446","kind":"tag","published_at":"2018-10-04T09:59:18.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest-rerunfailures/tar.gz/4.2","html_url":"https://github.com/pytest-dev/pytest-rerunfailures/releases/tag/4.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest-rerunfailures/tags/4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest-rerunfailures/tags/4.2/manifests"},{"name":"4.1","sha":"a6a0ba0605589e2d315ed5ce87888c665048c05f","kind":"tag","published_at":"2018-05-23T15:24:28.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest-rerunfailures/tar.gz/4.1","html_url":"https://github.com/pytest-dev/pytest-rerunfailures/releases/tag/4.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest-rerunfailures/tags/4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest-rerunfailures/tags/4.1/manifests"},{"name":"4.0","sha":"6361efad814f4bffd4d332763505c8cc0386178b","kind":"tag","published_at":"2017-12-23T10:32:56.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest-rerunfailures/tar.gz/4.0","html_url":"https://github.com/pytest-dev/pytest-rerunfailures/releases/tag/4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest-rerunfailures/tags/4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest-rerunfailures/tags/4.0/manifests"},{"name":"3.1","sha":"3670e670731707da69a0ebb9f3c8b41a30098d78","kind":"tag","published_at":"2017-08-29T07:01:15.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest-rerunfailures/tar.gz/3.1","html_url":"https://github.com/pytest-dev/pytest-rerunfailures/releases/tag/3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest-rerunfailures/tags/3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest-rerunfailures/tags/3.1/manifests"},{"name":"3.0","sha":"faffd6c81a53d106062acb8e1c1cf2d0d3223154","kind":"tag","published_at":"2017-08-17T07:47:53.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest-rerunfailures/tar.gz/3.0","html_url":"https://github.com/pytest-dev/pytest-rerunfailures/releases/tag/3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest-rerunfailures/tags/3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest-rerunfailures/tags/3.0/manifests"},{"name":"2.2","sha":"8a07c49cfad39c7972da7acbc6496da01c665dc7","kind":"tag","published_at":"2017-06-23T11:17:39.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest-rerunfailures/tar.gz/2.2","html_url":"https://github.com/pytest-dev/pytest-rerunfailures/releases/tag/2.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest-rerunfailures/tags/2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest-rerunfailures/tags/2.2/manifests"},{"name":"2.1.0","sha":"90060be895c2f7f8e681e856088c961b120cfd03","kind":"tag","published_at":"2016-11-01T15:53:05.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest-rerunfailures/tar.gz/2.1.0","html_url":"https://github.com/pytest-dev/pytest-rerunfailures/releases/tag/2.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest-rerunfailures/tags/2.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest-rerunfailures/tags/2.1.0/manifests"},{"name":"2.0.2.dev0","sha":"b6ed3284f057e51090be98eee24cdb36e0984d94","kind":"tag","published_at":"2016-10-19T08:28:32.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest-rerunfailures/tar.gz/2.0.2.dev0","html_url":"https://github.com/pytest-dev/pytest-rerunfailures/releases/tag/2.0.2.dev0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest-rerunfailures/tags/2.0.2.dev0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest-rerunfailures/tags/2.0.2.dev0/manifests"},{"name":"2.0.1","sha":"ddb2f495942f9694a70811d969519da7615ad17f","kind":"tag","published_at":"2016-08-10T08:05:04.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest-rerunfailures/tar.gz/2.0.1","html_url":"https://github.com/pytest-dev/pytest-rerunfailures/releases/tag/2.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest-rerunfailures/tags/2.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest-rerunfailures/tags/2.0.1/manifests"},{"name":"2.0.0","sha":"b80b10d249201a0f85780445d8c2804f9fbb742f","kind":"tag","published_at":"2016-04-06T12:17:31.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest-rerunfailures/tar.gz/2.0.0","html_url":"https://github.com/pytest-dev/pytest-rerunfailures/releases/tag/2.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest-rerunfailures/tags/2.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest-rerunfailures/tags/2.0.0/manifests"},{"name":"1.0.2","sha":"b13cb1d9e9f14c24da217315083be1c726150cd0","kind":"tag","published_at":"2016-03-29T07:28:10.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest-rerunfailures/tar.gz/1.0.2","html_url":"https://github.com/pytest-dev/pytest-rerunfailures/releases/tag/1.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest-rerunfailures/tags/1.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest-rerunfailures/tags/1.0.2/manifests"},{"name":"1.0.1","sha":"53ae455e555d62587e85131ccff9f4a7ae803341","kind":"tag","published_at":"2016-02-02T14:07:31.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest-rerunfailures/tar.gz/1.0.1","html_url":"https://github.com/pytest-dev/pytest-rerunfailures/releases/tag/1.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest-rerunfailures/tags/1.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest-rerunfailures/tags/1.0.1/manifests"},{"name":"1.0.0","sha":"417670e89e0f05919e2c3cc0bda7386dcc7210f7","kind":"tag","published_at":"2016-02-02T13:21:26.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest-rerunfailures/tar.gz/1.0.0","html_url":"https://github.com/pytest-dev/pytest-rerunfailures/releases/tag/1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest-rerunfailures/tags/1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest-rerunfailures/tags/1.0.0/manifests"}]},"repo_metadata_updated_at":"2025-04-07T13:06:04.038Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":7,"rankings":{"downloads":null,"dependent_repos_count":40.816944024205746,"dependent_packages_count":51.16490166414523,"stargazers_count":35.461422087745845,"forks_count":34.34190620272315,"docker_downloads_count":null,"average":40.446293494704996},"purl":"pkg:conda/pytest-rerunfailures","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/conda/pytest-rerunfailures","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/conda/pytest-rerunfailures","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/conda/pytest-rerunfailures/dependencies","status":null,"funding_links":[],"critical":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/anaconda.org/packages/pytest-rerunfailures/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/anaconda.org/packages/pytest-rerunfailures/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/anaconda.org/packages/pytest-rerunfailures/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/anaconda.org/packages/pytest-rerunfailures/related_packages","maintainers":[],"registry":{"name":"anaconda.org","url":"https://anaconda.org","ecosystem":"conda","default":true,"packages_count":4119,"maintainers_count":0,"namespaces_count":0,"keywords_count":2728,"github":"Anaconda","metadata":{"kind":"anaconda","key":"Main","api":"https://repo.ananconda.com","funded_packages_count":465},"icon_url":"https://github.com/Anaconda.png","created_at":"2022-10-03T15:37:08.736Z","updated_at":"2025-06-07T05:38:45.517Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/anaconda.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/anaconda.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/anaconda.org/namespaces"}},"unique_repositories_count":13,"unique_repositories_count_past_30_days":1,"recent_issues":[{"uuid":"4577657595","node_id":"PR_kwDOG1Zs187iGw6R","number":12925,"state":"closed","title":"Chore(deps): Bump the utilities-minor group with 13 updates","user":"dependabot[bot]","labels":["non-trivial","backend","dependencies"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":"2026-06-03T22:32:19.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-03T07:02:34.000Z","updated_at":"2026-06-03T22:32:21.000Z","time_to_close":55785,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Chore(deps): Bump","group_name":"utilities-minor","update_count":13,"packages":[{"name":"faiss-cpu","old_version":"1.13.2","new_version":"1.14.2","repository_url":"https://github.com/facebookresearch/faiss"},{"name":"httpx-oauth","old_version":"0.16.1","new_version":"0.17.0","repository_url":"https://github.com/frankie567/httpx-oauth"},{"name":"imap-tools","old_version":"1.12.1","new_version":"1.13.0","repository_url":"https://github.com/ikvk/imap_tools"},{"name":"openai","old_version":"2.32.0","new_version":"2.38.0","repository_url":"https://github.com/openai/openai-python"},{"name":"regex","old_version":"2026.4.4","new_version":"2026.5.9","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"sentence-transformers","old_version":"5.4.1","new_version":"5.5.1","repository_url":"https://github.com/huggingface/sentence-transformers"},{"name":"torch","old_version":"2.11.0","new_version":"2.12.0","repository_url":"https://github.com/pytorch/pytorch"},{"name":"watchfiles","old_version":"1.1.1","new_version":"1.2.0","repository_url":"https://github.com/samuelcolvin/watchfiles"},{"name":"prek","old_version":"0.3.10","new_version":"0.4.3","repository_url":"https://github.com/j178/prek"},{"name":"faker","old_version":"40.15.0","new_version":"40.19.1","repository_url":"https://github.com/joke2k/faker"},{"name":"pytest-rerunfailures","old_version":"16.1","new_version":"16.3","repository_url":"https://github.com/pytest-dev/pytest-rerunfailures"},{"name":"types-pytz","old_version":"2026.1.1.20260304","new_version":"2026.2.0.20260518","repository_url":"https://github.com/python/typeshed"},{"name":"types-regex","old_version":"2026.4.4.20260408","new_version":"2026.5.9.20260518","repository_url":"https://github.com/python/typeshed"}],"path":null,"ecosystem":"conda"},"body":"Bumps the utilities-minor group with 13 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [faiss-cpu](https://github.com/facebookresearch/faiss) | `1.13.2` | `1.14.2` |\n| [httpx-oauth](https://github.com/frankie567/httpx-oauth) | `0.16.1` | `0.17.0` |\n| [imap-tools](https://github.com/ikvk/imap_tools) | `1.12.1` | `1.13.0` |\n| [openai](https://github.com/openai/openai-python) | `2.32.0` | `2.38.0` |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.4.4` | `2026.5.9` |\n| [sentence-transformers](https://github.com/huggingface/sentence-transformers) | `5.4.1` | `5.5.1` |\n| [torch](https://github.com/pytorch/pytorch) | `2.11.0` | `2.12.0` |\n| [watchfiles](https://github.com/samuelcolvin/watchfiles) | `1.1.1` | `1.2.0` |\n| [prek](https://github.com/j178/prek) | `0.3.10` | `0.4.3` |\n| [faker](https://github.com/joke2k/faker) | `40.15.0` | `40.19.1` |\n| [pytest-rerunfailures](https://github.com/pytest-dev/pytest-rerunfailures) | `16.1` | `16.3` |\n| [types-pytz](https://github.com/python/typeshed) | `2026.1.1.20260304` | `2026.2.0.20260518` |\n| [types-regex](https://github.com/python/typeshed) | `2026.4.4.20260408` | `2026.5.9.20260518` |\n\nUpdates `faiss-cpu` from 1.13.2 to 1.14.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/facebookresearch/faiss/releases\"\u003efaiss-cpu's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.14.2\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSuperKMeans\u003c/strong\u003e — faster k-means via ADSampling + PDX progressive pruning (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5168\"\u003e#5168\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eMetal GPU backend\u003c/strong\u003e for Apple Silicon, starting with \u003ccode\u003eIndexFlat\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5144\"\u003e#5144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRVV (RISC-V Vector) SIMD backend\u003c/strong\u003e + RISC-V cross-compilation CI (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5156\"\u003e#5156\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5184\"\u003e#5184\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epip install support\u003c/strong\u003e via scikit-build-core + cibuildwheel (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/4862\"\u003e#4862\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSVS IVF index\u003c/strong\u003e enabled; SVS upgraded to 0.3.0 (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/4801\"\u003e#4801\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/4999\"\u003e#4999\u003c/a\u003e); SVSVamana usable as IVF coarse quantizer via \u003ccode\u003eindex_factory\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5175\"\u003e#5175\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eTurboQuant (CPU)\u003c/strong\u003e quantizer (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5049\"\u003e#5049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eHNSW improvements\u003c/strong\u003e — optional persistent locks for incremental adds (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5031\"\u003e#5031\u003c/a\u003e), \u003ccode\u003eprune_headroom\u003c/code\u003e to avoid O(n²) pruning (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/4847\"\u003e#4847\u003c/a\u003e), narrower add-time critical section (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/4915\"\u003e#4915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eExtensive index deserialization hardening\u003c/strong\u003e — validation and OOM/overflow protection across ~40 PRs (binary, IVF, HNSW, FastScan, ScalarQuantizer, AdditiveQuantizer, ProductQuantizer, SVS, VectorTransform, …)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eMajor Dynamic Dispatch refactor\u003c/strong\u003e across distances, hamming, partitioning, RaBitQ, FastScan; dynamic dispatch now builds on Windows (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5127\"\u003e#5127\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecuVS upgraded to 26.02\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/4945\"\u003e#4945\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/4788\"\u003e#4788\u003c/a\u003e); CI moved to \u003cstrong\u003eCUDA 13.2\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5207\"\u003e#5207\u003c/a\u003e); \u003cstrong\u003eC++20 for cuVS\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/4881\"\u003e#4881\u003c/a\u003e); filtered search for cuVS indexes (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/4858\"\u003e#4858\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eOMP exception safety\u003c/strong\u003e across \u003ccode\u003eIndexHNSW\u003c/code\u003e, \u003ccode\u003eIndexNNDescent\u003c/code\u003e, \u003ccode\u003eIndexNSG\u003c/code\u003e, \u003ccode\u003eIndexFlatCodes\u003c/code\u003e, \u003ccode\u003eIndexIVF\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5106\"\u003e#5106\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5105\"\u003e#5105\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5111\"\u003e#5111\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5133\"\u003e#5133\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5037\"\u003e#5037\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5053\"\u003e#5053\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFull Changelog\u003c/h2\u003e\n\u003cp\u003eAdded\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eb7618fadc7fdf9b677277fbe96864c1902a6d8dc Add SuperKMeans: faster k-means via ADSampling+PDX progressive pruning (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5168\"\u003e#5168\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e66c9d082651659fb6e78d67c547b035d3c2c8228 Add SuperKMeans foundations: math primitives, PDX layout, SIMD kernels\u003c/li\u003e\n\u003cli\u003edc7afcfdf0d4bf7cc694f4974db77e471422d4cb Support SVSVamana as IVF coarse quantizer via index_factory (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5175\"\u003e#5175\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e7a8e4ddaca3d25363a79942e9fcd26de78436607 CI: cross-compile for riscv64 with RVV dynamic dispatch (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5184\"\u003e#5184\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e03202795b6451f2c6942262c998de3b980e96157 Introduce RVV (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5156\"\u003e#5156\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e417c53e0ce23e8c3f2843bc727c9493e35b1d5d0 Add NoneSIMDLevel context manager for cross-level reference checks (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5158\"\u003e#5158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e46def46902231ed57552ddbcfd751e17720c6d32 Enable SVS IVF Index in FAISS (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/4801\"\u003e#4801\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e585ba7954afb4da180a897bf195acd7516a44632 Add pip install support via scikit-build-core + cibuildwheel (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/4862\"\u003e#4862\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e799bf3aaeca910113fd2f1b0287568f07eb002fa Introduce early stop facilities for IVF, attempt 2 (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5160\"\u003e#5160\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e66cea524339ee7cd1b3954e3b5a677edb2adad74 Add Metal GPU backend for Apple Silicon (IndexFlat) (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5144\"\u003e#5144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e17fd3332c77c2801da4b467de67b5cadf045b328 Add database-parallel flat search for few-query workloads (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5000\"\u003e#5000\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ec7f07bbc0ad0e9c0b68c6c7a3696850f42500906 Add C++ per-SIMD-level tests for distance utility functions (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5154\"\u003e#5154\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e0242758a3d073be0f5b0117b524a1fbdfcf02860 Add bit-exact RQ encode cross-level test (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5155\"\u003e#5155\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e2f68a3730777f88da34d562bc90f637bb39c1cb3 Add per-SIMD-level tests for hamming.h utils + fix crosshamming bug (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5153\"\u003e#5153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ea7116ed4ec2ab4f0889d305592f579d5b2fb5745 Add TurboQuant (CPU) (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5049\"\u003e#5049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e11e5d3916054b23bf60253763abf5e9033fca39e Add optional persistent locks to IndexHNSW for incremental adds (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5031\"\u003e#5031\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ee82aa28b838d1cad66044c3888b75eb832a39fb4 Add OMP exception capture helpers and migrate IndexIVF (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5111\"\u003e#5111\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e6299bff1f60e5423fa8cfe8e8d3926f8d87bdafb Add QT_0bit to ScalarQuantizer for centroid-only IVF distance (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5079\"\u003e#5079\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e3030fe0635b743ccfddf3684752438269a5ab0c5 Add filtered search for cuVS indexes (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/4858\"\u003e#4858\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ef83ea51eaa60987315fcd2deca153924abd7995d Support IVFRaBitQSearchParameters in RaBitQFastScan scanner (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5081\"\u003e#5081\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e82a823513d8a7a7e497de11e7da0cba2aae7721d Add iterator callbacks for distance computation and heap admission (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5082\"\u003e#5082\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eb068fd985a7460c04ec6c4f909900409392520d0 Support IO_FLAG_MMAP_IFC on Darwin (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5058\"\u003e#5058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e113bf6ceac4e9d1bfeaf29279b29a8293759f83b Expose fast_scan_code_size from non-IVF FastScan indices (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5077\"\u003e#5077\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e786d993dbfb8b74b2a0d4d9543b2b08310acabbe Expose a fast scan code size from fast scan indices (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5064\"\u003e#5064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e95f1e45221ede8caf1b0139a3c8864d473e0e47d OMP build diagnostics (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/4842\"\u003e#4842\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ec4ac852e5b5aa2ba4bde8a977633c367aa85d5db Add a balanced assignment function (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5050\"\u003e#5050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e8402a6b764c024ca78fb87d768cb81de3f60c925 Add unit tests for HNSW deserialization validation (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5033\"\u003e#5033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e1dc5e1fb60405eda268a7d55b1d5a14feef962ba V2 enable specifying a subset of SIMD levels that are implemented at dispatching time. (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/4959\"\u003e#4959\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ee6f5c0c9a9f70f63c00d3ac5651edce6aebd734d Add SIMD dynamic dispatch migration guide (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/4973\"\u003e#4973\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e8177a3bca62af1042d955277cafe9db73d5a0c1d Add nvidia-smi diagnostic call (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/4960\"\u003e#4960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e67fc664fe0ac1774bd4dcf2ab1aaa488cc7d0545 Add CappedInvertedLists for per-list size limiting (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/4880\"\u003e#4880\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/facebookresearch/faiss/blob/main/CHANGELOG.md\"\u003efaiss-cpu's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.14.2] - 2026-05-21\u003c/h2\u003e\n\u003cp\u003eAdded\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eb7618fadc7fdf9b677277fbe96864c1902a6d8dc Add SuperKMeans: faster k-means via ADSampling+PDX progressive pruning (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5168\"\u003e#5168\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e66c9d082651659fb6e78d67c547b035d3c2c8228 Add SuperKMeans foundations: math primitives, PDX layout, SIMD kernels\u003c/li\u003e\n\u003cli\u003edc7afcfdf0d4bf7cc694f4974db77e471422d4cb Support SVSVamana as IVF coarse quantizer via index_factory (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5175\"\u003e#5175\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e7a8e4ddaca3d25363a79942e9fcd26de78436607 CI: cross-compile for riscv64 with RVV dynamic dispatch (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5184\"\u003e#5184\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e03202795b6451f2c6942262c998de3b980e96157 Introduce RVV (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5156\"\u003e#5156\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e417c53e0ce23e8c3f2843bc727c9493e35b1d5d0 Add NoneSIMDLevel context manager for cross-level reference checks (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5158\"\u003e#5158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e46def46902231ed57552ddbcfd751e17720c6d32 Enable SVS IVF Index in FAISS (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/4801\"\u003e#4801\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e585ba7954afb4da180a897bf195acd7516a44632 Add pip install support via scikit-build-core + cibuildwheel (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/4862\"\u003e#4862\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e799bf3aaeca910113fd2f1b0287568f07eb002fa Introduce early stop facilities for IVF, attempt 2 (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5160\"\u003e#5160\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e66cea524339ee7cd1b3954e3b5a677edb2adad74 Add Metal GPU backend for Apple Silicon (IndexFlat) (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5144\"\u003e#5144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e17fd3332c77c2801da4b467de67b5cadf045b328 Add database-parallel flat search for few-query workloads (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5000\"\u003e#5000\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ec7f07bbc0ad0e9c0b68c6c7a3696850f42500906 Add C++ per-SIMD-level tests for distance utility functions (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5154\"\u003e#5154\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e0242758a3d073be0f5b0117b524a1fbdfcf02860 Add bit-exact RQ encode cross-level test (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5155\"\u003e#5155\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e2f68a3730777f88da34d562bc90f637bb39c1cb3 Add per-SIMD-level tests for hamming.h utils + fix crosshamming bug (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5153\"\u003e#5153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ea7116ed4ec2ab4f0889d305592f579d5b2fb5745 Add TurboQuant (CPU) (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5049\"\u003e#5049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e11e5d3916054b23bf60253763abf5e9033fca39e Add optional persistent locks to IndexHNSW for incremental adds (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5031\"\u003e#5031\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ee82aa28b838d1cad66044c3888b75eb832a39fb4 Add OMP exception capture helpers and migrate IndexIVF (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5111\"\u003e#5111\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e6299bff1f60e5423fa8cfe8e8d3926f8d87bdafb Add QT_0bit to ScalarQuantizer for centroid-only IVF distance (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5079\"\u003e#5079\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e3030fe0635b743ccfddf3684752438269a5ab0c5 Add filtered search for cuVS indexes (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/4858\"\u003e#4858\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ef83ea51eaa60987315fcd2deca153924abd7995d Support IVFRaBitQSearchParameters in RaBitQFastScan scanner (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5081\"\u003e#5081\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e82a823513d8a7a7e497de11e7da0cba2aae7721d Add iterator callbacks for distance computation and heap admission (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5082\"\u003e#5082\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eb068fd985a7460c04ec6c4f909900409392520d0 Support IO_FLAG_MMAP_IFC on Darwin (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5058\"\u003e#5058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e113bf6ceac4e9d1bfeaf29279b29a8293759f83b Expose fast_scan_code_size from non-IVF FastScan indices (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5077\"\u003e#5077\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e786d993dbfb8b74b2a0d4d9543b2b08310acabbe Expose a fast scan code size from fast scan indices (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5064\"\u003e#5064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e95f1e45221ede8caf1b0139a3c8864d473e0e47d OMP build diagnostics (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/4842\"\u003e#4842\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ec4ac852e5b5aa2ba4bde8a977633c367aa85d5db Add a balanced assignment function (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5050\"\u003e#5050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e8402a6b764c024ca78fb87d768cb81de3f60c925 Add unit tests for HNSW deserialization validation (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5033\"\u003e#5033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e1dc5e1fb60405eda268a7d55b1d5a14feef962ba V2 enable specifying a subset of SIMD levels that are implemented at dispatching time. (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/4959\"\u003e#4959\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ee6f5c0c9a9f70f63c00d3ac5651edce6aebd734d Add SIMD dynamic dispatch migration guide (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/4973\"\u003e#4973\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e8177a3bca62af1042d955277cafe9db73d5a0c1d Add nvidia-smi diagnostic call (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/4960\"\u003e#4960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e67fc664fe0ac1774bd4dcf2ab1aaa488cc7d0545 Add CappedInvertedLists for per-list size limiting (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/4880\"\u003e#4880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ee57a8939c91244009c7ef5745d59f33139dc46d2 introduce \u003ccode\u003eSingleQueryResultCollectHandler\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/4926\"\u003e#4926\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e748c0311e423844f25d46a95d27d1621c520a4c7 HNSW: add prune_headroom to avoid O(n^2) pruning/locking, headroom test (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/4847\"\u003e#4847\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e1e4d2271a6b27c70c4d824cc47067d36998d9daf Introduce an early stop threshold for Kmeans (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e4a0fba1fe2c5e5c8fb3405e614ef9b11524b1064 Add FastScanCodeScanner dispatch boundary with per-SIMD TUs (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/4897\"\u003e#4897\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e0fcba2284c266f12ead208ef61559c81e2d7ac72 Add sentinels to index format enums. (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/4907\"\u003e#4907\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e40480fb303fe06a7126e78c71965041911b687c5 Support limits on index deserialization loops — useful for tests (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/4902\"\u003e#4902\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e1e4544a37e62f89bce0baf3253d214d37fba5192 Add defaulted SIMDLevel template parameter to handler and scaler types (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/4867\"\u003e#4867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eabdd37bd964b87be5283334ca49ff603a8e46f4c Add Pixi installation option to docs (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5214\"\u003e#5214\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eChanged\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e9d5491a117b1628dd911d942353156db63553fcf Templatize SIMDResultHandler on SL, mark handle() final (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5223\"\u003e#5223\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eb63f236a5252580e1f24158ca7bc6f58517983f2 Upgrade GitHub Actions CI from CUDA 12.6 to CUDA 13.2 (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5207\"\u003e#5207\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ea9f5baa58c3bacf208d9f02362ea9db47ffb9f21 Move RISC-V fast_scan forwarders to dedicated impl-riscv.cpp (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5216\"\u003e#5216\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e8932716646db11b5f03f1d6e64d2b96ad6cd202b Validate SVS storage_kind via shared helper at all deserialization read sites (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5204\"\u003e#5204\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebc490b56b0896a56d8fc68df42b00798ab5d7eee Make IVFPQSearchCagraConfig dtype fields settable from Python (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5191\"\u003e#5191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003effd3727d4815a819b3c229adc1ec4fb0e584156c Update pattern for index factory string with SVSVamana (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5201\"\u003e#5201\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/facebookresearch/faiss/commit/8f038486672564190a78307e4fb5ce2da6c43d45\"\u003e\u003ccode\u003e8f03848\u003c/code\u003e\u003c/a\u003e Disable attestations for prod PyPI publish (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5230\"\u003e#5230\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebookresearch/faiss/commit/dd3003ea8bb6d8719027b273f0f93189f8b3c03f\"\u003e\u003ccode\u003edd3003e\u003c/code\u003e\u003c/a\u003e Fix Panorama segfault (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5200\"\u003e#5200\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebookresearch/faiss/commit/086bd74fed9c41c20202352c00ffce21c3d8c555\"\u003e\u003ccode\u003e086bd74\u003c/code\u003e\u003c/a\u003e Add verbose logging to PyPI publish step (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5229\"\u003e#5229\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebookresearch/faiss/commit/fd3403ebf2d4b34097a3c1093e5db59310817119\"\u003e\u003ccode\u003efd3403e\u003c/code\u003e\u003c/a\u003e Update backward compatibility test to v1.14.2 (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5228\"\u003e#5228\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebookresearch/faiss/commit/9137034bfb00acf1974f133abf3fd15f7d5fa9e9\"\u003e\u003ccode\u003e9137034\u003c/code\u003e\u003c/a\u003e Increment to next release, v1.14.2 (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5227\"\u003e#5227\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebookresearch/faiss/commit/abdd37bd964b87be5283334ca49ff603a8e46f4c\"\u003e\u003ccode\u003eabdd37b\u003c/code\u003e\u003c/a\u003e Add Pixi installation option to docs (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5214\"\u003e#5214\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebookresearch/faiss/commit/9d5491a117b1628dd911d942353156db63553fcf\"\u003e\u003ccode\u003e9d5491a\u003c/code\u003e\u003c/a\u003e Templatize SIMDResultHandler on SL, mark handle() final (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5223\"\u003e#5223\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebookresearch/faiss/commit/b63f236a5252580e1f24158ca7bc6f58517983f2\"\u003e\u003ccode\u003eb63f236\u003c/code\u003e\u003c/a\u003e Upgrade GitHub Actions CI from CUDA 12.6 to CUDA 13.2 (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5207\"\u003e#5207\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebookresearch/faiss/commit/cb69d7c5665241d1e84f476105ffb6fd6c7c192c\"\u003e\u003ccode\u003ecb69d7c\u003c/code\u003e\u003c/a\u003e Fix Dq=None crash and np.empty nondeterminism in search_preassigned wrappers ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebookresearch/faiss/commit/5c92c5c1ee744545a77f6be9f14d4fdccaad7869\"\u003e\u003ccode\u003e5c92c5c\u003c/code\u003e\u003c/a\u003e Fix flaky test_hnsw smoke test by increasing efSearch (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5222\"\u003e#5222\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/facebookresearch/faiss/compare/v1.13.2...v1.14.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `httpx-oauth` from 0.16.1 to 0.17.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/frankie567/httpx-oauth/releases\"\u003ehttpx-oauth's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.17.0\u003c/h2\u003e\n\u003cp\u003eBump version 0.16.1 → 0.17.0\u003c/p\u003e\n\u003ch2\u003eBreaking changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 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/frankie567/httpx-oauth/commit/e714306c50df28f3b6b2338d1cd2ceb6022d0093\"\u003e\u003ccode\u003ee714306\u003c/code\u003e\u003c/a\u003e Bump version 0.16.1 → 0.17.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frankie567/httpx-oauth/commit/d7862dda0aa7b297eb610e1bd2a0d5a83bd34fab\"\u003e\u003ccode\u003ed7862dd\u003c/code\u003e\u003c/a\u003e Fix Justfile\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frankie567/httpx-oauth/commit/d4d04092f00c57444c7daaf91d431fbf0ff2d1e2\"\u003e\u003ccode\u003ed4d0409\u003c/code\u003e\u003c/a\u003e Fix CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frankie567/httpx-oauth/commit/e47288dd38f930008ea4e757221792f205ab8ecf\"\u003e\u003ccode\u003ee47288d\u003c/code\u003e\u003c/a\u003e Fix CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frankie567/httpx-oauth/commit/fb351e0367b6a581936f97be21f4788de60741f8\"\u003e\u003ccode\u003efb351e0\u003c/code\u003e\u003c/a\u003e Fix typing issue\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frankie567/httpx-oauth/commit/228717c819971732ac0bdfbd95cc98167f99ecb8\"\u003e\u003ccode\u003e228717c\u003c/code\u003e\u003c/a\u003e Upgrade tooling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frankie567/httpx-oauth/commit/f0f1a0fb525027c1415213efab4925bd02932f9d\"\u003e\u003ccode\u003ef0f1a0f\u003c/code\u003e\u003c/a\u003e Drop Python 3.9 support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frankie567/httpx-oauth/commit/003d13e833f412bc849ced7ed0890d4a4647ff84\"\u003e\u003ccode\u003e003d13e\u003c/code\u003e\u003c/a\u003e Update README.md\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/frankie567/httpx-oauth/compare/v0.16.1...v0.17.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `imap-tools` from 1.12.1 to 1.13.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ikvk/imap_tools/releases\"\u003eimap-tools's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.13.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded: MailBoxFolderManager.unset - Unselect current folder, raises MailboxFolderUnselectError\u003c/li\u003e\n\u003cli\u003eAdded: ValueError at MailBoxFolderManager.status - Folder argument are not specified and current folder is unset\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/ikvk/imap_tools/blob/master/docs/release_notes.rst\"\u003eimap-tools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.13.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded: MailBoxFolderManager.unset - Unselect current folder, raises MailboxFolderUnselectError\u003c/li\u003e\n\u003cli\u003eAdded: ValueError at MailBoxFolderManager.status - Folder argument are not specified and current folder is unset\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/ikvk/imap_tools/commit/bf5880573f3812ae4dde8c430b06a333850c5ea5\"\u003e\u003ccode\u003ebf58805\u003c/code\u003e\u003c/a\u003e +MailBoxFolderManager.unset, ValueError at MailBoxFolderManager.status\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ikvk/imap_tools/commit/1eb5f20b75b01d701d2fe5a6d710b5303af60408\"\u003e\u003ccode\u003e1eb5f20\u003c/code\u003e\u003c/a\u003e docs\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/ikvk/imap_tools/compare/v1.12.1...v1.13.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `openai` from 2.32.0 to 2.38.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/releases\"\u003eopenai's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.38.0\u003c/h2\u003e\n\u003ch2\u003e2.38.0 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.37.0...v2.38.0\"\u003ev2.37.0...v2.38.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e api update (\u003ca href=\"https://github.com/openai/openai-python/commit/33d1d013250053886a73d178136e6bd1b09df059\"\u003e33d1d01\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-python/commit/a21700a2cd510cb9e6c88065ac8e942d4c041aa8\"\u003ea21700a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update OpenAPI spec or Stainless config (\u003ca href=\"https://github.com/openai/openai-python/commit/00265c5daba4d2481452ad35220f1556dab6bcf6\"\u003e00265c5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e docs updates (\u003ca href=\"https://github.com/openai/openai-python/commit/ee101520d49e22c09cf8096f8cbb3848ea58a1f9\"\u003eee10152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echeck release PR custom code sync (\u003ca href=\"https://github.com/openai/openai-python/commit/2638779a5b8fffaa8fdb6eebc1d734f15d2491f8\"\u003e2638779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove release automation trigger (\u003ca href=\"https://github.com/openai/openai-python/commit/bd6eea559f2996d914258a65e645981bdce3cad4\"\u003ebd6eea5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etrigger release automation (\u003ca href=\"https://github.com/openai/openai-python/commit/f62d08201eea8e08d4bb3385662f934d4adccb29\"\u003ef62d082\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.37.0\u003c/h2\u003e\n\u003ch2\u003e2.37.0 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.36.0...v2.37.0\"\u003ev2.36.0...v2.37.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add service_tier parameter to responses compact method (\u003ca href=\"https://github.com/openai/openai-python/commit/625827c5509ece3c40e5002be37a9bd9d91b5374\"\u003e625827c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal/types:\u003c/strong\u003e support eagerly validating pydantic iterators (\u003ca href=\"https://github.com/openai/openai-python/commit/7e527bc927cc58b74d7619abf7f1fbcfff8bddfa\"\u003e7e527bc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove unnecessary client_id when using workload identity provider for auth (\u003ca href=\"https://github.com/openai/openai-python/commit/c39ea8d12a010052d7f02cebe8daabd2d1f89597\"\u003ec39ea8d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e add missing f-string prefix in file type error message (\u003ca href=\"https://github.com/openai/openai-python/commit/c85ebd935cb4b80e7e97ce255437684f6411fb00\"\u003ec85ebd9\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.36.0\u003c/h2\u003e\n\u003ch2\u003e2.36.0 (2026-05-07)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.35.1...v2.36.0\"\u003ev2.35.1...v2.36.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-python/commit/13c639cc7d57e4fbd4406563511e15eeb88a54b2\"\u003e13c639c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e realtime 2 (\u003ca href=\"https://github.com/openai/openai-python/commit/8fe0ab87e67eeb3cc27426b50093845229520f0e\"\u003e8fe0ab8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.35.1\u003c/h2\u003e\n\u003ch2\u003e2.35.1 (2026-05-06)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.35.0...v2.35.1\"\u003ev2.35.0...v2.35.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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/blob/main/CHANGELOG.md\"\u003eopenai's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.38.0 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.37.0...v2.38.0\"\u003ev2.37.0...v2.38.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e api update (\u003ca href=\"https://github.com/openai/openai-python/commit/33d1d013250053886a73d178136e6bd1b09df059\"\u003e33d1d01\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-python/commit/a21700a2cd510cb9e6c88065ac8e942d4c041aa8\"\u003ea21700a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update OpenAPI spec or Stainless config (\u003ca href=\"https://github.com/openai/openai-python/commit/00265c5daba4d2481452ad35220f1556dab6bcf6\"\u003e00265c5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e docs updates (\u003ca href=\"https://github.com/openai/openai-python/commit/ee101520d49e22c09cf8096f8cbb3848ea58a1f9\"\u003eee10152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echeck release PR custom code sync (\u003ca href=\"https://github.com/openai/openai-python/commit/2638779a5b8fffaa8fdb6eebc1d734f15d2491f8\"\u003e2638779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove release automation trigger (\u003ca href=\"https://github.com/openai/openai-python/commit/bd6eea559f2996d914258a65e645981bdce3cad4\"\u003ebd6eea5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etrigger release automation (\u003ca href=\"https://github.com/openai/openai-python/commit/f62d08201eea8e08d4bb3385662f934d4adccb29\"\u003ef62d082\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.37.0 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.36.0...v2.37.0\"\u003ev2.36.0...v2.37.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add service_tier parameter to responses compact method (\u003ca href=\"https://github.com/openai/openai-python/commit/625827c5509ece3c40e5002be37a9bd9d91b5374\"\u003e625827c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal/types:\u003c/strong\u003e support eagerly validating pydantic iterators (\u003ca href=\"https://github.com/openai/openai-python/commit/7e527bc927cc58b74d7619abf7f1fbcfff8bddfa\"\u003e7e527bc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove unnecessary client_id when using workload identity provider for auth (\u003ca href=\"https://github.com/openai/openai-python/commit/c39ea8d12a010052d7f02cebe8daabd2d1f89597\"\u003ec39ea8d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e add missing f-string prefix in file type error message (\u003ca href=\"https://github.com/openai/openai-python/commit/c85ebd935cb4b80e7e97ce255437684f6411fb00\"\u003ec85ebd9\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.36.0 (2026-05-07)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.35.1...v2.36.0\"\u003ev2.35.1...v2.36.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-python/commit/13c639cc7d57e4fbd4406563511e15eeb88a54b2\"\u003e13c639c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e realtime 2 (\u003ca href=\"https://github.com/openai/openai-python/commit/8fe0ab87e67eeb3cc27426b50093845229520f0e\"\u003e8fe0ab8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.35.1 (2026-05-06)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.35.0...v2.35.1\"\u003ev2.35.0...v2.35.1\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e fix imagegen \u003ccode\u003esize\u003c/code\u003e enum regression (\u003ca href=\"https://github.com/openai/openai-python/commit/44846536bc3b02c393daa5bae70a85de04c7f621\"\u003e4484653\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/openai/openai-python/commit/e75766769547601a25ed83b666c4d0fd046881f0\"\u003e\u003ccode\u003ee757667\u003c/code\u003e\u003c/a\u003e release: 2.38.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/b85b647b5312debb951814dfb9ed13f906d6bf43\"\u003e\u003ccode\u003eb85b647\u003c/code\u003e\u003c/a\u003e feat(api): api update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/d881c67866083ae187e14664e289e68a3ba04686\"\u003e\u003ccode\u003ed881c67\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;chore: check release PR custom code sync\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/d4a322816ad637330e40fdcdee9ca48bc92a2a4f\"\u003e\u003ccode\u003ed4a3228\u003c/code\u003e\u003c/a\u003e chore: check release PR custom code sync\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/48888380cdfc01e4f22f9ed7fbd5250231472e0d\"\u003e\u003ccode\u003e4888838\u003c/code\u003e\u003c/a\u003e chore: remove release automation trigger\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/74978f055a7adf004dec718e80bb46241e54d9ca\"\u003e\u003ccode\u003e74978f0\u003c/code\u003e\u003c/a\u003e chore: trigger release automation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/bab18af787cd5d962aedeb4b5b86df4f6cf28003\"\u003e\u003ccode\u003ebab18af\u003c/code\u003e\u003c/a\u003e chore(api): docs updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/a6f899aa1e046dd0cc18b89c4f73260463888db6\"\u003e\u003ccode\u003ea6f899a\u003c/code\u003e\u003c/a\u003e feat(api): manual updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/2897485d445f2924c5c2a8e6a9f40eec633ff345\"\u003e\u003ccode\u003e2897485\u003c/code\u003e\u003c/a\u003e feat(api): update OpenAPI spec or Stainless config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/a2f1d6c56980713619760c60a5c7bfb580b0adcb\"\u003e\u003ccode\u003ea2f1d6c\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/openai/openai-python/compare/v2.32.0...v2.38.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `regex` from 2026.4.4 to 2026.5.9\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mrabarnett/mrab-regex/blob/hg/changelog.txt\"\u003eregex's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eVersion: 2026.5.9\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eReverse matching with full unicode casefolding could lead to out-of-range string indexes.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.4.4\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eA fix for older Python versions before free-threading was  supported.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.4.3\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eMore fixes for free-threading.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.32\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed segfault.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.31\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed bug again.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.30\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed bug.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.28\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed version.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.27\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eVarious fixes, including ones to improve free-threading support.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.2.28\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eReplaced atomic operations with mutex on pattern object for free-threaded Python.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.2.26\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003ePR [#598](https://github.com/mrabarnett/mrab-regex/issues/598): Fix race condition in storage caching with atomic operations.\n\u003cp\u003eReplaced use of PyUnicode_GET_LENGTH with PyUnicode_GetLength.\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eVersion: 2026.2.19\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eAdded \\z as alias of \\Z, like in re module.\n\u003cp\u003eAdded prefixmatch as alias of match, like in re module.\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eVersion: 2026.1.15\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/mrabarnett/mrab-regex/commit/e57d185bb711729091907b23edac5dcba0426243\"\u003e\u003ccode\u003ee57d185\u003c/code\u003e\u003c/a\u003e Reverse matching with full unicode casefolding lead to out-of-range string in...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mrabarnett/mrab-regex/compare/2026.4.4...2026.5.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sentence-transformers` from 5.4.1 to 5.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/sentence-transformers/releases\"\u003esentence-transformers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.5.1 - Small Multimodal patch\u003c/h2\u003e\n\u003cp\u003eThis patch release fixes a small quirk with multimodal inference when using single-key multimodal inputs like \u003ccode\u003emodel.encode({\u0026quot;image\u0026quot;: ...})\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eInstall this version with\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Training + Inference\r\npip install sentence-transformers[train]==5.5.1\r\n\u003ch1\u003eInference only, use one of:\u003c/h1\u003e\n\u003cp\u003epip install sentence-transformers==5.5.1\npip install sentence-transformers[onnx-gpu]==5.5.1\npip install sentence-transformers[onnx]==5.5.1\npip install sentence-transformers[openvino]==5.5.1\u003c/p\u003e\n\u003ch1\u003eMultimodal dependencies (optional):\u003c/h1\u003e\n\u003cp\u003epip install sentence-transformers[image]==5.5.1\npip install sentence-transformers[audio]==5.5.1\npip install sentence-transformers[video]==5.5.1\u003c/p\u003e\n\u003ch1\u003eOr combine as needed:\u003c/h1\u003e\n\u003cp\u003epip install sentence-transformers[train,onnx,image]==5.5.1\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003ch2\u003eBug fixed\u003c/h2\u003e\n\u003cp\u003ePreviously, inference like \u003ccode\u003emodel.encode({\u0026quot;image\u0026quot;: ...})\u003c/code\u003e or \u003ccode\u003emodel.encode([{\u0026quot;image\u0026quot;: ...}, ...])\u003c/code\u003e would be inferred as the \u003ccode\u003e(\u0026quot;image\u0026quot;,)\u003c/code\u003e modality, which differed from the inferred modality of \u003ccode\u003e\u0026quot;image\u0026quot;\u003c/code\u003e for just \u003ccode\u003emodel.encode(my_image)\u003c/code\u003e or \u003ccode\u003emodel.encode([my_image, my_image_2, ...])\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThis results in confusing errors if the model doesn't have a \u003ccode\u003emodality_config\u003c/code\u003e mapping for \u003ccode\u003e(\u0026quot;image\u0026quot;,)\u003c/code\u003e in addition to \u003ccode\u003e\u0026quot;image\u0026quot;\u003c/code\u003e, so now a single-key multimodal dict is collapsed to the bare modality (just \u003ccode\u003e\u0026quot;image\u0026quot;\u003c/code\u003e in this example).\u003c/p\u003e\n\u003cp\u003eThis affected this code:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e\r\nfrom sentence_transformers import SentenceTransformer\r\n\u003cp\u003emodel = SentenceTransformer('BAAI/BGE-VL-base', trust_remote_code=True)\nembedding = model.encode({\u0026quot;image\u0026quot;: \u0026quot;\u003ca href=\"https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/blog/ettin-reranker/mteb_ndcg10_all-MiniLM-L6-v2.png\u0026amp;quot;%7D\"\u003ehttps://huggingface.co/datasets/huggingface/documentation-images/resolve/main/blog/ettin-reranker/mteb_ndcg10_all-MiniLM-L6-v2.png\u0026amp;quot;}\u003c/a\u003e)\nprint(embedding.shape)\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eWhich previously failed as the model only implements a path for \u003ccode\u003e\u0026quot;text\u0026quot;\u003c/code\u003e, \u003ccode\u003e\u0026quot;image\u0026quot;\u003c/code\u003e, and \u003ccode\u003e(\u0026quot;image\u0026quot;, \u0026quot;text\u0026quot;)\u003c/code\u003e.\u003c/p\u003e\n\u003ch2\u003eAll Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[fix] Collapse single-key multimodal dicts to bare modality by \u003ca href=\"https://github.com/tomaarsen\"\u003e\u003ccode\u003e@​tomaarsen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3779\"\u003e#3779\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/huggingface/sentence-transformers/compare/v5.5.0...v5.5.1\"\u003ehttps://github.com/huggingface/sentence-transformers/compare/v5.5.0...v5.5.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.5.0 - Training Agent Skill, EmbedDistillLoss, and ADRMSELoss\u003c/h2\u003e\n\u003cp\u003eThis release ships the \u003ccode\u003etrain-sentence-transformers\u003c/code\u003e Agent Skill, adds two new training losses, and brings a long list of robustness and correctness fixes.\u003c/p\u003e\n\u003cp\u003eThe new \u003ccode\u003etrain-sentence-transformers\u003c/code\u003e Agent Skill lets AI coding agents (Claude Code, Codex, Cursor, Gemini CLI, ...) drive end-to-end training and fine-tuning across all three model types. \u003ccode\u003eEmbedDistillLoss\u003c/code\u003e is a new embedding-level knowledge distillation loss for \u003ccode\u003eSentenceTransformer\u003c/code\u003e: it aligns a student model's embeddings with pre-computed teacher embeddings, an alternative to the score-based distillation provided by \u003ccode\u003eMarginMSELoss\u003c/code\u003e and \u003ccode\u003eDistillKLDivLoss\u003c/code\u003e. \u003ccode\u003eADRMSELoss\u003c/code\u003e is a new listwise learning-to-rank loss for \u003ccode\u003eCrossEncoder\u003c/code\u003e from the Rank-DistiLLM paper. \u003ccode\u003eencode()\u003c/code\u003e and \u003ccode\u003epredict()\u003c/code\u003e also gain a per-call \u003ccode\u003eprocessing_kwargs\u003c/code\u003e override, and more.\u003c/p\u003e\n\u003cp\u003eInstall this version with\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/huggingface/sentence-transformers/commit/ce3ec6d87f25b2d1cccb0a20f8fd495dad5c30fb\"\u003e\u003ccode\u003ece3ec6d\u003c/code\u003e\u003c/a\u003e Release v5.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/610a7c5ccfdfccc19933900feba0206f2e76bf59\"\u003e\u003ccode\u003e610a7c5\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003efix\u003c/code\u003e] Collapse single-key multimodal dicts to bare modality (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3779\"\u003e#3779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/f9f3269c7bd548555b7273a5378d52eeaa5d6286\"\u003e\u003ccode\u003ef9f3269\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into v5.5-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/02dc21d77dfd22b5816fb5398877253100b89b43\"\u003e\u003ccode\u003e02dc21d\u003c/code\u003e\u003c/a\u003e Update index tip for v5.5.0 (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3774\"\u003e#3774\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/833828b3dae0cf9e6943ae01b9c9645f883daf3b\"\u003e\u003ccode\u003e833828b\u003c/code\u003e\u003c/a\u003e Release v5.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/98ac358861359fd275824732e5f658b2f4ca6c78\"\u003e\u003ccode\u003e98ac358\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003edocs\u003c/code\u003e] Load models in float32 in the training examples \u0026amp; docs (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3773\"\u003e#3773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/d8ee0410ba140f41aa2ac0735a97e1d690dd2df5\"\u003e\u003ccode\u003ed8ee041\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003edocs\u003c/code\u003e] Use modality-neutral terms (input, document) in loss docs \u0026amp; docstrin...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/4c6850e444e5bcedfb026e9d674ae18c19ab5233\"\u003e\u003ccode\u003e4c6850e\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eexamples\u003c/code\u003e] Avoid LoggingHandler, silence httpx in examples (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3771\"\u003e#3771\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/1418823d250763751ea95212dfb9ecaa919f5e92\"\u003e\u003ccode\u003e1418823\u003c/code\u003e\u003c/a\u003e docs: fix grammar in parallel-sentence-mining README (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3769\"\u003e#3769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/22a383d3644cfaa40038adb0b70a9320f7f73d36\"\u003e\u003ccode\u003e22a383d\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003edocs\u003c/code\u003e] Use direct class imports in examples \u0026amp; docs (drop `losses.MSELoss(.....\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/sentence-transformers/compare/v5.4.1...v5.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `torch` from 2.11.0 to 2.12.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytorch/pytorch/releases\"\u003etorch's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ePyTorch 2.12.0 Release Notes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#highlights\"\u003eHighlights\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#backwards-incompatible-changes\"\u003eBackwards Incompatible Changes\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#deprecations\"\u003eDeprecations\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#new-features\"\u003eNew Features\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#improvements\"\u003eImprovements\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#bug-fixes\"\u003eBug fixes\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#performance\"\u003ePerformance\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#documentation\"\u003eDocumentation\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#developers\"\u003eDevelopers\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#security\"\u003eSecurity\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eHighlights\u003c/h1\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eFor more details about these highlighted features, you can look at the release blogpost. Below are the full release notes for this release.\u003c/p\u003e\n\u003ch1\u003eBackwards Incompatible Changes\u003c/h1\u003e\n\u003ch2\u003eBuild Frontend\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eStrengthened SVE compile checks in \u003ccode\u003eFindARM.cmake\u003c/code\u003e, which may reject previously accepted but incorrect SVE configurations (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/pull/176646\"\u003e#176646\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eSource builds that enable SVE now validate the compiler configuration more strictly. If a build previously passed with an incomplete or mismatched SVE setup, it may now fail during CMake configuration instead of later in compilation. Update the compiler/toolchain flags so they accurately describe the target SVE support, or disable SVE for that build.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated the minimum CUDA version required to build PyTorch from source to CUDA 12.6 (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/pull/178925\"\u003e#178925\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eBuilding PyTorch from source with CUDA versions older than 12.6 is no longer supported. Users building custom binaries should install CUDA 12.6 or newer and make sure \u003ccode\u003eCUDA_HOME\u003c/code\u003e points to that installation.\u003c/p\u003e\n\u003cp\u003eVersion 2.11:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003eCUDA_HOME=/usr/local/cuda-12.4 python setup.py develop\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion 2.12:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003eCUDA_HOME=/usr/local/cuda-12.6 python setup.py develop\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eEnforced a C++20 minimum in CMake build files (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/pull/178662\"\u003e#178662\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/pytorch/pytorch/commit/0d62256a2b23365f8e1604297eb23a6545102aa8\"\u003e\u003ccode\u003e0d62256\u003c/code\u003e\u003c/a\u003e [release] Dockerfile: skip torchaudio install when CUDA_PATH=cu132 (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/183346\"\u003e#183346\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/7661cd9c6b841b62b7f411aa52ec51f05457263b\"\u003e\u003ccode\u003e7661cd9\u003c/code\u003e\u003c/a\u003e [MPS] Fix SDPA wrong output for permuted q/k/v with B \u0026gt; 1 (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/181886\"\u003e#181886\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/9da6087ab64ab6a2118686420ca5353c90dd7e1f\"\u003e\u003ccode\u003e9da6087\u003c/code\u003e\u003c/a\u003e Fix stale PYTORCH_RELEASES_CODE_CC dict (fixes \u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/182250\"\u003e#182250\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/182369\"\u003e#182369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/e4c37cc011d47246ce8ea4b99c9b28fb7f400224\"\u003e\u003ccode\u003ee4c37cc\u003c/code\u003e\u003c/a\u003e Avoid raw stream name collisions in Inductor (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/182178\"\u003e#182178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/822d047dc8dd8d919f83c3ad5c786e405075d1f0\"\u003e\u003ccode\u003e822d047\u003c/code\u003e\u003c/a\u003e [MPS] Fix bool mask handling in 1-pass SDPA decode kernel (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/182285\"\u003e#182285\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/182311\"\u003e#182311\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/5c5e523cd520e6986006e45be243b3ee927ea546\"\u003e\u003ccode\u003e5c5e523\u003c/code\u003e\u003c/a\u003e Add enable_gqa parameter to SDPA MPS meta registration (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/181550\"\u003e#181550\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/eece52ead16886e5463c3dcee9b04db783cc68d5\"\u003e\u003ccode\u003eeece52e\u003c/code\u003e\u003c/a\u003e [AOTI] Add BC-safe c_shim v2 for _scaled_dot_product_attention_math_for_mps e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/b39330bbe210b9628207e84d8ba2cabb7975fbac\"\u003e\u003ccode\u003eb39330b\u003c/code\u003e\u003c/a\u003e [Inductor] Call latest c_shim version for versioned fallback ops (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/181548\"\u003e#181548\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/06f10d088229a25ac52bd14b6cacc04a4161f6ca\"\u003e\u003ccode\u003e06f10d0\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;[FSDP2] add fqn to communication ops\u0026quot; (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/182100\"\u003e#182100\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/182157\"\u003e#182157\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/449e3393139a1aca9afec120c9a63f98f12d55b0\"\u003e\u003ccode\u003e449e339\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;[Inductor] Improve materialization heuristic for a chain of computaio...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytorch/pytorch/compare/v2.11.0...v2.12.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `watchfiles` from 1.1.1 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/samuelcolvin/watchfiles/releases\"\u003ewatchfiles's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.0 2026-05-17\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eci: add riscv64 manylinux wheels by \u003ca href=\"https://github.com/justeph\"\u003e\u003ccode\u003e@​justeph\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/samuelcolvin/watchfiles/pull/359\"\u003esamuelcolvin/watchfiles#359\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix linting by \u003ca href=\"https://github.com/samuelcolvin\"\u003e\u003ccode\u003e@​samuelcolvin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/samuelcolvin/watchfiles/pull/370\"\u003esamuelcolvin/watchfiles#370\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Python 3.15-dev build, drop 3.9, increase MVRV to 1.83 by \u003ca href=\"https://github.com/simonw\"\u003e\u003ccode\u003e@​simonw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/samuelcolvin/watchfiles/pull/369\"\u003esamuelcolvin/watchfiles#369\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: improve type safety and error handling by \u003ca href=\"https://github.com/N3XT3R1337\"\u003e\u003ccode\u003e@​N3XT3R1337\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/samuelcolvin/watchfiles/pull/365\"\u003esamuelcolvin/watchfiles#365\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRuff target version to 3.10 by \u003ca href=\"https://github.com/samuelcolvin\"\u003e\u003ccode\u003e@​samuelcolvin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/samuelcolvin/watchfiles/pull/379\"\u003esamuelcolvin/watchfiles#379\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupgrade uv lock by \u003ca href=\"https://github.com/samuelcolvin\"\u003e\u003ccode\u003e@​samuelcolvin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/samuelcolvin/watchfiles/pull/378\"\u003esamuelcolvin/watchfiles#378\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eprep v1.2.0 release by \u003ca href=\"https://github.com/samuelcolvin\"\u003e\u003ccode\u003e@​samuelcolvin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/samuelcolvin/watchfiles/pull/371\"\u003esamuelcolvin/watchfiles#371\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/justeph\"\u003e\u003ccode\u003e@​justeph\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/samuelcolvin/watchfiles/pull/359\"\u003esamuelcolvin/watchfiles#359\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simonw\"\u003e\u003ccode\u003e@​simonw\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/samuelcolvin/watchfiles/pull/369\"\u003esamuelcolvin/watchfiles#369\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/N3XT3R1337\"\u003e\u003ccode\u003e@​N3XT3R1337\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/samuelcolvin/watchfiles/pull/365\"\u003esamuelcolvin/watchfiles#365\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/samuelcolvin/watchfiles/compare/v1.1.1...v1.2.0\"\u003ehttps://github.com/samuelcolvin/watchfiles/compare/v1.1.1...v1.2.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/samuelcolvin/watchfiles/commit/b6eb04ffaa99c3e656e448c75d137013ffa2ece3\"\u003e\u003ccode\u003eb6eb04f\u003c/code\u003e\u003c/a\u003e prep v1.2.0 release (\u003ca href=\"https://redirect.github.com/samuelcolvin/watchfiles/issues/371\"\u003e#371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/samuelcolvin/watchfiles/commit/517ffb2ad432d126326fa710af2040a8343588f2\"\u003e\u003ccode\u003e517ffb2\u003c/code\u003e\u003c/a\u003e upgrade uv lock (\u003ca href=\"https://redirect.github.com/samuelcolvin/watchfiles/issues/378\"\u003e#378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/samuelcolvin/watchfiles/commit/e156213f44bec3fcd3f970b0f6a1419494e21c1f\"\u003e\u003ccode\u003ee156213\u003c/code\u003e\u003c/a\u003e Ruff target version to 3.10 (\u003ca href=\"https://redirect.github.com/samuelcolvin/watchfiles/issues/379\"\u003e#379\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/samuelcolvin/watchfiles/commit/f4f63ebcb4ef7602038d8cb90fdc03ac4514f380\"\u003e\u003ccode\u003ef4f63eb\u003c/code\u003e\u003c/a\u003e fix: improve type safety and error handling (\u003ca href=\"https://redirect.github.com/samuelcolvin/watchfiles/issues/365\"\u003e#365\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/samuelcolvin/watchfiles/commit/a928957581ec6f73fbd560efacd519f1dc9ab2de\"\u003e\u003ccode\u003ea928957\u003c/code\u003e\u003c/a\u003e Add Python 3.15-dev build, drop 3.9, increase MVRV to 1.83 (\u003ca href=\"https://redirect.github.com/samuelcolvin/watchfiles/issues/369\"\u003e#369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/samuelcolvin/watchfiles/commit/f8b91fcabd929b655a9ed440115ea5a1997de736\"\u003e\u003ccode\u003ef8b91fc\u003c/code\u003e\u003c/a\u003e fix linting (\u003ca href=\"https://redirect.github.com/samuelcolvin/watchfiles/issues/370\"\u003e#370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/samuelcolvin/watchfiles/commit/ac594d105be711b98d1835fe5a26f65917b5d784\"\u003e\u003ccode\u003eac594d1\u003c/code\u003e\u003c/a\u003e ci: add riscv64 manylinux wheels (\u003ca href=\"https://redirect.github.com/samuelcolvin/watchfiles/issues/359\"\u003e#359\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/samuelcolvin/watchfiles/compare/v1.1.1...v1.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `prek` from 0.3.10 to 0.4.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/j178/prek/releases\"\u003eprek's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.4.3\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-27.\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore stat-only hook rewrites (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2131\"\u003e#2131\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSponsorship\u003c/h3\u003e\n\u003cp\u003eIf \u003ccode\u003eprek\u003c/code\u003e saves time for you or your team, please consider sponsoring the\nproject on \u003ca href=\"https://github.com/sponsors/j178\"\u003eGitHub Sponsors\u003c/a\u003e. It helps keep\nnew features, performance work, and maintenance moving.\u003c/p\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stevbev\"\u003e\u003ccode\u003e@​stevbev\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall prek 0.4.3\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl --proto '=https' --tlsv1.2 -LsSf https://github.com/j178/prek/releases/download/v0.4.3/prek-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eInstall prebuilt binaries via powershell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003epowershell -ExecutionPolicy Bypass -c \u0026quot;irm https://github.com/j178/prek/releases/download/v0.4.3/prek-installer.ps1 | iex\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eInstall prebuilt binaries via Homebrew\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ebrew install prek\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003eDownload prek 0.4.3\u003c/h2\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eFile\u003c/th\u003e\n\u003cth\u003ePlatform\u003c/th\u003e\n\u003cth\u003eChecksum\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.3/prek-aarch64-apple-darwin.tar.gz\"\u003eprek-aarch64-apple-darwin.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eApple Silicon macOS\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.3/prek-aarch64-apple-darwin.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.3/prek-x86_64-apple-darwin.tar.gz\"\u003eprek-x86_64-apple-darwin.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eIntel macOS\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.3/prek-x86_64-apple-darwin.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.3/prek-aarch64-pc-windows-msvc.zip\"\u003eprek-aarch64-pc-windows-msvc.zip\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eARM64 Windows\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.3/prek-aarch64-pc-windows-msvc.zip.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.3/prek-i686-pc-windows-msvc.zip\"\u003eprek-i686-pc-windows-msvc.zip\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ex86 Windows\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.3/prek-i686-pc-windows-msvc.zip.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.3/prek-x86_64-pc-windows-msvc.zip\"\u003eprek-x86_64-pc-windows-msvc.zip\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ex64 Windows\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.3/prek-x86_64-pc-windows-msvc.zip.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.3/prek-aarch64-unknown-linux-gnu.tar.gz\"\u003eprek-aarch64-unknown-linux-gnu.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eARM64 Linux\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.3/prek-aarch64-unknown-linux-gnu.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.3/prek-i686-unknown-linux-gnu.tar.gz\"\u003eprek-i686-unknown-linux-gnu.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ex86 Linux\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.3/prek-i686-unknown-linux-gnu.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\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/j178/prek/blob/master/CHANGELOG.md\"\u003eprek's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.4.3\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-27.\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore stat-only hook rewrites (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2131\"\u003e#2131\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSponsorship\u003c/h3\u003e\n\u003cp\u003eIf \u003ccode\u003eprek\u003c/code\u003e saves time for you or your team, please consider sponsoring the\nproject on \u003ca href=\"https://github.com/sponsors/j178\"\u003eGitHub Sponsors\u003c/a\u003e. It helps keep\nnew features, performance work, and maintenance moving.\u003c/p\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stevbev\"\u003e\u003ccode\u003e@​stevbev\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.4.2\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-26.\u003c/p\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cp\u003e0.4.2 is mainly about making \u003ccode\u003eprek run\u003c/code\u003e faster in large repos.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eprek\u003c/code\u003e now does less \u003ccode\u003egit diff\u003c/code\u003e work. After hooks run, \u003ccode\u003eprek\u003c/code\u003e uses diff checks\nto detect files changed by hooks. If a hook modifies files, prek marks that hook\nas failed. That is important, but full diff snapshots can be slow in big repos,\nespecially when they happen after every hook group.\u003c/p\u003e\n\u003cp\u003eWe skip the expensive diff path in two common cases: built-in hooks that prek\nknows are read-only, and clean worktrees where a cheap dirty check is enough\nunless a hook actually changes files. In the right large-repo workload,\nskipping that work can make runs up to 10x faster.\u003c/p\u003e\n\u003cp\u003eWorkspace mode is faster too. Hooks have historically been too serial.\nPriority-based concurrency helped, but it required users to choose good\n\u003ccode\u003epriority\u003c/code\u003e values. Now sibling projects at the same workspace depth run in\nparallel automatically. Their files do not overlap, so this is safe and needs\nno extra config. For multi-project workspaces, this can dramatically reduce\ntotal hook time.\u003c/p\u003e\n\u003ch3\u003eSponsorship\u003c/h3\u003e\n\u003cp\u003eIf \u003ccode\u003eprek\u003c/code\u003e saves time for you or your team, please consider sponsoring the\nproject on \u003ca href=\"https://github.com/sponsors/j178\"\u003eGitHub Sponsors\u003c/a\u003e. It helps keep\nnew features, performance work, and maintenance moving.\u003c/p\u003e\n\u003ch3\u003eEnhancements\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\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/02bb73f2be5539f3a1d219e74ad2ba344a633758\"\u003e\u003ccode\u003e02bb73f\u003c/code\u003e\u003c/a\u003e Bump version to 0.4.3 (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2132\"\u003e#2132\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/0f64ff91cf2a0934c30407522b93058c8d70cc6c\"\u003e\u003ccode\u003e0f64ff9\u003c/code\u003e\u003c/a\u003e Ignore stat-only hook rewrites (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2131\"\u003e#2131\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/de77cc91be8e5a021f6308d6d85c14f73492fe60\"\u003e\u003ccode\u003ede77cc9\u003c/code\u003e\u003c/a\u003e Bump version to 0.4.2 (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2126\"\u003e#2126\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/c54be46c21685a0139e966052153b4636cb43afb\"\u003e\u003ccode\u003ec54be46\u003c/code\u003e\u003c/a\u003e Simplify hook progress folding (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2125\"\u003e#2125\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/e908f821fb326878621511b36587c881e50d97f8\"\u003e\u003ccode\u003ee908f82\u003c/code\u003e\u003c/a\u003e Add link to comprehensive list of open-source projects using prek (\u003ca href=\"https://redirect.github.com/j178/prek/issues/938\"\u003e#938\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/7cd6ba4dd9abff3dbf8ed4cd5514405468321053\"\u003e\u003ccode\u003e7cd6ba4\u003c/code\u003e\u003c/a\u003e Run same-depth projects concurrently (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2110\"\u003e#2110\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/bbb381038f9fa3531e7feff47ad1bc9d0d9dc5a7\"\u003e\u003ccode\u003ebbb3810\u003c/code\u003e\u003c/a\u003e Lock file maintenance (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2123\"\u003e#2123\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/7d5282ca7653e877daf7df58cc3d2ce908dae920\"\u003e\u003ccode\u003e7d5282c\u003c/code\u003e\u003c/a\u003e Update Rust crate quick-xml to 0.40 (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2121\"\u003e#2121\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/97130ea81b5081ada2e9d6bd3d2f452b7aff7c1b\"\u003e\u003ccode\u003e97130ea\u003c/code\u003e\u003c/a\u003e Update dependency uv to v0.11.14 (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2118\"\u003e#2118\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/480f4bfe81d1c723ffaa3e2e73b70eeec16a935e\"\u003e\u003ccode\u003e480f4bf\u003c/code\u003e\u003c/a\u003e Update pre-commit hook crate-ci/typos to v1.46.2 (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2120\"\u003e#2120\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/j178/prek/compare/v0.3.10...v0.4.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `faker` from 40.15.0 to 40.19.1\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 v40.19.1\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/joke2k/faker/blob/refs/tags/v40.19.1/CHANGELOG.md\"\u003eCHANGELOG.md\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eRelease v40.19.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/joke2k/faker/blob/refs/tags/v40.19.0/CHANGELOG.md\"\u003eCHANGELOG.md\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eRelease v40.18.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/joke2k/faker/blob/refs/tags/v40.18.0/CHANGELOG.md\"\u003eCHANGELOG.md\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eRelease v40.17.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/joke2k/faker/blob/refs/tags/v40.17.0/CHANGELOG.md\"\u003eCHANGELOG.md\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eRelease v40.16.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/joke2k/faker/blob/refs/tags/v40.16.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/v40.19.0...v40.19.1\"\u003ev40.19.1 - 2026-05-22\u003c/a\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix shared state mutation in \u003ccode\u003een_IN\u003c/code\u003e \u003ccode\u003epincode_in_state\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/joke2k/faker/issues/2369\"\u003e#2369\u003c/a\u003e). Thanks \u003ca href=\"https://github.com/RedZapdos123\"\u003e\u003ccode\u003e@​RedZapdos123\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003ca href=\"https://github.com/joke2k/faker/compare/v40.18.0...v40.19.0\"\u003ev40.19.0 - 2026-05-22\u003c/a\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003euuid1\u003c/code\u003e and \u003ccode\u003euuid7\u003c/code\u003e providers to \u003ccode\u003emisc\u003c/code\u003e provider (\u003ca href=\"https://redirect.github.com/joke2k/faker/issues/2344\"\u003e#2344\u003c/a\u003e). Thanks \u003ca href=\"https://github.com/Krishnachaitanyakc\"\u003e\u003ccode\u003e@​Krishnachaitanyakc\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003ca href=\"https://github.com/joke2k/faker/compare/v40.17.0...v40.18.0\"\u003ev40.18.0 - 2026-05-14\u003c/a\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd automotive providers for \u003ccode\u003ear_DZ\u003c/code\u003e and \u003ccode\u003efr_DZ\u003c/code\u003e locales. Thanks \u003ca href=\"https://github.com/othmane099\"\u003e\u003ccode\u003e@​othmane099\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ephone_number\u003c/code\u003e provider for \u003ccode\u003ear_DZ\u003c/code\u003e and \u003ccode\u003efr_DZ\u003c/code\u003e locales. Thanks \u003ca href=\"https://github.com/othmane099\"\u003e\u003ccode\u003e@​othmane099\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003ca href=\"https://github.com/joke2k/faker/compare/v40.16.0...v40.17.0\"\u003ev40.17.0 - 2026-05-14\u003c/a\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eam_ET\u003c/code\u003e \u003ccode\u003ephone_number\u003c/code\u003e provider for Ethiopia. Thanks \u003ca href=\"https://github.com/jasur-py\"\u003e\u003ccode\u003e@​jasur-py\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003ca href=\"https://github.com/joke2k/faker/compare/v40.15.0...v40.16.0\"\u003ev40.16.0 - 2026-05-14\u003c/a\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix duplicate phone number prefix \u003ccode\u003e145\u003c/code\u003e in \u003ccode\u003ezh_CN\u003c/code\u003e locale. Thanks \u003ca href=\"https://github.com/r266-tec\"\u003e\u003ccode\u003e@​r266-tec\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/3e9b7b0f47fbea4b2ebf8d33678da653d5a7ed74\"\u003e\u003ccode\u003e3e9b7b0\u003c/code\u003e\u003c/a\u003e Bump version: 40.19.0 → 40.19.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/fea051597658968d2f096a2af16a67afcd6b6bd5\"\u003e\u003ccode\u003efea0515\u003c/code\u003e\u003c/a\u003e 📝 Update CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/a2af5110e4eabc738b76fba65eb3c697bd9fff00\"\u003e\u003ccode\u003ea2af511\u003c/code\u003e\u003c/a\u003e fix(en_IN): avoid shared state mutation in \u003ccode\u003epincode_in_state\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/joke2k/faker/issues/2369\"\u003e#2369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/fbb59f3f3e15904e076b7cfb79609df211779db5\"\u003e\u003ccode\u003efbb59f3\u003c/code\u003e\u003c/a\u003e Bump version: 40.18.0 → 40.19.0\u003c/li\u003e\n\u003cli\u003e\u003c...\n\n_Description has been truncated_","html_url":"https://github.com/paperless-ngx/paperless-ngx/pull/12925","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/paperless-ngx%2Fpaperless-ngx/issues/12925","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/12925/packages"},{"uuid":"3917820634","node_id":"PR_kwDOKoYLLM7CjqOH","number":195,"state":"open","title":"Bump the major-versions group across 1 directory with 16 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-02-09T19:38:22.000Z","updated_at":"2026-02-09T19:38:23.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"major-versions","update_count":16,"packages":[{"name":"django","old_version":"4.2.6","new_version":"4.2.28"},{"name":"django-guardian","old_version":"2.4.0","new_version":"3.2.0","repository_url":"https://github.com/django-guardian/django-guardian"},{"name":"django-extensions","old_version":"3.2.3","new_version":"4.1","repository_url":"https://github.com/django-extensions/django-extensions"},{"name":"django-filter","old_version":"23.3","new_version":"25.1","repository_url":"https://github.com/carltongibson/django-filter"},{"name":"gunicorn","old_version":"21.2.0","new_version":"23.0.0","repository_url":"https://github.com/benoitc/gunicorn"},{"name":"redis","old_version":"4.6.0","new_version":"6.4.0","repository_url":"https://github.com/redis/redis-py"},{"name":"watchdog","old_version":"3.0.0","new_version":"6.0.0","repository_url":"https://github.com/gorakhargosh/watchdog"},{"name":"ocrmypdf","old_version":"14.4.0","new_version":"15.4.4","repository_url":"https://github.com/ocrmypdf/OCRmyPDF"},{"name":"django-multiselectfield","old_version":"0.1.12","new_version":"1.0.1","repository_url":"https://github.com/goinnn/django-multiselectfield"},{"name":"django-auditlog","old_version":"2.3.0","new_version":"3.3.0","repository_url":"https://github.com/jazzband/django-auditlog"},{"name":"black","old_version":"23.9.1","new_version":"25.11.0","repository_url":"https://github.com/psf/black"},{"name":"pre-commit","old_version":"3.4.0","new_version":"4.3.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pytest","old_version":"7.4.2","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-cov","old_version":"4.1.0","new_version":"7.0.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"pytest-sugar","old_version":"0.9.7","new_version":"1.1.1","repository_url":"https://github.com/Teemu/pytest-sugar"},{"name":"pytest-rerunfailures","old_version":"12.0","new_version":"16.0.1","repository_url":"https://github.com/pytest-dev/pytest-rerunfailures"}],"path":null,"ecosystem":"conda"},"body":"Bumps the major-versions group with 16 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| django | `4.2.6` | `4.2.28` |\n| [django-guardian](https://github.com/django-guardian/django-guardian) | `2.4.0` | `3.2.0` |\n| [django-extensions](https://github.com/django-extensions/django-extensions) | `3.2.3` | `4.1` |\n| [django-filter](https://github.com/carltongibson/django-filter) | `23.3` | `25.1` |\n| [gunicorn](https://github.com/benoitc/gunicorn) | `21.2.0` | `23.0.0` |\n| [redis](https://github.com/redis/redis-py) | `4.6.0` | `6.4.0` |\n| [watchdog](https://github.com/gorakhargosh/watchdog) | `3.0.0` | `6.0.0` |\n| [ocrmypdf](https://github.com/ocrmypdf/OCRmyPDF) | `14.4.0` | `15.4.4` |\n| [django-multiselectfield](https://github.com/goinnn/django-multiselectfield) | `0.1.12` | `1.0.1` |\n| [django-auditlog](https://github.com/jazzband/django-auditlog) | `2.3.0` | `3.3.0` |\n| [black](https://github.com/psf/black) | `23.9.1` | `25.11.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `3.4.0` | `4.3.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `7.4.2` | `8.4.2` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `4.1.0` | `7.0.0` |\n| [pytest-sugar](https://github.com/Teemu/pytest-sugar) | `0.9.7` | `1.1.1` |\n| [pytest-rerunfailures](https://github.com/pytest-dev/pytest-rerunfailures) | `12.0` | `16.0.1` |\n\n\nUpdates `django` from 4.2.6 to 4.2.28\n\nUpdates `django-guardian` from 2.4.0 to 3.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-guardian/django-guardian/releases\"\u003edjango-guardian's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.2.0 The Bozkir progression\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate enforcement contact link in CODE_OF_CONDUCT.md by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/918\"\u003edjango-guardian/django-guardian#918\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptional cached anonymous user  - Pr 907 by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/912\"\u003edjango-guardian/django-guardian#912\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003egenerator warnings and logics are added for security purposes by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/920\"\u003edjango-guardian/django-guardian#920\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erollback compatible create anon user fix is developed by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/919\"\u003edjango-guardian/django-guardian#919\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e644 using inlines in django admin with guardian by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/921\"\u003edjango-guardian/django-guardian#921\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-guardian/django-guardian/compare/3.1.3...3.2.0\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.3...3.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.1.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edjango-packages badge is added by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/910\"\u003edjango-guardian/django-guardian#910\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate issue templates by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/909\"\u003edjango-guardian/django-guardian#909\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMakefile support by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/906\"\u003edjango-guardian/django-guardian#906\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePR merging scenario is fixed by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/913\"\u003edjango-guardian/django-guardian#913\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed issue causing prefetch_perms() to throw when passed an empty list by \u003ca href=\"https://github.com/keattang\"\u003e\u003ccode\u003e@​keattang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/904\"\u003edjango-guardian/django-guardian#904\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRe apply \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/812\"\u003e#812\u003c/a\u003e using correct lookup method by \u003ca href=\"https://github.com/sevdog\"\u003e\u003ccode\u003e@​sevdog\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/842\"\u003edjango-guardian/django-guardian#842\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOPS: Bump version for release by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/915\"\u003edjango-guardian/django-guardian#915\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-guardian/django-guardian/compare/3.1.2...3.1.3\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.2...3.1.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.1.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.0 in /.github/workflows 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-guardian/django-guardian/pull/903\"\u003edjango-guardian/django-guardian#903\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix type and deprecate old name by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/902\"\u003edjango-guardian/django-guardian#902\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/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/903\"\u003edjango-guardian/django-guardian#903\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-guardian/django-guardian/compare/3.1.1...3.1.2\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.1...3.1.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epre-commit checker step is added by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/901\"\u003edjango-guardian/django-guardian#901\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-guardian/django-guardian/compare/3.1.0...3.1.1\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.0...3.1.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eImproved indexing, tweaks and bugfixes\u003c/h2\u003e\n\u003ch2\u003eSaving the 🌳🌳🌳 and the 💰💰💰\u003c/h2\u003e\n\u003cp\u003e⚠️⚠️⚠️ \u003cstrong\u003eWARNING:\u003c/strong\u003e This release contains an update to database indexing which should yield \u003cstrong\u003econsiderable additional performance\u003c/strong\u003e, especially on large table permissions lookups (thanks \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e for such rigorous performance testing!!!). Following the migration that introduces these indexes, databases should reindex automatically in the background (typically within 0-30s even for large tables): this is unlikely to be noticeable but users may experience a short lived performance hit during this period.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow ignore_conflicts on bulk create by \u003ca href=\"https://github.com/pgiki\"\u003e\u003ccode\u003e@​pgiki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/814\"\u003edjango-guardian/django-guardian#814\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/django-guardian/django-guardian/commit/4120d00c28c1b6d3bacb988f6db86bacf91ed0f1\"\u003e\u003ccode\u003e4120d00\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/921\"\u003e#921\u003c/a\u003e from django-guardian/644-using-inlines-in-django-admi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/c896b220bdf96783f1c25d730f12ebef95758c99\"\u003e\u003ccode\u003ec896b22\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/919\"\u003e#919\u003c/a\u003e from django-guardian/770-migration-rollback-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/3814e2383c69266350a3d885d445bdd79da8cb78\"\u003e\u003ccode\u003e3814e23\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 770-migration-rollback-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/94854899f4a030b42840837e08b42923a71c5b78\"\u003e\u003ccode\u003e9485489\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/920\"\u003e#920\u003c/a\u003e from django-guardian/666-permissionrequiredmixin-does...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/e01e2e1edeec60b2c79d561db56e0949ea3c4dad\"\u003e\u003ccode\u003ee01e2e1\u003c/code\u003e\u003c/a\u003e check only username field fixing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/e1ae3c5a7ab74a679ef1ccff2a480a88117df464\"\u003e\u003ccode\u003ee1ae3c5\u003c/code\u003e\u003c/a\u003e show warning instead of error for backward compatibility and giving time the ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/63c10f549dfe2b5ba67e9eec36095cf3e6a2bab8\"\u003e\u003ccode\u003e63c10f5\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 644-using-inlines-in-django-admin-with-guardian\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/b27ebbdcc7f9952d9d9aaaa879b5e202063ccaa8\"\u003e\u003ccode\u003eb27ebbd\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 666-permissionrequiredmixin-does-not-warn-against-us...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/d7ed4a3bccb730d3cdf16fdc404f25b94674c653\"\u003e\u003ccode\u003ed7ed4a3\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 770-migration-rollback-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/03fed6924e06fd13991d9e8ae1b4590addf5473e\"\u003e\u003ccode\u003e03fed69\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/912\"\u003e#912\u003c/a\u003e from django-guardian/pr-907\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-guardian/django-guardian/compare/v2.4.0...3.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-extensions` from 3.2.3 to 4.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-extensions/django-extensions/releases\"\u003edjango-extensions's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd: show_permissions command (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1920\"\u003e#1920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, style per app (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1848\"\u003e#1848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: JSONField, bulk_update's (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1924\"\u003e#1924\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/ahmad88me\"\u003e\u003ccode\u003e@​ahmad88me\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1848\"\u003edjango-extensions/django-extensions#1848\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-extensions/django-extensions/compare/4.0...4.1\"\u003ehttps://github.com/django-extensions/django-extensions/compare/4.0...4.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprovement: Support for Python 3.12 and 3.13\u003c/li\u003e\n\u003cli\u003eImprovement: Support for Django 5.x\u003c/li\u003e\n\u003cli\u003eImprovement: Switch from setup.{cfg,py} to pyproject.toml\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Add option to display field choices in graph_models (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1854\"\u003e#1854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Add webp support (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1857\"\u003e#1857\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Support for ordering edges on pydot/dot/graphviz (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1914\"\u003e#1914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: mail_debug, Update mail_debug command to use aiosmtpd (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1880\"\u003e#1880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: shell_plus, Improve error message for missing import (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1898\"\u003e#1898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: reset_db, Add reset_db support for django_tenants (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1855\"\u003e#1855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: docs, various improvements (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1852\"\u003e#1852\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1888\"\u003e#1888\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1882\"\u003e#1882\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1901\"\u003e#1901\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1912\"\u003e#1912\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1913\"\u003e#1913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: jobs, Handle non-package modules when looking for job definitions (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1887\"\u003e#1887\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: Add django-prometheus DB backends support (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1800\"\u003e#1800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: Call post_command when the command raises an unhandled exception (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1837\"\u003e#1837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: sqldiff, do not consider ('serial', 'integer') nor ('bigserial', 'bigint') as a field-type-differ (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1867\"\u003e#1867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: shell_plus, Fix start up order and add history (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1869\"\u003e#1869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove pipchecker and associated tests (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1906\"\u003e#1906\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFollowing Django's release numbering style more closely (see \u003ca href=\"https://docs.djangoproject.com/en/5.2/internals/release-process/\"\u003ehttps://docs.djangoproject.com/en/5.2/internals/release-process/\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/dimitrismistriotis\"\u003e\u003ccode\u003e@​dimitrismistriotis\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1859\"\u003edjango-extensions/django-extensions#1859\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/titouanc\"\u003e\u003ccode\u003e@​titouanc\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1854\"\u003edjango-extensions/django-extensions#1854\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dmwyatt\"\u003e\u003ccode\u003e@​dmwyatt\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1872\"\u003edjango-extensions/django-extensions#1872\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stianjensen\"\u003e\u003ccode\u003e@​stianjensen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1898\"\u003edjango-extensions/django-extensions#1898\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PapaZ810\"\u003e\u003ccode\u003e@​PapaZ810\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1888\"\u003edjango-extensions/django-extensions#1888\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kviktor\"\u003e\u003ccode\u003e@​kviktor\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1857\"\u003edjango-extensions/django-extensions#1857\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aripollak\"\u003e\u003ccode\u003e@​aripollak\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1913\"\u003edjango-extensions/django-extensions#1913\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/flowgunso\"\u003e\u003ccode\u003e@​flowgunso\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1914\"\u003edjango-extensions/django-extensions#1914\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anitahammer\"\u003e\u003ccode\u003e@​anitahammer\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1869\"\u003edjango-extensions/django-extensions#1869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nicolaspanel\"\u003e\u003ccode\u003e@​nicolaspanel\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1867\"\u003edjango-extensions/django-extensions#1867\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yujinyuz\"\u003e\u003ccode\u003e@​yujinyuz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1855\"\u003edjango-extensions/django-extensions#1855\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/soof-golan\"\u003e\u003ccode\u003e@​soof-golan\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1852\"\u003edjango-extensions/django-extensions#1852\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ghickman\"\u003e\u003ccode\u003e@​ghickman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1887\"\u003edjango-extensions/django-extensions#1887\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jrobichaud\"\u003e\u003ccode\u003e@​jrobichaud\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1837\"\u003edjango-extensions/django-extensions#1837\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-extensions/django-extensions/compare/3.2.3...4.0\"\u003ehttps://github.com/django-extensions/django-extensions/compare/3.2.3...4.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.2.4b1\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-extensions/django-extensions/blob/main/CHANGELOG.md\"\u003edjango-extensions's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.1\u003c/h2\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd: show_permissions command (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1920\"\u003e#1920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, style per app (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1848\"\u003e#1848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: JSONField, bulk_update's (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1924\"\u003e#1924\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.0\u003c/h2\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eImprovement: Support for Python 3.12 and 3.13\u003c/li\u003e\n\u003cli\u003eImprovement: Support for Django 5.x\u003c/li\u003e\n\u003cli\u003eImprovement: Switch from setup.{cfg,py} to pyproject.toml\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Add option to display field choices in graph_models (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1854\"\u003e#1854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Add webp support (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1857\"\u003e#1857\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Support for ordering edges on pydot/dot/graphviz (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1914\"\u003e#1914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: mail_debug, Update mail_debug command to use aiosmtpd (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1880\"\u003e#1880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: shell_plus, Improve error message for missing import (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1898\"\u003e#1898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: reset_db, Add reset_db support for django_tenants (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1855\"\u003e#1855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: docs, various improvements (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1852\"\u003e#1852\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1888\"\u003e#1888\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1882\"\u003e#1882\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1901\"\u003e#1901\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1912\"\u003e#1912\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1913\"\u003e#1913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: jobs, Handle non-package modules when looking for job definitions (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1887\"\u003e#1887\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: Add django-prometheus DB backends support (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1800\"\u003e#1800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: Call post_command when the command raises an unhandled exception (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1837\"\u003e#1837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: sqldiff, do not consider ('serial', 'integer') nor ('bigserial', 'bigint') as a \u003ccode\u003efield-type-differ\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1867\"\u003e#1867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: shell_plus, Fix start up order and add history (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1869\"\u003e#1869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove pipchecker and associated tests (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1906\"\u003e#1906\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFollowing Django's release numbering style more closely (see \u003ca href=\"https://docs.djangoproject.com/en/5.2/internals/release-process/\"\u003ehttps://docs.djangoproject.com/en/5.2/internals/release-process/\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-extensions/django-extensions/commit/ad015513e5d8e8ee6ad748fca5f32ccf3fb3d5c5\"\u003e\u003ccode\u003ead01551\u003c/code\u003e\u003c/a\u003e v4.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/2c3e914f1264c0a029b3b47b7425d0f68ce637ed\"\u003e\u003ccode\u003e2c3e914\u003c/code\u003e\u003c/a\u003e update CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/fb5b2af1b6595ee126237c299acf242fcfee817e\"\u003e\u003ccode\u003efb5b2af\u003c/code\u003e\u003c/a\u003e ruff format\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/7e978d27b031843640f9204ff495738c46233d7f\"\u003e\u003ccode\u003e7e978d2\u003c/code\u003e\u003c/a\u003e graph_models style per app (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1848\"\u003e#1848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/067064ea0c6dec7cba1583447fe5fe1c706d5351\"\u003e\u003ccode\u003e067064e\u003c/code\u003e\u003c/a\u003e avoid trying to serialize expressions when serializing default values\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/a886068502474e70a2d68ff4634a15cc3366088d\"\u003e\u003ccode\u003ea886068\u003c/code\u003e\u003c/a\u003e update CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/d824501cbc6d04a24a43ff5756b496f84093b225\"\u003e\u003ccode\u003ed824501\u003c/code\u003e\u003c/a\u003e Add show_permissions management command (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1920\"\u003e#1920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/934f93f53bdf6c6271ae1ddaee71bc9bf3364a0e\"\u003e\u003ccode\u003e934f93f\u003c/code\u003e\u003c/a\u003e bumped version number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/c4577df5b69ec1ebcbe6bc64d7a5c20362f3a8fa\"\u003e\u003ccode\u003ec4577df\u003c/code\u003e\u003c/a\u003e v4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/7cdb43ab56a3b610b47680d8a2fe86b09d5913aa\"\u003e\u003ccode\u003e7cdb43a\u003c/code\u003e\u003c/a\u003e pyproject formatting\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-extensions/django-extensions/compare/3.2.3...4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-filter` from 23.3 to 25.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/carltongibson/django-filter/blob/main/CHANGES.rst\"\u003edjango-filter's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 25.1 (2025-02-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved the in-built API schema generation methods, which have been\ndeprecated since v23.2.\u003c/p\u003e\n\u003cp\u003eYou should use \u003ccode\u003edrf-spectacular \u0026lt;https://drf-spectacular.readthedocs.io/en/latest/\u0026gt;\u003c/code\u003e_\nfor generating OpenAPI schemas with DRF.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped support for EOL Python 3.8.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded testing against Python 3.13.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded official support for Django 5.2.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 24.3 (2024-08-02)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdds official support for Django 5.1.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow using dictionaries for grouped choices on Django 5.0+.\u003c/p\u003e\n\u003cp\u003eThanks to Sævar Öfjörð Magnússon.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdds \u003ccode\u003eunknown_field_behavior\u003c/code\u003e FilterSet option to allowing warning and\nignore behaviours for unknown field types during FilterSet generation.\u003c/p\u003e\n\u003cp\u003eThanks to Loes.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 24.2 (2024-03-27)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed a regression in v23.4 where callable choices were incorrectly evaluated\nat filter instantiation, on Django versions prior to 5.0.\u003c/p\u003e\n\u003cp\u003eThanks to Craig de Stigter for the report and reproduce.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 24.1 (2024-03-08)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated supported Python and Django versions, and resolved upcoming Django\ndeprecations.\u003c/p\u003e\n\u003cp\u003eRequired versions are now at least Python 3.8 and Django 4.2.\u003c/p\u003e\n\u003cp\u003eThanks to Michael Manganiello.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllowed passing a FilterSet class to the filterset_factory().\u003c/p\u003e\n\u003cp\u003eThanks to Birger Schacht.\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/carltongibson/django-filter/commit/27dd67284405ee832701509b3515baa50c6e074d\"\u003e\u003ccode\u003e27dd672\u003c/code\u003e\u003c/a\u003e Updated Change notes for 25.1 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/2ea38174b010f378a9b57d90c566c2bab7b37bbb\"\u003e\u003ccode\u003e2ea3817\u003c/code\u003e\u003c/a\u003e Added Trove classifier for Django 5.2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/4d2306c211c1d86f85f04fb311b8b05bfefb08a8\"\u003e\u003ccode\u003e4d2306c\u003c/code\u003e\u003c/a\u003e Replaced hardcoded pks in tests (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1703\"\u003e#1703\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/fbf5a76a4d97480d78779397b90d34fa8f13d141\"\u003e\u003ccode\u003efbf5a76\u003c/code\u003e\u003c/a\u003e Update tox after Django 5.2 alpha release. (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1700\"\u003e#1700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/1e76d6859e109ae34d5e2a657c66146a9d744c80\"\u003e\u003ccode\u003e1e76d68\u003c/code\u003e\u003c/a\u003e Use QueryDict for data default. (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1691\"\u003e#1691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/e709e5d43a4ad8b8e8ea62520669b88300c9c686\"\u003e\u003ccode\u003ee709e5d\u003c/code\u003e\u003c/a\u003e Add testing against Python 3.13.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/ccde000dfe74362b62301b248681e9505133e821\"\u003e\u003ccode\u003eccde000\u003c/code\u003e\u003c/a\u003e Dropped support for EOL Python 3.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/2a644e176634ec0ce99d9446d980501e9763e194\"\u003e\u003ccode\u003e2a644e1\u003c/code\u003e\u003c/a\u003e Removed deprecated schema generation methods from DRF backend. (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1698\"\u003e#1698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/2494df96c6387a9fa411fcb00b696b15dfd9216b\"\u003e\u003ccode\u003e2494df9\u003c/code\u003e\u003c/a\u003e fix typo in filterset.txt (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1695\"\u003e#1695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/3656174bd90d20f3d916fd98b6476c270013b681\"\u003e\u003ccode\u003e3656174\u003c/code\u003e\u003c/a\u003e Translated using Weblate (Czech) (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1687\"\u003e#1687\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/carltongibson/django-filter/compare/23.3...25.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gunicorn` from 21.2.0 to 23.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\u003e23.0.0\u003c/h2\u003e\n\u003cp\u003eGunicorn 23.0.0 has been released. This version improve HTTP 1.1. support and  which improve safety\u003c/p\u003e\n\u003cp\u003eYou're invited to upgrade asap your own installation.\u003c/p\u003e\n\u003ch1\u003e23.0.0 - 2024-08-10\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eminor docs fixes (:pr:\u003ccode\u003e3217\u003c/code\u003e, :pr:\u003ccode\u003e3089\u003c/code\u003e, :pr:\u003ccode\u003e3167\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eworker_class parameter accepts a class (:pr:\u003ccode\u003e3079\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003efix deadlock if request terminated during chunked parsing (:pr:\u003ccode\u003e2688\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003epermit receiving Transfer-Encodings: compress, deflate, gzip (:pr:\u003ccode\u003e3261\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003epermit Transfer-Encoding headers specifying multiple encodings. note: no parameters, still (:pr:\u003ccode\u003e3261\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003esdist generation now explicitly excludes sphinx build folder (:pr:\u003ccode\u003e3257\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003edecode bytes-typed status (as can be passed by gevent) as utf-8 instead of raising \u003ccode\u003eTypeError\u003c/code\u003e (:pr:\u003ccode\u003e2336\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eraise correct Exception when encounting invalid chunked requests (:pr:\u003ccode\u003e3258\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ethe SCRIPT_NAME and PATH_INFO headers, when received from allowed forwarders, are no longer restricted for containing an underscore (:pr:\u003ccode\u003e3192\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003einclude IPv6 loopback address \u003ccode\u003e[::1]\u003c/code\u003e in default for :ref:\u003ccode\u003eforwarded-allow-ips\u003c/code\u003e and :ref:\u003ccode\u003eproxy-allow-ips\u003c/code\u003e (:pr:\u003ccode\u003e3192\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e** NOTE **\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SCRIPT_NAME change mitigates a regression that appeared first in the 22.0.0 release\u003c/li\u003e\n\u003cli\u003eReview your :ref:\u003ccode\u003eforwarded-allow-ips\u003c/code\u003e setting if you are still not seeing the SCRIPT_NAME transmitted\u003c/li\u003e\n\u003cli\u003eReview your :ref:\u003ccode\u003eforwarder-headers\u003c/code\u003e setting if you are missing headers after upgrading from a version prior to 22.0.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e** Breaking changes **\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003erefuse requests where the uri field is empty (:pr:\u003ccode\u003e3255\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003erefuse requests with invalid CR/LR/NUL in heade field values (:pr:\u003ccode\u003e3253\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eremove temporary \u003ccode\u003e--tolerate-dangerous-framing\u003c/code\u003e switch from 22.0 (:pr:\u003ccode\u003e3260\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eIf any of the breaking changes affect you, be aware that now refused requests can post a security problem, especially so in setups involving request pipe-lining and/or proxies.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFix CVE-2024-1135\u003c/p\u003e\n\u003ch2\u003eGunicorn 22.0 has been released\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eGunicorn 22.0.0 has been released.\u003c/strong\u003e This version fix the numerous security vulnerabilities. You're invited to upgrade asap your own installation.\u003c/p\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e22.0.0 - 2024-04-17\n===================\n\u003cul\u003e\n\u003cli\u003euse \u003ccode\u003eutime\u003c/code\u003e to notify workers liveness\u003c/li\u003e\n\u003cli\u003emigrate setup to pyproject.toml\u003c/li\u003e\n\u003cli\u003efix numerous security vulnerabilities in HTTP parser (closing some request smuggling vectors)\u003c/li\u003e\n\u003cli\u003eparsing additional requests is no longer attempted past unsupported request framing\u003c/li\u003e\n\u003cli\u003eon HTTP versions \u0026lt; 1.1 support for chunked transfer is refused (only used in exploits)\u003c/li\u003e\n\u003cli\u003erequests conflicting configured or passed SCRIPT_NAME now produce a verbose error\u003c/li\u003e\n\u003cli\u003eTrailer fields are no longer inspected for headers indicating secure scheme\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/li\u003e\n\u003c/ul\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/411986d6191114dd1d1bbb9c72c948dbf0ef0425\"\u003e\u003ccode\u003e411986d\u003c/code\u003e\u003c/a\u003e fix doc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/334392e7795f2017e83f7054d372422512d6f4b6\"\u003e\u003ccode\u003e334392e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/2559\"\u003e#2559\u003c/a\u003e from laggardkernel/bugfix/reexec-env\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/e75c3533e32f91a9dceba9e8e1341fea5540ba81\"\u003e\u003ccode\u003ee75c353\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3189\"\u003e#3189\u003c/a\u003e from pajod/patch-py36\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/9357b28dd867950e33ca3864207cb35a1eb8ba6f\"\u003e\u003ccode\u003e9357b28\u003c/code\u003e\u003c/a\u003e keep document user in access_log_format setting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/79fdef0822cbfe7e16b659b07230af9be098d5fc\"\u003e\u003ccode\u003e79fdef0\u003c/code\u003e\u003c/a\u003e bump to 23.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/3acd9fbfd1159ca3cd80a8052ada89a0bf27f806\"\u003e\u003ccode\u003e3acd9fb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/2620\"\u003e#2620\u003c/a\u003e from talkerbox/improve-access-log-format-docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/3f56d76548e4ade034bf5e174737902970285d1f\"\u003e\u003ccode\u003e3f56d76\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3192\"\u003e#3192\u003c/a\u003e from pajod/patch-allowed-script-name\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/256d474a7910bd605f2cc8c082b79c1ae55215a9\"\u003e\u003ccode\u003e256d474\u003c/code\u003e\u003c/a\u003e docs: revert duped directive\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/ffa48b581dcaa75f17fd2df263515e4266feeef6\"\u003e\u003ccode\u003effa48b5\u003c/code\u003e\u003c/a\u003e test: default change was intentional\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/52538ca9070b5e7ead5d0fa731e82a622dc6f3ee\"\u003e\u003ccode\u003e52538ca\u003c/code\u003e\u003c/a\u003e docs: recommend SCRIPT_NAME=/subfolder\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/benoitc/gunicorn/compare/21.2.0...23.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `redis` from 4.6.0 to 6.4.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\u003e6.4.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e🚀 New Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded epsilon property to the vsim command (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3723\"\u003e#3723\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdating the latest Redis image for github pipeline testing (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3726\"\u003e#3726\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\n\u003ca href=\"https://github.com/htemelski-redis\"\u003e\u003ccode\u003e@​htemelski-redis\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/elena-kolevska\"\u003e\u003ccode\u003e@​elena-kolevska\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/petyaslavova\"\u003e\u003ccode\u003e@​petyaslavova\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/vladvildanov\"\u003e\u003ccode\u003e@​vladvildanov\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e6.3.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e🚀 New Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for new BITOP operations: DIFF, DIFF1, ANDOR, ONE (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3690\"\u003e#3690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport new VAMANA vector index type (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3702\"\u003e#3702\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd new stream commands (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3711\"\u003e#3711\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd async Retry \u003cstrong\u003eeq\u003c/strong\u003e and \u003cstrong\u003ehash\u003c/strong\u003e \u0026amp; fix ExponentialWithJitterBackoff \u003cstrong\u003eeq\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3668\"\u003e#3668\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixing sentinel command execution to allow returning of actual responses when meaningful - behaviour controlled by 'return_responses' argument. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3191\"\u003e#3191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAnnotate deprecated_args decorator to preserve wrapped function type signature (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3701\"\u003e#3701\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix ConnectionPool to raise MaxConnectionsError instead of Connection… (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3698\"\u003e#3698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd async Retry \u003cstrong\u003eeq\u003c/strong\u003e and \u003cstrong\u003ehash\u003c/strong\u003e \u0026amp; fix ExponentialWithJitterBackoff \u003cstrong\u003eeq\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3668\"\u003e#3668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSentinelManagedConnection searches for new master upon connection failure (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3560\"\u003e#3560\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3601\"\u003e#3601\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: avoid instantiating a connection on \u003cem\u003erepr\u003c/em\u003e_ (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3653\"\u003e#3653\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixing the return type hint for the transaction method in the standalone client. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3660\"\u003e#3660\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump rojopolis/spellcheck-github-actions from 0.48.0 to 0.49.0 (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3665\"\u003e#3665\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDropping integration tests with Redis 6.2 from pipeline actions. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3659\"\u003e#3659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove deprecated arg from call to ClusterPipeline (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3670\"\u003e#3670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTransactionStrategy reset: UNWATCH only when status is watching (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3671\"\u003e#3671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eKeyT for set operations (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3190\"\u003e#3190\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoving references to old docs site '\u003ca href=\"https://redis-py.readthedocs.io/\"\u003ehttps://redis-py.readthedocs.io/\u003c/a\u003e' replaced by '\u003ca href=\"https://redis.readthedocs.io/\"\u003ehttps://redis.readthedocs.io/\u003c/a\u003e' (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3674\"\u003e#3674\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoving unnecessary check for tests using AsyncMock (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3432\"\u003e#3432\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdating test images for github pipeline execution (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3678\"\u003e#3678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdating the latest Redis image for pipeline testing (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3695\"\u003e#3695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump rojopolis/spellcheck-github-actions from 0.49.0 to 0.51.0 (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3689\"\u003e#3689\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDOC-5225 testable probabilistic dt examples (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3691\"\u003e#3691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate README.md (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3699\"\u003e#3699\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eConvert the value to int type only if it exists in CLIENT INFO (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3688\"\u003e#3688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix compatibility with latest pytest-asyncio version(1.1.0) (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3708\"\u003e#3708\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDOC-5424 time series examples (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3705\"\u003e#3705\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdding information in connection pool class doc string for available SSLConnection class, that can be used for SSL connections (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3710\"\u003e#3710\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/redis/redis-py/commit/fff669daaf43ae8092ea8ab7a2a3196a9b1b7e41\"\u003e\u003ccode\u003efff669d\u003c/code\u003e\u003c/a\u003e Updated package version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/43ce2a4025c020bd26e401371c16ca4920b470a5\"\u003e\u003ccode\u003e43ce2a4\u003c/code\u003e\u003c/a\u003e Updating the latest Redis image for github pipeline testing (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3726\"\u003e#3726\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/64426cbdd43153b70b0e29d9d7b3ab2c63760359\"\u003e\u003ccode\u003e64426cb\u003c/code\u003e\u003c/a\u003e Added epsilon property to the vsim command (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3723\"\u003e#3723\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/67ab74d705b4c1d00d600c500596af7a68abfd56\"\u003e\u003ccode\u003e67ab74d\u003c/code\u003e\u003c/a\u003e Add new stream commands (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3711\"\u003e#3711\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/4c9512b1fe592dc9becebe9e5f053b0184b47f2c\"\u003e\u003ccode\u003e4c9512b\u003c/code\u003e\u003c/a\u003e Adding information in connection pool class doc string for available SSLConne...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/31399ed43588840bbbfdbbf0e8260d1b989b49ce\"\u003e\u003ccode\u003e31399ed\u003c/code\u003e\u003c/a\u003e SentinelManagedConnection searches for new master upon connection failure (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3\"\u003e#3\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/7291deb5eb8054a0dc915a8bf499a17498bc5968\"\u003e\u003ccode\u003e7291deb\u003c/code\u003e\u003c/a\u003e add async Retry \u003ccode\u003e__eq__\u003c/code\u003e and \u003ccode\u003e__hash__\u003c/code\u003e \u0026amp; fix ExponentialWithJitterBackof...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/4cf094fdd2c1f2ce335e671af3fad7ad0a48f309\"\u003e\u003ccode\u003e4cf094f\u003c/code\u003e\u003c/a\u003e Fix ConnectionPool to raise MaxConnectionsError instead of Connection… (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3698\"\u003e#3698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/a00141618572764821bbe6bd74e025536e061587\"\u003e\u003ccode\u003ea001416\u003c/code\u003e\u003c/a\u003e DOC-5424 time series examples (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3705\"\u003e#3705\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/2b1ff5363715c8ba0043314a8b4bcbbc1ba741f5\"\u003e\u003ccode\u003e2b1ff53\u003c/code\u003e\u003c/a\u003e Fix compatibility with latest pytest-asyncio version(1.1.0) (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3708\"\u003e#3708\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/redis/redis-py/compare/v4.6.0...v6.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `watchdog` from 3.0.0 to 6.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/gorakhargosh/watchdog/releases\"\u003ewatchdog's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[inotify] Use of \u003ccode\u003eselect.poll()\u003c/code\u003e instead of deprecated \u003ccode\u003eselect.select()\u003c/code\u003e, if available. (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1078\"\u003e#1078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_class()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_instancemethod()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_module()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eis_class_private_name()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eis_classmethod()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eis_method(met()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003emethod_name()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003ename()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Removed the \u003ccode\u003e--trace\u003c/code\u003e CLI argument from the \u003ccode\u003ewatchmedo log\u003c/code\u003e command, useless since events are logged by default at the \u003ccode\u003eLoggerTrick\u003c/code\u003e class level.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePin test dependecies.\u003c/li\u003e\n\u003cli\u003e[docs] Add typing info to quick start. (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1082\"\u003e#1082\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[inotify] Fix reading inotify file descriptor after closing it. (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1081\"\u003e#1081\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[utils] The \u003ccode\u003estop_signal\u003c/code\u003e keyword-argument type of the \u003ccode\u003eAutoRestartTrick\u003c/code\u003e class can now be either a \u003ccode\u003esignal.Signals\u003c/code\u003e or an \u003ccode\u003eint\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e[utils] Added the \u003ccode\u003e__repr__()\u003c/code\u003e method to the \u003ccode\u003eTrick\u003c/code\u003e class.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Fixed Mypy issues.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Added the \u003ccode\u003e__repr__()\u003c/code\u003e method to the \u003ccode\u003eHelpFormatter\u003c/code\u003e class.\u003c/li\u003e\n\u003cli\u003e[windows] Fixed Mypy issues.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e💟 Thanks to our beloved contributors: \u003ca href=\"https://github.com/g-pichler\"\u003e\u003ccode\u003e@​g-pichler\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ethan-vanderheijden\"\u003e\u003ccode\u003e@​ethan-vanderheijden\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/nhairs\"\u003e\u003ccode\u003e@​nhairs\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[inotify] Improve cleaning up \u003ccode\u003eInotify\u003c/code\u003e threads, and add \u003ccode\u003eeventlet\u003c/code\u003e test cases (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1070\"\u003e#1070\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e💟 Thanks to our beloved contributors: \u003ca href=\"https://github.com/ethan-vanderheijden\"\u003e\u003ccode\u003e@​ethan-vanderheijden\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEnable OS specific Mypy checks (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1064\"\u003e#1064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[watchmedo] Fix \u003ccode\u003etricks\u003c/code\u003e argument type of \u003ccode\u003eschedule_tricks()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1063\"\u003e#1063\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e💟 Thanks to our beloved contributors: \u003ca href=\"https://github.com/gnought\"\u003e\u003ccode\u003e@​gnought\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[kqueue] Fix \u003ccode\u003eTypeError: kqueue.control() only accepts positional parameters\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1062\"\u003e#1062\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e💟 Thanks to our beloved contributors: \u003ca href=\"https://github.com/apoirier\"\u003e\u003ccode\u003e@​apoirier\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8 (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1055\"\u003e#1055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[core] Enforced usage of proper keyword-arguments (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1057\"\u003e#1057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[core] Renamed the \u003ccode\u003eBaseObserverSubclassCallable\u003c/code\u003e class to \u003ccode\u003eObserverType\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1055\"\u003e#1055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[inotify] Renamed the \u003ccode\u003einotify_event_struct\u003c/code\u003e class to \u003ccode\u003eInotifyEventStruct\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1055\"\u003e#1055\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/gorakhargosh/watchdog/blob/master/changelog.rst\"\u003ewatchdog's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e6.0.0\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n2024-11-01 • `full history \u0026lt;https://github.com/gorakhargosh/watchdog/compare/v5.0.3...v6.0.0\u0026gt;`__\n\u003cul\u003e\n\u003cli\u003ePin test dependencies.\u003c/li\u003e\n\u003cli\u003e[docs] Add typing info to quick start. (\u003ccode\u003e[#1082](https://github.com/gorakhargosh/watchdog/issues/1082) \u0026amp;lt;https://github.com/gorakhargosh/watchdog/pull/1082\u0026amp;gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003e[inotify] Use of \u003ccode\u003eselect.poll()\u003c/code\u003e instead of deprecated \u003ccode\u003eselect.select()\u003c/code\u003e, if available. (\u003ccode\u003e[#1078](https://github.com/gorakhargosh/watchdog/issues/1078) \u0026amp;lt;https://github.com/gorakhargosh/watchdog/pull/1078\u0026amp;gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003e[inotify] Fix reading inotify file descriptor after closing it. (\u003ccode\u003e[#1081](https://github.com/gorakhargosh/watchdog/issues/1081) \u0026amp;lt;https://github.com/gorakhargosh/watchdog/pull/1081\u0026amp;gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003e[utils] The \u003ccode\u003estop_signal\u003c/code\u003e keyword-argument type of the \u003ccode\u003eAutoRestartTrick\u003c/code\u003e class can now be either a \u003ccode\u003esignal.Signals\u003c/code\u003e or an \u003ccode\u003eint\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e[utils] Added the \u003ccode\u003e__repr__()\u003c/code\u003e method to the \u003ccode\u003eTrick\u003c/code\u003e class.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_class()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_instancemethod()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_module()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eis_class_private_name()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eis_classmethod()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eic_method(met()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003emethod_name()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003ename()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Fixed Mypy issues.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Added the \u003ccode\u003e__repr__()\u003c/code\u003e method to the \u003ccode\u003eHelpFormatter\u003c/code\u003e class.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Removed the \u003ccode\u003e--trace\u003c/code\u003e CLI argument from the \u003ccode\u003ewatchmedo log\u003c/code\u003e command, useless since events are logged by default at the \u003ccode\u003eLoggerTrick\u003c/code\u003e class level.\u003c/li\u003e\n\u003cli\u003e[windows] Fixed Mypy issues.\u003c/li\u003e\n\u003cli\u003eThanks to our beloved contributors: \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/g-pichler\"\u003e\u003ccode\u003e@​g-pichler\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ethan-vanderheijden\"\u003e\u003ccode\u003e@​ethan-vanderheijden\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/nhairs\"\u003e\u003ccode\u003e@​nhairs\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e5.0.3\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e2024-09-27 • \u003ccode\u003efull history \u0026lt;https://github.com/gorakhargosh/watchdog/compare/v5.0.2...v5.0.3\u0026gt;\u003c/code\u003e__\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[inotify] Improve cleaning up \u003ccode\u003eInotify\u003c/code\u003e threads, and add \u003ccode\u003eeventlet\u003c/code\u003e test cases (\u003ccode\u003e[#1070](https://github.com/gorakhargosh/watchdog/issues/1070) \u0026lt;https://github.com/gorakhargosh/watchdog/pull/1070\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eThanks to our beloved contributors: \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ethan-vanderheijden\"\u003e\u003ccode\u003e@​ethan-vanderheijden\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e5.0.2\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n2024-09-03 • `full history \u0026lt;https://github.com/gorakhargosh/watchdog/compare/v5.0.1...v5.0.2\u0026gt;`__\n\u003cul\u003e\n\u003cli\u003eEnable OS specific Mypy checks (\u003ccode\u003e[#1064](https://github.com/gorakhargosh/watchdog/issues/1064) \u0026amp;lt;https://github.com/gorakhargosh/watchdog/pull/1064\u0026amp;gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003e[watchmedo] Fix \u003ccode\u003etricks\u003c/code\u003e argument type of \u003ccode\u003eschedule_tricks()\u003c/code\u003e (\u003ccode\u003e[#1063](https://github.com/gorakhargosh/watchdog/issues/1063) \u0026amp;lt;https://github.com/gorakhargosh/watchdog/pull/1063\u0026amp;gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eThanks to our beloved contributors: \u003ca href=\"https://github.com/gnought\"\u003e\u003ccode\u003e@​gnought\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e5.0.1\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e2024-09-02 • \u003ccode\u003efull history \u0026lt;https://github.com/gorakhargosh/watchdog/compare/v5.0.0...v5.0.1\u0026gt;\u003c/code\u003e__\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[kqueue] Fix \u003ccode\u003eTypeError: kqueue.control() only accepts positional parameters\u003c/code\u003e  (\u003ccode\u003e[#1062](https://github.com/gorakhargosh/watchdog/issues/1062) \u0026lt;https://github.com/gorakhargosh/watchdog/pull/1062\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eThanks to our beloved contributors: \u003ca href=\"https://github.com/apoirier\"\u003e\u003ccode\u003e@​apoirier\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\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/gorakhargosh/watchdog/commit/76c091dc8841de1d1a1cd6511bb509fe4f058de6\"\u003e\u003ccode\u003e76c091d\u003c/code\u003e\u003c/a\u003e Version 6.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/58386d88747259b8b3da5082e30f1c6e0aa3b31a\"\u003e\u003ccode\u003e58386d8\u003c/code\u003e\u003c/a\u003e Fixes, and clean-up (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1084\"\u003e#1084\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/db698a52bbb1eb8cc34e889a8afdac6f17a99e57\"\u003e\u003ccode\u003edb698a5\u003c/code\u003e\u003c/a\u003e fix: reading inotify file descriptor after closing it. (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1081\"\u003e#1081\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/73d561265b109f30cf76a280cdcc74aa9e6df391\"\u003e\u003ccode\u003e73d5612\u003c/code\u003e\u003c/a\u003e [docs] Add typing info to quick start (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1082\"\u003e#1082\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/d774fec477a8f57d24b588164ebdd39b2d507bcd\"\u003e\u003ccode\u003ed774fec\u003c/code\u003e\u003c/a\u003e docs: Update README Badges (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1083\"\u003e#1083\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/6b74737501c85df9b9c2585faef4797a5250171b\"\u003e\u003ccode\u003e6b74737\u003c/code\u003e\u003c/a\u003e docs: funding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/3d1b888bccdd27a28f9f12a4e89288afe1ee493a\"\u003e\u003ccode\u003e3d1b888\u003c/code\u003e\u003c/a\u003e [inotify] Use of \u003ccode\u003eselect.poll()\u003c/code\u003e instead of deprecated \u003ccode\u003eselect.select()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1078\"\u003e#1078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/6a4f1cf846e03c8701fcc53b9e910077b5824e59\"\u003e\u003ccode\u003e6a4f1cf\u003c/code\u003e\u003c/a\u003e Bump the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/ad6df50908fca071ac8ad6558453bb28b522f794\"\u003e\u003ccode\u003ead6df50\u003c/code\u003e\u003c/a\u003e Version 5.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/59650f8fe72ac498374434a10a3dd49f3c3d1429\"\u003e\u003ccode\u003e59650f8\u003c/code\u003e\u003c/a\u003e fix: polish \u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1070\"\u003e#1070\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/gorakhargosh/watchdog/compare/v3.0.0...v6.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ocrmypdf` from 14.4.0 to 15.4.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/blob/main/docs/release_notes.md\"\u003eocrmypdf's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev15.4.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed documentation for installing Ghostscript on Windows. {issue}\u003ccode\u003e1198\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdded warning message about security issue in older versions of Ghostscript.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev15.4.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed deprecation warning in pikepdf older than 8.7.1; pikepdf \u0026gt;= 8.7.1 is\nnow required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev15.4.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWe now raise an exception on a certain class of PDFs that likely need an\nexplicit color conversion strategy selected to display correctly\nfor PDF/A conversion.\u003c/li\u003e\n\u003cli\u003eFixed an error that occurred while trying to write a log message after the\ndebug log handler was removed.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev15.4.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed misc/watcher.py regressions: accept \u003ccode\u003e--ocr-json-settings\u003c/code\u003e as either\nfilename or JSON string, as previously; and argument count mismatch.\n{issue}\u003ccode\u003e1183,1185\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eWe no longer attempt to set /ProcSet in the PDF output, since this is an\nobsolete PDF feature.\u003c/li\u003e\n\u003cli\u003eDocumentation improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev15.4.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded new experimental APIs to support offline editing of the final text.\nSpecifically, one can now generate hOCR files with OCRmyPDF, edit them with\nsome other tool, and then finalize the PDF. They are experimental and\nsubject to change, including details of how the working folder is used.\nThere is no command line interface.\u003c/li\u003e\n\u003cli\u003eCode reorganization: executors, progress bars, initialization and setup.\u003c/li\u003e\n\u003cli\u003eFixed test coverage in cases where the coverage tool did not properly trace\ninto threads or subprocesses. This code was still being tested but appeared\nas not covered.\u003c/li\u003e\n\u003cli\u003eIn the test suite, reduced use of subprocesses and other techniques that\ninterfere with coverage measurement.\u003c/li\u003e\n\u003cli\u003eImproved error check for when we appear to be running inside a snap container\nand files are not available.\u003c/li\u003e\n\u003cli\u003ePlugin specification now properly defines progress bars as a protocol rather\nthan defining them as \u0026quot;tqdm-like\u0026quot;.\u003c/li\u003e\n\u003cli\u003eWe now default to using \u0026quot;forkserver\u0026quot; process creation on POSIX platforms\nrather than fork, since this is method is more robust and avoids some\nissues when threads are present.\u003c/li\u003e\n\u003cli\u003eFixed an instance where the user's request to \u003ccode\u003e--no-use-threads\u003c/code\u003e was ignored.\u003c/li\u003e\n\u003cli\u003eIf a PDF does not have language metadata on its top level object, we add\nthe OCR language.\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/ocrmypdf/OCRmyPDF/commit/c90d5cd84b0e27906310c28f0d78c3ded9106d65\"\u003e\u003ccode\u003ec90d5cd\u003c/code\u003e\u003c/a\u003e Fix Ghostscript installation instructions and add warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/9898904be70bf957154cc66cb5d6f57bac7c26b4\"\u003e\u003ccode\u003e9898904\u003c/code\u003e\u003c/a\u003e Fix pikepdf PdfMatrix deprecation warning; v15.4.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/27d52298420e785300e418bef4e4219ef97720e1\"\u003e\u003ccode\u003e27d5229\u003c/code\u003e\u003c/a\u003e Make logger names unique\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/4a9a575ef0f2cd7459538a43e802c8d8b3846168\"\u003e\u003ccode\u003e4a9a575\u003c/code\u003e\u003c/a\u003e ghostscript: better comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/52fd9a630d57ac7af91db423b17e6b0297fc1c66\"\u003e\u003ccode\u003e52fd9a6\u003c/code\u003e\u003c/a\u003e v15.4.2 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/a596ccf84469c81c6d19ab0eb59f53a5df0bc3c7\"\u003e\u003ccode\u003ea596ccf\u003c/code\u003e\u003c/a\u003e Raise exception if resulting PDF might appear blank in a known in some PDF vi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/e7fa97731f507c1d91e4289b9d5f3344533d7c4c\"\u003e\u003ccode\u003ee7fa977\u003c/code\u003e\u003c/a\u003e ghostscript duplicate filter: filter within a window of previous messages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/290aa2810868fb506a0ded2db8dabb580d5a2459\"\u003e\u003ccode\u003e290aa28\u003c/code\u003e\u003c/a\u003e Fix error on attempt to write to debug log after removing debug log handler\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/a95640ed9ec0a5caa360bd64b9ad6cc9f916fa61\"\u003e\u003ccode\u003ea95640e\u003c/code\u003e\u003c/a\u003e v15.4.1 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/f69267bb675c3261121b70451f6e673f433bc7ad\"\u003e\u003ccode\u003ef69267b\u003c/code\u003e\u003c/a\u003e watcher: restore ability to read json from file or command line string\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/compare/v14.4.0...v15.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-multiselectfield` from 0.1.12 to 1.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/goinnn/django-multiselectfield/releases\"\u003edjango-multiselectfield's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBadge image worked on GitHub but was broken on PyPI — fixed it.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.0\u003c/h2\u003e\n\u003cp\u003eThis release introduces multiple changes that are incompatible with previous versions.\u003c/p\u003e\n\u003cp\u003eThe major version number has been incremented following \u003ccode\u003eSemantic Versioning (SemVer) \u0026lt;https://semver.org/\u0026gt;\u003c/code\u003e_, as several components of the package have changed in ways that may require updates in client code.\u003c/p\u003e\n\u003cp\u003eThe internal codebase has been significantly cleaned up and reorganized, making it more maintainable and consistent.\u003c/p\u003e\n\u003cp\u003eThis version contains \u003cstrong\u003e40% fewer lines of code\u003c/strong\u003e compared to the previous release.\u003c/p\u003e\n\u003cp\u003eLess code means fewer bugs, easier maintenance, and better long-term sustainability.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFList (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\"\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2\u003c/a\u003e):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/50d3f785883e0a314f2dc89950e3fe1e88a7ede6\"\u003e50d3f785883e0a314f2dc89950e3fe1e88a7ede6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIt was created to support MultiSelectFields in admin.list_display, but it never actually worked. If you add a multiselect field to list_display, Django does not call to \u003cstrong\u003estr\u003c/strong\u003e method of MSGList (renamed to MSFList)\u003c/li\u003e\n\u003cli\u003eIt was created for integer choices too and it is a misconception. This is explained in the README file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFFlatchoices (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\"\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2\u003c/a\u003e):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/5638247c1d70670d4f81adf35143ef17a7d7575e\"\u003e5638247c1d70670d4f81adf35143ef17a7d7575e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIn list_display, labels for the choices are now shown (comma-separated) instead of the values of the choices (comma-separated).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn to_python method, value is a list or a string. (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/c4579138dda2833cbce26afbf57da5353aa45690\"\u003ec4579138dda2833cbce26afbf57da5353aa45690\u003c/a\u003e)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove set case and dict case\u003c/li\u003e\n\u003cli\u003eIf this breaks something, please create a test to help understand the use case.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoving integer choices:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIt was a mistake. MultiSelectField inherits of CharField, not IntegerField.\u003c/li\u003e\n\u003cli\u003eIt is impossible knows if original choice is (1, 'Item title 2.1') or ('1', 'Item title 2.1')\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: Form instance generated twice since Django  (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/168\"\u003e#168\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix CSS admin:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/173\"\u003e#173\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/7711f4aa755c81d00f07ce8a6ff0fd9240061f9c\"\u003e7711f4aa755c81d00f07ce8a6ff0fd9240061f9c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix Properly Display Categorized Choices in get_FOO_display (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/169\"\u003e#169\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSortMultiSelectField: (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/172\"\u003e#172\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/goinnn/django-multiselectfield/blob/master/CHANGES.rst\"\u003edjango-multiselectfield's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.0.1 (2025-06-12)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBadge image worked on GitHub but was broken on PyPI — fixed it.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.0.0 (2025-06-12)\u003c/h2\u003e\n\u003cp\u003eThis release introduces multiple changes that are incompatible with previous versions.\u003c/p\u003e\n\u003cp\u003eThe major version number has been incremented following \u003ccode\u003eSemantic Versioning (SemVer) \u0026lt;https://semver.org/\u0026gt;\u003c/code\u003e_, as several components of the package have changed in ways that may require updates in client code.\u003c/p\u003e\n\u003cp\u003eThe internal codebase has been significantly cleaned up and reorganized, making it more maintainable and consistent.\u003c/p\u003e\n\u003cp\u003eThis version contains \u003cstrong\u003e40% fewer lines of code\u003c/strong\u003e compared to the previous release.\u003c/p\u003e\n\u003cp\u003eLess code means fewer bugs, easier maintenance, and better long-term sustainability.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFList (\u003ccode\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\u0026gt;\u003c/code\u003e_):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ccode\u003e50d3f785883e0a314f2dc89950e3fe1e88a7ede6 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/50d3f785883e0a314f2dc89950e3fe1e88a7ede6\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eIt was created to support MultiSelectFields in admin.list_display, but it never actually worked. If you add a multiselect field to list_display, Django does not call to \u003cstrong\u003estr\u003c/strong\u003e method of MSGList (renamed to MSFList)\u003c/li\u003e\n\u003cli\u003eIt was created for integer choices too and it is a misconception. This is explained in the README file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFFlatchoices (\u003ccode\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\u0026gt;\u003c/code\u003e_):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ccode\u003e5638247c1d70670d4f81adf35143ef17a7d7575e \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/5638247c1d70670d4f81adf35143ef17a7d7575e\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eIn list_display, labels for the choices are now shown (comma-separated) instead of the values of the choices (comma-separated).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn to_python method, value is a list or a string. (\u003ccode\u003ec4579138dda2833cbce26afbf57da5353aa45690 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/c4579138dda2833cbce26afbf57da5353aa45690\u0026gt;\u003c/code\u003e_)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove set case and dict case\u003c/li\u003e\n\u003cli\u003eIf this breaks something, please create a test to help understand the use case.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoving integer choices:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIt was a mistake. MultiSelectField inherits of CharField, not IntegerField.\u003c/li\u003e\n\u003cli\u003eIt is impossibl...\n\n_Description has been truncated_","html_url":"https://github.com/dsp-testing/paperless-ngx/pull/195","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/dsp-testing%2Fpaperless-ngx/issues/195","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/195/packages"},{"uuid":"3731088988","node_id":"PR_kwDOKoYLLM649Wm5","number":187,"state":"open","title":"Bump the major-versions group across 1 directory with 16 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-12-15T15:58:57.000Z","updated_at":"2025-12-15T15:58:59.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"major-versions","update_count":16,"packages":[{"name":"django","old_version":"4.2.6","new_version":"4.2.27"},{"name":"django-guardian","old_version":"2.4.0","new_version":"3.2.0","repository_url":"https://github.com/django-guardian/django-guardian"},{"name":"django-extensions","old_version":"3.2.3","new_version":"4.1","repository_url":"https://github.com/django-extensions/django-extensions"},{"name":"django-filter","old_version":"23.3","new_version":"25.1","repository_url":"https://github.com/carltongibson/django-filter"},{"name":"gunicorn","old_version":"21.2.0","new_version":"23.0.0","repository_url":"https://github.com/benoitc/gunicorn"},{"name":"python-ipware","old_version":"2.0.0","new_version":"3.0.0","repository_url":"https://github.com/un33k/python-ipware"},{"name":"redis","old_version":"4.6.0","new_version":"6.4.0","repository_url":"https://github.com/redis/redis-py"},{"name":"ocrmypdf","old_version":"14.4.0","new_version":"15.4.4","repository_url":"https://github.com/ocrmypdf/OCRmyPDF"},{"name":"django-multiselectfield","old_version":"0.1.12","new_version":"1.0.1","repository_url":"https://github.com/goinnn/django-multiselectfield"},{"name":"django-auditlog","old_version":"2.3.0","new_version":"3.3.0","repository_url":"https://github.com/jazzband/django-auditlog"},{"name":"black","old_version":"23.9.1","new_version":"25.11.0","repository_url":"https://github.com/psf/black"},{"name":"pre-commit","old_version":"3.4.0","new_version":"4.3.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pytest","old_version":"7.4.2","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-cov","old_version":"4.1.0","new_version":"7.0.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"pytest-sugar","old_version":"0.9.7","new_version":"1.1.1","repository_url":"https://github.com/Teemu/pytest-sugar"},{"name":"pytest-rerunfailures","old_version":"12.0","new_version":"16.0.1","repository_url":"https://github.com/pytest-dev/pytest-rerunfailures"}],"path":null,"ecosystem":"conda"},"body":"Bumps the major-versions group with 16 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| django | `4.2.6` | `4.2.27` |\n| [django-guardian](https://github.com/django-guardian/django-guardian) | `2.4.0` | `3.2.0` |\n| [django-extensions](https://github.com/django-extensions/django-extensions) | `3.2.3` | `4.1` |\n| [django-filter](https://github.com/carltongibson/django-filter) | `23.3` | `25.1` |\n| [gunicorn](https://github.com/benoitc/gunicorn) | `21.2.0` | `23.0.0` |\n| [python-ipware](https://github.com/un33k/python-ipware) | `2.0.0` | `3.0.0` |\n| [redis](https://github.com/redis/redis-py) | `4.6.0` | `6.4.0` |\n| [ocrmypdf](https://github.com/ocrmypdf/OCRmyPDF) | `14.4.0` | `15.4.4` |\n| [django-multiselectfield](https://github.com/goinnn/django-multiselectfield) | `0.1.12` | `1.0.1` |\n| [django-auditlog](https://github.com/jazzband/django-auditlog) | `2.3.0` | `3.3.0` |\n| [black](https://github.com/psf/black) | `23.9.1` | `25.11.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `3.4.0` | `4.3.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `7.4.2` | `8.4.2` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `4.1.0` | `7.0.0` |\n| [pytest-sugar](https://github.com/Teemu/pytest-sugar) | `0.9.7` | `1.1.1` |\n| [pytest-rerunfailures](https://github.com/pytest-dev/pytest-rerunfailures) | `12.0` | `16.0.1` |\n\n\nUpdates `django` from 4.2.6 to 4.2.27\n\nUpdates `django-guardian` from 2.4.0 to 3.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-guardian/django-guardian/releases\"\u003edjango-guardian's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.2.0 The Bozkir progression\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate enforcement contact link in CODE_OF_CONDUCT.md by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/918\"\u003edjango-guardian/django-guardian#918\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptional cached anonymous user  - Pr 907 by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/912\"\u003edjango-guardian/django-guardian#912\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003egenerator warnings and logics are added for security purposes by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/920\"\u003edjango-guardian/django-guardian#920\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erollback compatible create anon user fix is developed by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/919\"\u003edjango-guardian/django-guardian#919\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e644 using inlines in django admin with guardian by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/921\"\u003edjango-guardian/django-guardian#921\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-guardian/django-guardian/compare/3.1.3...3.2.0\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.3...3.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.1.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edjango-packages badge is added by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/910\"\u003edjango-guardian/django-guardian#910\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate issue templates by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/909\"\u003edjango-guardian/django-guardian#909\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMakefile support by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/906\"\u003edjango-guardian/django-guardian#906\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePR merging scenario is fixed by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/913\"\u003edjango-guardian/django-guardian#913\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed issue causing prefetch_perms() to throw when passed an empty list by \u003ca href=\"https://github.com/keattang\"\u003e\u003ccode\u003e@​keattang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/904\"\u003edjango-guardian/django-guardian#904\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRe apply \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/812\"\u003e#812\u003c/a\u003e using correct lookup method by \u003ca href=\"https://github.com/sevdog\"\u003e\u003ccode\u003e@​sevdog\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/842\"\u003edjango-guardian/django-guardian#842\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOPS: Bump version for release by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/915\"\u003edjango-guardian/django-guardian#915\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-guardian/django-guardian/compare/3.1.2...3.1.3\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.2...3.1.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.1.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.0 in /.github/workflows 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-guardian/django-guardian/pull/903\"\u003edjango-guardian/django-guardian#903\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix type and deprecate old name by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/902\"\u003edjango-guardian/django-guardian#902\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/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/903\"\u003edjango-guardian/django-guardian#903\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-guardian/django-guardian/compare/3.1.1...3.1.2\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.1...3.1.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epre-commit checker step is added by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/901\"\u003edjango-guardian/django-guardian#901\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-guardian/django-guardian/compare/3.1.0...3.1.1\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.0...3.1.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eImproved indexing, tweaks and bugfixes\u003c/h2\u003e\n\u003ch2\u003eSaving the 🌳🌳🌳 and the 💰💰💰\u003c/h2\u003e\n\u003cp\u003e⚠️⚠️⚠️ \u003cstrong\u003eWARNING:\u003c/strong\u003e This release contains an update to database indexing which should yield \u003cstrong\u003econsiderable additional performance\u003c/strong\u003e, especially on large table permissions lookups (thanks \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e for such rigorous performance testing!!!). Following the migration that introduces these indexes, databases should reindex automatically in the background (typically within 0-30s even for large tables): this is unlikely to be noticeable but users may experience a short lived performance hit during this period.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow ignore_conflicts on bulk create by \u003ca href=\"https://github.com/pgiki\"\u003e\u003ccode\u003e@​pgiki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/814\"\u003edjango-guardian/django-guardian#814\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/django-guardian/django-guardian/commit/4120d00c28c1b6d3bacb988f6db86bacf91ed0f1\"\u003e\u003ccode\u003e4120d00\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/921\"\u003e#921\u003c/a\u003e from django-guardian/644-using-inlines-in-django-admi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/c896b220bdf96783f1c25d730f12ebef95758c99\"\u003e\u003ccode\u003ec896b22\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/919\"\u003e#919\u003c/a\u003e from django-guardian/770-migration-rollback-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/3814e2383c69266350a3d885d445bdd79da8cb78\"\u003e\u003ccode\u003e3814e23\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 770-migration-rollback-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/94854899f4a030b42840837e08b42923a71c5b78\"\u003e\u003ccode\u003e9485489\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/920\"\u003e#920\u003c/a\u003e from django-guardian/666-permissionrequiredmixin-does...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/e01e2e1edeec60b2c79d561db56e0949ea3c4dad\"\u003e\u003ccode\u003ee01e2e1\u003c/code\u003e\u003c/a\u003e check only username field fixing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/e1ae3c5a7ab74a679ef1ccff2a480a88117df464\"\u003e\u003ccode\u003ee1ae3c5\u003c/code\u003e\u003c/a\u003e show warning instead of error for backward compatibility and giving time the ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/63c10f549dfe2b5ba67e9eec36095cf3e6a2bab8\"\u003e\u003ccode\u003e63c10f5\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 644-using-inlines-in-django-admin-with-guardian\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/b27ebbdcc7f9952d9d9aaaa879b5e202063ccaa8\"\u003e\u003ccode\u003eb27ebbd\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 666-permissionrequiredmixin-does-not-warn-against-us...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/d7ed4a3bccb730d3cdf16fdc404f25b94674c653\"\u003e\u003ccode\u003ed7ed4a3\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 770-migration-rollback-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/03fed6924e06fd13991d9e8ae1b4590addf5473e\"\u003e\u003ccode\u003e03fed69\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/912\"\u003e#912\u003c/a\u003e from django-guardian/pr-907\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-guardian/django-guardian/compare/v2.4.0...3.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-extensions` from 3.2.3 to 4.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-extensions/django-extensions/releases\"\u003edjango-extensions's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd: show_permissions command (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1920\"\u003e#1920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, style per app (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1848\"\u003e#1848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: JSONField, bulk_update's (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1924\"\u003e#1924\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/ahmad88me\"\u003e\u003ccode\u003e@​ahmad88me\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1848\"\u003edjango-extensions/django-extensions#1848\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-extensions/django-extensions/compare/4.0...4.1\"\u003ehttps://github.com/django-extensions/django-extensions/compare/4.0...4.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprovement: Support for Python 3.12 and 3.13\u003c/li\u003e\n\u003cli\u003eImprovement: Support for Django 5.x\u003c/li\u003e\n\u003cli\u003eImprovement: Switch from setup.{cfg,py} to pyproject.toml\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Add option to display field choices in graph_models (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1854\"\u003e#1854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Add webp support (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1857\"\u003e#1857\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Support for ordering edges on pydot/dot/graphviz (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1914\"\u003e#1914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: mail_debug, Update mail_debug command to use aiosmtpd (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1880\"\u003e#1880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: shell_plus, Improve error message for missing import (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1898\"\u003e#1898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: reset_db, Add reset_db support for django_tenants (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1855\"\u003e#1855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: docs, various improvements (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1852\"\u003e#1852\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1888\"\u003e#1888\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1882\"\u003e#1882\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1901\"\u003e#1901\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1912\"\u003e#1912\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1913\"\u003e#1913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: jobs, Handle non-package modules when looking for job definitions (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1887\"\u003e#1887\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: Add django-prometheus DB backends support (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1800\"\u003e#1800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: Call post_command when the command raises an unhandled exception (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1837\"\u003e#1837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: sqldiff, do not consider ('serial', 'integer') nor ('bigserial', 'bigint') as a field-type-differ (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1867\"\u003e#1867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: shell_plus, Fix start up order and add history (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1869\"\u003e#1869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove pipchecker and associated tests (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1906\"\u003e#1906\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFollowing Django's release numbering style more closely (see \u003ca href=\"https://docs.djangoproject.com/en/5.2/internals/release-process/\"\u003ehttps://docs.djangoproject.com/en/5.2/internals/release-process/\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/dimitrismistriotis\"\u003e\u003ccode\u003e@​dimitrismistriotis\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1859\"\u003edjango-extensions/django-extensions#1859\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/titouanc\"\u003e\u003ccode\u003e@​titouanc\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1854\"\u003edjango-extensions/django-extensions#1854\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dmwyatt\"\u003e\u003ccode\u003e@​dmwyatt\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1872\"\u003edjango-extensions/django-extensions#1872\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stianjensen\"\u003e\u003ccode\u003e@​stianjensen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1898\"\u003edjango-extensions/django-extensions#1898\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PapaZ810\"\u003e\u003ccode\u003e@​PapaZ810\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1888\"\u003edjango-extensions/django-extensions#1888\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kviktor\"\u003e\u003ccode\u003e@​kviktor\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1857\"\u003edjango-extensions/django-extensions#1857\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aripollak\"\u003e\u003ccode\u003e@​aripollak\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1913\"\u003edjango-extensions/django-extensions#1913\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/flowgunso\"\u003e\u003ccode\u003e@​flowgunso\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1914\"\u003edjango-extensions/django-extensions#1914\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anitahammer\"\u003e\u003ccode\u003e@​anitahammer\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1869\"\u003edjango-extensions/django-extensions#1869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nicolaspanel\"\u003e\u003ccode\u003e@​nicolaspanel\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1867\"\u003edjango-extensions/django-extensions#1867\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yujinyuz\"\u003e\u003ccode\u003e@​yujinyuz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1855\"\u003edjango-extensions/django-extensions#1855\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/soof-golan\"\u003e\u003ccode\u003e@​soof-golan\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1852\"\u003edjango-extensions/django-extensions#1852\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ghickman\"\u003e\u003ccode\u003e@​ghickman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1887\"\u003edjango-extensions/django-extensions#1887\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jrobichaud\"\u003e\u003ccode\u003e@​jrobichaud\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1837\"\u003edjango-extensions/django-extensions#1837\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-extensions/django-extensions/compare/3.2.3...4.0\"\u003ehttps://github.com/django-extensions/django-extensions/compare/3.2.3...4.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.2.4b1\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-extensions/django-extensions/blob/main/CHANGELOG.md\"\u003edjango-extensions's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.1\u003c/h2\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd: show_permissions command (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1920\"\u003e#1920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, style per app (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1848\"\u003e#1848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: JSONField, bulk_update's (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1924\"\u003e#1924\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.0\u003c/h2\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eImprovement: Support for Python 3.12 and 3.13\u003c/li\u003e\n\u003cli\u003eImprovement: Support for Django 5.x\u003c/li\u003e\n\u003cli\u003eImprovement: Switch from setup.{cfg,py} to pyproject.toml\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Add option to display field choices in graph_models (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1854\"\u003e#1854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Add webp support (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1857\"\u003e#1857\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Support for ordering edges on pydot/dot/graphviz (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1914\"\u003e#1914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: mail_debug, Update mail_debug command to use aiosmtpd (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1880\"\u003e#1880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: shell_plus, Improve error message for missing import (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1898\"\u003e#1898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: reset_db, Add reset_db support for django_tenants (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1855\"\u003e#1855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: docs, various improvements (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1852\"\u003e#1852\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1888\"\u003e#1888\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1882\"\u003e#1882\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1901\"\u003e#1901\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1912\"\u003e#1912\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1913\"\u003e#1913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: jobs, Handle non-package modules when looking for job definitions (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1887\"\u003e#1887\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: Add django-prometheus DB backends support (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1800\"\u003e#1800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: Call post_command when the command raises an unhandled exception (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1837\"\u003e#1837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: sqldiff, do not consider ('serial', 'integer') nor ('bigserial', 'bigint') as a \u003ccode\u003efield-type-differ\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1867\"\u003e#1867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: shell_plus, Fix start up order and add history (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1869\"\u003e#1869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove pipchecker and associated tests (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1906\"\u003e#1906\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFollowing Django's release numbering style more closely (see \u003ca href=\"https://docs.djangoproject.com/en/5.2/internals/release-process/\"\u003ehttps://docs.djangoproject.com/en/5.2/internals/release-process/\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-extensions/django-extensions/commit/ad015513e5d8e8ee6ad748fca5f32ccf3fb3d5c5\"\u003e\u003ccode\u003ead01551\u003c/code\u003e\u003c/a\u003e v4.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/2c3e914f1264c0a029b3b47b7425d0f68ce637ed\"\u003e\u003ccode\u003e2c3e914\u003c/code\u003e\u003c/a\u003e update CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/fb5b2af1b6595ee126237c299acf242fcfee817e\"\u003e\u003ccode\u003efb5b2af\u003c/code\u003e\u003c/a\u003e ruff format\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/7e978d27b031843640f9204ff495738c46233d7f\"\u003e\u003ccode\u003e7e978d2\u003c/code\u003e\u003c/a\u003e graph_models style per app (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1848\"\u003e#1848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/067064ea0c6dec7cba1583447fe5fe1c706d5351\"\u003e\u003ccode\u003e067064e\u003c/code\u003e\u003c/a\u003e avoid trying to serialize expressions when serializing default values\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/a886068502474e70a2d68ff4634a15cc3366088d\"\u003e\u003ccode\u003ea886068\u003c/code\u003e\u003c/a\u003e update CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/d824501cbc6d04a24a43ff5756b496f84093b225\"\u003e\u003ccode\u003ed824501\u003c/code\u003e\u003c/a\u003e Add show_permissions management command (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1920\"\u003e#1920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/934f93f53bdf6c6271ae1ddaee71bc9bf3364a0e\"\u003e\u003ccode\u003e934f93f\u003c/code\u003e\u003c/a\u003e bumped version number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/c4577df5b69ec1ebcbe6bc64d7a5c20362f3a8fa\"\u003e\u003ccode\u003ec4577df\u003c/code\u003e\u003c/a\u003e v4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/7cdb43ab56a3b610b47680d8a2fe86b09d5913aa\"\u003e\u003ccode\u003e7cdb43a\u003c/code\u003e\u003c/a\u003e pyproject formatting\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-extensions/django-extensions/compare/3.2.3...4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-filter` from 23.3 to 25.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/carltongibson/django-filter/blob/main/CHANGES.rst\"\u003edjango-filter's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 25.1 (2025-02-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved the in-built API schema generation methods, which have been\ndeprecated since v23.2.\u003c/p\u003e\n\u003cp\u003eYou should use \u003ccode\u003edrf-spectacular \u0026lt;https://drf-spectacular.readthedocs.io/en/latest/\u0026gt;\u003c/code\u003e_\nfor generating OpenAPI schemas with DRF.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped support for EOL Python 3.8.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded testing against Python 3.13.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded official support for Django 5.2.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 24.3 (2024-08-02)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdds official support for Django 5.1.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow using dictionaries for grouped choices on Django 5.0+.\u003c/p\u003e\n\u003cp\u003eThanks to Sævar Öfjörð Magnússon.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdds \u003ccode\u003eunknown_field_behavior\u003c/code\u003e FilterSet option to allowing warning and\nignore behaviours for unknown field types during FilterSet generation.\u003c/p\u003e\n\u003cp\u003eThanks to Loes.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 24.2 (2024-03-27)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed a regression in v23.4 where callable choices were incorrectly evaluated\nat filter instantiation, on Django versions prior to 5.0.\u003c/p\u003e\n\u003cp\u003eThanks to Craig de Stigter for the report and reproduce.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 24.1 (2024-03-08)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated supported Python and Django versions, and resolved upcoming Django\ndeprecations.\u003c/p\u003e\n\u003cp\u003eRequired versions are now at least Python 3.8 and Django 4.2.\u003c/p\u003e\n\u003cp\u003eThanks to Michael Manganiello.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllowed passing a FilterSet class to the filterset_factory().\u003c/p\u003e\n\u003cp\u003eThanks to Birger Schacht.\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/carltongibson/django-filter/commit/27dd67284405ee832701509b3515baa50c6e074d\"\u003e\u003ccode\u003e27dd672\u003c/code\u003e\u003c/a\u003e Updated Change notes for 25.1 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/2ea38174b010f378a9b57d90c566c2bab7b37bbb\"\u003e\u003ccode\u003e2ea3817\u003c/code\u003e\u003c/a\u003e Added Trove classifier for Django 5.2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/4d2306c211c1d86f85f04fb311b8b05bfefb08a8\"\u003e\u003ccode\u003e4d2306c\u003c/code\u003e\u003c/a\u003e Replaced hardcoded pks in tests (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1703\"\u003e#1703\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/fbf5a76a4d97480d78779397b90d34fa8f13d141\"\u003e\u003ccode\u003efbf5a76\u003c/code\u003e\u003c/a\u003e Update tox after Django 5.2 alpha release. (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1700\"\u003e#1700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/1e76d6859e109ae34d5e2a657c66146a9d744c80\"\u003e\u003ccode\u003e1e76d68\u003c/code\u003e\u003c/a\u003e Use QueryDict for data default. (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1691\"\u003e#1691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/e709e5d43a4ad8b8e8ea62520669b88300c9c686\"\u003e\u003ccode\u003ee709e5d\u003c/code\u003e\u003c/a\u003e Add testing against Python 3.13.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/ccde000dfe74362b62301b248681e9505133e821\"\u003e\u003ccode\u003eccde000\u003c/code\u003e\u003c/a\u003e Dropped support for EOL Python 3.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/2a644e176634ec0ce99d9446d980501e9763e194\"\u003e\u003ccode\u003e2a644e1\u003c/code\u003e\u003c/a\u003e Removed deprecated schema generation methods from DRF backend. (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1698\"\u003e#1698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/2494df96c6387a9fa411fcb00b696b15dfd9216b\"\u003e\u003ccode\u003e2494df9\u003c/code\u003e\u003c/a\u003e fix typo in filterset.txt (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1695\"\u003e#1695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/3656174bd90d20f3d916fd98b6476c270013b681\"\u003e\u003ccode\u003e3656174\u003c/code\u003e\u003c/a\u003e Translated using Weblate (Czech) (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1687\"\u003e#1687\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/carltongibson/django-filter/compare/23.3...25.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gunicorn` from 21.2.0 to 23.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\u003e23.0.0\u003c/h2\u003e\n\u003cp\u003eGunicorn 23.0.0 has been released. This version improve HTTP 1.1. support and  which improve safety\u003c/p\u003e\n\u003cp\u003eYou're invited to upgrade asap your own installation.\u003c/p\u003e\n\u003ch1\u003e23.0.0 - 2024-08-10\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eminor docs fixes (:pr:\u003ccode\u003e3217\u003c/code\u003e, :pr:\u003ccode\u003e3089\u003c/code\u003e, :pr:\u003ccode\u003e3167\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eworker_class parameter accepts a class (:pr:\u003ccode\u003e3079\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003efix deadlock if request terminated during chunked parsing (:pr:\u003ccode\u003e2688\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003epermit receiving Transfer-Encodings: compress, deflate, gzip (:pr:\u003ccode\u003e3261\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003epermit Transfer-Encoding headers specifying multiple encodings. note: no parameters, still (:pr:\u003ccode\u003e3261\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003esdist generation now explicitly excludes sphinx build folder (:pr:\u003ccode\u003e3257\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003edecode bytes-typed status (as can be passed by gevent) as utf-8 instead of raising \u003ccode\u003eTypeError\u003c/code\u003e (:pr:\u003ccode\u003e2336\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eraise correct Exception when encounting invalid chunked requests (:pr:\u003ccode\u003e3258\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ethe SCRIPT_NAME and PATH_INFO headers, when received from allowed forwarders, are no longer restricted for containing an underscore (:pr:\u003ccode\u003e3192\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003einclude IPv6 loopback address \u003ccode\u003e[::1]\u003c/code\u003e in default for :ref:\u003ccode\u003eforwarded-allow-ips\u003c/code\u003e and :ref:\u003ccode\u003eproxy-allow-ips\u003c/code\u003e (:pr:\u003ccode\u003e3192\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e** NOTE **\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SCRIPT_NAME change mitigates a regression that appeared first in the 22.0.0 release\u003c/li\u003e\n\u003cli\u003eReview your :ref:\u003ccode\u003eforwarded-allow-ips\u003c/code\u003e setting if you are still not seeing the SCRIPT_NAME transmitted\u003c/li\u003e\n\u003cli\u003eReview your :ref:\u003ccode\u003eforwarder-headers\u003c/code\u003e setting if you are missing headers after upgrading from a version prior to 22.0.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e** Breaking changes **\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003erefuse requests where the uri field is empty (:pr:\u003ccode\u003e3255\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003erefuse requests with invalid CR/LR/NUL in heade field values (:pr:\u003ccode\u003e3253\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eremove temporary \u003ccode\u003e--tolerate-dangerous-framing\u003c/code\u003e switch from 22.0 (:pr:\u003ccode\u003e3260\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eIf any of the breaking changes affect you, be aware that now refused requests can post a security problem, especially so in setups involving request pipe-lining and/or proxies.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFix CVE-2024-1135\u003c/p\u003e\n\u003ch2\u003eGunicorn 22.0 has been released\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eGunicorn 22.0.0 has been released.\u003c/strong\u003e This version fix the numerous security vulnerabilities. You're invited to upgrade asap your own installation.\u003c/p\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e22.0.0 - 2024-04-17\n===================\n\u003cul\u003e\n\u003cli\u003euse \u003ccode\u003eutime\u003c/code\u003e to notify workers liveness\u003c/li\u003e\n\u003cli\u003emigrate setup to pyproject.toml\u003c/li\u003e\n\u003cli\u003efix numerous security vulnerabilities in HTTP parser (closing some request smuggling vectors)\u003c/li\u003e\n\u003cli\u003eparsing additional requests is no longer attempted past unsupported request framing\u003c/li\u003e\n\u003cli\u003eon HTTP versions \u0026lt; 1.1 support for chunked transfer is refused (only used in exploits)\u003c/li\u003e\n\u003cli\u003erequests conflicting configured or passed SCRIPT_NAME now produce a verbose error\u003c/li\u003e\n\u003cli\u003eTrailer fields are no longer inspected for headers indicating secure scheme\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/li\u003e\n\u003c/ul\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/411986d6191114dd1d1bbb9c72c948dbf0ef0425\"\u003e\u003ccode\u003e411986d\u003c/code\u003e\u003c/a\u003e fix doc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/334392e7795f2017e83f7054d372422512d6f4b6\"\u003e\u003ccode\u003e334392e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/2559\"\u003e#2559\u003c/a\u003e from laggardkernel/bugfix/reexec-env\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/e75c3533e32f91a9dceba9e8e1341fea5540ba81\"\u003e\u003ccode\u003ee75c353\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3189\"\u003e#3189\u003c/a\u003e from pajod/patch-py36\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/9357b28dd867950e33ca3864207cb35a1eb8ba6f\"\u003e\u003ccode\u003e9357b28\u003c/code\u003e\u003c/a\u003e keep document user in access_log_format setting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/79fdef0822cbfe7e16b659b07230af9be098d5fc\"\u003e\u003ccode\u003e79fdef0\u003c/code\u003e\u003c/a\u003e bump to 23.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/3acd9fbfd1159ca3cd80a8052ada89a0bf27f806\"\u003e\u003ccode\u003e3acd9fb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/2620\"\u003e#2620\u003c/a\u003e from talkerbox/improve-access-log-format-docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/3f56d76548e4ade034bf5e174737902970285d1f\"\u003e\u003ccode\u003e3f56d76\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3192\"\u003e#3192\u003c/a\u003e from pajod/patch-allowed-script-name\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/256d474a7910bd605f2cc8c082b79c1ae55215a9\"\u003e\u003ccode\u003e256d474\u003c/code\u003e\u003c/a\u003e docs: revert duped directive\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/ffa48b581dcaa75f17fd2df263515e4266feeef6\"\u003e\u003ccode\u003effa48b5\u003c/code\u003e\u003c/a\u003e test: default change was intentional\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/52538ca9070b5e7ead5d0fa731e82a622dc6f3ee\"\u003e\u003ccode\u003e52538ca\u003c/code\u003e\u003c/a\u003e docs: recommend SCRIPT_NAME=/subfolder\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/benoitc/gunicorn/compare/21.2.0...23.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-ipware` from 2.0.0 to 3.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/un33k/python-ipware/blob/main/CHANGELOG.md\"\u003epython-ipware's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.0.0\u003c/h2\u003e\n\u003cp\u003eFix:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRelease major version, as there is a possibility of api change causing minimal backward incompatibly\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.5\u003c/h2\u003e\n\u003cp\u003eEnhance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAI assisted clean up\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.4\u003c/h2\u003e\n\u003cp\u003eEnhance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eproxy_count=0\u003c/code\u003e as an option (\u003ca href=\"https://github.com/FraKraBa\"\u003e\u003ccode\u003e@​FraKraBa\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.3\u003c/h2\u003e\n\u003cp\u003eEnhance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eHTTP_CF_CONNECTING_IP\u003c/code\u003e to list of known ip headers (Adam M.)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.2\u003c/h2\u003e\n\u003cp\u003eEnhance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded logger name\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.1\u003c/h2\u003e\n\u003cp\u003eIssue:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003eHTTP_VIA\u003c/code\u003e header support (unreliable IP information) (\u003ca href=\"https://github.com/yourcelf\"\u003e\u003ccode\u003e@​yourcelf\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eEnhance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eInclude support for python 3.12\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/un33k/python-ipware/commit/cab810ced72457abcc77ffd234be9cb0a75f7ec3\"\u003e\u003ccode\u003ecab810c\u003c/code\u003e\u003c/a\u003e version 3 major (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/21\"\u003e#21\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/5d01f1e6662f3de861d44006247fd5f0a3ae4a0b\"\u003e\u003ccode\u003e5d01f1e\u003c/code\u003e\u003c/a\u003e Feat/enhance (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/20\"\u003e#20\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/bd56bcd1d4ed2d2bbd690059e5a231d6b51bcd31\"\u003e\u003ccode\u003ebd56bcd\u003c/code\u003e\u003c/a\u003e Allow for proxy_count of exact 0 (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/19\"\u003e#19\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/ddfde3c6d4dee387a59287a2c0afc933f9773791\"\u003e\u003ccode\u003eddfde3c\u003c/code\u003e\u003c/a\u003e Update Readme (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/17\"\u003e#17\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/aab321baf9958ae128460c2279364926f6612dca\"\u003e\u003ccode\u003eaab321b\u003c/code\u003e\u003c/a\u003e Add HTTP_CF_CONNECTING_IP to ip Header list (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/16\"\u003e#16\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/e908cc321dc61e203033768f8d1072efc71f4556\"\u003e\u003ccode\u003ee908cc3\u003c/code\u003e\u003c/a\u003e Added logger name (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/15\"\u003e#15\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/ad1f01783279ecd8dfff91b3db8558f92b5bde0b\"\u003e\u003ccode\u003ead1f017\u003c/code\u003e\u003c/a\u003e Remove HTTP_VIA support, support for 3.12 (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/14\"\u003e#14\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/un33k/python-ipware/compare/v2.0.0...v3.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `redis` from 4.6.0 to 6.4.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\u003e6.4.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e🚀 New Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded epsilon property to the vsim command (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3723\"\u003e#3723\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdating the latest Redis image for github pipeline testing (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3726\"\u003e#3726\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\n\u003ca href=\"https://github.com/htemelski-redis\"\u003e\u003ccode\u003e@​htemelski-redis\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/elena-kolevska\"\u003e\u003ccode\u003e@​elena-kolevska\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/petyaslavova\"\u003e\u003ccode\u003e@​petyaslavova\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/vladvildanov\"\u003e\u003ccode\u003e@​vladvildanov\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e6.3.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e🚀 New Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for new BITOP operations: DIFF, DIFF1, ANDOR, ONE (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3690\"\u003e#3690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport new VAMANA vector index type (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3702\"\u003e#3702\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd new stream commands (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3711\"\u003e#3711\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd async Retry \u003cstrong\u003eeq\u003c/strong\u003e and \u003cstrong\u003ehash\u003c/strong\u003e \u0026amp; fix ExponentialWithJitterBackoff \u003cstrong\u003eeq\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3668\"\u003e#3668\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixing sentinel command execution to allow returning of actual responses when meaningful - behaviour controlled by 'return_responses' argument. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3191\"\u003e#3191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAnnotate deprecated_args decorator to preserve wrapped function type signature (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3701\"\u003e#3701\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix ConnectionPool to raise MaxConnectionsError instead of Connection… (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3698\"\u003e#3698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd async Retry \u003cstrong\u003eeq\u003c/strong\u003e and \u003cstrong\u003ehash\u003c/strong\u003e \u0026amp; fix ExponentialWithJitterBackoff \u003cstrong\u003eeq\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3668\"\u003e#3668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSentinelManagedConnection searches for new master upon connection failure (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3560\"\u003e#3560\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3601\"\u003e#3601\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: avoid instantiating a connection on \u003cem\u003erepr\u003c/em\u003e_ (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3653\"\u003e#3653\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixing the return type hint for the transaction method in the standalone client. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3660\"\u003e#3660\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump rojopolis/spellcheck-github-actions from 0.48.0 to 0.49.0 (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3665\"\u003e#3665\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDropping integration tests with Redis 6.2 from pipeline actions. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3659\"\u003e#3659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove deprecated arg from call to ClusterPipeline (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3670\"\u003e#3670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTransactionStrategy reset: UNWATCH only when status is watching (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3671\"\u003e#3671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eKeyT for set operations (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3190\"\u003e#3190\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoving references to old docs site '\u003ca href=\"https://redis-py.readthedocs.io/\"\u003ehttps://redis-py.readthedocs.io/\u003c/a\u003e' replaced by '\u003ca href=\"https://redis.readthedocs.io/\"\u003ehttps://redis.readthedocs.io/\u003c/a\u003e' (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3674\"\u003e#3674\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoving unnecessary check for tests using AsyncMock (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3432\"\u003e#3432\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdating test images for github pipeline execution (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3678\"\u003e#3678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdating the latest Redis image for pipeline testing (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3695\"\u003e#3695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump rojopolis/spellcheck-github-actions from 0.49.0 to 0.51.0 (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3689\"\u003e#3689\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDOC-5225 testable probabilistic dt examples (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3691\"\u003e#3691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate README.md (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3699\"\u003e#3699\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eConvert the value to int type only if it exists in CLIENT INFO (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3688\"\u003e#3688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix compatibility with latest pytest-asyncio version(1.1.0) (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3708\"\u003e#3708\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDOC-5424 time series examples (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3705\"\u003e#3705\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdding information in connection pool class doc string for available SSLConnection class, that can be used for SSL connections (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3710\"\u003e#3710\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/redis/redis-py/commit/fff669daaf43ae8092ea8ab7a2a3196a9b1b7e41\"\u003e\u003ccode\u003efff669d\u003c/code\u003e\u003c/a\u003e Updated package version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/43ce2a4025c020bd26e401371c16ca4920b470a5\"\u003e\u003ccode\u003e43ce2a4\u003c/code\u003e\u003c/a\u003e Updating the latest Redis image for github pipeline testing (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3726\"\u003e#3726\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/64426cbdd43153b70b0e29d9d7b3ab2c63760359\"\u003e\u003ccode\u003e64426cb\u003c/code\u003e\u003c/a\u003e Added epsilon property to the vsim command (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3723\"\u003e#3723\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/67ab74d705b4c1d00d600c500596af7a68abfd56\"\u003e\u003ccode\u003e67ab74d\u003c/code\u003e\u003c/a\u003e Add new stream commands (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3711\"\u003e#3711\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/4c9512b1fe592dc9becebe9e5f053b0184b47f2c\"\u003e\u003ccode\u003e4c9512b\u003c/code\u003e\u003c/a\u003e Adding information in connection pool class doc string for available SSLConne...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/31399ed43588840bbbfdbbf0e8260d1b989b49ce\"\u003e\u003ccode\u003e31399ed\u003c/code\u003e\u003c/a\u003e SentinelManagedConnection searches for new master upon connection failure (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3\"\u003e#3\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/7291deb5eb8054a0dc915a8bf499a17498bc5968\"\u003e\u003ccode\u003e7291deb\u003c/code\u003e\u003c/a\u003e add async Retry \u003ccode\u003e__eq__\u003c/code\u003e and \u003ccode\u003e__hash__\u003c/code\u003e \u0026amp; fix ExponentialWithJitterBackof...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/4cf094fdd2c1f2ce335e671af3fad7ad0a48f309\"\u003e\u003ccode\u003e4cf094f\u003c/code\u003e\u003c/a\u003e Fix ConnectionPool to raise MaxConnectionsError instead of Connection… (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3698\"\u003e#3698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/a00141618572764821bbe6bd74e025536e061587\"\u003e\u003ccode\u003ea001416\u003c/code\u003e\u003c/a\u003e DOC-5424 time series examples (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3705\"\u003e#3705\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/2b1ff5363715c8ba0043314a8b4bcbbc1ba741f5\"\u003e\u003ccode\u003e2b1ff53\u003c/code\u003e\u003c/a\u003e Fix compatibility with latest pytest-asyncio version(1.1.0) (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3708\"\u003e#3708\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/redis/redis-py/compare/v4.6.0...v6.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ocrmypdf` from 14.4.0 to 15.4.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/blob/main/docs/release_notes.md\"\u003eocrmypdf's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev15.4.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed documentation for installing Ghostscript on Windows. {issue}\u003ccode\u003e1198\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdded warning message about security issue in older versions of Ghostscript.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev15.4.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed deprecation warning in pikepdf older than 8.7.1; pikepdf \u0026gt;= 8.7.1 is\nnow required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev15.4.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWe now raise an exception on a certain class of PDFs that likely need an\nexplicit color conversion strategy selected to display correctly\nfor PDF/A conversion.\u003c/li\u003e\n\u003cli\u003eFixed an error that occurred while trying to write a log message after the\ndebug log handler was removed.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev15.4.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed misc/watcher.py regressions: accept \u003ccode\u003e--ocr-json-settings\u003c/code\u003e as either\nfilename or JSON string, as previously; and argument count mismatch.\n{issue}\u003ccode\u003e1183,1185\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eWe no longer attempt to set /ProcSet in the PDF output, since this is an\nobsolete PDF feature.\u003c/li\u003e\n\u003cli\u003eDocumentation improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev15.4.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded new experimental APIs to support offline editing of the final text.\nSpecifically, one can now generate hOCR files with OCRmyPDF, edit them with\nsome other tool, and then finalize the PDF. They are experimental and\nsubject to change, including details of how the working folder is used.\nThere is no command line interface.\u003c/li\u003e\n\u003cli\u003eCode reorganization: executors, progress bars, initialization and setup.\u003c/li\u003e\n\u003cli\u003eFixed test coverage in cases where the coverage tool did not properly trace\ninto threads or subprocesses. This code was still being tested but appeared\nas not covered.\u003c/li\u003e\n\u003cli\u003eIn the test suite, reduced use of subprocesses and other techniques that\ninterfere with coverage measurement.\u003c/li\u003e\n\u003cli\u003eImproved error check for when we appear to be running inside a snap container\nand files are not available.\u003c/li\u003e\n\u003cli\u003ePlugin specification now properly defines progress bars as a protocol rather\nthan defining them as \u0026quot;tqdm-like\u0026quot;.\u003c/li\u003e\n\u003cli\u003eWe now default to using \u0026quot;forkserver\u0026quot; process creation on POSIX platforms\nrather than fork, since this is method is more robust and avoids some\nissues when threads are present.\u003c/li\u003e\n\u003cli\u003eFixed an instance where the user's request to \u003ccode\u003e--no-use-threads\u003c/code\u003e was ignored.\u003c/li\u003e\n\u003cli\u003eIf a PDF does not have language metadata on its top level object, we add\nthe OCR language.\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/ocrmypdf/OCRmyPDF/commit/c90d5cd84b0e27906310c28f0d78c3ded9106d65\"\u003e\u003ccode\u003ec90d5cd\u003c/code\u003e\u003c/a\u003e Fix Ghostscript installation instructions and add warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/9898904be70bf957154cc66cb5d6f57bac7c26b4\"\u003e\u003ccode\u003e9898904\u003c/code\u003e\u003c/a\u003e Fix pikepdf PdfMatrix deprecation warning; v15.4.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/27d52298420e785300e418bef4e4219ef97720e1\"\u003e\u003ccode\u003e27d5229\u003c/code\u003e\u003c/a\u003e Make logger names unique\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/4a9a575ef0f2cd7459538a43e802c8d8b3846168\"\u003e\u003ccode\u003e4a9a575\u003c/code\u003e\u003c/a\u003e ghostscript: better comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/52fd9a630d57ac7af91db423b17e6b0297fc1c66\"\u003e\u003ccode\u003e52fd9a6\u003c/code\u003e\u003c/a\u003e v15.4.2 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/a596ccf84469c81c6d19ab0eb59f53a5df0bc3c7\"\u003e\u003ccode\u003ea596ccf\u003c/code\u003e\u003c/a\u003e Raise exception if resulting PDF might appear blank in a known in some PDF vi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/e7fa97731f507c1d91e4289b9d5f3344533d7c4c\"\u003e\u003ccode\u003ee7fa977\u003c/code\u003e\u003c/a\u003e ghostscript duplicate filter: filter within a window of previous messages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/290aa2810868fb506a0ded2db8dabb580d5a2459\"\u003e\u003ccode\u003e290aa28\u003c/code\u003e\u003c/a\u003e Fix error on attempt to write to debug log after removing debug log handler\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/a95640ed9ec0a5caa360bd64b9ad6cc9f916fa61\"\u003e\u003ccode\u003ea95640e\u003c/code\u003e\u003c/a\u003e v15.4.1 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/f69267bb675c3261121b70451f6e673f433bc7ad\"\u003e\u003ccode\u003ef69267b\u003c/code\u003e\u003c/a\u003e watcher: restore ability to read json from file or command line string\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/compare/v14.4.0...v15.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-multiselectfield` from 0.1.12 to 1.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/goinnn/django-multiselectfield/releases\"\u003edjango-multiselectfield's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBadge image worked on GitHub but was broken on PyPI — fixed it.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.0\u003c/h2\u003e\n\u003cp\u003eThis release introduces multiple changes that are incompatible with previous versions.\u003c/p\u003e\n\u003cp\u003eThe major version number has been incremented following \u003ccode\u003eSemantic Versioning (SemVer) \u0026lt;https://semver.org/\u0026gt;\u003c/code\u003e_, as several components of the package have changed in ways that may require updates in client code.\u003c/p\u003e\n\u003cp\u003eThe internal codebase has been significantly cleaned up and reorganized, making it more maintainable and consistent.\u003c/p\u003e\n\u003cp\u003eThis version contains \u003cstrong\u003e40% fewer lines of code\u003c/strong\u003e compared to the previous release.\u003c/p\u003e\n\u003cp\u003eLess code means fewer bugs, easier maintenance, and better long-term sustainability.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFList (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\"\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2\u003c/a\u003e):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/50d3f785883e0a314f2dc89950e3fe1e88a7ede6\"\u003e50d3f785883e0a314f2dc89950e3fe1e88a7ede6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIt was created to support MultiSelectFields in admin.list_display, but it never actually worked. If you add a multiselect field to list_display, Django does not call to \u003cstrong\u003estr\u003c/strong\u003e method of MSGList (renamed to MSFList)\u003c/li\u003e\n\u003cli\u003eIt was created for integer choices too and it is a misconception. This is explained in the README file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFFlatchoices (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\"\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2\u003c/a\u003e):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/5638247c1d70670d4f81adf35143ef17a7d7575e\"\u003e5638247c1d70670d4f81adf35143ef17a7d7575e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIn list_display, labels for the choices are now shown (comma-separated) instead of the values of the choices (comma-separated).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn to_python method, value is a list or a string. (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/c4579138dda2833cbce26afbf57da5353aa45690\"\u003ec4579138dda2833cbce26afbf57da5353aa45690\u003c/a\u003e)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove set case and dict case\u003c/li\u003e\n\u003cli\u003eIf this breaks something, please create a test to help understand the use case.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoving integer choices:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIt was a mistake. MultiSelectField inherits of CharField, not IntegerField.\u003c/li\u003e\n\u003cli\u003eIt is impossible knows if original choice is (1, 'Item title 2.1') or ('1', 'Item title 2.1')\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: Form instance generated twice since Django  (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/168\"\u003e#168\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix CSS admin:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/173\"\u003e#173\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/7711f4aa755c81d00f07ce8a6ff0fd9240061f9c\"\u003e7711f4aa755c81d00f07ce8a6ff0fd9240061f9c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix Properly Display Categorized Choices in get_FOO_display (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/169\"\u003e#169\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSortMultiSelectField: (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/172\"\u003e#172\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/goinnn/django-multiselectfield/blob/master/CHANGES.rst\"\u003edjango-multiselectfield's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.0.1 (2025-06-12)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBadge image worked on GitHub but was broken on PyPI — fixed it.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.0.0 (2025-06-12)\u003c/h2\u003e\n\u003cp\u003eThis release introduces multiple changes that are incompatible with previous versions.\u003c/p\u003e\n\u003cp\u003eThe major version number has been incremented following \u003ccode\u003eSemantic Versioning (SemVer) \u0026lt;https://semver.org/\u0026gt;\u003c/code\u003e_, as several components of the package have changed in ways that may require updates in client code.\u003c/p\u003e\n\u003cp\u003eThe internal codebase has been significantly cleaned up and reorganized, making it more maintainable and consistent.\u003c/p\u003e\n\u003cp\u003eThis version contains \u003cstrong\u003e40% fewer lines of code\u003c/strong\u003e compared to the previous release.\u003c/p\u003e\n\u003cp\u003eLess code means fewer bugs, easier maintenance, and better long-term sustainability.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFList (\u003ccode\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\u0026gt;\u003c/code\u003e_):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ccode\u003e50d3f785883e0a314f2dc89950e3fe1e88a7ede6 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/50d3f785883e0a314f2dc89950e3fe1e88a7ede6\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eIt was created to support MultiSelectFields in admin.list_display, but it never actually worked. If you add a multiselect field to list_display, Django does not call to \u003cstrong\u003estr\u003c/strong\u003e method of MSGList (renamed to MSFList)\u003c/li\u003e\n\u003cli\u003eIt was created for integer choices too and it is a misconception. This is explained in the README file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFFlatchoices (\u003ccode\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\u0026gt;\u003c/code\u003e_):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ccode\u003e5638247c1d70670d4f81adf35143ef17a7d7575e \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/5638247c1d70670d4f81adf35143ef17a7d7575e\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eIn list_display, labels for the choices are now shown (comma-separated) instead of the values of the choices (comma-separated).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn to_python method, value is a list or a string. (\u003ccode\u003ec4579138dda2833cbce26afbf57da5353aa45690 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/c4579138dda2833cbce26afbf57da5353aa45690\u0026gt;\u003c/code\u003e_)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove set case and dict case\u003c/li\u003e\n\u003cli\u003eIf this breaks something, please create a test to help understand the use case.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoving integer choices:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIt was a mistake. MultiSelectField inherits of CharField, not IntegerField.\u003c/li\u003e\n\u003cli\u003eIt is impossible knows if original choice is (1, 'Item title 2.1') or ('1', 'Item title 2.1')\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: Form instance generated twice since Django  (\u003ccode\u003e[#168](https://github.com/goinnn/django-multiselectfield/issues/168) \u0026lt;https://github.com/goinnn/django-multiselectfield/pull/168\u0026gt;\u003c/code\u003e_)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix CSS admin:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ccode\u003e[#173](https://github.com/goinnn/django-multiselectfield/issues/173) \u0026lt;https://github.com/goinnn/django-multiselectfield/pull/173\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003e(\u003ccode\u003e7711f4aa755c81d00f07ce8a6ff0fd9240061f9c \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/7711f4aa755c81d00f07ce8a6ff0fd9240061f9c\u0026gt;\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/goinnn/django-multiselectfield/commit/679bac60a5156b26c608972a1b4a576b7010e6c2\"\u003e\u003ccode\u003e679bac6\u003c/code\u003e\u003c/a\u003e Ready to new release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/bef25142b5f266164185ec3de4abdfcf91c3e89d\"\u003e\u003ccode\u003ebef2514\u003c/code\u003e\u003c/a\u003e Ready to new release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/9a564a35581f89c35279ebfa20a2d693b3d23d73\"\u003e\u003ccode\u003e9a564a3\u003c/code\u003e\u003c/a\u003e Add image from github (pypi broken)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/f2b3186c1da7f50abf68b8e11e1d54c2683e2b34\"\u003e\u003ccode\u003ef2b3186\u003c/code\u003e\u003c/a\u003e Fix typo error\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/72894698f191aeddd5364977365c6c2c88a5ac53\"\u003e\u003ccode\u003e7289469\u003c/code\u003e\u003c/a\u003e Fix another pypi error\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/f17a82819157736ff0378f57c8bb114060f4f803\"\u003e\u003ccode\u003ef17a828\u003c/code\u003e\u003c/a\u003e Improve readme file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/d9e2b979f5f37fea812b39a90247e1afd5314415\"\u003e\u003ccode\u003ed9e2b97\u003c/code\u003e\u003c/a\u003e Fix error uploading to pypi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/a387bc619d95a1e61da4ad7e7b0d319429322243\"\u003e\u003ccode\u003ea387bc6\u003c/code\u003e\u003c/a\u003e Ready to new release. The major version number has been incremented because t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/4fc13699678de3bdbe6c7299c6fdbfb901ca08f6\"\u003e\u003ccode\u003e4fc1369\u003c/code\u003e\u003c/a\u003e If the choices are Proxy str (i18n) patched_display_for_field gets an error\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/8bafbdbd9db515206b1fef6ec7263d9b485c2c31\"\u003e\u003ccode\u003e8bafbdb\u003c/code\u003e\u003c/a\u003e Add static files to package\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/goinnn/django-multiselectfield/compare/v0.1.12...v1.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-auditlog` from 2.3.0 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/jazzband/django-auditlog/releases\"\u003edjango-auditlog's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.3.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUse canonical timezone name for Buenos Aires by \u003ca href=\"https://github.com/EdwardBetts\"\u003e\u003ccode\u003e@​EdwardBetts\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/736\"\u003ejazzband/django-auditlog#736\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded fixes for changes_display_dict when AUDITLOG_STORE_JSON_CHANGES is True by \u003ca href=\"https://github.com/The-Alchemist\"\u003e\u003ccode\u003e@​The-Alchemist\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/738\"\u003ejazzband/django-auditlog#738\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd audit log history view to Django Admin by \u003ca href=\"https://github.com/2ykwang\"\u003e\u003ccode\u003e@​2ykwang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/743\"\u003ejazzband/django-auditlog#743\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExtend CI and local test coverage to MySQL and SQLite by \u003ca href=\"https://github.com/2ykwang\"\u003e\u003ccode\u003e@​2ykwang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/744\"\u003ejazzband/django-auditlog#744\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 4 to 5 in the github-actions group 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/jazzband/django-auditlog/pull/752\"\u003ejazzband/django-auditlog#752\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/jazzband/django-auditlog/pull/753\"\u003ejazzband/django-auditlog#753\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/setup-python from 5 to 6 in the github-actions group 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/jazzband/django-auditlog/pull/754\"\u003ejazzband/django-auditlog#754\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Expression test compatibility for Django 6.0+ by \u003ca href=\"https://github.com/2ykwang\"\u003e\u003ccode\u003e@​2ykwang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/759\"\u003ejazzband/django-auditlog#759\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd I18N Support by \u003ca href=\"https://github.com/2ykwang\"\u003e\u003ccode\u003e@​2ykwang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/762\"\u003ejazzband/django-auditlog#762\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix None type mismatch in change detection by \u003ca href=\"https://github.com/2ykwang\"\u003e\u003ccode\u003e@​2ykwang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/763\"\u003ejazzband/django-auditlog#763\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare release 3.3.0 by \u003ca href=\"https://github.com/2ykwang\"\u003e\u003ccode\u003e@​2ykwang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/756\"\u003ejazzband/django-auditlog#756\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/EdwardBetts\"\u003e\u003ccode\u003e@​EdwardBetts\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/736\"\u003ejazzband/django-auditlog#736\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jazzband/django-auditlog/compare/v3.2.1...v3.3.0\"\u003ehttps://github.com/jazzband/django-auditlog/compare/v3.2.1...v3.3.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev3.2.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Django 5.2 by \u003ca href=\"https://github.com/mahdirahimi1999\"\u003e\u003ccode\u003e@​mahdirahimi1999\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/730\"\u003ejazzband/django-auditlog#730\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded fixes for updates and deletes if AUDITLOG_STORE_JSON_CHANGES is True by \u003ca href=\"https://github.com/The-Alchemist\"\u003e\u003ccode\u003e@​The-Alchemist\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/732\"\u003ejazzband/django-auditlog#732\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare release 3.2.1 by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/733\"\u003ejazzband/django-auditlog#733\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/mahdirahimi1999\"\u003e\u003ccode\u003e@​mahdirahimi1999\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/730\"\u003ejazzband/django-auditlog#730\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jazzband/django-auditlog/compare/v3.2.0...v3.2.1\"\u003ehttps://github.com/jazzband/django-auditlog/compare/v3.2.0...v3.2.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev3.2.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eimprove actor_email assignment by \u003ca href=\"https://github.com/GreatBahram\"\u003e\u003ccode\u003e@​GreatBahram\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/720\"\u003ejazzband/django-auditlog#720\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003enew setting: STORE_JSON_CHANGES that intelligently store JSON by \u003ca href=\"https://github.com/The-Alchemist\"\u003e\u003ccode\u003e@​The-Alchemist\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/719\"\u003ejazzband/django-auditlog#719\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eget_field_value\u003c/code\u003e field default value handling for Django 6.0 compatibility by \u003ca href=\"https://github.com/2ykwang\"\u003e\u003ccode\u003e@​2ykwang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/726\"\u003ejazzband/django-auditlog#726\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for custom masking functions by \u003ca href=\"https://github.com/2ykwang\"\u003e\u003ccode\u003e@​2ykwang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/725\"\u003ejazzband/django-auditlog#725\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate pre-commit repos by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/728\"\u003ejazzband/django-auditlog#728\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare release 3.2.0 by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/729\"\u003ejazzband/django-auditlog#729\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/The-Alchemist\"\u003e\u003ccode\u003e@​The-Alchemist\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/719\"\u003ejazzband/django-auditlog#719\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog...\n\n_Description has been truncated_","html_url":"https://github.com/dsp-testing/paperless-ngx/pull/187","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/dsp-testing%2Fpaperless-ngx/issues/187","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/187/packages"},{"uuid":"3633961058","node_id":"PR_kwDOKoYLLM6z47eA","number":183,"state":"open","title":"Bump the major-versions group across 1 directory with 17 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-11-17T16:01:58.000Z","updated_at":"2025-11-17T16:02:00.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"major-versions","update_count":17,"packages":[{"name":"django","old_version":"4.2.6","new_version":"4.2.26"},{"name":"django-guardian","old_version":"2.4.0","new_version":"3.2.0","repository_url":"https://github.com/django-guardian/django-guardian"},{"name":"django-extensions","old_version":"3.2.3","new_version":"4.1","repository_url":"https://github.com/django-extensions/django-extensions"},{"name":"django-filter","old_version":"23.3","new_version":"25.1","repository_url":"https://github.com/carltongibson/django-filter"},{"name":"gunicorn","old_version":"21.2.0","new_version":"23.0.0","repository_url":"https://github.com/benoitc/gunicorn"},{"name":"python-ipware","old_version":"2.0.0","new_version":"3.0.0","repository_url":"https://github.com/un33k/python-ipware"},{"name":"redis","old_version":"4.6.0","new_version":"5.2.1","repository_url":"https://github.com/redis/redis-py"},{"name":"watchdog","old_version":"3.0.0","new_version":"6.0.0","repository_url":"https://github.com/gorakhargosh/watchdog"},{"name":"ocrmypdf","old_version":"14.4.0","new_version":"15.4.4","repository_url":"https://github.com/ocrmypdf/OCRmyPDF"},{"name":"django-multiselectfield","old_version":"0.1.12","new_version":"1.0.1","repository_url":"https://github.com/goinnn/django-multiselectfield"},{"name":"django-auditlog","old_version":"2.3.0","new_version":"3.3.0","repository_url":"https://github.com/jazzband/django-auditlog"},{"name":"black","old_version":"23.9.1","new_version":"25.11.0","repository_url":"https://github.com/psf/black"},{"name":"pre-commit","old_version":"3.4.0","new_version":"4.3.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pytest","old_version":"7.4.2","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-cov","old_version":"4.1.0","new_version":"7.0.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"pytest-sugar","old_version":"0.9.7","new_version":"1.1.1","repository_url":"https://github.com/Teemu/pytest-sugar"},{"name":"pytest-rerunfailures","old_version":"12.0","new_version":"16.0.1","repository_url":"https://github.com/pytest-dev/pytest-rerunfailures"}],"path":null,"ecosystem":"conda"},"body":"Bumps the major-versions group with 17 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| django | `4.2.6` | `4.2.26` |\n| [django-guardian](https://github.com/django-guardian/django-guardian) | `2.4.0` | `3.2.0` |\n| [django-extensions](https://github.com/django-extensions/django-extensions) | `3.2.3` | `4.1` |\n| [django-filter](https://github.com/carltongibson/django-filter) | `23.3` | `25.1` |\n| [gunicorn](https://github.com/benoitc/gunicorn) | `21.2.0` | `23.0.0` |\n| [python-ipware](https://github.com/un33k/python-ipware) | `2.0.0` | `3.0.0` |\n| [redis](https://github.com/redis/redis-py) | `4.6.0` | `5.2.1` |\n| [watchdog](https://github.com/gorakhargosh/watchdog) | `3.0.0` | `6.0.0` |\n| [ocrmypdf](https://github.com/ocrmypdf/OCRmyPDF) | `14.4.0` | `15.4.4` |\n| [django-multiselectfield](https://github.com/goinnn/django-multiselectfield) | `0.1.12` | `1.0.1` |\n| [django-auditlog](https://github.com/jazzband/django-auditlog) | `2.3.0` | `3.3.0` |\n| [black](https://github.com/psf/black) | `23.9.1` | `25.11.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `3.4.0` | `4.3.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `7.4.2` | `8.4.2` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `4.1.0` | `7.0.0` |\n| [pytest-sugar](https://github.com/Teemu/pytest-sugar) | `0.9.7` | `1.1.1` |\n| [pytest-rerunfailures](https://github.com/pytest-dev/pytest-rerunfailures) | `12.0` | `16.0.1` |\n\n\nUpdates `django` from 4.2.6 to 4.2.26\n\nUpdates `django-guardian` from 2.4.0 to 3.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-guardian/django-guardian/releases\"\u003edjango-guardian's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.2.0 The Bozkir progression\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate enforcement contact link in CODE_OF_CONDUCT.md by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/918\"\u003edjango-guardian/django-guardian#918\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptional cached anonymous user  - Pr 907 by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/912\"\u003edjango-guardian/django-guardian#912\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003egenerator warnings and logics are added for security purposes by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/920\"\u003edjango-guardian/django-guardian#920\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erollback compatible create anon user fix is developed by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/919\"\u003edjango-guardian/django-guardian#919\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e644 using inlines in django admin with guardian by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/921\"\u003edjango-guardian/django-guardian#921\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-guardian/django-guardian/compare/3.1.3...3.2.0\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.3...3.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.1.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edjango-packages badge is added by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/910\"\u003edjango-guardian/django-guardian#910\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate issue templates by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/909\"\u003edjango-guardian/django-guardian#909\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMakefile support by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/906\"\u003edjango-guardian/django-guardian#906\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePR merging scenario is fixed by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/913\"\u003edjango-guardian/django-guardian#913\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed issue causing prefetch_perms() to throw when passed an empty list by \u003ca href=\"https://github.com/keattang\"\u003e\u003ccode\u003e@​keattang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/904\"\u003edjango-guardian/django-guardian#904\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRe apply \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/812\"\u003e#812\u003c/a\u003e using correct lookup method by \u003ca href=\"https://github.com/sevdog\"\u003e\u003ccode\u003e@​sevdog\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/842\"\u003edjango-guardian/django-guardian#842\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOPS: Bump version for release by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/915\"\u003edjango-guardian/django-guardian#915\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-guardian/django-guardian/compare/3.1.2...3.1.3\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.2...3.1.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.1.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.0 in /.github/workflows 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-guardian/django-guardian/pull/903\"\u003edjango-guardian/django-guardian#903\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix type and deprecate old name by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/902\"\u003edjango-guardian/django-guardian#902\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/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/903\"\u003edjango-guardian/django-guardian#903\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-guardian/django-guardian/compare/3.1.1...3.1.2\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.1...3.1.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epre-commit checker step is added by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/901\"\u003edjango-guardian/django-guardian#901\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-guardian/django-guardian/compare/3.1.0...3.1.1\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.0...3.1.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eImproved indexing, tweaks and bugfixes\u003c/h2\u003e\n\u003ch2\u003eSaving the 🌳🌳🌳 and the 💰💰💰\u003c/h2\u003e\n\u003cp\u003e⚠️⚠️⚠️ \u003cstrong\u003eWARNING:\u003c/strong\u003e This release contains an update to database indexing which should yield \u003cstrong\u003econsiderable additional performance\u003c/strong\u003e, especially on large table permissions lookups (thanks \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e for such rigorous performance testing!!!). Following the migration that introduces these indexes, databases should reindex automatically in the background (typically within 0-30s even for large tables): this is unlikely to be noticeable but users may experience a short lived performance hit during this period.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow ignore_conflicts on bulk create by \u003ca href=\"https://github.com/pgiki\"\u003e\u003ccode\u003e@​pgiki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/814\"\u003edjango-guardian/django-guardian#814\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/django-guardian/django-guardian/commit/4120d00c28c1b6d3bacb988f6db86bacf91ed0f1\"\u003e\u003ccode\u003e4120d00\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/921\"\u003e#921\u003c/a\u003e from django-guardian/644-using-inlines-in-django-admi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/c896b220bdf96783f1c25d730f12ebef95758c99\"\u003e\u003ccode\u003ec896b22\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/919\"\u003e#919\u003c/a\u003e from django-guardian/770-migration-rollback-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/3814e2383c69266350a3d885d445bdd79da8cb78\"\u003e\u003ccode\u003e3814e23\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 770-migration-rollback-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/94854899f4a030b42840837e08b42923a71c5b78\"\u003e\u003ccode\u003e9485489\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/920\"\u003e#920\u003c/a\u003e from django-guardian/666-permissionrequiredmixin-does...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/e01e2e1edeec60b2c79d561db56e0949ea3c4dad\"\u003e\u003ccode\u003ee01e2e1\u003c/code\u003e\u003c/a\u003e check only username field fixing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/e1ae3c5a7ab74a679ef1ccff2a480a88117df464\"\u003e\u003ccode\u003ee1ae3c5\u003c/code\u003e\u003c/a\u003e show warning instead of error for backward compatibility and giving time the ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/63c10f549dfe2b5ba67e9eec36095cf3e6a2bab8\"\u003e\u003ccode\u003e63c10f5\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 644-using-inlines-in-django-admin-with-guardian\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/b27ebbdcc7f9952d9d9aaaa879b5e202063ccaa8\"\u003e\u003ccode\u003eb27ebbd\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 666-permissionrequiredmixin-does-not-warn-against-us...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/d7ed4a3bccb730d3cdf16fdc404f25b94674c653\"\u003e\u003ccode\u003ed7ed4a3\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 770-migration-rollback-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/03fed6924e06fd13991d9e8ae1b4590addf5473e\"\u003e\u003ccode\u003e03fed69\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/912\"\u003e#912\u003c/a\u003e from django-guardian/pr-907\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-guardian/django-guardian/compare/v2.4.0...3.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-extensions` from 3.2.3 to 4.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-extensions/django-extensions/releases\"\u003edjango-extensions's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd: show_permissions command (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1920\"\u003e#1920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, style per app (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1848\"\u003e#1848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: JSONField, bulk_update's (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1924\"\u003e#1924\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/ahmad88me\"\u003e\u003ccode\u003e@​ahmad88me\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1848\"\u003edjango-extensions/django-extensions#1848\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-extensions/django-extensions/compare/4.0...4.1\"\u003ehttps://github.com/django-extensions/django-extensions/compare/4.0...4.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprovement: Support for Python 3.12 and 3.13\u003c/li\u003e\n\u003cli\u003eImprovement: Support for Django 5.x\u003c/li\u003e\n\u003cli\u003eImprovement: Switch from setup.{cfg,py} to pyproject.toml\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Add option to display field choices in graph_models (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1854\"\u003e#1854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Add webp support (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1857\"\u003e#1857\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Support for ordering edges on pydot/dot/graphviz (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1914\"\u003e#1914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: mail_debug, Update mail_debug command to use aiosmtpd (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1880\"\u003e#1880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: shell_plus, Improve error message for missing import (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1898\"\u003e#1898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: reset_db, Add reset_db support for django_tenants (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1855\"\u003e#1855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: docs, various improvements (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1852\"\u003e#1852\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1888\"\u003e#1888\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1882\"\u003e#1882\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1901\"\u003e#1901\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1912\"\u003e#1912\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1913\"\u003e#1913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: jobs, Handle non-package modules when looking for job definitions (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1887\"\u003e#1887\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: Add django-prometheus DB backends support (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1800\"\u003e#1800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: Call post_command when the command raises an unhandled exception (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1837\"\u003e#1837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: sqldiff, do not consider ('serial', 'integer') nor ('bigserial', 'bigint') as a field-type-differ (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1867\"\u003e#1867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: shell_plus, Fix start up order and add history (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1869\"\u003e#1869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove pipchecker and associated tests (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1906\"\u003e#1906\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFollowing Django's release numbering style more closely (see \u003ca href=\"https://docs.djangoproject.com/en/5.2/internals/release-process/\"\u003ehttps://docs.djangoproject.com/en/5.2/internals/release-process/\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/dimitrismistriotis\"\u003e\u003ccode\u003e@​dimitrismistriotis\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1859\"\u003edjango-extensions/django-extensions#1859\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/titouanc\"\u003e\u003ccode\u003e@​titouanc\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1854\"\u003edjango-extensions/django-extensions#1854\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dmwyatt\"\u003e\u003ccode\u003e@​dmwyatt\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1872\"\u003edjango-extensions/django-extensions#1872\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stianjensen\"\u003e\u003ccode\u003e@​stianjensen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1898\"\u003edjango-extensions/django-extensions#1898\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PapaZ810\"\u003e\u003ccode\u003e@​PapaZ810\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1888\"\u003edjango-extensions/django-extensions#1888\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kviktor\"\u003e\u003ccode\u003e@​kviktor\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1857\"\u003edjango-extensions/django-extensions#1857\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aripollak\"\u003e\u003ccode\u003e@​aripollak\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1913\"\u003edjango-extensions/django-extensions#1913\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/flowgunso\"\u003e\u003ccode\u003e@​flowgunso\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1914\"\u003edjango-extensions/django-extensions#1914\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anitahammer\"\u003e\u003ccode\u003e@​anitahammer\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1869\"\u003edjango-extensions/django-extensions#1869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nicolaspanel\"\u003e\u003ccode\u003e@​nicolaspanel\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1867\"\u003edjango-extensions/django-extensions#1867\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yujinyuz\"\u003e\u003ccode\u003e@​yujinyuz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1855\"\u003edjango-extensions/django-extensions#1855\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/soof-golan\"\u003e\u003ccode\u003e@​soof-golan\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1852\"\u003edjango-extensions/django-extensions#1852\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ghickman\"\u003e\u003ccode\u003e@​ghickman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1887\"\u003edjango-extensions/django-extensions#1887\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jrobichaud\"\u003e\u003ccode\u003e@​jrobichaud\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1837\"\u003edjango-extensions/django-extensions#1837\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-extensions/django-extensions/compare/3.2.3...4.0\"\u003ehttps://github.com/django-extensions/django-extensions/compare/3.2.3...4.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.2.4b1\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-extensions/django-extensions/blob/main/CHANGELOG.md\"\u003edjango-extensions's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.1\u003c/h2\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd: show_permissions command (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1920\"\u003e#1920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, style per app (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1848\"\u003e#1848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: JSONField, bulk_update's (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1924\"\u003e#1924\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.0\u003c/h2\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eImprovement: Support for Python 3.12 and 3.13\u003c/li\u003e\n\u003cli\u003eImprovement: Support for Django 5.x\u003c/li\u003e\n\u003cli\u003eImprovement: Switch from setup.{cfg,py} to pyproject.toml\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Add option to display field choices in graph_models (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1854\"\u003e#1854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Add webp support (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1857\"\u003e#1857\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Support for ordering edges on pydot/dot/graphviz (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1914\"\u003e#1914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: mail_debug, Update mail_debug command to use aiosmtpd (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1880\"\u003e#1880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: shell_plus, Improve error message for missing import (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1898\"\u003e#1898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: reset_db, Add reset_db support for django_tenants (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1855\"\u003e#1855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: docs, various improvements (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1852\"\u003e#1852\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1888\"\u003e#1888\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1882\"\u003e#1882\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1901\"\u003e#1901\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1912\"\u003e#1912\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1913\"\u003e#1913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: jobs, Handle non-package modules when looking for job definitions (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1887\"\u003e#1887\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: Add django-prometheus DB backends support (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1800\"\u003e#1800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: Call post_command when the command raises an unhandled exception (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1837\"\u003e#1837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: sqldiff, do not consider ('serial', 'integer') nor ('bigserial', 'bigint') as a \u003ccode\u003efield-type-differ\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1867\"\u003e#1867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: shell_plus, Fix start up order and add history (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1869\"\u003e#1869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove pipchecker and associated tests (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1906\"\u003e#1906\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFollowing Django's release numbering style more closely (see \u003ca href=\"https://docs.djangoproject.com/en/5.2/internals/release-process/\"\u003ehttps://docs.djangoproject.com/en/5.2/internals/release-process/\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-extensions/django-extensions/commit/ad015513e5d8e8ee6ad748fca5f32ccf3fb3d5c5\"\u003e\u003ccode\u003ead01551\u003c/code\u003e\u003c/a\u003e v4.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/2c3e914f1264c0a029b3b47b7425d0f68ce637ed\"\u003e\u003ccode\u003e2c3e914\u003c/code\u003e\u003c/a\u003e update CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/fb5b2af1b6595ee126237c299acf242fcfee817e\"\u003e\u003ccode\u003efb5b2af\u003c/code\u003e\u003c/a\u003e ruff format\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/7e978d27b031843640f9204ff495738c46233d7f\"\u003e\u003ccode\u003e7e978d2\u003c/code\u003e\u003c/a\u003e graph_models style per app (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1848\"\u003e#1848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/067064ea0c6dec7cba1583447fe5fe1c706d5351\"\u003e\u003ccode\u003e067064e\u003c/code\u003e\u003c/a\u003e avoid trying to serialize expressions when serializing default values\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/a886068502474e70a2d68ff4634a15cc3366088d\"\u003e\u003ccode\u003ea886068\u003c/code\u003e\u003c/a\u003e update CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/d824501cbc6d04a24a43ff5756b496f84093b225\"\u003e\u003ccode\u003ed824501\u003c/code\u003e\u003c/a\u003e Add show_permissions management command (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1920\"\u003e#1920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/934f93f53bdf6c6271ae1ddaee71bc9bf3364a0e\"\u003e\u003ccode\u003e934f93f\u003c/code\u003e\u003c/a\u003e bumped version number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/c4577df5b69ec1ebcbe6bc64d7a5c20362f3a8fa\"\u003e\u003ccode\u003ec4577df\u003c/code\u003e\u003c/a\u003e v4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/7cdb43ab56a3b610b47680d8a2fe86b09d5913aa\"\u003e\u003ccode\u003e7cdb43a\u003c/code\u003e\u003c/a\u003e pyproject formatting\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-extensions/django-extensions/compare/3.2.3...4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-filter` from 23.3 to 25.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/carltongibson/django-filter/blob/main/CHANGES.rst\"\u003edjango-filter's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 25.1 (2025-02-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved the in-built API schema generation methods, which have been\ndeprecated since v23.2.\u003c/p\u003e\n\u003cp\u003eYou should use \u003ccode\u003edrf-spectacular \u0026lt;https://drf-spectacular.readthedocs.io/en/latest/\u0026gt;\u003c/code\u003e_\nfor generating OpenAPI schemas with DRF.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped support for EOL Python 3.8.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded testing against Python 3.13.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded official support for Django 5.2.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 24.3 (2024-08-02)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdds official support for Django 5.1.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow using dictionaries for grouped choices on Django 5.0+.\u003c/p\u003e\n\u003cp\u003eThanks to Sævar Öfjörð Magnússon.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdds \u003ccode\u003eunknown_field_behavior\u003c/code\u003e FilterSet option to allowing warning and\nignore behaviours for unknown field types during FilterSet generation.\u003c/p\u003e\n\u003cp\u003eThanks to Loes.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 24.2 (2024-03-27)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed a regression in v23.4 where callable choices were incorrectly evaluated\nat filter instantiation, on Django versions prior to 5.0.\u003c/p\u003e\n\u003cp\u003eThanks to Craig de Stigter for the report and reproduce.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 24.1 (2024-03-08)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated supported Python and Django versions, and resolved upcoming Django\ndeprecations.\u003c/p\u003e\n\u003cp\u003eRequired versions are now at least Python 3.8 and Django 4.2.\u003c/p\u003e\n\u003cp\u003eThanks to Michael Manganiello.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllowed passing a FilterSet class to the filterset_factory().\u003c/p\u003e\n\u003cp\u003eThanks to Birger Schacht.\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/carltongibson/django-filter/commit/27dd67284405ee832701509b3515baa50c6e074d\"\u003e\u003ccode\u003e27dd672\u003c/code\u003e\u003c/a\u003e Updated Change notes for 25.1 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/2ea38174b010f378a9b57d90c566c2bab7b37bbb\"\u003e\u003ccode\u003e2ea3817\u003c/code\u003e\u003c/a\u003e Added Trove classifier for Django 5.2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/4d2306c211c1d86f85f04fb311b8b05bfefb08a8\"\u003e\u003ccode\u003e4d2306c\u003c/code\u003e\u003c/a\u003e Replaced hardcoded pks in tests (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1703\"\u003e#1703\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/fbf5a76a4d97480d78779397b90d34fa8f13d141\"\u003e\u003ccode\u003efbf5a76\u003c/code\u003e\u003c/a\u003e Update tox after Django 5.2 alpha release. (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1700\"\u003e#1700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/1e76d6859e109ae34d5e2a657c66146a9d744c80\"\u003e\u003ccode\u003e1e76d68\u003c/code\u003e\u003c/a\u003e Use QueryDict for data default. (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1691\"\u003e#1691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/e709e5d43a4ad8b8e8ea62520669b88300c9c686\"\u003e\u003ccode\u003ee709e5d\u003c/code\u003e\u003c/a\u003e Add testing against Python 3.13.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/ccde000dfe74362b62301b248681e9505133e821\"\u003e\u003ccode\u003eccde000\u003c/code\u003e\u003c/a\u003e Dropped support for EOL Python 3.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/2a644e176634ec0ce99d9446d980501e9763e194\"\u003e\u003ccode\u003e2a644e1\u003c/code\u003e\u003c/a\u003e Removed deprecated schema generation methods from DRF backend. (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1698\"\u003e#1698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/2494df96c6387a9fa411fcb00b696b15dfd9216b\"\u003e\u003ccode\u003e2494df9\u003c/code\u003e\u003c/a\u003e fix typo in filterset.txt (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1695\"\u003e#1695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/3656174bd90d20f3d916fd98b6476c270013b681\"\u003e\u003ccode\u003e3656174\u003c/code\u003e\u003c/a\u003e Translated using Weblate (Czech) (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1687\"\u003e#1687\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/carltongibson/django-filter/compare/23.3...25.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gunicorn` from 21.2.0 to 23.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\u003e23.0.0\u003c/h2\u003e\n\u003cp\u003eGunicorn 23.0.0 has been released. This version improve HTTP 1.1. support and  which improve safety\u003c/p\u003e\n\u003cp\u003eYou're invited to upgrade asap your own installation.\u003c/p\u003e\n\u003ch1\u003e23.0.0 - 2024-08-10\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eminor docs fixes (:pr:\u003ccode\u003e3217\u003c/code\u003e, :pr:\u003ccode\u003e3089\u003c/code\u003e, :pr:\u003ccode\u003e3167\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eworker_class parameter accepts a class (:pr:\u003ccode\u003e3079\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003efix deadlock if request terminated during chunked parsing (:pr:\u003ccode\u003e2688\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003epermit receiving Transfer-Encodings: compress, deflate, gzip (:pr:\u003ccode\u003e3261\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003epermit Transfer-Encoding headers specifying multiple encodings. note: no parameters, still (:pr:\u003ccode\u003e3261\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003esdist generation now explicitly excludes sphinx build folder (:pr:\u003ccode\u003e3257\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003edecode bytes-typed status (as can be passed by gevent) as utf-8 instead of raising \u003ccode\u003eTypeError\u003c/code\u003e (:pr:\u003ccode\u003e2336\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eraise correct Exception when encounting invalid chunked requests (:pr:\u003ccode\u003e3258\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ethe SCRIPT_NAME and PATH_INFO headers, when received from allowed forwarders, are no longer restricted for containing an underscore (:pr:\u003ccode\u003e3192\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003einclude IPv6 loopback address \u003ccode\u003e[::1]\u003c/code\u003e in default for :ref:\u003ccode\u003eforwarded-allow-ips\u003c/code\u003e and :ref:\u003ccode\u003eproxy-allow-ips\u003c/code\u003e (:pr:\u003ccode\u003e3192\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e** NOTE **\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SCRIPT_NAME change mitigates a regression that appeared first in the 22.0.0 release\u003c/li\u003e\n\u003cli\u003eReview your :ref:\u003ccode\u003eforwarded-allow-ips\u003c/code\u003e setting if you are still not seeing the SCRIPT_NAME transmitted\u003c/li\u003e\n\u003cli\u003eReview your :ref:\u003ccode\u003eforwarder-headers\u003c/code\u003e setting if you are missing headers after upgrading from a version prior to 22.0.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e** Breaking changes **\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003erefuse requests where the uri field is empty (:pr:\u003ccode\u003e3255\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003erefuse requests with invalid CR/LR/NUL in heade field values (:pr:\u003ccode\u003e3253\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eremove temporary \u003ccode\u003e--tolerate-dangerous-framing\u003c/code\u003e switch from 22.0 (:pr:\u003ccode\u003e3260\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eIf any of the breaking changes affect you, be aware that now refused requests can post a security problem, especially so in setups involving request pipe-lining and/or proxies.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFix CVE-2024-1135\u003c/p\u003e\n\u003ch2\u003eGunicorn 22.0 has been released\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eGunicorn 22.0.0 has been released.\u003c/strong\u003e This version fix the numerous security vulnerabilities. You're invited to upgrade asap your own installation.\u003c/p\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e22.0.0 - 2024-04-17\n===================\n\u003cul\u003e\n\u003cli\u003euse \u003ccode\u003eutime\u003c/code\u003e to notify workers liveness\u003c/li\u003e\n\u003cli\u003emigrate setup to pyproject.toml\u003c/li\u003e\n\u003cli\u003efix numerous security vulnerabilities in HTTP parser (closing some request smuggling vectors)\u003c/li\u003e\n\u003cli\u003eparsing additional requests is no longer attempted past unsupported request framing\u003c/li\u003e\n\u003cli\u003eon HTTP versions \u0026lt; 1.1 support for chunked transfer is refused (only used in exploits)\u003c/li\u003e\n\u003cli\u003erequests conflicting configured or passed SCRIPT_NAME now produce a verbose error\u003c/li\u003e\n\u003cli\u003eTrailer fields are no longer inspected for headers indicating secure scheme\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/li\u003e\n\u003c/ul\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/411986d6191114dd1d1bbb9c72c948dbf0ef0425\"\u003e\u003ccode\u003e411986d\u003c/code\u003e\u003c/a\u003e fix doc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/334392e7795f2017e83f7054d372422512d6f4b6\"\u003e\u003ccode\u003e334392e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/2559\"\u003e#2559\u003c/a\u003e from laggardkernel/bugfix/reexec-env\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/e75c3533e32f91a9dceba9e8e1341fea5540ba81\"\u003e\u003ccode\u003ee75c353\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3189\"\u003e#3189\u003c/a\u003e from pajod/patch-py36\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/9357b28dd867950e33ca3864207cb35a1eb8ba6f\"\u003e\u003ccode\u003e9357b28\u003c/code\u003e\u003c/a\u003e keep document user in access_log_format setting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/79fdef0822cbfe7e16b659b07230af9be098d5fc\"\u003e\u003ccode\u003e79fdef0\u003c/code\u003e\u003c/a\u003e bump to 23.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/3acd9fbfd1159ca3cd80a8052ada89a0bf27f806\"\u003e\u003ccode\u003e3acd9fb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/2620\"\u003e#2620\u003c/a\u003e from talkerbox/improve-access-log-format-docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/3f56d76548e4ade034bf5e174737902970285d1f\"\u003e\u003ccode\u003e3f56d76\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3192\"\u003e#3192\u003c/a\u003e from pajod/patch-allowed-script-name\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/256d474a7910bd605f2cc8c082b79c1ae55215a9\"\u003e\u003ccode\u003e256d474\u003c/code\u003e\u003c/a\u003e docs: revert duped directive\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/ffa48b581dcaa75f17fd2df263515e4266feeef6\"\u003e\u003ccode\u003effa48b5\u003c/code\u003e\u003c/a\u003e test: default change was intentional\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/52538ca9070b5e7ead5d0fa731e82a622dc6f3ee\"\u003e\u003ccode\u003e52538ca\u003c/code\u003e\u003c/a\u003e docs: recommend SCRIPT_NAME=/subfolder\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/benoitc/gunicorn/compare/21.2.0...23.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-ipware` from 2.0.0 to 3.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/un33k/python-ipware/blob/main/CHANGELOG.md\"\u003epython-ipware's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.0.0\u003c/h2\u003e\n\u003cp\u003eFix:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRelease major version, as there is a possibility of api change causing minimal backward incompatibly\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.5\u003c/h2\u003e\n\u003cp\u003eEnhance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAI assisted clean up\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.4\u003c/h2\u003e\n\u003cp\u003eEnhance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eproxy_count=0\u003c/code\u003e as an option (\u003ca href=\"https://github.com/FraKraBa\"\u003e\u003ccode\u003e@​FraKraBa\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.3\u003c/h2\u003e\n\u003cp\u003eEnhance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eHTTP_CF_CONNECTING_IP\u003c/code\u003e to list of known ip headers (Adam M.)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.2\u003c/h2\u003e\n\u003cp\u003eEnhance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded logger name\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.1\u003c/h2\u003e\n\u003cp\u003eIssue:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003eHTTP_VIA\u003c/code\u003e header support (unreliable IP information) (\u003ca href=\"https://github.com/yourcelf\"\u003e\u003ccode\u003e@​yourcelf\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eEnhance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eInclude support for python 3.12\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/un33k/python-ipware/commit/cab810ced72457abcc77ffd234be9cb0a75f7ec3\"\u003e\u003ccode\u003ecab810c\u003c/code\u003e\u003c/a\u003e version 3 major (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/21\"\u003e#21\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/5d01f1e6662f3de861d44006247fd5f0a3ae4a0b\"\u003e\u003ccode\u003e5d01f1e\u003c/code\u003e\u003c/a\u003e Feat/enhance (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/20\"\u003e#20\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/bd56bcd1d4ed2d2bbd690059e5a231d6b51bcd31\"\u003e\u003ccode\u003ebd56bcd\u003c/code\u003e\u003c/a\u003e Allow for proxy_count of exact 0 (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/19\"\u003e#19\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/ddfde3c6d4dee387a59287a2c0afc933f9773791\"\u003e\u003ccode\u003eddfde3c\u003c/code\u003e\u003c/a\u003e Update Readme (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/17\"\u003e#17\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/aab321baf9958ae128460c2279364926f6612dca\"\u003e\u003ccode\u003eaab321b\u003c/code\u003e\u003c/a\u003e Add HTTP_CF_CONNECTING_IP to ip Header list (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/16\"\u003e#16\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/e908cc321dc61e203033768f8d1072efc71f4556\"\u003e\u003ccode\u003ee908cc3\u003c/code\u003e\u003c/a\u003e Added logger name (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/15\"\u003e#15\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/ad1f01783279ecd8dfff91b3db8558f92b5bde0b\"\u003e\u003ccode\u003ead1f017\u003c/code\u003e\u003c/a\u003e Remove HTTP_VIA support, support for 3.12 (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/14\"\u003e#14\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/un33k/python-ipware/compare/v2.0.0...v3.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `redis` from 4.6.0 to 5.2.1\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\u003e5.2.1\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed unsecured tempfile.mktemp() command usage (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3446\"\u003e#3446\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed bug with SLOWLOG GET response parsing on Redis Software (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3441\"\u003e#3441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed issue with invoking _close() on closed event loop (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3438\"\u003e#3438\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMigrate test infrastructure to new custom docker images (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3415\"\u003e#3415\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed flacky test with HEXPIREAT command (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3437\"\u003e#3437\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\u003cp\u003e\u003ca href=\"https://github.com/IlianIliev\"\u003e\u003ccode\u003e@​IlianIliev\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/uglide\"\u003e\u003ccode\u003e@​uglide\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/teodorfn\"\u003e\u003ccode\u003e@​teodorfn\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.2.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e🚀 New Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExtend AggregateRequest with scorer argument (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3409\"\u003e#3409\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePin pytest-profiling version due to the bug (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3417\"\u003e#3417\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\u003cp\u003e\u003ca href=\"https://github.com/uglide\"\u003e\u003ccode\u003e@​uglide\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/rbs333\"\u003e\u003ccode\u003e@​rbs333\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/dwdougherty\"\u003e\u003ccode\u003e@​dwdougherty\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.1.1\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e5.1.1\u003c/h2\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed return type for Redis Set commands to be Set instead of List (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3399\"\u003e#3399\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed bug with partial Hiredis availability (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3400\"\u003e#3400\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed bug with async pipeline and cluster fails with some commands (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3402\"\u003e#3402\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.1.0\u003c/h2\u003e\n\u003ch3\u003e🚀 New Features\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\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/a74fa6a3dc1996ff256d5b1849c3018a7ac05c99\"\u003e\u003ccode\u003ea74fa6a\u003c/code\u003e\u003c/a\u003e Release 5.2.1 (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3451\"\u003e#3451\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/166ae7bfd79a88cdfbd7959b2c28cd79aa0eaf0c\"\u003e\u003ccode\u003e166ae7b\u003c/code\u003e\u003c/a\u003e Updated package version (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3418\"\u003e#3418\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/00f5be420b397adfa1b9aa9c2761f7d8a27c0a9a\"\u003e\u003ccode\u003e00f5be4\u003c/code\u003e\u003c/a\u003e adds scorer to AggregateRequest (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3409\"\u003e#3409\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/4c4d4afd2b31b5c36a2d5e22419bcbf584265a17\"\u003e\u003ccode\u003e4c4d4af\u003c/code\u003e\u003c/a\u003e Pin pytest-profiling (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3417\"\u003e#3417\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/d6ddb0d66bc4bd28c99d9cf148c9085117cc8ce9\"\u003e\u003ccode\u003ed6ddb0d\u003c/code\u003e\u003c/a\u003e DOC-4199: add TCEs to the combined query page (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3380\"\u003e#3380\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/17db62e3c9ea796f5705d2857f49e52799057af7\"\u003e\u003ccode\u003e17db62e\u003c/code\u003e\u003c/a\u003e DOC-4200: add TCEs to the aggregation query page (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3381\"\u003e#3381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/700045c7a7db6d986df6610d61239375a2211053\"\u003e\u003ccode\u003e700045c\u003c/code\u003e\u003c/a\u003e Backport 5.1 changes into master (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3406\"\u003e#3406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/2e46613dcdf9db7f948f3258fee1c9199da8cbfa\"\u003e\u003ccode\u003e2e46613\u003c/code\u003e\u003c/a\u003e Client side caching refactoring (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3350\"\u003e#3350\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/7d73d742d6df4b3d6f6a1f0ec73e72d4a02add74\"\u003e\u003ccode\u003e7d73d74\u003c/code\u003e\u003c/a\u003e DOC-4197: add TCEs to the geospatial query page (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3378\"\u003e#3378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/c7483b3d63a2001508a2ff2c9952ad50d9252732\"\u003e\u003ccode\u003ec7483b3\u003c/code\u003e\u003c/a\u003e DOC-4196: add TCEs to the full-text query page (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3377\"\u003e#3377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/redis/redis-py/compare/v4.6.0...v5.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `watchdog` from 3.0.0 to 6.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/gorakhargosh/watchdog/releases\"\u003ewatchdog's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[inotify] Use of \u003ccode\u003eselect.poll()\u003c/code\u003e instead of deprecated \u003ccode\u003eselect.select()\u003c/code\u003e, if available. (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1078\"\u003e#1078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_class()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_instancemethod()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_module()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eis_class_private_name()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eis_classmethod()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eis_method(met()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003emethod_name()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003ename()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Removed the \u003ccode\u003e--trace\u003c/code\u003e CLI argument from the \u003ccode\u003ewatchmedo log\u003c/code\u003e command, useless since events are logged by default at the \u003ccode\u003eLoggerTrick\u003c/code\u003e class level.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePin test dependecies.\u003c/li\u003e\n\u003cli\u003e[docs] Add typing info to quick start. (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1082\"\u003e#1082\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[inotify] Fix reading inotify file descriptor after closing it. (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1081\"\u003e#1081\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[utils] The \u003ccode\u003estop_signal\u003c/code\u003e keyword-argument type of the \u003ccode\u003eAutoRestartTrick\u003c/code\u003e class can now be either a \u003ccode\u003esignal.Signals\u003c/code\u003e or an \u003ccode\u003eint\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e[utils] Added the \u003ccode\u003e__repr__()\u003c/code\u003e method to the \u003ccode\u003eTrick\u003c/code\u003e class.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Fixed Mypy issues.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Added the \u003ccode\u003e__repr__()\u003c/code\u003e method to the \u003ccode\u003eHelpFormatter\u003c/code\u003e class.\u003c/li\u003e\n\u003cli\u003e[windows] Fixed Mypy issues.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e💟 Thanks to our beloved contributors: \u003ca href=\"https://github.com/g-pichler\"\u003e\u003ccode\u003e@​g-pichler\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ethan-vanderheijden\"\u003e\u003ccode\u003e@​ethan-vanderheijden\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/nhairs\"\u003e\u003ccode\u003e@​nhairs\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[inotify] Improve cleaning up \u003ccode\u003eInotify\u003c/code\u003e threads, and add \u003ccode\u003eeventlet\u003c/code\u003e test cases (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1070\"\u003e#1070\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e💟 Thanks to our beloved contributors: \u003ca href=\"https://github.com/ethan-vanderheijden\"\u003e\u003ccode\u003e@​ethan-vanderheijden\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEnable OS specific Mypy checks (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1064\"\u003e#1064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[watchmedo] Fix \u003ccode\u003etricks\u003c/code\u003e argument type of \u003ccode\u003eschedule_tricks()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1063\"\u003e#1063\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e💟 Thanks to our beloved contributors: \u003ca href=\"https://github.com/gnought\"\u003e\u003ccode\u003e@​gnought\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[kqueue] Fix \u003ccode\u003eTypeError: kqueue.control() only accepts positional parameters\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1062\"\u003e#1062\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e💟 Thanks to our beloved contributors: \u003ca href=\"https://github.com/apoirier\"\u003e\u003ccode\u003e@​apoirier\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8 (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1055\"\u003e#1055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[core] Enforced usage of proper keyword-arguments (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1057\"\u003e#1057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[core] Renamed the \u003ccode\u003eBaseObserverSubclassCallable\u003c/code\u003e class to \u003ccode\u003eObserverType\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1055\"\u003e#1055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[inotify] Renamed the \u003ccode\u003einotify_event_struct\u003c/code\u003e class to \u003ccode\u003eInotifyEventStruct\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1055\"\u003e#1055\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/gorakhargosh/watchdog/blob/master/changelog.rst\"\u003ewatchdog's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e6.0.0\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n2024-11-01 • `full history \u0026lt;https://github.com/gorakhargosh/watchdog/compare/v5.0.3...v6.0.0\u0026gt;`__\n\u003cul\u003e\n\u003cli\u003ePin test dependencies.\u003c/li\u003e\n\u003cli\u003e[docs] Add typing info to quick start. (\u003ccode\u003e[#1082](https://github.com/gorakhargosh/watchdog/issues/1082) \u0026amp;lt;https://github.com/gorakhargosh/watchdog/pull/1082\u0026amp;gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003e[inotify] Use of \u003ccode\u003eselect.poll()\u003c/code\u003e instead of deprecated \u003ccode\u003eselect.select()\u003c/code\u003e, if available. (\u003ccode\u003e[#1078](https://github.com/gorakhargosh/watchdog/issues/1078) \u0026amp;lt;https://github.com/gorakhargosh/watchdog/pull/1078\u0026amp;gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003e[inotify] Fix reading inotify file descriptor after closing it. (\u003ccode\u003e[#1081](https://github.com/gorakhargosh/watchdog/issues/1081) \u0026amp;lt;https://github.com/gorakhargosh/watchdog/pull/1081\u0026amp;gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003e[utils] The \u003ccode\u003estop_signal\u003c/code\u003e keyword-argument type of the \u003ccode\u003eAutoRestartTrick\u003c/code\u003e class can now be either a \u003ccode\u003esignal.Signals\u003c/code\u003e or an \u003ccode\u003eint\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e[utils] Added the \u003ccode\u003e__repr__()\u003c/code\u003e method to the \u003ccode\u003eTrick\u003c/code\u003e class.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_class()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_instancemethod()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_module()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eis_class_private_name()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eis_classmethod()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eic_method(met()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003emethod_name()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003ename()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Fixed Mypy issues.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Added the \u003ccode\u003e__repr__()\u003c/code\u003e method to the \u003ccode\u003eHelpFormatter\u003c/code\u003e class.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Removed the \u003ccode\u003e--trace\u003c/code\u003e CLI argument from the \u003ccode\u003ewatchmedo log\u003c/code\u003e command, useless since events are logged by default at the \u003ccode\u003eLoggerTrick\u003c/code\u003e class level.\u003c/li\u003e\n\u003cli\u003e[windows] Fixed Mypy issues.\u003c/li\u003e\n\u003cli\u003eThanks to our beloved contributors: \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/g-pichler\"\u003e\u003ccode\u003e@​g-pichler\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ethan-vanderheijden\"\u003e\u003ccode\u003e@​ethan-vanderheijden\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/nhairs\"\u003e\u003ccode\u003e@​nhairs\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e5.0.3\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e2024-09-27 • \u003ccode\u003efull history \u0026lt;https://github.com/gorakhargosh/watchdog/compare/v5.0.2...v5.0.3\u0026gt;\u003c/code\u003e__\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[inotify] Improve cleaning up \u003ccode\u003eInotify\u003c/code\u003e threads, and add \u003ccode\u003eeventlet\u003c/code\u003e test cases (\u003ccode\u003e[#1070](https://github.com/gorakhargosh/watchdog/issues/1070) \u0026lt;https://github.com/gorakhargosh/watchdog/pull/1070\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eThanks to our beloved contributors: \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ethan-vanderheijden\"\u003e\u003ccode\u003e@​ethan-vanderheijden\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e5.0.2\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n2024-09-03 • `full history \u0026lt;https://github.com/gorakhargosh/watchdog/compare/v5.0.1...v5.0.2\u0026gt;`__\n\u003cul\u003e\n\u003cli\u003eEnable OS specific Mypy checks (\u003ccode\u003e[#1064](https://github.com/gorakhargosh/watchdog/issues/1064) \u0026amp;lt;https://github.com/gorakhargosh/watchdog/pull/1064\u0026amp;gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003e[watchmedo] Fix \u003ccode\u003etricks\u003c/code\u003e argument type of \u003ccode\u003eschedule_tricks()\u003c/code\u003e (\u003ccode\u003e[#1063](https://github.com/gorakhargosh/watchdog/issues/1063) \u0026amp;lt;https://github.com/gorakhargosh/watchdog/pull/1063\u0026amp;gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eThanks to our beloved contributors: \u003ca href=\"https://github.com/gnought\"\u003e\u003ccode\u003e@​gnought\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e5.0.1\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e2024-09-02 • \u003ccode\u003efull history \u0026lt;https://github.com/gorakhargosh/watchdog/compare/v5.0.0...v5.0.1\u0026gt;\u003c/code\u003e__\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[kqueue] Fix \u003ccode\u003eTypeError: kqueue.control() only accepts positional parameters\u003c/code\u003e  (\u003ccode\u003e[#1062](https://github.com/gorakhargosh/watchdog/issues/1062) \u0026lt;https://github.com/gorakhargosh/watchdog/pull/1062\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eThanks to our beloved contributors: \u003ca href=\"https://github.com/apoirier\"\u003e\u003ccode\u003e@​apoirier\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\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/gorakhargosh/watchdog/commit/76c091dc8841de1d1a1cd6511bb509fe4f058de6\"\u003e\u003ccode\u003e76c091d\u003c/code\u003e\u003c/a\u003e Version 6.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/58386d88747259b8b3da5082e30f1c6e0aa3b31a\"\u003e\u003ccode\u003e58386d8\u003c/code\u003e\u003c/a\u003e Fixes, and clean-up (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1084\"\u003e#1084\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/db698a52bbb1eb8cc34e889a8afdac6f17a99e57\"\u003e\u003ccode\u003edb698a5\u003c/code\u003e\u003c/a\u003e fix: reading inotify file descriptor after closing it. (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1081\"\u003e#1081\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/73d561265b109f30cf76a280cdcc74aa9e6df391\"\u003e\u003ccode\u003e73d5612\u003c/code\u003e\u003c/a\u003e [docs] Add typing info to quick start (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1082\"\u003e#1082\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/d774fec477a8f57d24b588164ebdd39b2d507bcd\"\u003e\u003ccode\u003ed774fec\u003c/code\u003e\u003c/a\u003e docs: Update README Badges (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1083\"\u003e#1083\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/6b74737501c85df9b9c2585faef4797a5250171b\"\u003e\u003ccode\u003e6b74737\u003c/code\u003e\u003c/a\u003e docs: funding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/3d1b888bccdd27a28f9f12a4e89288afe1ee493a\"\u003e\u003ccode\u003e3d1b888\u003c/code\u003e\u003c/a\u003e [inotify] Use of \u003ccode\u003eselect.poll()\u003c/code\u003e instead of deprecated \u003ccode\u003eselect.select()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1078\"\u003e#1078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/6a4f1cf846e03c8701fcc53b9e910077b5824e59\"\u003e\u003ccode\u003e6a4f1cf\u003c/code\u003e\u003c/a\u003e Bump the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/ad6df50908fca071ac8ad6558453bb28b522f794\"\u003e\u003ccode\u003ead6df50\u003c/code\u003e\u003c/a\u003e Version 5.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/59650f8fe72ac498374434a10a3dd49f3c3d1429\"\u003e\u003ccode\u003e59650f8\u003c/code\u003e\u003c/a\u003e fix: polish \u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1070\"\u003e#1070\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/gorakhargosh/watchdog/compare/v3.0.0...v6.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ocrmypdf` from 14.4.0 to 15.4.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/blob/main/docs/release_notes.md\"\u003eocrmypdf's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev15.4.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed documentation for installing Ghostscript on Windows. {issue}\u003ccode\u003e1198\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdded warning message about security issue in older versions of Ghostscript.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev15.4.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed deprecation warning in pikepdf older than 8.7.1; pikepdf \u0026gt;= 8.7.1 is\nnow required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev15.4.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWe now raise an exception on a certain class of PDFs that likely need an\nexplicit color conversion strategy selected to display correctly\nfor PDF/A conversion.\u003c/li\u003e\n\u003cli\u003eFixed an error that occurred while trying to write a log message after the\ndebug log handler was removed.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev15.4.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed misc/watcher.py regressions: accept \u003ccode\u003e--ocr-json-settings\u003c/code\u003e as either\nfilename or JSON string, as previously; and argument count mismatch.\n{issue}\u003ccode\u003e1183,1185\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eWe no longer attempt to set /ProcSet in the PDF output, since this is an\nobsolete PDF feature.\u003c/li\u003e\n\u003cli\u003eDocumentation improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev15.4.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded new experimental APIs to support offline editing of the final text.\nSpecifically, one can now generate hOCR files with OCRmyPDF, edit them with\nsome other tool, and then finalize the PDF. They are experimental and\nsubject to change, including details of how the working folder is used.\nThere is no command line interface.\u003c/li\u003e\n\u003cli\u003eCode reorganization: executors, progress bars, initialization and setup.\u003c/li\u003e\n\u003cli\u003eFixed test coverage in cases where the coverage tool did not properly trace\ninto threads or subprocesses. This code was still being tested but appeared\nas not covered.\u003c/li\u003e\n\u003cli\u003eIn the test suite, reduced use of subprocesses and other techniques that\ninterfere with coverage measurement.\u003c/li\u003e\n\u003cli\u003eImproved error check for when we appear to be running inside a snap container\nand files are not available.\u003c/li\u003e\n\u003cli\u003ePlugin specification now properly defines progress bars as a protocol rather\nthan defining them as \u0026quot;tqdm-like\u0026quot;.\u003c/li\u003e\n\u003cli\u003eWe now default to using \u0026quot;forkserver\u0026quot; process creation on POSIX platforms\nrather than fork, since this is method is more robust and avoids some\nissues when threads are present.\u003c/li\u003e\n\u003cli\u003eFixed an instance where the user's request to \u003ccode\u003e--no-use-threads\u003c/code\u003e was ignored.\u003c/li\u003e\n\u003cli\u003eIf a PDF does not have language metadata on its top level object, we add\nthe OCR language.\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/ocrmypdf/OCRmyPDF/commit/c90d5cd84b0e27906310c28f0d78c3ded9106d65\"\u003e\u003ccode\u003ec90d5cd\u003c/code\u003e\u003c/a\u003e Fix Ghostscript installation instructions and add warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/9898904be70bf957154cc66cb5d6f57bac7c26b4\"\u003e\u003ccode\u003e9898904\u003c/code\u003e\u003c/a\u003e Fix pikepdf PdfMatrix deprecation warning; v15.4.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/27d52298420e785300e418bef4e4219ef97720e1\"\u003e\u003ccode\u003e27d5229\u003c/code\u003e\u003c/a\u003e Make logger names unique\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/4a9a575ef0f2cd7459538a43e802c8d8b3846168\"\u003e\u003ccode\u003e4a9a575\u003c/code\u003e\u003c/a\u003e ghostscript: better comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/52fd9a630d57ac7af91db423b17e6b0297fc1c66\"\u003e\u003ccode\u003e52fd9a6\u003c/code\u003e\u003c/a\u003e v15.4.2 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/a596ccf84469c81c6d19ab0eb59f53a5df0bc3c7\"\u003e\u003ccode\u003ea596ccf\u003c/code\u003e\u003c/a\u003e Raise exception if resulting PDF might appear blank in a known in some PDF vi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/e7fa97731f507c1d91e4289b9d5f3344533d7c4c\"\u003e\u003ccode\u003ee7fa977\u003c/code\u003e\u003c/a\u003e ghostscript duplicate filter: filter within a window of previous messages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/290aa2810868fb506a0ded2db8dabb580d5a2459\"\u003e\u003ccode\u003e290aa28\u003c/code\u003e\u003c/a\u003e Fix error on attempt to write to debug log after removing debug log handler\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/a95640ed9ec0a5caa360bd64b9ad6cc9f916fa61\"\u003e\u003ccode\u003ea95640e\u003c/code\u003e\u003c/a\u003e v15.4.1 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/f69267bb675c3261121b70451f6e673f433bc7ad\"\u003e\u003ccode\u003ef69267b\u003c/code\u003e\u003c/a\u003e watcher: restore ability to read json from file or command line string\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/compare/v14.4.0...v15.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-multiselectfield` from 0.1.12 to 1.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/goinnn/django-multiselectfield/releases\"\u003edjango-multiselectfield's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBadge image worked on GitHub but was broken on PyPI — fixed it.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.0\u003c/h2\u003e\n\u003cp\u003eThis release introduces multiple changes that are incompatible with previous versions.\u003c/p\u003e\n\u003cp\u003eThe major version number has been incremented following \u003ccode\u003eSemantic Versioning (SemVer) \u0026lt;https://semver.org/\u0026gt;\u003c/code\u003e_, as several components of the package have changed in ways that may require updates in client code.\u003c/p\u003e\n\u003cp\u003eThe internal codebase has been significantly cleaned up and reorganized, making it more maintainable and consistent.\u003c/p\u003e\n\u003cp\u003eThis version contains \u003cstrong\u003e40% fewer lines of code\u003c/strong\u003e compared to the previous release.\u003c/p\u003e\n\u003cp\u003eLess code means fewer bugs, easier maintenance, and better long-term sustainability.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFList (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\"\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2\u003c/a\u003e):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/50d3f785883e0a314f2dc89950e3fe1e88a7ede6\"\u003e50d3f785883e0a314f2dc89950e3fe1e88a7ede6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIt was created to support MultiSelectFields in admin.list_display, but it never actually worked. If you add a multiselect field to list_display, Django does not call to \u003cstrong\u003estr\u003c/strong\u003e method of MSGList (renamed to MSFList)\u003c/li\u003e\n\u003cli\u003eIt was created for integer choices too and it is a misconception. This is explained in the README file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFFlatchoices (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\"\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2\u003c/a\u003e):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/5638247c1d70670d4f81adf35143ef17a7d7575e\"\u003e5638247c1d70670d4f81adf35143ef17a7d7575e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIn list_display, labels for the choices are now shown (comma-separated) instead of the values of the choices (comma-separated).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn to_python method, value is a list or a string. (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/c4579138dda2833cbce26afbf57da5353aa45690\"\u003ec4579138dda2833cbce26afbf57da5353aa45690\u003c/a\u003e)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove set case and dict case\u003c/li\u003e\n\u003cli\u003eIf this breaks something, please create a test to help understand the use case.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoving integer choices:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIt was a mistake. MultiSelectField inherits of CharField, not IntegerField.\u003c/li\u003e\n\u003cli\u003eIt is impossible knows if original choice is (1, 'Item title 2.1') or ('1', 'Item title 2.1')\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: Form instance generated twice since Django  (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/168\"\u003e#168\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix CSS admin:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/173\"\u003e#173\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/7711f4aa755c81d00f07ce8a6ff0fd9240061f9c\"\u003e7711f4aa755c81d00f07ce8a6ff0fd9240061f9c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix Properly Display Categorized Choices in get_FOO_display (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/169\"\u003e#169\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSortMultiSelectField: (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/172\"\u003e#172\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/goinnn/django-multiselectfield/blob/master/CHANGES.rst\"\u003edjango-multiselectfield's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.0.1 (2025-06-12)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBadge image worked on GitHub but was broken on PyPI — fixed it.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.0.0 (2025-06-12)\u003c/h2\u003e\n\u003cp\u003eThis release introduces multiple changes that are incompatible with previous versions.\u003c/p\u003e\n\u003cp\u003eThe major version number has been incremented following \u003ccode\u003eSemantic Versioning (SemVer) \u0026lt;https://semver.org/\u0026gt;\u003c/code\u003e_, as several components of the package have changed in ways that may require updates in client code.\u003c/p\u003e\n\u003cp\u003eThe internal codebase has been significantly cleaned up and reorganized, making it more maintainable and consistent.\u003c/p\u003e\n\u003cp\u003eThis version contains \u003cstrong\u003e40% fewer lines of code\u003c/strong\u003e compared to the previous release.\u003c/p\u003e\n\u003cp\u003eLess code means fewer bugs, easier maintenance, and better long-term sustainability.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFList (\u003ccode\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\u0026gt;\u003c/code\u003e_):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ccode\u003e50d3f785883e0a314f2dc89950e3fe1e88a7ede6 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/50d3f785883e0a314f2dc89950e3fe1e88a7ede6\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eIt was created to support MultiSelectFields in admin.list_display, but it never actually worked. If you add a multiselect field to list_display, Django does not call to \u003cstrong\u003estr\u003c/strong\u003e method of MSGList (renamed to MSFList)\u003c/li\u003e\n\u003cli\u003eIt was created for integer choices too and it is a misconception. This is explained in the README file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFFlatchoices (\u003ccode\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\u0026gt;\u003c/code\u003e_):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ccode\u003e5638247c1d70670d4f81adf35143ef17a7d7575e \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/5638247c1d70670d4f81adf35143ef17a7d7575e\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eIn list_display, labels for the choices are now shown (comma-separated) instead of the values of the choices (comma-separated).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn to_python method, value is a list or a string. (\u003ccode\u003ec4579138dda2833cbce26afbf57da5353aa45690 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/c4579138dda2833cbce26afbf57da5...\n\n_Description has been truncated_","html_url":"https://github.com/dsp-testing/paperless-ngx/pull/183","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/dsp-testing%2Fpaperless-ngx/issues/183","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/183/packages"},{"uuid":"2871636928","node_id":"PR_kwDOOpHihs6rKbPA","number":61,"state":"open","title":"Chore(deps): Bump the major-versions group across 1 directory with 5 updates","user":"dependabot[bot]","labels":["backend","dependencies"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-29T18:31:06.000Z","updated_at":"2025-09-29T18:31:06.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Chore(deps): Bump","group_name":"major-versions","update_count":5,"packages":[{"name":"django-guardian","old_version":"2.4.0","new_version":"3.2.0","repository_url":"https://github.com/django-guardian/django-guardian"},{"name":"django-multiselectfield","old_version":"0.1.13","new_version":"1.0.1","repository_url":"https://github.com/goinnn/django-multiselectfield"},{"name":"pytest-cov","old_version":"6.0.0","new_version":"7.0.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"pytest-rerunfailures","old_version":"15.0","new_version":"16.0.1","repository_url":"https://github.com/pytest-dev/pytest-rerunfailures"},{"name":"types-setuptools","old_version":"75.8.2.20250301","new_version":"80.9.0.20250822","repository_url":"https://github.com/typeshed-internal/stub_uploader"}],"path":null,"ecosystem":"conda"},"body":"Bumps the major-versions group with 5 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [django-guardian](https://github.com/django-guardian/django-guardian) | `2.4.0` | `3.2.0` |\n| [django-multiselectfield](https://github.com/goinnn/django-multiselectfield) | `0.1.13` | `1.0.1` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `6.0.0` | `7.0.0` |\n| [pytest-rerunfailures](https://github.com/pytest-dev/pytest-rerunfailures) | `15.0` | `16.0.1` |\n| [types-setuptools](https://github.com/typeshed-internal/stub_uploader) | `75.8.2.20250301` | `80.9.0.20250822` |\n\n\nUpdates `django-guardian` from 2.4.0 to 3.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-guardian/django-guardian/releases\"\u003edjango-guardian's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.2.0 The Bozkir progression\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate enforcement contact link in CODE_OF_CONDUCT.md by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/918\"\u003edjango-guardian/django-guardian#918\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptional cached anonymous user  - Pr 907 by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/912\"\u003edjango-guardian/django-guardian#912\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003egenerator warnings and logics are added for security purposes by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/920\"\u003edjango-guardian/django-guardian#920\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erollback compatible create anon user fix is developed by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/919\"\u003edjango-guardian/django-guardian#919\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e644 using inlines in django admin with guardian by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/921\"\u003edjango-guardian/django-guardian#921\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-guardian/django-guardian/compare/3.1.3...3.2.0\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.3...3.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.1.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edjango-packages badge is added by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/910\"\u003edjango-guardian/django-guardian#910\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate issue templates by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/909\"\u003edjango-guardian/django-guardian#909\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMakefile support by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/906\"\u003edjango-guardian/django-guardian#906\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePR merging scenario is fixed by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/913\"\u003edjango-guardian/django-guardian#913\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed issue causing prefetch_perms() to throw when passed an empty list by \u003ca href=\"https://github.com/keattang\"\u003e\u003ccode\u003e@​keattang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/904\"\u003edjango-guardian/django-guardian#904\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRe apply \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/812\"\u003e#812\u003c/a\u003e using correct lookup method by \u003ca href=\"https://github.com/sevdog\"\u003e\u003ccode\u003e@​sevdog\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/842\"\u003edjango-guardian/django-guardian#842\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOPS: Bump version for release by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/915\"\u003edjango-guardian/django-guardian#915\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-guardian/django-guardian/compare/3.1.2...3.1.3\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.2...3.1.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.1.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.0 in /.github/workflows 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-guardian/django-guardian/pull/903\"\u003edjango-guardian/django-guardian#903\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix type and deprecate old name by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/902\"\u003edjango-guardian/django-guardian#902\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/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/903\"\u003edjango-guardian/django-guardian#903\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-guardian/django-guardian/compare/3.1.1...3.1.2\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.1...3.1.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epre-commit checker step is added by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/901\"\u003edjango-guardian/django-guardian#901\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-guardian/django-guardian/compare/3.1.0...3.1.1\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.0...3.1.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eImproved indexing, tweaks and bugfixes\u003c/h2\u003e\n\u003ch2\u003eSaving the 🌳🌳🌳 and the 💰💰💰\u003c/h2\u003e\n\u003cp\u003e⚠️⚠️⚠️ \u003cstrong\u003eWARNING:\u003c/strong\u003e This release contains an update to database indexing which should yield \u003cstrong\u003econsiderable additional performance\u003c/strong\u003e, especially on large table permissions lookups (thanks \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e for such rigorous performance testing!!!). Following the migration that introduces these indexes, databases should reindex automatically in the background (typically within 0-30s even for large tables): this is unlikely to be noticeable but users may experience a short lived performance hit during this period.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow ignore_conflicts on bulk create by \u003ca href=\"https://github.com/pgiki\"\u003e\u003ccode\u003e@​pgiki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/814\"\u003edjango-guardian/django-guardian#814\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/django-guardian/django-guardian/commit/4120d00c28c1b6d3bacb988f6db86bacf91ed0f1\"\u003e\u003ccode\u003e4120d00\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/921\"\u003e#921\u003c/a\u003e from django-guardian/644-using-inlines-in-django-admi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/c896b220bdf96783f1c25d730f12ebef95758c99\"\u003e\u003ccode\u003ec896b22\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/919\"\u003e#919\u003c/a\u003e from django-guardian/770-migration-rollback-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/3814e2383c69266350a3d885d445bdd79da8cb78\"\u003e\u003ccode\u003e3814e23\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 770-migration-rollback-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/94854899f4a030b42840837e08b42923a71c5b78\"\u003e\u003ccode\u003e9485489\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/920\"\u003e#920\u003c/a\u003e from django-guardian/666-permissionrequiredmixin-does...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/e01e2e1edeec60b2c79d561db56e0949ea3c4dad\"\u003e\u003ccode\u003ee01e2e1\u003c/code\u003e\u003c/a\u003e check only username field fixing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/e1ae3c5a7ab74a679ef1ccff2a480a88117df464\"\u003e\u003ccode\u003ee1ae3c5\u003c/code\u003e\u003c/a\u003e show warning instead of error for backward compatibility and giving time the ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/63c10f549dfe2b5ba67e9eec36095cf3e6a2bab8\"\u003e\u003ccode\u003e63c10f5\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 644-using-inlines-in-django-admin-with-guardian\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/b27ebbdcc7f9952d9d9aaaa879b5e202063ccaa8\"\u003e\u003ccode\u003eb27ebbd\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 666-permissionrequiredmixin-does-not-warn-against-us...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/d7ed4a3bccb730d3cdf16fdc404f25b94674c653\"\u003e\u003ccode\u003ed7ed4a3\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 770-migration-rollback-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/03fed6924e06fd13991d9e8ae1b4590addf5473e\"\u003e\u003ccode\u003e03fed69\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/912\"\u003e#912\u003c/a\u003e from django-guardian/pr-907\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-guardian/django-guardian/compare/v2.4.0...3.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-multiselectfield` from 0.1.13 to 1.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/goinnn/django-multiselectfield/releases\"\u003edjango-multiselectfield's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBadge image worked on GitHub but was broken on PyPI — fixed it.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.0\u003c/h2\u003e\n\u003cp\u003eThis release introduces multiple changes that are incompatible with previous versions.\u003c/p\u003e\n\u003cp\u003eThe major version number has been incremented following \u003ccode\u003eSemantic Versioning (SemVer) \u0026lt;https://semver.org/\u0026gt;\u003c/code\u003e_, as several components of the package have changed in ways that may require updates in client code.\u003c/p\u003e\n\u003cp\u003eThe internal codebase has been significantly cleaned up and reorganized, making it more maintainable and consistent.\u003c/p\u003e\n\u003cp\u003eThis version contains \u003cstrong\u003e40% fewer lines of code\u003c/strong\u003e compared to the previous release.\u003c/p\u003e\n\u003cp\u003eLess code means fewer bugs, easier maintenance, and better long-term sustainability.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFList (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\"\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2\u003c/a\u003e):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/50d3f785883e0a314f2dc89950e3fe1e88a7ede6\"\u003e50d3f785883e0a314f2dc89950e3fe1e88a7ede6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIt was created to support MultiSelectFields in admin.list_display, but it never actually worked. If you add a multiselect field to list_display, Django does not call to \u003cstrong\u003estr\u003c/strong\u003e method of MSGList (renamed to MSFList)\u003c/li\u003e\n\u003cli\u003eIt was created for integer choices too and it is a misconception. This is explained in the README file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFFlatchoices (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\"\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2\u003c/a\u003e):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/5638247c1d70670d4f81adf35143ef17a7d7575e\"\u003e5638247c1d70670d4f81adf35143ef17a7d7575e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIn list_display, labels for the choices are now shown (comma-separated) instead of the values of the choices (comma-separated).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn to_python method, value is a list or a string. (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/c4579138dda2833cbce26afbf57da5353aa45690\"\u003ec4579138dda2833cbce26afbf57da5353aa45690\u003c/a\u003e)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove set case and dict case\u003c/li\u003e\n\u003cli\u003eIf this breaks something, please create a test to help understand the use case.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoving integer choices:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIt was a mistake. MultiSelectField inherits of CharField, not IntegerField.\u003c/li\u003e\n\u003cli\u003eIt is impossible knows if original choice is (1, 'Item title 2.1') or ('1', 'Item title 2.1')\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: Form instance generated twice since Django  (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/168\"\u003e#168\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix CSS admin:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/173\"\u003e#173\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/7711f4aa755c81d00f07ce8a6ff0fd9240061f9c\"\u003e7711f4aa755c81d00f07ce8a6ff0fd9240061f9c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix Properly Display Categorized Choices in get_FOO_display (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/169\"\u003e#169\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSortMultiSelectField: (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/172\"\u003e#172\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/goinnn/django-multiselectfield/blob/master/CHANGES.rst\"\u003edjango-multiselectfield's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.0.1 (2025-06-12)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBadge image worked on GitHub but was broken on PyPI — fixed it.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.0.0 (2025-06-12)\u003c/h2\u003e\n\u003cp\u003eThis release introduces multiple changes that are incompatible with previous versions.\u003c/p\u003e\n\u003cp\u003eThe major version number has been incremented following \u003ccode\u003eSemantic Versioning (SemVer) \u0026lt;https://semver.org/\u0026gt;\u003c/code\u003e_, as several components of the package have changed in ways that may require updates in client code.\u003c/p\u003e\n\u003cp\u003eThe internal codebase has been significantly cleaned up and reorganized, making it more maintainable and consistent.\u003c/p\u003e\n\u003cp\u003eThis version contains \u003cstrong\u003e40% fewer lines of code\u003c/strong\u003e compared to the previous release.\u003c/p\u003e\n\u003cp\u003eLess code means fewer bugs, easier maintenance, and better long-term sustainability.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFList (\u003ccode\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\u0026gt;\u003c/code\u003e_):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ccode\u003e50d3f785883e0a314f2dc89950e3fe1e88a7ede6 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/50d3f785883e0a314f2dc89950e3fe1e88a7ede6\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eIt was created to support MultiSelectFields in admin.list_display, but it never actually worked. If you add a multiselect field to list_display, Django does not call to \u003cstrong\u003estr\u003c/strong\u003e method of MSGList (renamed to MSFList)\u003c/li\u003e\n\u003cli\u003eIt was created for integer choices too and it is a misconception. This is explained in the README file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFFlatchoices (\u003ccode\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\u0026gt;\u003c/code\u003e_):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ccode\u003e5638247c1d70670d4f81adf35143ef17a7d7575e \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/5638247c1d70670d4f81adf35143ef17a7d7575e\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eIn list_display, labels for the choices are now shown (comma-separated) instead of the values of the choices (comma-separated).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn to_python method, value is a list or a string. (\u003ccode\u003ec4579138dda2833cbce26afbf57da5353aa45690 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/c4579138dda2833cbce26afbf57da5353aa45690\u0026gt;\u003c/code\u003e_)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove set case and dict case\u003c/li\u003e\n\u003cli\u003eIf this breaks something, please create a test to help understand the use case.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoving integer choices:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIt was a mistake. MultiSelectField inherits of CharField, not IntegerField.\u003c/li\u003e\n\u003cli\u003eIt is impossible knows if original choice is (1, 'Item title 2.1') or ('1', 'Item title 2.1')\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: Form instance generated twice since Django  (\u003ccode\u003e[#168](https://github.com/goinnn/django-multiselectfield/issues/168) \u0026lt;https://github.com/goinnn/django-multiselectfield/pull/168\u0026gt;\u003c/code\u003e_)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix CSS admin:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ccode\u003e[#173](https://github.com/goinnn/django-multiselectfield/issues/173) \u0026lt;https://github.com/goinnn/django-multiselectfield/pull/173\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003e(\u003ccode\u003e7711f4aa755c81d00f07ce8a6ff0fd9240061f9c \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/7711f4aa755c81d00f07ce8a6ff0fd9240061f9c\u0026gt;\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/goinnn/django-multiselectfield/commit/679bac60a5156b26c608972a1b4a576b7010e6c2\"\u003e\u003ccode\u003e679bac6\u003c/code\u003e\u003c/a\u003e Ready to new release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/bef25142b5f266164185ec3de4abdfcf91c3e89d\"\u003e\u003ccode\u003ebef2514\u003c/code\u003e\u003c/a\u003e Ready to new release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/9a564a35581f89c35279ebfa20a2d693b3d23d73\"\u003e\u003ccode\u003e9a564a3\u003c/code\u003e\u003c/a\u003e Add image from github (pypi broken)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/f2b3186c1da7f50abf68b8e11e1d54c2683e2b34\"\u003e\u003ccode\u003ef2b3186\u003c/code\u003e\u003c/a\u003e Fix typo error\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/72894698f191aeddd5364977365c6c2c88a5ac53\"\u003e\u003ccode\u003e7289469\u003c/code\u003e\u003c/a\u003e Fix another pypi error\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/f17a82819157736ff0378f57c8bb114060f4f803\"\u003e\u003ccode\u003ef17a828\u003c/code\u003e\u003c/a\u003e Improve readme file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/d9e2b979f5f37fea812b39a90247e1afd5314415\"\u003e\u003ccode\u003ed9e2b97\u003c/code\u003e\u003c/a\u003e Fix error uploading to pypi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/a387bc619d95a1e61da4ad7e7b0d319429322243\"\u003e\u003ccode\u003ea387bc6\u003c/code\u003e\u003c/a\u003e Ready to new release. The major version number has been incremented because t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/4fc13699678de3bdbe6c7299c6fdbfb901ca08f6\"\u003e\u003ccode\u003e4fc1369\u003c/code\u003e\u003c/a\u003e If the choices are Proxy str (i18n) patched_display_for_field gets an error\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/8bafbdbd9db515206b1fef6ec7263d9b485c2c31\"\u003e\u003ccode\u003e8bafbdb\u003c/code\u003e\u003c/a\u003e Add static files to package\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/goinnn/django-multiselectfield/compare/v0.1.13...v1.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-cov` from 6.0.0 to 7.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst\"\u003epytest-cov's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.0.0 (2025-09-09)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped support for subprocesses measurement.\u003c/p\u003e\n\u003cp\u003eIt was a feature added long time ago when coverage lacked a nice way to measure subprocesses created in tests.\nIt relied on a \u003ccode\u003e.pth\u003c/code\u003e file, there was no way to opt-out and it created bad interations\nwith \u003ccode\u003ecoverage's new patch system \u0026lt;https://coverage.readthedocs.io/en/latest/config.html#run-patch\u0026gt;\u003c/code\u003e_ added\nin \u003ccode\u003e7.10 \u0026lt;https://coverage.readthedocs.io/en/7.10.6/changes.html#version-7-10-0-2025-07-24\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003cp\u003eTo migrate to this release you might need to enable the suprocess patch, example for \u003ccode\u003e.coveragerc\u003c/code\u003e:\u003c/p\u003e\n\u003cp\u003e.. code-block:: ini\u003c/p\u003e\n\u003cp\u003e[run]\npatch = subprocess\u003c/p\u003e\n\u003cp\u003eThis release also requires at least coverage 7.10.6.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSwitched packaging to have metadata completely in \u003ccode\u003epyproject.toml\u003c/code\u003e and use \u003ccode\u003ehatchling \u0026lt;https://pypi.org/project/hatchling/\u0026gt;\u003c/code\u003e_ for\nbuilding.\nContributed by Ofek Lev in \u003ccode\u003e[#551](https://github.com/pytest-dev/pytest-cov/issues/551) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/551\u0026gt;\u003c/code\u003e_\nwith some extras in \u003ccode\u003e[#716](https://github.com/pytest-dev/pytest-cov/issues/716) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/716\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved some not really necessary testing deps like \u003ccode\u003esix\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.3.0 (2025-09-06)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for markdown reports.\nContributed by Marcos Boger in \u003ccode\u003e[#712](https://github.com/pytest-dev/pytest-cov/issues/712) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/712\u0026gt;\u003c/code\u003e_\nand \u003ccode\u003e[#714](https://github.com/pytest-dev/pytest-cov/issues/714) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/714\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eFixed some formatting issues in docs.\nAnonymous contribution in \u003ccode\u003e[#706](https://github.com/pytest-dev/pytest-cov/issues/706) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/706\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.2.1 (2025-06-12)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a version requirement for pytest's pluggy dependency (1.2.0, released 2023-06-21) that has the required new-style hookwrapper API.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved deprecated license classifier (packaging).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDisabled coverage warnings in two more situations where they have no value:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u0026quot;module-not-measured\u0026quot; in workers\u003c/li\u003e\n\u003cli\u003e\u0026quot;already-imported\u0026quot; in subprocesses\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.2.0 (2025-06-11)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eThe plugin now adds 3 rules in the filter warnings configuration to prevent common coverage warnings being raised as obscure errors::\u003c/p\u003e\n\u003cp\u003edefault:unclosed database in \u0026lt;sqlite3.Connection object at:ResourceWarning\nonce::PytestCovWarning\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/pytest-dev/pytest-cov/commit/224d8964caad90074a8cf6dc8720b8f70f31629b\"\u003e\u003ccode\u003e224d896\u003c/code\u003e\u003c/a\u003e Bump version: 6.3.0 → 7.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/73424e3999f865eac72e27f09d5fe11b9703cfd6\"\u003e\u003ccode\u003e73424e3\u003c/code\u003e\u003c/a\u003e Cleanup the docs a bit.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/36f1cc2967831dbd4c8aa70086fc86dc495f8b9a\"\u003e\u003ccode\u003e36f1cc2\u003c/code\u003e\u003c/a\u003e Bump pins in template.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/f299c590a63a48e51e3ae949993dc7bb1f1d480d\"\u003e\u003ccode\u003ef299c59\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 2 updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/25f0b2e0cdbc345c0d3e49170f7a328c3e0d805f\"\u003e\u003ccode\u003e25f0b2e\u003c/code\u003e\u003c/a\u003e Update docs/config.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/bb23eacc5531fb8f499213d8420407e0d72f88e3\"\u003e\u003ccode\u003ebb23eac\u003c/code\u003e\u003c/a\u003e Improve configuration docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/a19531e91e1ab753ccf648a2d9bab08a6fddebb9\"\u003e\u003ccode\u003ea19531e\u003c/code\u003e\u003c/a\u003e Switch from build/pre-commit to uv/prek - this should make this faster.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/82f999391073f2fb8ae422af452602f310086a2a\"\u003e\u003ccode\u003e82f9993\u003c/code\u003e\u003c/a\u003e Update changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/211b5cd41c29916bc643b4a11b00578ba4fd6fe8\"\u003e\u003ccode\u003e211b5cd\u003c/code\u003e\u003c/a\u003e Fix links.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/97aadd74bcbc00a2078d240e8fe871dd62b83d80\"\u003e\u003ccode\u003e97aadd7\u003c/code\u003e\u003c/a\u003e Update some ci config, reformat and apply some lint fixes.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-cov/compare/v6.0.0...v7.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-rerunfailures` from 15.0 to 16.0.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/blob/master/CHANGES.rst\"\u003epytest-rerunfailures's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e16.0.1 (2025-09-02)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReverted the ability to access error attributes because of an incompatibility\nwith \u003ccode\u003epytest-xdist \u0026lt;https://github.com/pytest-dev/pytest-xdist/issues/843\u0026gt;\u003c/code\u003e\u003cem\u003e.\nFixes \u003ccode\u003e[#302](https://github.com/pytest-dev/pytest-rerunfailures/issues/302) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/302\u0026gt;\u003c/code\u003e\u003c/em\u003e,\n\u003ccode\u003e[#303](https://github.com/pytest-dev/pytest-rerunfailures/issues/303) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/303\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e16.0 (2025-08-29)\u003c/h2\u003e\n\u003cp\u003eBreaking changes\n++++++++++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for pytest \u0026lt; 8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFeatures\n++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd support for pytest 8.4.x.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd support for upcoming Python 3.14.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow \u003ccode\u003e@pytest.mark.flaky(condition)\u003c/code\u003e to accept a callable or a string\nto be evaluated. The evaluated string has access to the exception instance\nvia the \u003ccode\u003eerror\u003c/code\u003e object.\n(\u003ccode\u003e[#230](https://github.com/pytest-dev/pytest-rerunfailures/issues/230) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/230\u0026gt;\u003c/code\u003e_)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e15.1 (2025-05-08)\u003c/h2\u003e\n\u003cp\u003eBug fixes\n+++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003e--fail-on-flaky\u003c/code\u003e option to fail the test run with custom exit code\nonly when reruns are detected.\n(\u003ccode\u003e[#287](https://github.com/pytest-dev/pytest-rerunfailures/issues/287) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/287\u0026gt;\u003c/code\u003e_)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSwitched to using the SPDX license identifier in the project metadata.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eOther changes\n+++++++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eChange exception filtering logic to match \u003ccode\u003eAssertionError\u003c/code\u003e raised via\n\u003ccode\u003eassert\u003c/code\u003e statements when filtering by \u0026quot;AssertionError\u0026quot;.\n(\u003ccode\u003e[#292](https://github.com/pytest-dev/pytest-rerunfailures/issues/292) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/292\u0026gt;\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/pytest-dev/pytest-rerunfailures/commit/f97618f95c630af28bbecacc83fc8715146bfa57\"\u003e\u003ccode\u003ef97618f\u003c/code\u003e\u003c/a\u003e Preparing release 16.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/c60d17dee372d5ad935d6da35c6e13ba2d34018d\"\u003e\u003ccode\u003ec60d17d\u003c/code\u003e\u003c/a\u003e Prepare release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/91b0b043f3923b429dd9573536eeebc20dbe8996\"\u003e\u003ccode\u003e91b0b04\u003c/code\u003e\u003c/a\u003e Make \u003ccode\u003epytest-xdist\u003c/code\u003e happy again (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/304\"\u003e#304\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/010a2c2904755e66a2271bc15ff268e628923ec1\"\u003e\u003ccode\u003e010a2c2\u003c/code\u003e\u003c/a\u003e Back to development: 16.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/34a87e464a5228a5fd416102702c6b3b3b463b9b\"\u003e\u003ccode\u003e34a87e4\u003c/code\u003e\u003c/a\u003e Preparing release 16.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/9a889596964101fbd92d3a2aecb6af5e37506550\"\u003e\u003ccode\u003e9a88959\u003c/code\u003e\u003c/a\u003e Add support for Python 3.14 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/301\"\u003e#301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/5dc2e6e0b3dc7efe611a541c56a38bc09f5428d7\"\u003e\u003ccode\u003e5dc2e6e\u003c/code\u003e\u003c/a\u003e Remove outdated fixtures description in README (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/291\"\u003e#291\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/da8ea4861012a7d980c5153bff0f196b523c734f\"\u003e\u003ccode\u003eda8ea48\u003c/code\u003e\u003c/a\u003e Drop support for pytest \u0026lt; 8, add support for pytest 8.4.x. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/300\"\u003e#300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/72f29f34abc55a5eb1694d48f2302c00b991cddb\"\u003e\u003ccode\u003e72f29f3\u003c/code\u003e\u003c/a\u003e Add Priority to README (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/296\"\u003e#296\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/bd8cb4d92025f228b84cd87d6f6e5a1687b927ef\"\u003e\u003ccode\u003ebd8cb4d\u003c/code\u003e\u003c/a\u003e Allow to pass a callable condition to the \u003ccode\u003eflaky\u003c/code\u003e marker (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/299\"\u003e#299\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/compare/15.0...16.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `types-setuptools` from 75.8.2.20250301 to 80.9.0.20250822\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/typeshed-internal/stub_uploader/commits\"\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/hong880226/paperless-ngx/pull/61","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/hong880226%2Fpaperless-ngx/issues/61","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/61/packages"},{"uuid":"2868629639","node_id":"PR_kwDOOhicjM6q-9CH","number":74,"state":"open","title":"Chore(deps): Bump the major-versions group across 1 directory with 5 updates","user":"dependabot[bot]","labels":["dependencies","backend"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-29T00:31:34.000Z","updated_at":"2025-09-29T00:31:35.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Chore(deps): Bump","group_name":"major-versions","update_count":5,"packages":[{"name":"django-guardian","old_version":"2.4.0","new_version":"3.2.0","repository_url":"https://github.com/django-guardian/django-guardian"},{"name":"django-multiselectfield","old_version":"0.1.13","new_version":"1.0.1","repository_url":"https://github.com/goinnn/django-multiselectfield"},{"name":"pytest-cov","old_version":"6.0.0","new_version":"7.0.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"pytest-rerunfailures","old_version":"15.0","new_version":"16.0.1","repository_url":"https://github.com/pytest-dev/pytest-rerunfailures"},{"name":"types-setuptools","old_version":"75.8.2.20250301","new_version":"80.9.0.20250822","repository_url":"https://github.com/typeshed-internal/stub_uploader"}],"path":null,"ecosystem":"conda"},"body":"Bumps the major-versions group with 5 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [django-guardian](https://github.com/django-guardian/django-guardian) | `2.4.0` | `3.2.0` |\n| [django-multiselectfield](https://github.com/goinnn/django-multiselectfield) | `0.1.13` | `1.0.1` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `6.0.0` | `7.0.0` |\n| [pytest-rerunfailures](https://github.com/pytest-dev/pytest-rerunfailures) | `15.0` | `16.0.1` |\n| [types-setuptools](https://github.com/typeshed-internal/stub_uploader) | `75.8.2.20250301` | `80.9.0.20250822` |\n\n\nUpdates `django-guardian` from 2.4.0 to 3.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-guardian/django-guardian/releases\"\u003edjango-guardian's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.2.0 The Bozkir progression\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate enforcement contact link in CODE_OF_CONDUCT.md by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/918\"\u003edjango-guardian/django-guardian#918\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptional cached anonymous user  - Pr 907 by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/912\"\u003edjango-guardian/django-guardian#912\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003egenerator warnings and logics are added for security purposes by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/920\"\u003edjango-guardian/django-guardian#920\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erollback compatible create anon user fix is developed by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/919\"\u003edjango-guardian/django-guardian#919\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e644 using inlines in django admin with guardian by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/921\"\u003edjango-guardian/django-guardian#921\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-guardian/django-guardian/compare/3.1.3...3.2.0\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.3...3.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.1.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edjango-packages badge is added by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/910\"\u003edjango-guardian/django-guardian#910\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate issue templates by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/909\"\u003edjango-guardian/django-guardian#909\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMakefile support by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/906\"\u003edjango-guardian/django-guardian#906\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePR merging scenario is fixed by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/913\"\u003edjango-guardian/django-guardian#913\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed issue causing prefetch_perms() to throw when passed an empty list by \u003ca href=\"https://github.com/keattang\"\u003e\u003ccode\u003e@​keattang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/904\"\u003edjango-guardian/django-guardian#904\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRe apply \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/812\"\u003e#812\u003c/a\u003e using correct lookup method by \u003ca href=\"https://github.com/sevdog\"\u003e\u003ccode\u003e@​sevdog\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/842\"\u003edjango-guardian/django-guardian#842\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOPS: Bump version for release by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/915\"\u003edjango-guardian/django-guardian#915\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-guardian/django-guardian/compare/3.1.2...3.1.3\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.2...3.1.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.1.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.0 in /.github/workflows 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-guardian/django-guardian/pull/903\"\u003edjango-guardian/django-guardian#903\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix type and deprecate old name by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/902\"\u003edjango-guardian/django-guardian#902\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/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/903\"\u003edjango-guardian/django-guardian#903\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-guardian/django-guardian/compare/3.1.1...3.1.2\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.1...3.1.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epre-commit checker step is added by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/901\"\u003edjango-guardian/django-guardian#901\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-guardian/django-guardian/compare/3.1.0...3.1.1\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.0...3.1.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eImproved indexing, tweaks and bugfixes\u003c/h2\u003e\n\u003ch2\u003eSaving the 🌳🌳🌳 and the 💰💰💰\u003c/h2\u003e\n\u003cp\u003e⚠️⚠️⚠️ \u003cstrong\u003eWARNING:\u003c/strong\u003e This release contains an update to database indexing which should yield \u003cstrong\u003econsiderable additional performance\u003c/strong\u003e, especially on large table permissions lookups (thanks \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e for such rigorous performance testing!!!). Following the migration that introduces these indexes, databases should reindex automatically in the background (typically within 0-30s even for large tables): this is unlikely to be noticeable but users may experience a short lived performance hit during this period.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow ignore_conflicts on bulk create by \u003ca href=\"https://github.com/pgiki\"\u003e\u003ccode\u003e@​pgiki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/814\"\u003edjango-guardian/django-guardian#814\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/django-guardian/django-guardian/commit/4120d00c28c1b6d3bacb988f6db86bacf91ed0f1\"\u003e\u003ccode\u003e4120d00\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/921\"\u003e#921\u003c/a\u003e from django-guardian/644-using-inlines-in-django-admi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/c896b220bdf96783f1c25d730f12ebef95758c99\"\u003e\u003ccode\u003ec896b22\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/919\"\u003e#919\u003c/a\u003e from django-guardian/770-migration-rollback-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/3814e2383c69266350a3d885d445bdd79da8cb78\"\u003e\u003ccode\u003e3814e23\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 770-migration-rollback-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/94854899f4a030b42840837e08b42923a71c5b78\"\u003e\u003ccode\u003e9485489\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/920\"\u003e#920\u003c/a\u003e from django-guardian/666-permissionrequiredmixin-does...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/e01e2e1edeec60b2c79d561db56e0949ea3c4dad\"\u003e\u003ccode\u003ee01e2e1\u003c/code\u003e\u003c/a\u003e check only username field fixing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/e1ae3c5a7ab74a679ef1ccff2a480a88117df464\"\u003e\u003ccode\u003ee1ae3c5\u003c/code\u003e\u003c/a\u003e show warning instead of error for backward compatibility and giving time the ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/63c10f549dfe2b5ba67e9eec36095cf3e6a2bab8\"\u003e\u003ccode\u003e63c10f5\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 644-using-inlines-in-django-admin-with-guardian\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/b27ebbdcc7f9952d9d9aaaa879b5e202063ccaa8\"\u003e\u003ccode\u003eb27ebbd\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 666-permissionrequiredmixin-does-not-warn-against-us...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/d7ed4a3bccb730d3cdf16fdc404f25b94674c653\"\u003e\u003ccode\u003ed7ed4a3\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 770-migration-rollback-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/03fed6924e06fd13991d9e8ae1b4590addf5473e\"\u003e\u003ccode\u003e03fed69\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/912\"\u003e#912\u003c/a\u003e from django-guardian/pr-907\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-guardian/django-guardian/compare/v2.4.0...3.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-multiselectfield` from 0.1.13 to 1.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/goinnn/django-multiselectfield/releases\"\u003edjango-multiselectfield's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBadge image worked on GitHub but was broken on PyPI — fixed it.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.0\u003c/h2\u003e\n\u003cp\u003eThis release introduces multiple changes that are incompatible with previous versions.\u003c/p\u003e\n\u003cp\u003eThe major version number has been incremented following \u003ccode\u003eSemantic Versioning (SemVer) \u0026lt;https://semver.org/\u0026gt;\u003c/code\u003e_, as several components of the package have changed in ways that may require updates in client code.\u003c/p\u003e\n\u003cp\u003eThe internal codebase has been significantly cleaned up and reorganized, making it more maintainable and consistent.\u003c/p\u003e\n\u003cp\u003eThis version contains \u003cstrong\u003e40% fewer lines of code\u003c/strong\u003e compared to the previous release.\u003c/p\u003e\n\u003cp\u003eLess code means fewer bugs, easier maintenance, and better long-term sustainability.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFList (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\"\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2\u003c/a\u003e):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/50d3f785883e0a314f2dc89950e3fe1e88a7ede6\"\u003e50d3f785883e0a314f2dc89950e3fe1e88a7ede6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIt was created to support MultiSelectFields in admin.list_display, but it never actually worked. If you add a multiselect field to list_display, Django does not call to \u003cstrong\u003estr\u003c/strong\u003e method of MSGList (renamed to MSFList)\u003c/li\u003e\n\u003cli\u003eIt was created for integer choices too and it is a misconception. This is explained in the README file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFFlatchoices (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\"\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2\u003c/a\u003e):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/5638247c1d70670d4f81adf35143ef17a7d7575e\"\u003e5638247c1d70670d4f81adf35143ef17a7d7575e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIn list_display, labels for the choices are now shown (comma-separated) instead of the values of the choices (comma-separated).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn to_python method, value is a list or a string. (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/c4579138dda2833cbce26afbf57da5353aa45690\"\u003ec4579138dda2833cbce26afbf57da5353aa45690\u003c/a\u003e)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove set case and dict case\u003c/li\u003e\n\u003cli\u003eIf this breaks something, please create a test to help understand the use case.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoving integer choices:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIt was a mistake. MultiSelectField inherits of CharField, not IntegerField.\u003c/li\u003e\n\u003cli\u003eIt is impossible knows if original choice is (1, 'Item title 2.1') or ('1', 'Item title 2.1')\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: Form instance generated twice since Django  (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/168\"\u003e#168\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix CSS admin:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/173\"\u003e#173\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/7711f4aa755c81d00f07ce8a6ff0fd9240061f9c\"\u003e7711f4aa755c81d00f07ce8a6ff0fd9240061f9c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix Properly Display Categorized Choices in get_FOO_display (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/169\"\u003e#169\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSortMultiSelectField: (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/172\"\u003e#172\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/goinnn/django-multiselectfield/blob/master/CHANGES.rst\"\u003edjango-multiselectfield's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.0.1 (2025-06-12)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBadge image worked on GitHub but was broken on PyPI — fixed it.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.0.0 (2025-06-12)\u003c/h2\u003e\n\u003cp\u003eThis release introduces multiple changes that are incompatible with previous versions.\u003c/p\u003e\n\u003cp\u003eThe major version number has been incremented following \u003ccode\u003eSemantic Versioning (SemVer) \u0026lt;https://semver.org/\u0026gt;\u003c/code\u003e_, as several components of the package have changed in ways that may require updates in client code.\u003c/p\u003e\n\u003cp\u003eThe internal codebase has been significantly cleaned up and reorganized, making it more maintainable and consistent.\u003c/p\u003e\n\u003cp\u003eThis version contains \u003cstrong\u003e40% fewer lines of code\u003c/strong\u003e compared to the previous release.\u003c/p\u003e\n\u003cp\u003eLess code means fewer bugs, easier maintenance, and better long-term sustainability.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFList (\u003ccode\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\u0026gt;\u003c/code\u003e_):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ccode\u003e50d3f785883e0a314f2dc89950e3fe1e88a7ede6 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/50d3f785883e0a314f2dc89950e3fe1e88a7ede6\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eIt was created to support MultiSelectFields in admin.list_display, but it never actually worked. If you add a multiselect field to list_display, Django does not call to \u003cstrong\u003estr\u003c/strong\u003e method of MSGList (renamed to MSFList)\u003c/li\u003e\n\u003cli\u003eIt was created for integer choices too and it is a misconception. This is explained in the README file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFFlatchoices (\u003ccode\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\u0026gt;\u003c/code\u003e_):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ccode\u003e5638247c1d70670d4f81adf35143ef17a7d7575e \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/5638247c1d70670d4f81adf35143ef17a7d7575e\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eIn list_display, labels for the choices are now shown (comma-separated) instead of the values of the choices (comma-separated).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn to_python method, value is a list or a string. (\u003ccode\u003ec4579138dda2833cbce26afbf57da5353aa45690 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/c4579138dda2833cbce26afbf57da5353aa45690\u0026gt;\u003c/code\u003e_)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove set case and dict case\u003c/li\u003e\n\u003cli\u003eIf this breaks something, please create a test to help understand the use case.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoving integer choices:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIt was a mistake. MultiSelectField inherits of CharField, not IntegerField.\u003c/li\u003e\n\u003cli\u003eIt is impossible knows if original choice is (1, 'Item title 2.1') or ('1', 'Item title 2.1')\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: Form instance generated twice since Django  (\u003ccode\u003e[#168](https://github.com/goinnn/django-multiselectfield/issues/168) \u0026lt;https://github.com/goinnn/django-multiselectfield/pull/168\u0026gt;\u003c/code\u003e_)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix CSS admin:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ccode\u003e[#173](https://github.com/goinnn/django-multiselectfield/issues/173) \u0026lt;https://github.com/goinnn/django-multiselectfield/pull/173\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003e(\u003ccode\u003e7711f4aa755c81d00f07ce8a6ff0fd9240061f9c \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/7711f4aa755c81d00f07ce8a6ff0fd9240061f9c\u0026gt;\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/goinnn/django-multiselectfield/commit/679bac60a5156b26c608972a1b4a576b7010e6c2\"\u003e\u003ccode\u003e679bac6\u003c/code\u003e\u003c/a\u003e Ready to new release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/bef25142b5f266164185ec3de4abdfcf91c3e89d\"\u003e\u003ccode\u003ebef2514\u003c/code\u003e\u003c/a\u003e Ready to new release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/9a564a35581f89c35279ebfa20a2d693b3d23d73\"\u003e\u003ccode\u003e9a564a3\u003c/code\u003e\u003c/a\u003e Add image from github (pypi broken)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/f2b3186c1da7f50abf68b8e11e1d54c2683e2b34\"\u003e\u003ccode\u003ef2b3186\u003c/code\u003e\u003c/a\u003e Fix typo error\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/72894698f191aeddd5364977365c6c2c88a5ac53\"\u003e\u003ccode\u003e7289469\u003c/code\u003e\u003c/a\u003e Fix another pypi error\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/f17a82819157736ff0378f57c8bb114060f4f803\"\u003e\u003ccode\u003ef17a828\u003c/code\u003e\u003c/a\u003e Improve readme file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/d9e2b979f5f37fea812b39a90247e1afd5314415\"\u003e\u003ccode\u003ed9e2b97\u003c/code\u003e\u003c/a\u003e Fix error uploading to pypi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/a387bc619d95a1e61da4ad7e7b0d319429322243\"\u003e\u003ccode\u003ea387bc6\u003c/code\u003e\u003c/a\u003e Ready to new release. The major version number has been incremented because t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/4fc13699678de3bdbe6c7299c6fdbfb901ca08f6\"\u003e\u003ccode\u003e4fc1369\u003c/code\u003e\u003c/a\u003e If the choices are Proxy str (i18n) patched_display_for_field gets an error\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/8bafbdbd9db515206b1fef6ec7263d9b485c2c31\"\u003e\u003ccode\u003e8bafbdb\u003c/code\u003e\u003c/a\u003e Add static files to package\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/goinnn/django-multiselectfield/compare/v0.1.13...v1.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-cov` from 6.0.0 to 7.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst\"\u003epytest-cov's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.0.0 (2025-09-09)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped support for subprocesses measurement.\u003c/p\u003e\n\u003cp\u003eIt was a feature added long time ago when coverage lacked a nice way to measure subprocesses created in tests.\nIt relied on a \u003ccode\u003e.pth\u003c/code\u003e file, there was no way to opt-out and it created bad interations\nwith \u003ccode\u003ecoverage's new patch system \u0026lt;https://coverage.readthedocs.io/en/latest/config.html#run-patch\u0026gt;\u003c/code\u003e_ added\nin \u003ccode\u003e7.10 \u0026lt;https://coverage.readthedocs.io/en/7.10.6/changes.html#version-7-10-0-2025-07-24\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003cp\u003eTo migrate to this release you might need to enable the suprocess patch, example for \u003ccode\u003e.coveragerc\u003c/code\u003e:\u003c/p\u003e\n\u003cp\u003e.. code-block:: ini\u003c/p\u003e\n\u003cp\u003e[run]\npatch = subprocess\u003c/p\u003e\n\u003cp\u003eThis release also requires at least coverage 7.10.6.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSwitched packaging to have metadata completely in \u003ccode\u003epyproject.toml\u003c/code\u003e and use \u003ccode\u003ehatchling \u0026lt;https://pypi.org/project/hatchling/\u0026gt;\u003c/code\u003e_ for\nbuilding.\nContributed by Ofek Lev in \u003ccode\u003e[#551](https://github.com/pytest-dev/pytest-cov/issues/551) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/551\u0026gt;\u003c/code\u003e_\nwith some extras in \u003ccode\u003e[#716](https://github.com/pytest-dev/pytest-cov/issues/716) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/716\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved some not really necessary testing deps like \u003ccode\u003esix\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.3.0 (2025-09-06)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for markdown reports.\nContributed by Marcos Boger in \u003ccode\u003e[#712](https://github.com/pytest-dev/pytest-cov/issues/712) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/712\u0026gt;\u003c/code\u003e_\nand \u003ccode\u003e[#714](https://github.com/pytest-dev/pytest-cov/issues/714) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/714\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eFixed some formatting issues in docs.\nAnonymous contribution in \u003ccode\u003e[#706](https://github.com/pytest-dev/pytest-cov/issues/706) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/706\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.2.1 (2025-06-12)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a version requirement for pytest's pluggy dependency (1.2.0, released 2023-06-21) that has the required new-style hookwrapper API.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved deprecated license classifier (packaging).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDisabled coverage warnings in two more situations where they have no value:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u0026quot;module-not-measured\u0026quot; in workers\u003c/li\u003e\n\u003cli\u003e\u0026quot;already-imported\u0026quot; in subprocesses\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.2.0 (2025-06-11)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eThe plugin now adds 3 rules in the filter warnings configuration to prevent common coverage warnings being raised as obscure errors::\u003c/p\u003e\n\u003cp\u003edefault:unclosed database in \u0026lt;sqlite3.Connection object at:ResourceWarning\nonce::PytestCovWarning\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/pytest-dev/pytest-cov/commit/224d8964caad90074a8cf6dc8720b8f70f31629b\"\u003e\u003ccode\u003e224d896\u003c/code\u003e\u003c/a\u003e Bump version: 6.3.0 → 7.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/73424e3999f865eac72e27f09d5fe11b9703cfd6\"\u003e\u003ccode\u003e73424e3\u003c/code\u003e\u003c/a\u003e Cleanup the docs a bit.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/36f1cc2967831dbd4c8aa70086fc86dc495f8b9a\"\u003e\u003ccode\u003e36f1cc2\u003c/code\u003e\u003c/a\u003e Bump pins in template.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/f299c590a63a48e51e3ae949993dc7bb1f1d480d\"\u003e\u003ccode\u003ef299c59\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 2 updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/25f0b2e0cdbc345c0d3e49170f7a328c3e0d805f\"\u003e\u003ccode\u003e25f0b2e\u003c/code\u003e\u003c/a\u003e Update docs/config.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/bb23eacc5531fb8f499213d8420407e0d72f88e3\"\u003e\u003ccode\u003ebb23eac\u003c/code\u003e\u003c/a\u003e Improve configuration docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/a19531e91e1ab753ccf648a2d9bab08a6fddebb9\"\u003e\u003ccode\u003ea19531e\u003c/code\u003e\u003c/a\u003e Switch from build/pre-commit to uv/prek - this should make this faster.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/82f999391073f2fb8ae422af452602f310086a2a\"\u003e\u003ccode\u003e82f9993\u003c/code\u003e\u003c/a\u003e Update changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/211b5cd41c29916bc643b4a11b00578ba4fd6fe8\"\u003e\u003ccode\u003e211b5cd\u003c/code\u003e\u003c/a\u003e Fix links.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/97aadd74bcbc00a2078d240e8fe871dd62b83d80\"\u003e\u003ccode\u003e97aadd7\u003c/code\u003e\u003c/a\u003e Update some ci config, reformat and apply some lint fixes.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-cov/compare/v6.0.0...v7.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-rerunfailures` from 15.0 to 16.0.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/blob/master/CHANGES.rst\"\u003epytest-rerunfailures's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e16.0.1 (2025-09-02)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReverted the ability to access error attributes because of an incompatibility\nwith \u003ccode\u003epytest-xdist \u0026lt;https://github.com/pytest-dev/pytest-xdist/issues/843\u0026gt;\u003c/code\u003e\u003cem\u003e.\nFixes \u003ccode\u003e[#302](https://github.com/pytest-dev/pytest-rerunfailures/issues/302) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/302\u0026gt;\u003c/code\u003e\u003c/em\u003e,\n\u003ccode\u003e[#303](https://github.com/pytest-dev/pytest-rerunfailures/issues/303) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/303\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e16.0 (2025-08-29)\u003c/h2\u003e\n\u003cp\u003eBreaking changes\n++++++++++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for pytest \u0026lt; 8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFeatures\n++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd support for pytest 8.4.x.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd support for upcoming Python 3.14.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow \u003ccode\u003e@pytest.mark.flaky(condition)\u003c/code\u003e to accept a callable or a string\nto be evaluated. The evaluated string has access to the exception instance\nvia the \u003ccode\u003eerror\u003c/code\u003e object.\n(\u003ccode\u003e[#230](https://github.com/pytest-dev/pytest-rerunfailures/issues/230) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/230\u0026gt;\u003c/code\u003e_)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e15.1 (2025-05-08)\u003c/h2\u003e\n\u003cp\u003eBug fixes\n+++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003e--fail-on-flaky\u003c/code\u003e option to fail the test run with custom exit code\nonly when reruns are detected.\n(\u003ccode\u003e[#287](https://github.com/pytest-dev/pytest-rerunfailures/issues/287) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/287\u0026gt;\u003c/code\u003e_)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSwitched to using the SPDX license identifier in the project metadata.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eOther changes\n+++++++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eChange exception filtering logic to match \u003ccode\u003eAssertionError\u003c/code\u003e raised via\n\u003ccode\u003eassert\u003c/code\u003e statements when filtering by \u0026quot;AssertionError\u0026quot;.\n(\u003ccode\u003e[#292](https://github.com/pytest-dev/pytest-rerunfailures/issues/292) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/292\u0026gt;\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/pytest-dev/pytest-rerunfailures/commit/f97618f95c630af28bbecacc83fc8715146bfa57\"\u003e\u003ccode\u003ef97618f\u003c/code\u003e\u003c/a\u003e Preparing release 16.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/c60d17dee372d5ad935d6da35c6e13ba2d34018d\"\u003e\u003ccode\u003ec60d17d\u003c/code\u003e\u003c/a\u003e Prepare release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/91b0b043f3923b429dd9573536eeebc20dbe8996\"\u003e\u003ccode\u003e91b0b04\u003c/code\u003e\u003c/a\u003e Make \u003ccode\u003epytest-xdist\u003c/code\u003e happy again (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/304\"\u003e#304\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/010a2c2904755e66a2271bc15ff268e628923ec1\"\u003e\u003ccode\u003e010a2c2\u003c/code\u003e\u003c/a\u003e Back to development: 16.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/34a87e464a5228a5fd416102702c6b3b3b463b9b\"\u003e\u003ccode\u003e34a87e4\u003c/code\u003e\u003c/a\u003e Preparing release 16.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/9a889596964101fbd92d3a2aecb6af5e37506550\"\u003e\u003ccode\u003e9a88959\u003c/code\u003e\u003c/a\u003e Add support for Python 3.14 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/301\"\u003e#301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/5dc2e6e0b3dc7efe611a541c56a38bc09f5428d7\"\u003e\u003ccode\u003e5dc2e6e\u003c/code\u003e\u003c/a\u003e Remove outdated fixtures description in README (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/291\"\u003e#291\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/da8ea4861012a7d980c5153bff0f196b523c734f\"\u003e\u003ccode\u003eda8ea48\u003c/code\u003e\u003c/a\u003e Drop support for pytest \u0026lt; 8, add support for pytest 8.4.x. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/300\"\u003e#300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/72f29f34abc55a5eb1694d48f2302c00b991cddb\"\u003e\u003ccode\u003e72f29f3\u003c/code\u003e\u003c/a\u003e Add Priority to README (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/296\"\u003e#296\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/bd8cb4d92025f228b84cd87d6f6e5a1687b927ef\"\u003e\u003ccode\u003ebd8cb4d\u003c/code\u003e\u003c/a\u003e Allow to pass a callable condition to the \u003ccode\u003eflaky\u003c/code\u003e marker (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/299\"\u003e#299\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/compare/15.0...16.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `types-setuptools` from 75.8.2.20250301 to 80.9.0.20250822\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/typeshed-internal/stub_uploader/commits\"\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/mooncitydev/paperless-ngx/pull/74","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/mooncitydev%2Fpaperless-ngx/issues/74","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/74/packages"},{"uuid":"3441650328","node_id":"PR_kwDOKoYLLM6p4T-h","number":170,"state":"open","title":"Bump the major-versions group across 1 directory with 16 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":"NONE","state_reason":null,"created_at":"2025-09-22T15:55:50.000Z","updated_at":"2025-09-29T16:21:16.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"major-versions","update_count":16,"packages":[{"name":"django","old_version":"4.2.6","new_version":"4.2.24"},{"name":"django-guardian","old_version":"2.4.0","new_version":"3.2.0","repository_url":"https://github.com/django-guardian/django-guardian"},{"name":"django-extensions","old_version":"3.2.3","new_version":"4.1","repository_url":"https://github.com/django-extensions/django-extensions"},{"name":"django-filter","old_version":"23.3","new_version":"25.1","repository_url":"https://github.com/carltongibson/django-filter"},{"name":"gunicorn","old_version":"21.2.0","new_version":"23.0.0","repository_url":"https://github.com/benoitc/gunicorn"},{"name":"python-ipware","old_version":"2.0.0","new_version":"3.0.0","repository_url":"https://github.com/un33k/python-ipware"},{"name":"redis","old_version":"4.6.0","new_version":"5.2.1","repository_url":"https://github.com/redis/redis-py"},{"name":"watchdog","old_version":"3.0.0","new_version":"6.0.0","repository_url":"https://github.com/gorakhargosh/watchdog"},{"name":"ocrmypdf","old_version":"14.4.0","new_version":"15.4.4","repository_url":"https://github.com/ocrmypdf/OCRmyPDF"},{"name":"django-multiselectfield","old_version":"0.1.12","new_version":"1.0.1","repository_url":"https://github.com/goinnn/django-multiselectfield"},{"name":"django-auditlog","old_version":"2.3.0","new_version":"3.2.1","repository_url":"https://github.com/jazzband/django-auditlog"},{"name":"pre-commit","old_version":"3.4.0","new_version":"4.3.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pytest","old_version":"7.4.2","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-cov","old_version":"4.1.0","new_version":"7.0.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"pytest-sugar","old_version":"0.9.7","new_version":"1.1.1","repository_url":"https://github.com/Teemu/pytest-sugar"},{"name":"pytest-rerunfailures","old_version":"12.0","new_version":"16.0.1","repository_url":"https://github.com/pytest-dev/pytest-rerunfailures"}],"path":null,"ecosystem":"conda"},"body":"[//]: # (dependabot-start)\n⚠️  **Dependabot is rebasing this PR** ⚠️ \n\nRebasing might not happen immediately, so don't worry if this takes some time.\n\nNote: if you make any changes to this PR yourself, they will take precedence over the rebase.\n\n---\n\n[//]: # (dependabot-end)\n\nBumps the major-versions group with 16 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| django | `4.2.6` | `4.2.24` |\n| [django-guardian](https://github.com/django-guardian/django-guardian) | `2.4.0` | `3.2.0` |\n| [django-extensions](https://github.com/django-extensions/django-extensions) | `3.2.3` | `4.1` |\n| [django-filter](https://github.com/carltongibson/django-filter) | `23.3` | `25.1` |\n| [gunicorn](https://github.com/benoitc/gunicorn) | `21.2.0` | `23.0.0` |\n| [python-ipware](https://github.com/un33k/python-ipware) | `2.0.0` | `3.0.0` |\n| [redis](https://github.com/redis/redis-py) | `4.6.0` | `5.2.1` |\n| [watchdog](https://github.com/gorakhargosh/watchdog) | `3.0.0` | `6.0.0` |\n| [ocrmypdf](https://github.com/ocrmypdf/OCRmyPDF) | `14.4.0` | `15.4.4` |\n| [django-multiselectfield](https://github.com/goinnn/django-multiselectfield) | `0.1.12` | `1.0.1` |\n| [django-auditlog](https://github.com/jazzband/django-auditlog) | `2.3.0` | `3.2.1` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `3.4.0` | `4.3.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `7.4.2` | `8.4.2` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `4.1.0` | `7.0.0` |\n| [pytest-sugar](https://github.com/Teemu/pytest-sugar) | `0.9.7` | `1.1.1` |\n| [pytest-rerunfailures](https://github.com/pytest-dev/pytest-rerunfailures) | `12.0` | `16.0.1` |\n\n\nUpdates `django` from 4.2.6 to 4.2.24\n\nUpdates `django-guardian` from 2.4.0 to 3.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-guardian/django-guardian/releases\"\u003edjango-guardian's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.2.0 The Bozkir progression\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate enforcement contact link in CODE_OF_CONDUCT.md by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/918\"\u003edjango-guardian/django-guardian#918\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptional cached anonymous user  - Pr 907 by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/912\"\u003edjango-guardian/django-guardian#912\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003egenerator warnings and logics are added for security purposes by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/920\"\u003edjango-guardian/django-guardian#920\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erollback compatible create anon user fix is developed by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/919\"\u003edjango-guardian/django-guardian#919\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e644 using inlines in django admin with guardian by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/921\"\u003edjango-guardian/django-guardian#921\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-guardian/django-guardian/compare/3.1.3...3.2.0\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.3...3.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.1.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edjango-packages badge is added by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/910\"\u003edjango-guardian/django-guardian#910\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate issue templates by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/909\"\u003edjango-guardian/django-guardian#909\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMakefile support by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/906\"\u003edjango-guardian/django-guardian#906\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePR merging scenario is fixed by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/913\"\u003edjango-guardian/django-guardian#913\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed issue causing prefetch_perms() to throw when passed an empty list by \u003ca href=\"https://github.com/keattang\"\u003e\u003ccode\u003e@​keattang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/904\"\u003edjango-guardian/django-guardian#904\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRe apply \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/812\"\u003e#812\u003c/a\u003e using correct lookup method by \u003ca href=\"https://github.com/sevdog\"\u003e\u003ccode\u003e@​sevdog\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/842\"\u003edjango-guardian/django-guardian#842\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOPS: Bump version for release by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/915\"\u003edjango-guardian/django-guardian#915\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-guardian/django-guardian/compare/3.1.2...3.1.3\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.2...3.1.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.1.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.0 in /.github/workflows 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-guardian/django-guardian/pull/903\"\u003edjango-guardian/django-guardian#903\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix type and deprecate old name by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/902\"\u003edjango-guardian/django-guardian#902\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/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/903\"\u003edjango-guardian/django-guardian#903\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-guardian/django-guardian/compare/3.1.1...3.1.2\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.1...3.1.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epre-commit checker step is added by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/901\"\u003edjango-guardian/django-guardian#901\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-guardian/django-guardian/compare/3.1.0...3.1.1\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.0...3.1.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eImproved indexing, tweaks and bugfixes\u003c/h2\u003e\n\u003ch2\u003eSaving the 🌳🌳🌳 and the 💰💰💰\u003c/h2\u003e\n\u003cp\u003e⚠️⚠️⚠️ \u003cstrong\u003eWARNING:\u003c/strong\u003e This release contains an update to database indexing which should yield \u003cstrong\u003econsiderable additional performance\u003c/strong\u003e, especially on large table permissions lookups (thanks \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e for such rigorous performance testing!!!). Following the migration that introduces these indexes, databases should reindex automatically in the background (typically within 0-30s even for large tables): this is unlikely to be noticeable but users may experience a short lived performance hit during this period.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow ignore_conflicts on bulk create by \u003ca href=\"https://github.com/pgiki\"\u003e\u003ccode\u003e@​pgiki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/814\"\u003edjango-guardian/django-guardian#814\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/django-guardian/django-guardian/commit/4120d00c28c1b6d3bacb988f6db86bacf91ed0f1\"\u003e\u003ccode\u003e4120d00\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/921\"\u003e#921\u003c/a\u003e from django-guardian/644-using-inlines-in-django-admi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/c896b220bdf96783f1c25d730f12ebef95758c99\"\u003e\u003ccode\u003ec896b22\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/919\"\u003e#919\u003c/a\u003e from django-guardian/770-migration-rollback-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/3814e2383c69266350a3d885d445bdd79da8cb78\"\u003e\u003ccode\u003e3814e23\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 770-migration-rollback-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/94854899f4a030b42840837e08b42923a71c5b78\"\u003e\u003ccode\u003e9485489\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/920\"\u003e#920\u003c/a\u003e from django-guardian/666-permissionrequiredmixin-does...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/e01e2e1edeec60b2c79d561db56e0949ea3c4dad\"\u003e\u003ccode\u003ee01e2e1\u003c/code\u003e\u003c/a\u003e check only username field fixing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/e1ae3c5a7ab74a679ef1ccff2a480a88117df464\"\u003e\u003ccode\u003ee1ae3c5\u003c/code\u003e\u003c/a\u003e show warning instead of error for backward compatibility and giving time the ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/63c10f549dfe2b5ba67e9eec36095cf3e6a2bab8\"\u003e\u003ccode\u003e63c10f5\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 644-using-inlines-in-django-admin-with-guardian\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/b27ebbdcc7f9952d9d9aaaa879b5e202063ccaa8\"\u003e\u003ccode\u003eb27ebbd\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 666-permissionrequiredmixin-does-not-warn-against-us...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/d7ed4a3bccb730d3cdf16fdc404f25b94674c653\"\u003e\u003ccode\u003ed7ed4a3\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 770-migration-rollback-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/03fed6924e06fd13991d9e8ae1b4590addf5473e\"\u003e\u003ccode\u003e03fed69\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/912\"\u003e#912\u003c/a\u003e from django-guardian/pr-907\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-guardian/django-guardian/compare/v2.4.0...3.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-extensions` from 3.2.3 to 4.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-extensions/django-extensions/releases\"\u003edjango-extensions's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd: show_permissions command (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1920\"\u003e#1920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, style per app (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1848\"\u003e#1848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: JSONField, bulk_update's (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1924\"\u003e#1924\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/ahmad88me\"\u003e\u003ccode\u003e@​ahmad88me\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1848\"\u003edjango-extensions/django-extensions#1848\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-extensions/django-extensions/compare/4.0...4.1\"\u003ehttps://github.com/django-extensions/django-extensions/compare/4.0...4.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprovement: Support for Python 3.12 and 3.13\u003c/li\u003e\n\u003cli\u003eImprovement: Support for Django 5.x\u003c/li\u003e\n\u003cli\u003eImprovement: Switch from setup.{cfg,py} to pyproject.toml\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Add option to display field choices in graph_models (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1854\"\u003e#1854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Add webp support (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1857\"\u003e#1857\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Support for ordering edges on pydot/dot/graphviz (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1914\"\u003e#1914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: mail_debug, Update mail_debug command to use aiosmtpd (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1880\"\u003e#1880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: shell_plus, Improve error message for missing import (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1898\"\u003e#1898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: reset_db, Add reset_db support for django_tenants (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1855\"\u003e#1855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: docs, various improvements (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1852\"\u003e#1852\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1888\"\u003e#1888\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1882\"\u003e#1882\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1901\"\u003e#1901\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1912\"\u003e#1912\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1913\"\u003e#1913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: jobs, Handle non-package modules when looking for job definitions (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1887\"\u003e#1887\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: Add django-prometheus DB backends support (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1800\"\u003e#1800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: Call post_command when the command raises an unhandled exception (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1837\"\u003e#1837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: sqldiff, do not consider ('serial', 'integer') nor ('bigserial', 'bigint') as a field-type-differ (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1867\"\u003e#1867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: shell_plus, Fix start up order and add history (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1869\"\u003e#1869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove pipchecker and associated tests (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1906\"\u003e#1906\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFollowing Django's release numbering style more closely (see \u003ca href=\"https://docs.djangoproject.com/en/5.2/internals/release-process/\"\u003ehttps://docs.djangoproject.com/en/5.2/internals/release-process/\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/dimitrismistriotis\"\u003e\u003ccode\u003e@​dimitrismistriotis\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1859\"\u003edjango-extensions/django-extensions#1859\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/titouanc\"\u003e\u003ccode\u003e@​titouanc\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1854\"\u003edjango-extensions/django-extensions#1854\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dmwyatt\"\u003e\u003ccode\u003e@​dmwyatt\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1872\"\u003edjango-extensions/django-extensions#1872\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stianjensen\"\u003e\u003ccode\u003e@​stianjensen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1898\"\u003edjango-extensions/django-extensions#1898\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PapaZ810\"\u003e\u003ccode\u003e@​PapaZ810\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1888\"\u003edjango-extensions/django-extensions#1888\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kviktor\"\u003e\u003ccode\u003e@​kviktor\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1857\"\u003edjango-extensions/django-extensions#1857\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aripollak\"\u003e\u003ccode\u003e@​aripollak\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1913\"\u003edjango-extensions/django-extensions#1913\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/flowgunso\"\u003e\u003ccode\u003e@​flowgunso\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1914\"\u003edjango-extensions/django-extensions#1914\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anitahammer\"\u003e\u003ccode\u003e@​anitahammer\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1869\"\u003edjango-extensions/django-extensions#1869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nicolaspanel\"\u003e\u003ccode\u003e@​nicolaspanel\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1867\"\u003edjango-extensions/django-extensions#1867\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yujinyuz\"\u003e\u003ccode\u003e@​yujinyuz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1855\"\u003edjango-extensions/django-extensions#1855\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/soof-golan\"\u003e\u003ccode\u003e@​soof-golan\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1852\"\u003edjango-extensions/django-extensions#1852\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ghickman\"\u003e\u003ccode\u003e@​ghickman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1887\"\u003edjango-extensions/django-extensions#1887\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jrobichaud\"\u003e\u003ccode\u003e@​jrobichaud\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1837\"\u003edjango-extensions/django-extensions#1837\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-extensions/django-extensions/compare/3.2.3...4.0\"\u003ehttps://github.com/django-extensions/django-extensions/compare/3.2.3...4.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.2.4b1\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-extensions/django-extensions/blob/main/CHANGELOG.md\"\u003edjango-extensions's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.1\u003c/h2\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd: show_permissions command (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1920\"\u003e#1920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, style per app (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1848\"\u003e#1848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: JSONField, bulk_update's (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1924\"\u003e#1924\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.0\u003c/h2\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eImprovement: Support for Python 3.12 and 3.13\u003c/li\u003e\n\u003cli\u003eImprovement: Support for Django 5.x\u003c/li\u003e\n\u003cli\u003eImprovement: Switch from setup.{cfg,py} to pyproject.toml\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Add option to display field choices in graph_models (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1854\"\u003e#1854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Add webp support (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1857\"\u003e#1857\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Support for ordering edges on pydot/dot/graphviz (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1914\"\u003e#1914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: mail_debug, Update mail_debug command to use aiosmtpd (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1880\"\u003e#1880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: shell_plus, Improve error message for missing import (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1898\"\u003e#1898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: reset_db, Add reset_db support for django_tenants (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1855\"\u003e#1855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: docs, various improvements (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1852\"\u003e#1852\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1888\"\u003e#1888\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1882\"\u003e#1882\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1901\"\u003e#1901\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1912\"\u003e#1912\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1913\"\u003e#1913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: jobs, Handle non-package modules when looking for job definitions (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1887\"\u003e#1887\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: Add django-prometheus DB backends support (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1800\"\u003e#1800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: Call post_command when the command raises an unhandled exception (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1837\"\u003e#1837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: sqldiff, do not consider ('serial', 'integer') nor ('bigserial', 'bigint') as a \u003ccode\u003efield-type-differ\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1867\"\u003e#1867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: shell_plus, Fix start up order and add history (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1869\"\u003e#1869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove pipchecker and associated tests (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1906\"\u003e#1906\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFollowing Django's release numbering style more closely (see \u003ca href=\"https://docs.djangoproject.com/en/5.2/internals/release-process/\"\u003ehttps://docs.djangoproject.com/en/5.2/internals/release-process/\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-extensions/django-extensions/commit/ad015513e5d8e8ee6ad748fca5f32ccf3fb3d5c5\"\u003e\u003ccode\u003ead01551\u003c/code\u003e\u003c/a\u003e v4.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/2c3e914f1264c0a029b3b47b7425d0f68ce637ed\"\u003e\u003ccode\u003e2c3e914\u003c/code\u003e\u003c/a\u003e update CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/fb5b2af1b6595ee126237c299acf242fcfee817e\"\u003e\u003ccode\u003efb5b2af\u003c/code\u003e\u003c/a\u003e ruff format\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/7e978d27b031843640f9204ff495738c46233d7f\"\u003e\u003ccode\u003e7e978d2\u003c/code\u003e\u003c/a\u003e graph_models style per app (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1848\"\u003e#1848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/067064ea0c6dec7cba1583447fe5fe1c706d5351\"\u003e\u003ccode\u003e067064e\u003c/code\u003e\u003c/a\u003e avoid trying to serialize expressions when serializing default values\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/a886068502474e70a2d68ff4634a15cc3366088d\"\u003e\u003ccode\u003ea886068\u003c/code\u003e\u003c/a\u003e update CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/d824501cbc6d04a24a43ff5756b496f84093b225\"\u003e\u003ccode\u003ed824501\u003c/code\u003e\u003c/a\u003e Add show_permissions management command (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1920\"\u003e#1920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/934f93f53bdf6c6271ae1ddaee71bc9bf3364a0e\"\u003e\u003ccode\u003e934f93f\u003c/code\u003e\u003c/a\u003e bumped version number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/c4577df5b69ec1ebcbe6bc64d7a5c20362f3a8fa\"\u003e\u003ccode\u003ec4577df\u003c/code\u003e\u003c/a\u003e v4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/7cdb43ab56a3b610b47680d8a2fe86b09d5913aa\"\u003e\u003ccode\u003e7cdb43a\u003c/code\u003e\u003c/a\u003e pyproject formatting\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-extensions/django-extensions/compare/3.2.3...4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-filter` from 23.3 to 25.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/carltongibson/django-filter/blob/main/CHANGES.rst\"\u003edjango-filter's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 25.1 (2025-02-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved the in-built API schema generation methods, which have been\ndeprecated since v23.2.\u003c/p\u003e\n\u003cp\u003eYou should use \u003ccode\u003edrf-spectacular \u0026lt;https://drf-spectacular.readthedocs.io/en/latest/\u0026gt;\u003c/code\u003e_\nfor generating OpenAPI schemas with DRF.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped support for EOL Python 3.8.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded testing against Python 3.13.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded official support for Django 5.2.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 24.3 (2024-08-02)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdds official support for Django 5.1.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow using dictionaries for grouped choices on Django 5.0+.\u003c/p\u003e\n\u003cp\u003eThanks to Sævar Öfjörð Magnússon.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdds \u003ccode\u003eunknown_field_behavior\u003c/code\u003e FilterSet option to allowing warning and\nignore behaviours for unknown field types during FilterSet generation.\u003c/p\u003e\n\u003cp\u003eThanks to Loes.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 24.2 (2024-03-27)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed a regression in v23.4 where callable choices were incorrectly evaluated\nat filter instantiation, on Django versions prior to 5.0.\u003c/p\u003e\n\u003cp\u003eThanks to Craig de Stigter for the report and reproduce.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 24.1 (2024-03-08)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated supported Python and Django versions, and resolved upcoming Django\ndeprecations.\u003c/p\u003e\n\u003cp\u003eRequired versions are now at least Python 3.8 and Django 4.2.\u003c/p\u003e\n\u003cp\u003eThanks to Michael Manganiello.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllowed passing a FilterSet class to the filterset_factory().\u003c/p\u003e\n\u003cp\u003eThanks to Birger Schacht.\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/carltongibson/django-filter/commit/27dd67284405ee832701509b3515baa50c6e074d\"\u003e\u003ccode\u003e27dd672\u003c/code\u003e\u003c/a\u003e Updated Change notes for 25.1 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/2ea38174b010f378a9b57d90c566c2bab7b37bbb\"\u003e\u003ccode\u003e2ea3817\u003c/code\u003e\u003c/a\u003e Added Trove classifier for Django 5.2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/4d2306c211c1d86f85f04fb311b8b05bfefb08a8\"\u003e\u003ccode\u003e4d2306c\u003c/code\u003e\u003c/a\u003e Replaced hardcoded pks in tests (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1703\"\u003e#1703\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/fbf5a76a4d97480d78779397b90d34fa8f13d141\"\u003e\u003ccode\u003efbf5a76\u003c/code\u003e\u003c/a\u003e Update tox after Django 5.2 alpha release. (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1700\"\u003e#1700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/1e76d6859e109ae34d5e2a657c66146a9d744c80\"\u003e\u003ccode\u003e1e76d68\u003c/code\u003e\u003c/a\u003e Use QueryDict for data default. (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1691\"\u003e#1691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/e709e5d43a4ad8b8e8ea62520669b88300c9c686\"\u003e\u003ccode\u003ee709e5d\u003c/code\u003e\u003c/a\u003e Add testing against Python 3.13.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/ccde000dfe74362b62301b248681e9505133e821\"\u003e\u003ccode\u003eccde000\u003c/code\u003e\u003c/a\u003e Dropped support for EOL Python 3.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/2a644e176634ec0ce99d9446d980501e9763e194\"\u003e\u003ccode\u003e2a644e1\u003c/code\u003e\u003c/a\u003e Removed deprecated schema generation methods from DRF backend. (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1698\"\u003e#1698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/2494df96c6387a9fa411fcb00b696b15dfd9216b\"\u003e\u003ccode\u003e2494df9\u003c/code\u003e\u003c/a\u003e fix typo in filterset.txt (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1695\"\u003e#1695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/3656174bd90d20f3d916fd98b6476c270013b681\"\u003e\u003ccode\u003e3656174\u003c/code\u003e\u003c/a\u003e Translated using Weblate (Czech) (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1687\"\u003e#1687\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/carltongibson/django-filter/compare/23.3...25.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gunicorn` from 21.2.0 to 23.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\u003e23.0.0\u003c/h2\u003e\n\u003cp\u003eGunicorn 23.0.0 has been released. This version improve HTTP 1.1. support and  which improve safety\u003c/p\u003e\n\u003cp\u003eYou're invited to upgrade asap your own installation.\u003c/p\u003e\n\u003ch1\u003e23.0.0 - 2024-08-10\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eminor docs fixes (:pr:\u003ccode\u003e3217\u003c/code\u003e, :pr:\u003ccode\u003e3089\u003c/code\u003e, :pr:\u003ccode\u003e3167\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eworker_class parameter accepts a class (:pr:\u003ccode\u003e3079\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003efix deadlock if request terminated during chunked parsing (:pr:\u003ccode\u003e2688\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003epermit receiving Transfer-Encodings: compress, deflate, gzip (:pr:\u003ccode\u003e3261\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003epermit Transfer-Encoding headers specifying multiple encodings. note: no parameters, still (:pr:\u003ccode\u003e3261\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003esdist generation now explicitly excludes sphinx build folder (:pr:\u003ccode\u003e3257\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003edecode bytes-typed status (as can be passed by gevent) as utf-8 instead of raising \u003ccode\u003eTypeError\u003c/code\u003e (:pr:\u003ccode\u003e2336\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eraise correct Exception when encounting invalid chunked requests (:pr:\u003ccode\u003e3258\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ethe SCRIPT_NAME and PATH_INFO headers, when received from allowed forwarders, are no longer restricted for containing an underscore (:pr:\u003ccode\u003e3192\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003einclude IPv6 loopback address \u003ccode\u003e[::1]\u003c/code\u003e in default for :ref:\u003ccode\u003eforwarded-allow-ips\u003c/code\u003e and :ref:\u003ccode\u003eproxy-allow-ips\u003c/code\u003e (:pr:\u003ccode\u003e3192\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e** NOTE **\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SCRIPT_NAME change mitigates a regression that appeared first in the 22.0.0 release\u003c/li\u003e\n\u003cli\u003eReview your :ref:\u003ccode\u003eforwarded-allow-ips\u003c/code\u003e setting if you are still not seeing the SCRIPT_NAME transmitted\u003c/li\u003e\n\u003cli\u003eReview your :ref:\u003ccode\u003eforwarder-headers\u003c/code\u003e setting if you are missing headers after upgrading from a version prior to 22.0.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e** Breaking changes **\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003erefuse requests where the uri field is empty (:pr:\u003ccode\u003e3255\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003erefuse requests with invalid CR/LR/NUL in heade field values (:pr:\u003ccode\u003e3253\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eremove temporary \u003ccode\u003e--tolerate-dangerous-framing\u003c/code\u003e switch from 22.0 (:pr:\u003ccode\u003e3260\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eIf any of the breaking changes affect you, be aware that now refused requests can post a security problem, especially so in setups involving request pipe-lining and/or proxies.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFix CVE-2024-1135\u003c/p\u003e\n\u003ch2\u003eGunicorn 22.0 has been released\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eGunicorn 22.0.0 has been released.\u003c/strong\u003e This version fix the numerous security vulnerabilities. You're invited to upgrade asap your own installation.\u003c/p\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e22.0.0 - 2024-04-17\n===================\n\u003cul\u003e\n\u003cli\u003euse \u003ccode\u003eutime\u003c/code\u003e to notify workers liveness\u003c/li\u003e\n\u003cli\u003emigrate setup to pyproject.toml\u003c/li\u003e\n\u003cli\u003efix numerous security vulnerabilities in HTTP parser (closing some request smuggling vectors)\u003c/li\u003e\n\u003cli\u003eparsing additional requests is no longer attempted past unsupported request framing\u003c/li\u003e\n\u003cli\u003eon HTTP versions \u0026lt; 1.1 support for chunked transfer is refused (only used in exploits)\u003c/li\u003e\n\u003cli\u003erequests conflicting configured or passed SCRIPT_NAME now produce a verbose error\u003c/li\u003e\n\u003cli\u003eTrailer fields are no longer inspected for headers indicating secure scheme\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/li\u003e\n\u003c/ul\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/411986d6191114dd1d1bbb9c72c948dbf0ef0425\"\u003e\u003ccode\u003e411986d\u003c/code\u003e\u003c/a\u003e fix doc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/334392e7795f2017e83f7054d372422512d6f4b6\"\u003e\u003ccode\u003e334392e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/2559\"\u003e#2559\u003c/a\u003e from laggardkernel/bugfix/reexec-env\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/e75c3533e32f91a9dceba9e8e1341fea5540ba81\"\u003e\u003ccode\u003ee75c353\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3189\"\u003e#3189\u003c/a\u003e from pajod/patch-py36\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/9357b28dd867950e33ca3864207cb35a1eb8ba6f\"\u003e\u003ccode\u003e9357b28\u003c/code\u003e\u003c/a\u003e keep document user in access_log_format setting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/79fdef0822cbfe7e16b659b07230af9be098d5fc\"\u003e\u003ccode\u003e79fdef0\u003c/code\u003e\u003c/a\u003e bump to 23.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/3acd9fbfd1159ca3cd80a8052ada89a0bf27f806\"\u003e\u003ccode\u003e3acd9fb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/2620\"\u003e#2620\u003c/a\u003e from talkerbox/improve-access-log-format-docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/3f56d76548e4ade034bf5e174737902970285d1f\"\u003e\u003ccode\u003e3f56d76\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3192\"\u003e#3192\u003c/a\u003e from pajod/patch-allowed-script-name\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/256d474a7910bd605f2cc8c082b79c1ae55215a9\"\u003e\u003ccode\u003e256d474\u003c/code\u003e\u003c/a\u003e docs: revert duped directive\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/ffa48b581dcaa75f17fd2df263515e4266feeef6\"\u003e\u003ccode\u003effa48b5\u003c/code\u003e\u003c/a\u003e test: default change was intentional\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/52538ca9070b5e7ead5d0fa731e82a622dc6f3ee\"\u003e\u003ccode\u003e52538ca\u003c/code\u003e\u003c/a\u003e docs: recommend SCRIPT_NAME=/subfolder\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/benoitc/gunicorn/compare/21.2.0...23.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-ipware` from 2.0.0 to 3.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/un33k/python-ipware/blob/main/CHANGELOG.md\"\u003epython-ipware's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.0.0\u003c/h2\u003e\n\u003cp\u003eFix:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRelease major version, as there is a possibility of api change causing minimal backward incompatibly\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.5\u003c/h2\u003e\n\u003cp\u003eEnhance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAI assisted clean up\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.4\u003c/h2\u003e\n\u003cp\u003eEnhance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eproxy_count=0\u003c/code\u003e as an option (\u003ca href=\"https://github.com/FraKraBa\"\u003e\u003ccode\u003e@​FraKraBa\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.3\u003c/h2\u003e\n\u003cp\u003eEnhance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eHTTP_CF_CONNECTING_IP\u003c/code\u003e to list of known ip headers (Adam M.)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.2\u003c/h2\u003e\n\u003cp\u003eEnhance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded logger name\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.1\u003c/h2\u003e\n\u003cp\u003eIssue:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003eHTTP_VIA\u003c/code\u003e header support (unreliable IP information) (\u003ca href=\"https://github.com/yourcelf\"\u003e\u003ccode\u003e@​yourcelf\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eEnhance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eInclude support for python 3.12\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/un33k/python-ipware/commit/cab810ced72457abcc77ffd234be9cb0a75f7ec3\"\u003e\u003ccode\u003ecab810c\u003c/code\u003e\u003c/a\u003e version 3 major (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/21\"\u003e#21\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/5d01f1e6662f3de861d44006247fd5f0a3ae4a0b\"\u003e\u003ccode\u003e5d01f1e\u003c/code\u003e\u003c/a\u003e Feat/enhance (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/20\"\u003e#20\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/bd56bcd1d4ed2d2bbd690059e5a231d6b51bcd31\"\u003e\u003ccode\u003ebd56bcd\u003c/code\u003e\u003c/a\u003e Allow for proxy_count of exact 0 (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/19\"\u003e#19\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/ddfde3c6d4dee387a59287a2c0afc933f9773791\"\u003e\u003ccode\u003eddfde3c\u003c/code\u003e\u003c/a\u003e Update Readme (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/17\"\u003e#17\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/aab321baf9958ae128460c2279364926f6612dca\"\u003e\u003ccode\u003eaab321b\u003c/code\u003e\u003c/a\u003e Add HTTP_CF_CONNECTING_IP to ip Header list (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/16\"\u003e#16\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/e908cc321dc61e203033768f8d1072efc71f4556\"\u003e\u003ccode\u003ee908cc3\u003c/code\u003e\u003c/a\u003e Added logger name (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/15\"\u003e#15\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/ad1f01783279ecd8dfff91b3db8558f92b5bde0b\"\u003e\u003ccode\u003ead1f017\u003c/code\u003e\u003c/a\u003e Remove HTTP_VIA support, support for 3.12 (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/14\"\u003e#14\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/un33k/python-ipware/compare/v2.0.0...v3.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `redis` from 4.6.0 to 5.2.1\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\u003e5.2.1\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed unsecured tempfile.mktemp() command usage (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3446\"\u003e#3446\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed bug with SLOWLOG GET response parsing on Redis Software (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3441\"\u003e#3441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed issue with invoking _close() on closed event loop (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3438\"\u003e#3438\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMigrate test infrastructure to new custom docker images (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3415\"\u003e#3415\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed flacky test with HEXPIREAT command (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3437\"\u003e#3437\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\u003cp\u003e\u003ca href=\"https://github.com/IlianIliev\"\u003e\u003ccode\u003e@​IlianIliev\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/uglide\"\u003e\u003ccode\u003e@​uglide\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/teodorfn\"\u003e\u003ccode\u003e@​teodorfn\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.2.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e🚀 New Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExtend AggregateRequest with scorer argument (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3409\"\u003e#3409\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePin pytest-profiling version due to the bug (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3417\"\u003e#3417\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\u003cp\u003e\u003ca href=\"https://github.com/uglide\"\u003e\u003ccode\u003e@​uglide\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/rbs333\"\u003e\u003ccode\u003e@​rbs333\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/dwdougherty\"\u003e\u003ccode\u003e@​dwdougherty\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.1.1\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e5.1.1\u003c/h2\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed return type for Redis Set commands to be Set instead of List (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3399\"\u003e#3399\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed bug with partial Hiredis availability (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3400\"\u003e#3400\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed bug with async pipeline and cluster fails with some commands (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3402\"\u003e#3402\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.1.0\u003c/h2\u003e\n\u003ch3\u003e🚀 New Features\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\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/a74fa6a3dc1996ff256d5b1849c3018a7ac05c99\"\u003e\u003ccode\u003ea74fa6a\u003c/code\u003e\u003c/a\u003e Release 5.2.1 (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3451\"\u003e#3451\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/166ae7bfd79a88cdfbd7959b2c28cd79aa0eaf0c\"\u003e\u003ccode\u003e166ae7b\u003c/code\u003e\u003c/a\u003e Updated package version (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3418\"\u003e#3418\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/00f5be420b397adfa1b9aa9c2761f7d8a27c0a9a\"\u003e\u003ccode\u003e00f5be4\u003c/code\u003e\u003c/a\u003e adds scorer to AggregateRequest (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3409\"\u003e#3409\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/4c4d4afd2b31b5c36a2d5e22419bcbf584265a17\"\u003e\u003ccode\u003e4c4d4af\u003c/code\u003e\u003c/a\u003e Pin pytest-profiling (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3417\"\u003e#3417\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/d6ddb0d66bc4bd28c99d9cf148c9085117cc8ce9\"\u003e\u003ccode\u003ed6ddb0d\u003c/code\u003e\u003c/a\u003e DOC-4199: add TCEs to the combined query page (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3380\"\u003e#3380\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/17db62e3c9ea796f5705d2857f49e52799057af7\"\u003e\u003ccode\u003e17db62e\u003c/code\u003e\u003c/a\u003e DOC-4200: add TCEs to the aggregation query page (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3381\"\u003e#3381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/700045c7a7db6d986df6610d61239375a2211053\"\u003e\u003ccode\u003e700045c\u003c/code\u003e\u003c/a\u003e Backport 5.1 changes into master (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3406\"\u003e#3406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/2e46613dcdf9db7f948f3258fee1c9199da8cbfa\"\u003e\u003ccode\u003e2e46613\u003c/code\u003e\u003c/a\u003e Client side caching refactoring (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3350\"\u003e#3350\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/7d73d742d6df4b3d6f6a1f0ec73e72d4a02add74\"\u003e\u003ccode\u003e7d73d74\u003c/code\u003e\u003c/a\u003e DOC-4197: add TCEs to the geospatial query page (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3378\"\u003e#3378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/c7483b3d63a2001508a2ff2c9952ad50d9252732\"\u003e\u003ccode\u003ec7483b3\u003c/code\u003e\u003c/a\u003e DOC-4196: add TCEs to the full-text query page (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3377\"\u003e#3377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/redis/redis-py/compare/v4.6.0...v5.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `watchdog` from 3.0.0 to 6.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/gorakhargosh/watchdog/releases\"\u003ewatchdog's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[inotify] Use of \u003ccode\u003eselect.poll()\u003c/code\u003e instead of deprecated \u003ccode\u003eselect.select()\u003c/code\u003e, if available. (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1078\"\u003e#1078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_class()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_instancemethod()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_module()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eis_class_private_name()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eis_classmethod()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eis_method(met()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003emethod_name()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003ename()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Removed the \u003ccode\u003e--trace\u003c/code\u003e CLI argument from the \u003ccode\u003ewatchmedo log\u003c/code\u003e command, useless since events are logged by default at the \u003ccode\u003eLoggerTrick\u003c/code\u003e class level.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePin test dependecies.\u003c/li\u003e\n\u003cli\u003e[docs] Add typing info to quick start. (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1082\"\u003e#1082\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[inotify] Fix reading inotify file descriptor after closing it. (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1081\"\u003e#1081\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[utils] The \u003ccode\u003estop_signal\u003c/code\u003e keyword-argument type of the \u003ccode\u003eAutoRestartTrick\u003c/code\u003e class can now be either a \u003ccode\u003esignal.Signals\u003c/code\u003e or an \u003ccode\u003eint\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e[utils] Added the \u003ccode\u003e__repr__()\u003c/code\u003e method to the \u003ccode\u003eTrick\u003c/code\u003e class.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Fixed Mypy issues.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Added the \u003ccode\u003e__repr__()\u003c/code\u003e method to the \u003ccode\u003eHelpFormatter\u003c/code\u003e class.\u003c/li\u003e\n\u003cli\u003e[windows] Fixed Mypy issues.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e💟 Thanks to our beloved contributors: \u003ca href=\"https://github.com/g-pichler\"\u003e\u003ccode\u003e@​g-pichler\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ethan-vanderheijden\"\u003e\u003ccode\u003e@​ethan-vanderheijden\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/nhairs\"\u003e\u003ccode\u003e@​nhairs\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[inotify] Improve cleaning up \u003ccode\u003eInotify\u003c/code\u003e threads, and add \u003ccode\u003eeventlet\u003c/code\u003e test cases (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1070\"\u003e#1070\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e💟 Thanks to our beloved contributors: \u003ca href=\"https://github.com/ethan-vanderheijden\"\u003e\u003ccode\u003e@​ethan-vanderheijden\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEnable OS specific Mypy checks (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1064\"\u003e#1064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[watchmedo] Fix \u003ccode\u003etricks\u003c/code\u003e argument type of \u003ccode\u003eschedule_tricks()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1063\"\u003e#1063\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e💟 Thanks to our beloved contributors: \u003ca href=\"https://github.com/gnought\"\u003e\u003ccode\u003e@​gnought\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[kqueue] Fix \u003ccode\u003eTypeError: kqueue.control() only accepts positional parameters\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1062\"\u003e#1062\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e💟 Thanks to our beloved contributors: \u003ca href=\"https://github.com/apoirier\"\u003e\u003ccode\u003e@​apoirier\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8 (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1055\"\u003e#1055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[core] Enforced usage of proper keyword-arguments (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1057\"\u003e#1057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[core] Renamed the \u003ccode\u003eBaseObserverSubclassCallable\u003c/code\u003e class to \u003ccode\u003eObserverType\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1055\"\u003e#1055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[inotify] Renamed the \u003ccode\u003einotify_event_struct\u003c/code\u003e class to \u003ccode\u003eInotifyEventStruct\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1055\"\u003e#1055\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/gorakhargosh/watchdog/blob/master/changelog.rst\"\u003ewatchdog's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e6.0.0\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n2024-11-01 • `full history \u0026lt;https://github.com/gorakhargosh/watchdog/compare/v5.0.3...v6.0.0\u0026gt;`__\n\u003cul\u003e\n\u003cli\u003ePin test dependencies.\u003c/li\u003e\n\u003cli\u003e[docs] Add typing info to quick start. (\u003ccode\u003e[#1082](https://github.com/gorakhargosh/watchdog/issues/1082) \u0026amp;lt;https://github.com/gorakhargosh/watchdog/pull/1082\u0026amp;gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003e[inotify] Use of \u003ccode\u003eselect.poll()\u003c/code\u003e instead of deprecated \u003ccode\u003eselect.select()\u003c/code\u003e, if available. (\u003ccode\u003e[#1078](https://github.com/gorakhargosh/watchdog/issues/1078) \u0026amp;lt;https://github.com/gorakhargosh/watchdog/pull/1078\u0026amp;gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003e[inotify] Fix reading inotify file descriptor after closing it. (\u003ccode\u003e[#1081](https://github.com/gorakhargosh/watchdog/issues/1081) \u0026amp;lt;https://github.com/gorakhargosh/watchdog/pull/1081\u0026amp;gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003e[utils] The \u003ccode\u003estop_signal\u003c/code\u003e keyword-argument type of the \u003ccode\u003eAutoRestartTrick\u003c/code\u003e class can now be either a \u003ccode\u003esignal.Signals\u003c/code\u003e or an \u003ccode\u003eint\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e[utils] Added the \u003ccode\u003e__repr__()\u003c/code\u003e method to the \u003ccode\u003eTrick\u003c/code\u003e class.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_class()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_instancemethod()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_module()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eis_class_private_name()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eis_classmethod()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eic_method(met()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003emethod_name()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003ename()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Fixed Mypy issues.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Added the \u003ccode\u003e__repr__()\u003c/code\u003e method to the \u003ccode\u003eHelpFormatter\u003c/code\u003e class.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Removed the \u003ccode\u003e--trace\u003c/code\u003e CLI argument from the \u003ccode\u003ewatchmedo log\u003c/code\u003e command, useless since events are logged by default at the \u003ccode\u003eLoggerTrick\u003c/code\u003e class level.\u003c/li\u003e\n\u003cli\u003e[windows] Fixed Mypy issues.\u003c/li\u003e\n\u003cli\u003eThanks to our beloved contributors: \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/g-pichler\"\u003e\u003ccode\u003e@​g-pichler\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ethan-vanderheijden\"\u003e\u003ccode\u003e@​ethan-vanderheijden\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/nhairs\"\u003e\u003ccode\u003e@​nhairs\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e5.0.3\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e2024-09-27 • \u003ccode\u003efull history \u0026lt;https://github.com/gorakhargosh/watchdog/compare/v5.0.2...v5.0.3\u0026gt;\u003c/code\u003e__\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[inotify] Improve cleaning up \u003ccode\u003eInotify\u003c/code\u003e threads, and add \u003ccode\u003eeventlet\u003c/code\u003e test cases (\u003ccode\u003e[#1070](https://github.com/gorakhargosh/watchdog/issues/1070) \u0026lt;https://github.com/gorakhargosh/watchdog/pull/1070\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eThanks to our beloved contributors: \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ethan-vanderheijden\"\u003e\u003ccode\u003e@​ethan-vanderheijden\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e5.0.2\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n2024-09-03 • `full history \u0026lt;https://github.com/gorakhargosh/watchdog/compare/v5.0.1...v5.0.2\u0026gt;`__\n\u003cul\u003e\n\u003cli\u003eEnable OS specific Mypy checks (\u003ccode\u003e[#1064](https://github.com/gorakhargosh/watchdog/issues/1064) \u0026amp;lt;https://github.com/gorakhargosh/watchdog/pull/1064\u0026amp;gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003e[watchmedo] Fix \u003ccode\u003etricks\u003c/code\u003e argument type of \u003ccode\u003eschedule_tricks()\u003c/code\u003e (\u003ccode\u003e[#1063](https://github.com/gorakhargosh/watchdog/issues/1063) \u0026amp;lt;https://github.com/gorakhargosh/watchdog/pull/1063\u0026amp;gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eThanks to our beloved contributors: \u003ca href=\"https://github.com/gnought\"\u003e\u003ccode\u003e@​gnought\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e5.0.1\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e2024-09-02 • \u003ccode\u003efull history \u0026lt;https://github.com/gorakhargosh/watchdog/compare/v5.0.0...v5.0.1\u0026gt;\u003c/code\u003e__\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[kqueue] Fix \u003ccode\u003eTypeError: kqueue.control() only accepts positional parameters\u003c/code\u003e  (\u003ccode\u003e[#1062](https://github.com/gorakhargosh/watchdog/issues/1062) \u0026lt;https://github.com/gorakhargosh/watchdog/pull/1062\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eThanks to our beloved contributors: \u003ca href=\"https://github.com/apoirier\"\u003e\u003ccode\u003e@​apoirier\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\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/gorakhargosh/watchdog/commit/76c091dc8841de1d1a1cd6511bb509fe4f058de6\"\u003e\u003ccode\u003e76c091d\u003c/code\u003e\u003c/a\u003e Version 6.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/58386d88747259b8b3da5082e30f1c6e0aa3b31a\"\u003e\u003ccode\u003e58386d8\u003c/code\u003e\u003c/a\u003e Fixes, and clean-up (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1084\"\u003e#1084\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/db698a52bbb1eb8cc34e889a8afdac6f17a99e57\"\u003e\u003ccode\u003edb698a5\u003c/code\u003e\u003c/a\u003e fix: reading inotify file descriptor after closing it. (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1081\"\u003e#1081\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/73d561265b109f30cf76a280cdcc74aa9e6df391\"\u003e\u003ccode\u003e73d5612\u003c/code\u003e\u003c/a\u003e [docs] Add typing info to quick start (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1082\"\u003e#1082\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/d774fec477a8f57d24b588164ebdd39b2d507bcd\"\u003e\u003ccode\u003ed774fec\u003c/code\u003e\u003c/a\u003e docs: Update README Badges (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1083\"\u003e#1083\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/6b74737501c85df9b9c2585faef4797a5250171b\"\u003e\u003ccode\u003e6b74737\u003c/code\u003e\u003c/a\u003e docs: funding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/3d1b888bccdd27a28f9f12a4e89288afe1ee493a\"\u003e\u003ccode\u003e3d1b888\u003c/code\u003e\u003c/a\u003e [inotify] Use of \u003ccode\u003eselect.poll()\u003c/code\u003e instead of deprecated \u003ccode\u003eselect.select()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1078\"\u003e#1078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/6a4f1cf846e03c8701fcc53b9e910077b5824e59\"\u003e\u003ccode\u003e6a4f1cf\u003c/code\u003e\u003c/a\u003e Bump the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/ad6df50908fca071ac8ad6558453bb28b522f794\"\u003e\u003ccode\u003ead6df50\u003c/code\u003e\u003c/a\u003e Version 5.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/59650f8fe72ac498374434a10a3dd49f3c3d1429\"\u003e\u003ccode\u003e59650f8\u003c/code\u003e\u003c/a\u003e fix: polish \u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1070\"\u003e#1070\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/gorakhargosh/watchdog/compare/v3.0.0...v6.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ocrmypdf` from 14.4.0 to 15.4.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/blob/main/docs/release_notes.md\"\u003eocrmypdf's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev15.4.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed documentation for installing Ghostscript on Windows. {issue}\u003ccode\u003e1198\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdded warning message about security issue in older versions of Ghostscript.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev15.4.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed deprecation warning in pikepdf older than 8.7.1; pikepdf \u0026gt;= 8.7.1 is\nnow required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev15.4.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWe now raise an exception on a certain class of PDFs that likely need an\nexplicit color conversion strategy selected to display correctly\nfor PDF/A conversion.\u003c/li\u003e\n\u003cli\u003eFixed an error that occurred while trying to write a log message after the\ndebug log handler was removed.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev15.4.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed misc/watcher.py regressions: accept \u003ccode\u003e--ocr-json-settings\u003c/code\u003e as either\nfilename or JSON string, as previously; and argument count mismatch.\n{issue}\u003ccode\u003e1183,1185\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eWe no longer attempt to set /ProcSet in the PDF output, since this is an\nobsolete PDF feature.\u003c/li\u003e\n\u003cli\u003eDocumentation improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev15.4.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded new experimental APIs to support offline editing of the final text.\nSpecifically, one can now generate hOCR files with OCRmyPDF, edit them with\nsome other tool, and then finalize the PDF. They are experimental and\nsubject to change, including details of how the working folder is used.\nThere is no command line interface.\u003c/li\u003e\n\u003cli\u003eCode reorganization: executors, progress bars, initialization and setup.\u003c/li\u003e\n\u003cli\u003eFixed test coverage in cases where the coverage tool did not properly trace\ninto threads or subprocesses. This code was still being tested but appeared\nas not covered.\u003c/li\u003e\n\u003cli\u003eIn the test suite, reduced use of subprocesses and other techniques that\ninterfere with coverage measurement.\u003c/li\u003e\n\u003cli\u003eImproved error check for when we appear to be running inside a snap container\nand files are not available.\u003c/li\u003e\n\u003cli\u003ePlugin specification now properly defines progress bars as a protocol rather\nthan defining them as \u0026quot;tqdm-like\u0026quot;.\u003c/li\u003e\n\u003cli\u003eWe now default to using \u0026quot;forkserver\u0026quot; process creation on POSIX platforms\nrather than fork, since this is method is more robust and avoids some\nissues when threads are present.\u003c/li\u003e\n\u003cli\u003eFixed an instance where the user's request to \u003ccode\u003e--no-use-threads\u003c/code\u003e was ignored.\u003c/li\u003e\n\u003cli\u003eIf a PDF does not have language metadata on its top level object, we add\nthe OCR language.\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/ocrmypdf/OCRmyPDF/commit/c90d5cd84b0e27906310c28f0d78c3ded9106d65\"\u003e\u003ccode\u003ec90d5cd\u003c/code\u003e\u003c/a\u003e Fix Ghostscript installation instructions and add warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/9898904be70bf957154cc66cb5d6f57bac7c26b4\"\u003e\u003ccode\u003e9898904\u003c/code\u003e\u003c/a\u003e Fix pikepdf PdfMatrix deprecation warning; v15.4.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/27d52298420e785300e418bef4e4219ef97720e1\"\u003e\u003ccode\u003e27d5229\u003c/code\u003e\u003c/a\u003e Make logger names unique\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/4a9a575ef0f2cd7459538a43e802c8d8b3846168\"\u003e\u003ccode\u003e4a9a575\u003c/code\u003e\u003c/a\u003e ghostscript: better comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/52fd9a630d57ac7af91db423b17e6b0297fc1c66\"\u003e\u003ccode\u003e52fd9a6\u003c/code\u003e\u003c/a\u003e v15.4.2 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/a596ccf84469c81c6d19ab0eb59f53a5df0bc3c7\"\u003e\u003ccode\u003ea596ccf\u003c/code\u003e\u003c/a\u003e Raise exception if resulting PDF might appear blank in a known in some PDF vi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/e7fa97731f507c1d91e4289b9d5f3344533d7c4c\"\u003e\u003ccode\u003ee7fa977\u003c/code\u003e\u003c/a\u003e ghostscript duplicate filter: filter within a window of previous messages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/290aa2810868fb506a0ded2db8dabb580d5a2459\"\u003e\u003ccode\u003e290aa28\u003c/code\u003e\u003c/a\u003e Fix error on attempt to write to debug log after removing debug log handler\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/a95640ed9ec0a5caa360bd64b9ad6cc9f916fa61\"\u003e\u003ccode\u003ea95640e\u003c/code\u003e\u003c/a\u003e v15.4.1 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/f69267bb675c3261121b70451f6e673f433bc7ad\"\u003e\u003ccode\u003ef69267b\u003c/code\u003e\u003c/a\u003e watcher: restore ability to read json from file or command line string\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/compare/v14.4.0...v15.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-multiselectfield` from 0.1.12 to 1.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/goinnn/django-multiselectfield/releases\"\u003edjango-multiselectfield's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBadge image worked on GitHub but was broken on PyPI — fixed it.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.0\u003c/h2\u003e\n\u003cp\u003eThis release introduces multiple changes that are incompatible with previous versions.\u003c/p\u003e\n\u003cp\u003eThe major version number has been incremented following \u003ccode\u003eSemantic Versioning (SemVer) \u0026lt;https://semver.org/\u0026gt;\u003c/code\u003e_, as several components of the package have changed in ways that may require updates in client code.\u003c/p\u003e\n\u003cp\u003eThe internal codebase has been significantly cleaned up and reorganized, making it more maintainable and consistent.\u003c/p\u003e\n\u003cp\u003eThis version contains \u003cstrong\u003e40% fewer lines of code\u003c/strong\u003e compared to the previous release.\u003c/p\u003e\n\u003cp\u003eLess code means fewer bugs, easier maintenance, and better long-term sustainability.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFList (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\"\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2\u003c/a\u003e):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/50d3f785883e0a314f2dc89950e3fe1e88a7ede6\"\u003e50d3f785883e0a314f2dc89950e3fe1e88a7ede6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIt was created to support MultiSelectFields in admin.list_display, but it never actually worked. If you add a multiselect field to list_display, Django does not call to \u003cstrong\u003estr\u003c/strong\u003e method of MSGList (renamed to MSFList)\u003c/li\u003e\n\u003cli\u003eIt was created for integer choices too and it is a misconception. This is explained in the README file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFFlatchoices (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\"\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2\u003c/a\u003e):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/5638247c1d70670d4f81adf35143ef17a7d7575e\"\u003e5638247c1d70670d4f81adf35143ef17a7d7575e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIn list_display, labels for the choices are now shown (comma-separated) instead of the values of the choices (comma-separated).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn to_python method, value is a list or a string. (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/c4579138dda2833cbce26afbf57da5353aa45690\"\u003ec4579138dda2833cbce26afbf57da5353aa45690\u003c/a\u003e)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove set case and dict case\u003c/li\u003e\n\u003cli\u003eIf this breaks something, please create a test to help understand the use case.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoving integer choices:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIt was a mistake. MultiSelectField inherits of CharField, not IntegerField.\u003c/li\u003e\n\u003cli\u003eIt is impossible knows if original choice is (1, 'Item title 2.1') or ('1', 'Item title 2.1')\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: Form instance generated twice since Django  (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/168\"\u003e#168\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix CSS admin:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/173\"\u003e#173\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/7711f4aa755c81d00f07ce8a6ff0fd9240061f9c\"\u003e7711f4aa755c81d00f07ce8a6ff0fd9240061f9c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix Properly Display Categorized Choices in get_FOO_display (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/169\"\u003e#169\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSortMultiSelectField: (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/172\"\u003e#172\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/goinnn/django-multiselectfield/blob/master/CHANGES.rst\"\u003edjango-multiselectfield's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.0.1 (2025-06-12)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBadge image worked on GitHub but was broken on PyPI — fixed it.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.0.0 (2025-06-12)\u003c/h2\u003e\n\u003cp\u003eThis release introduces multiple changes that are incompatible with previous versions.\u003c/p\u003e\n\u003cp\u003eThe major version number has been incremented following \u003ccode\u003eSemantic Versioning (SemVer) \u0026lt;https://semver.org/\u0026gt;\u003c/code\u003e_, as several components of the package have changed in ways that may require updates in client code.\u003c/p\u003e\n\u003cp\u003eThe internal codebase has been significantly cleaned up and reorganized, making it more maintainable and consistent.\u003c/p\u003e\n\u003cp\u003eThis version contains \u003cstrong\u003e40% fewer lines of code\u003c/strong\u003e compared to the previous release.\u003c/p\u003e\n\u003cp\u003eLess code means fewer bugs, easier maintenance, and better long-term sustainability.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFList (\u003ccode\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\u0026gt;\u003c/code\u003e_):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ccode\u003e50d3f785883e0a314f2dc89950e3fe1e88a7ede6 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/50d3f785883e0a314f2dc89950e3fe1e88a7ede6\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eIt was created to support MultiSelectFields in admin.list_display, but it never actually worked. If you add a multiselect field to list_display, Django does not call to \u003cstrong\u003estr\u003c/strong\u003e method of MSGList (renamed to MSFList)\u003c/li\u003e\n\u003cli\u003eIt was created for integer choices too and it is a misconception. This is explained in the README file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFFlatchoices (\u003ccode\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\u0026gt;\u003c/code\u003e_):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ccode\u003e5638247c1d70670d4f81adf35143ef17a7d7575e \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/5638247c1d70670d4f81adf35143ef17a7d7575e\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eIn list_display, labels for the choices are now shown (comma-separated) instead of the values of the choices (comma-separated).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn to_python method, value is a list or a string. (\u003ccode\u003ec4579138dda2833cbce26afbf57da5353aa45690 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/c4579138dda2833cbce26afbf57da5353aa45690\u0026gt;\u003c/code\u003e_)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove set case and dict cas...\n\n_Description has been truncated_","html_url":"https://github.com/dsp-testing/paperless-ngx/pull/170","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/dsp-testing%2Fpaperless-ngx/issues/170","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/170/packages"},{"uuid":"2527341900","node_id":"PR_kwDOCqWgoM6WpC1M","number":20838,"state":"closed","title":"build(deps): bump pytest-rerunfailures from 12.0 to 15.1 in /requirements","user":"dependabot[bot]","labels":["ci","fabric","pl","dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-05-19T07:30:52.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-05-19T01:57:54.000Z","updated_at":"2025-05-19T07:30:52.000Z","time_to_close":19978,"merged_at":"2025-05-19T07:30:52.000Z","merged_by":"Borda","closed_by":null,"dependency_metadata":{"prefix":"build(deps)","packages":[{"name":"pytest-rerunfailures","old_version":"12.0","new_version":"15.1","repository_url":"https://github.com/pytest-dev/pytest-rerunfailures"}],"path":"/requirements","ecosystem":"pip"},"body":"Bumps [pytest-rerunfailures](https://github.com/pytest-dev/pytest-rerunfailures) from 12.0 to 15.1.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/blob/master/CHANGES.rst\"\u003epytest-rerunfailures's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e15.1 (2025-05-08)\u003c/h2\u003e\n\u003cp\u003eBug fixes\n+++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003e--fail-on-flaky\u003c/code\u003e option to fail the test run with custom exit code\nonly when reruns are detected.\n(\u003ccode\u003e[#287](https://github.com/pytest-dev/pytest-rerunfailures/issues/287) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/287\u0026gt;\u003c/code\u003e_)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSwitched to using the SPDX license identifier in the project metadata.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eOther changes\n+++++++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eChange exception filtering logic to match \u003ccode\u003eAssertionError\u003c/code\u003e raised via\n\u003ccode\u003eassert\u003c/code\u003e statements when filtering by \u0026quot;AssertionError\u0026quot;.\n(\u003ccode\u003e[#292](https://github.com/pytest-dev/pytest-rerunfailures/issues/292) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/292\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e15.0 (2024-11-20)\u003c/h2\u003e\n\u003cp\u003eBreaking changes\n++++++++++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDrop support for Python 3.8.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDrop support for pytest \u0026lt; 7.4.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFeatures\n++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix compatibility with pytest 8.2.\n(\u003ccode\u003e[#267](https://github.com/pytest-dev/pytest-rerunfailures/issues/267) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/267\u0026gt;\u003c/code\u003e_)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd support for pytest 8.2, 8.3.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003e--fail-on-flaky\u003c/code\u003e option to fail the test run with custom exit code\nwhen test passed on rerun.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e14.0 (2024-03-13)\u003c/h2\u003e\n\u003cp\u003eBug fixes\n+++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix missing teardown for non-function scoped fixtures when using only_rerun or rerun_except queries.\n(\u003ccode\u003e[#234](https://github.com/pytest-dev/pytest-rerunfailures/issues/234) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/234\u0026gt;\u003c/code\u003e\u003cem\u003e)\nand (\u003ccode\u003e[#241](https://github.com/pytest-dev/pytest-rerunfailures/issues/241) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/241\u0026gt;\u003c/code\u003e\u003c/em\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/pytest-dev/pytest-rerunfailures/commit/beaa1a46d3d57e30c8e6fa2ad26d42721eeb7d73\"\u003e\u003ccode\u003ebeaa1a4\u003c/code\u003e\u003c/a\u003e Preparing release 15.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/1ddc2455289ef9a25c8b8736dfb84b401ca9be89\"\u003e\u003ccode\u003e1ddc245\u003c/code\u003e\u003c/a\u003e Pimp MANIFEST.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/c5a282cf4e1b20452440da6c16baa9ef9dda83a3\"\u003e\u003ccode\u003ec5a282c\u003c/code\u003e\u003c/a\u003e Update exception filtering to match against actual exception (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/293\"\u003e#293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/3064a7782efbee1ede8f76ae59d87b670b10b829\"\u003e\u003ccode\u003e3064a77\u003c/code\u003e\u003c/a\u003e Use SPDX license identifier (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/d0ff1d4337993cb0f74a46e59f1e6bed0857a0a6\"\u003e\u003ccode\u003ed0ff1d4\u003c/code\u003e\u003c/a\u003e Adjust \u003ccode\u003e--fail-on-flaky\u003c/code\u003e behavior to improve exit status handling (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/288\"\u003e#288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/c4992c38f17090debe74519eb3945e54e0c01d66\"\u003e\u003ccode\u003ec4992c3\u003c/code\u003e\u003c/a\u003e Configure for readthedocs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/5a1a3b2f48ad64e6944354b50eb188378e96dab2\"\u003e\u003ccode\u003e5a1a3b2\u003c/code\u003e\u003c/a\u003e Initial draft docs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/283\"\u003e#283\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/4bbc0bea3ba206639313d165d7252bd7501c96a5\"\u003e\u003ccode\u003e4bbc0be\u003c/code\u003e\u003c/a\u003e Fix duplicate keyword. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/88d1bf27871f1362b4c1d140a99183a1364f0099\"\u003e\u003ccode\u003e88d1bf2\u003c/code\u003e\u003c/a\u003e Release 15.0 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/281\"\u003e#281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/67e0056038dc8d0debf3fb242d205c3339db77f0\"\u003e\u003ccode\u003e67e0056\u003c/code\u003e\u003c/a\u003e Update versions (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/279\"\u003e#279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/compare/12.0...15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pytest-rerunfailures\u0026package-manager=pip\u0026previous-version=12.0\u0026new-version=15.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don'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\r\n\r\n\u003c!-- readthedocs-preview pytorch-lightning start --\u003e\r\n----\n📚 Documentation preview 📚: https://pytorch-lightning--20838.org.readthedocs.build/en/20838/\n\r\n\u003c!-- readthedocs-preview pytorch-lightning end --\u003e","html_url":"https://github.com/Lightning-AI/pytorch-lightning/pull/20838","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lightning-AI%2Fpytorch-lightning/issues/20838","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/20838/packages"},{"uuid":"3061315199","node_id":"PR_kwDOErvUqs6WEX68","number":834,"state":"open","title":"Bump pytest-rerunfailures from 15.0 to 15.1","user":"dependabot[bot]","labels":["dependencies","maintenance"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-05-13T21:52:40.000Z","updated_at":"2025-05-13T21:56:19.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"pytest-rerunfailures","old_version":"15.0","new_version":"15.1","repository_url":"https://github.com/pytest-dev/pytest-rerunfailures"}],"path":null,"ecosystem":"conda"},"body":"Bumps [pytest-rerunfailures](https://github.com/pytest-dev/pytest-rerunfailures) from 15.0 to 15.1.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/blob/master/CHANGES.rst\"\u003epytest-rerunfailures's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e15.1 (2025-05-08)\u003c/h2\u003e\n\u003cp\u003eBug fixes\n+++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003e--fail-on-flaky\u003c/code\u003e option to fail the test run with custom exit code\nonly when reruns are detected.\n(\u003ccode\u003e[#287](https://github.com/pytest-dev/pytest-rerunfailures/issues/287) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/287\u0026gt;\u003c/code\u003e_)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSwitched to using the SPDX license identifier in the project metadata.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eOther changes\n+++++++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eChange exception filtering logic to match \u003ccode\u003eAssertionError\u003c/code\u003e raised via\n\u003ccode\u003eassert\u003c/code\u003e statements when filtering by \u0026quot;AssertionError\u0026quot;.\n(\u003ccode\u003e[#292](https://github.com/pytest-dev/pytest-rerunfailures/issues/292) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/292\u0026gt;\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/pytest-dev/pytest-rerunfailures/commit/beaa1a46d3d57e30c8e6fa2ad26d42721eeb7d73\"\u003e\u003ccode\u003ebeaa1a4\u003c/code\u003e\u003c/a\u003e Preparing release 15.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/1ddc2455289ef9a25c8b8736dfb84b401ca9be89\"\u003e\u003ccode\u003e1ddc245\u003c/code\u003e\u003c/a\u003e Pimp MANIFEST.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/c5a282cf4e1b20452440da6c16baa9ef9dda83a3\"\u003e\u003ccode\u003ec5a282c\u003c/code\u003e\u003c/a\u003e Update exception filtering to match against actual exception (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/293\"\u003e#293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/3064a7782efbee1ede8f76ae59d87b670b10b829\"\u003e\u003ccode\u003e3064a77\u003c/code\u003e\u003c/a\u003e Use SPDX license identifier (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/d0ff1d4337993cb0f74a46e59f1e6bed0857a0a6\"\u003e\u003ccode\u003ed0ff1d4\u003c/code\u003e\u003c/a\u003e Adjust \u003ccode\u003e--fail-on-flaky\u003c/code\u003e behavior to improve exit status handling (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/288\"\u003e#288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/c4992c38f17090debe74519eb3945e54e0c01d66\"\u003e\u003ccode\u003ec4992c3\u003c/code\u003e\u003c/a\u003e Configure for readthedocs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/5a1a3b2f48ad64e6944354b50eb188378e96dab2\"\u003e\u003ccode\u003e5a1a3b2\u003c/code\u003e\u003c/a\u003e Initial draft docs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/283\"\u003e#283\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/4bbc0bea3ba206639313d165d7252bd7501c96a5\"\u003e\u003ccode\u003e4bbc0be\u003c/code\u003e\u003c/a\u003e Fix duplicate keyword. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/88d1bf27871f1362b4c1d140a99183a1364f0099\"\u003e\u003ccode\u003e88d1bf2\u003c/code\u003e\u003c/a\u003e Release 15.0 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/281\"\u003e#281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/compare/15.0...15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eMost Recent Ignore Conditions Applied to This Pull Request\u003c/summary\u003e\n\n| Dependency Name | Ignore Conditions |\n| --- | --- |\n| pytest-rerunfailures | [\u003e= 11.1.a, \u003c 11.2] |\n\u003c/details\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pytest-rerunfailures\u0026package-manager=pip\u0026previous-version=15.0\u0026new-version=15.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don'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/ansys/pydpf-post/pull/834","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ansys%2Fpydpf-post/issues/834","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/834/packages"},{"uuid":"2515158589","node_id":"PR_kwDOE0uZvc6V6kY9","number":3092,"state":"closed","title":"build(deps): bump pytest-rerunfailures from 15.0 to 15.1 in /requirements","user":"dependabot[bot]","labels":["test / CI"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2025-05-13T10:40:19.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-05-12T23:50:58.000Z","updated_at":"2025-05-13T10:40:19.000Z","time_to_close":38961,"merged_at":"2025-05-13T10:40:19.000Z","merged_by":"Borda","closed_by":null,"dependency_metadata":{"prefix":"build(deps)","packages":[{"name":"pytest-rerunfailures","old_version":"15.0","new_version":"15.1","repository_url":"https://github.com/pytest-dev/pytest-rerunfailures"}],"path":"/requirements","ecosystem":"pip"},"body":"[//]: # (dependabot-start)\n⚠️  **Dependabot is rebasing this PR** ⚠️ \n\nRebasing might not happen immediately, so don't worry if this takes some time.\n\nNote: if you make any changes to this PR yourself, they will take precedence over the rebase.\n\n---\n\n[//]: # (dependabot-end)\n\nBumps [pytest-rerunfailures](https://github.com/pytest-dev/pytest-rerunfailures) from 15.0 to 15.1.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/blob/master/CHANGES.rst\"\u003epytest-rerunfailures's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e15.1 (2025-05-08)\u003c/h2\u003e\n\u003cp\u003eBug fixes\n+++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003e--fail-on-flaky\u003c/code\u003e option to fail the test run with custom exit code\nonly when reruns are detected.\n(\u003ccode\u003e[#287](https://github.com/pytest-dev/pytest-rerunfailures/issues/287) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/287\u0026gt;\u003c/code\u003e_)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSwitched to using the SPDX license identifier in the project metadata.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eOther changes\n+++++++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eChange exception filtering logic to match \u003ccode\u003eAssertionError\u003c/code\u003e raised via\n\u003ccode\u003eassert\u003c/code\u003e statements when filtering by \u0026quot;AssertionError\u0026quot;.\n(\u003ccode\u003e[#292](https://github.com/pytest-dev/pytest-rerunfailures/issues/292) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/292\u0026gt;\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/pytest-dev/pytest-rerunfailures/commit/beaa1a46d3d57e30c8e6fa2ad26d42721eeb7d73\"\u003e\u003ccode\u003ebeaa1a4\u003c/code\u003e\u003c/a\u003e Preparing release 15.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/1ddc2455289ef9a25c8b8736dfb84b401ca9be89\"\u003e\u003ccode\u003e1ddc245\u003c/code\u003e\u003c/a\u003e Pimp MANIFEST.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/c5a282cf4e1b20452440da6c16baa9ef9dda83a3\"\u003e\u003ccode\u003ec5a282c\u003c/code\u003e\u003c/a\u003e Update exception filtering to match against actual exception (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/293\"\u003e#293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/3064a7782efbee1ede8f76ae59d87b670b10b829\"\u003e\u003ccode\u003e3064a77\u003c/code\u003e\u003c/a\u003e Use SPDX license identifier (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/d0ff1d4337993cb0f74a46e59f1e6bed0857a0a6\"\u003e\u003ccode\u003ed0ff1d4\u003c/code\u003e\u003c/a\u003e Adjust \u003ccode\u003e--fail-on-flaky\u003c/code\u003e behavior to improve exit status handling (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/288\"\u003e#288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/c4992c38f17090debe74519eb3945e54e0c01d66\"\u003e\u003ccode\u003ec4992c3\u003c/code\u003e\u003c/a\u003e Configure for readthedocs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/5a1a3b2f48ad64e6944354b50eb188378e96dab2\"\u003e\u003ccode\u003e5a1a3b2\u003c/code\u003e\u003c/a\u003e Initial draft docs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/283\"\u003e#283\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/4bbc0bea3ba206639313d165d7252bd7501c96a5\"\u003e\u003ccode\u003e4bbc0be\u003c/code\u003e\u003c/a\u003e Fix duplicate keyword. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/88d1bf27871f1362b4c1d140a99183a1364f0099\"\u003e\u003ccode\u003e88d1bf2\u003c/code\u003e\u003c/a\u003e Release 15.0 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/281\"\u003e#281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/compare/15.0...15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pytest-rerunfailures\u0026package-manager=pip\u0026previous-version=15.0\u0026new-version=15.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don'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\r\n\r\n\u003c!-- readthedocs-preview torchmetrics start --\u003e\r\n----\n📚 Documentation preview 📚: https://torchmetrics--3092.org.readthedocs.build/en/3092/\n\r\n\u003c!-- readthedocs-preview torchmetrics end --\u003e","html_url":"https://github.com/Lightning-AI/torchmetrics/pull/3092","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lightning-AI%2Ftorchmetrics/issues/3092","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/3092/packages"},{"uuid":"2512555437","node_id":"PR_kwDOBAjJpM6Vwo2t","number":10254,"state":"closed","title":"Bump the pytest group across 1 directory with 2 updates","user":"dependabot[bot]","labels":["I-Dependency","I-Python"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":"2025-05-12T08:02:08.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-05-12T03:07:26.000Z","updated_at":"2025-05-12T08:02:08.000Z","time_to_close":17682,"merged_at":"2025-05-12T08:02:08.000Z","merged_by":"mmmarcos","closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"pytest","update_count":2,"packages":[{"name":"pytest-rerunfailures","old_version":"15.0","new_version":"15.1","repository_url":"https://github.com/pytest-dev/pytest-rerunfailures"},{"name":"pytest-timeout","old_version":"2.3.1","new_version":"2.4.0","repository_url":"https://github.com/pytest-dev/pytest-timeout"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pytest group with 2 updates in the /server directory: [pytest-rerunfailures](https://github.com/pytest-dev/pytest-rerunfailures) and [pytest-timeout](https://github.com/pytest-dev/pytest-timeout).\n\nUpdates `pytest-rerunfailures` from 15.0 to 15.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/blob/master/CHANGES.rst\"\u003epytest-rerunfailures's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e15.1 (2025-05-08)\u003c/h2\u003e\n\u003cp\u003eBug fixes\n+++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003e--fail-on-flaky\u003c/code\u003e option to fail the test run with custom exit code\nonly when reruns are detected.\n(\u003ccode\u003e[#287](https://github.com/pytest-dev/pytest-rerunfailures/issues/287) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/287\u0026gt;\u003c/code\u003e_)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSwitched to using the SPDX license identifier in the project metadata.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eOther changes\n+++++++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eChange exception filtering logic to match \u003ccode\u003eAssertionError\u003c/code\u003e raised via\n\u003ccode\u003eassert\u003c/code\u003e statements when filtering by \u0026quot;AssertionError\u0026quot;.\n(\u003ccode\u003e[#292](https://github.com/pytest-dev/pytest-rerunfailures/issues/292) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/292\u0026gt;\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/pytest-dev/pytest-rerunfailures/commit/beaa1a46d3d57e30c8e6fa2ad26d42721eeb7d73\"\u003e\u003ccode\u003ebeaa1a4\u003c/code\u003e\u003c/a\u003e Preparing release 15.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/1ddc2455289ef9a25c8b8736dfb84b401ca9be89\"\u003e\u003ccode\u003e1ddc245\u003c/code\u003e\u003c/a\u003e Pimp MANIFEST.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/c5a282cf4e1b20452440da6c16baa9ef9dda83a3\"\u003e\u003ccode\u003ec5a282c\u003c/code\u003e\u003c/a\u003e Update exception filtering to match against actual exception (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/293\"\u003e#293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/3064a7782efbee1ede8f76ae59d87b670b10b829\"\u003e\u003ccode\u003e3064a77\u003c/code\u003e\u003c/a\u003e Use SPDX license identifier (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/d0ff1d4337993cb0f74a46e59f1e6bed0857a0a6\"\u003e\u003ccode\u003ed0ff1d4\u003c/code\u003e\u003c/a\u003e Adjust \u003ccode\u003e--fail-on-flaky\u003c/code\u003e behavior to improve exit status handling (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/288\"\u003e#288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/c4992c38f17090debe74519eb3945e54e0c01d66\"\u003e\u003ccode\u003ec4992c3\u003c/code\u003e\u003c/a\u003e Configure for readthedocs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/5a1a3b2f48ad64e6944354b50eb188378e96dab2\"\u003e\u003ccode\u003e5a1a3b2\u003c/code\u003e\u003c/a\u003e Initial draft docs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/283\"\u003e#283\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/4bbc0bea3ba206639313d165d7252bd7501c96a5\"\u003e\u003ccode\u003e4bbc0be\u003c/code\u003e\u003c/a\u003e Fix duplicate keyword. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/88d1bf27871f1362b4c1d140a99183a1364f0099\"\u003e\u003ccode\u003e88d1bf2\u003c/code\u003e\u003c/a\u003e Release 15.0 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/281\"\u003e#281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/compare/15.0...15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-timeout` from 2.3.1 to 2.4.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-timeout/commit/ddabc934535081a5bf9ba7c9ca5b494aeaf8f665\"\u003e\u003ccode\u003eddabc93\u003c/code\u003e\u003c/a\u003e Add python 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-timeout/commit/617b1b6f0ab74517b92a4966b6db9e509d987972\"\u003e\u003ccode\u003e617b1b6\u003c/code\u003e\u003c/a\u003e Prepare release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-timeout/commit/2e96621ee1b61057438c0f8c5b158eddc31654c5\"\u003e\u003ccode\u003e2e96621\u003c/code\u003e\u003c/a\u003e Change error message to clearly relate it to pytest-timeout (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-timeout/issues/180\"\u003e#180\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-timeout/commit/733b26b5d3b6f1c86876339f336cd827dc7d1a0c\"\u003e\u003ccode\u003e733b26b\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-timeout/commit/fa5fd451afa3e7e676c7a31a9e7b058dabf0988b\"\u003e\u003ccode\u003efa5fd45\u003c/code\u003e\u003c/a\u003e Add support sys.monitoring\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-timeout/commit/3d41ba8042ab1d07613572d95853dcc1c3602880\"\u003e\u003ccode\u003e3d41ba8\u003c/code\u003e\u003c/a\u003e Update README.rst with pytest-xdist 3.0.2 news\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-timeout/commit/935f51cf0931dbbee8162e89b53289f1f43df499\"\u003e\u003ccode\u003e935f51c\u003c/code\u003e\u003c/a\u003e Add missing Python 3.12 trove classifier\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pytest-dev/pytest-timeout/compare/2.3.1...2.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\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 \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/Scille/parsec-cloud/pull/10254","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Scille%2Fparsec-cloud/issues/10254","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/10254/packages"},{"uuid":"2508643569","node_id":"PR_kwDOJAMqnc6Vhtzx","number":535,"state":"closed","title":"⬆ Bump pytest-rerunfailures from 15.0 to 15.1","user":"dependabot[bot]","labels":["🔍 enhancement","🐍 python","dependencies"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":"2025-05-09T06:47:35.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-05-09T05:02:21.000Z","updated_at":"2025-05-09T06:47:35.000Z","time_to_close":6314,"merged_at":"2025-05-09T06:47:35.000Z","merged_by":"Chisanan232","closed_by":null,"dependency_metadata":{"prefix":"⬆ Bump","packages":[{"name":"pytest-rerunfailures","old_version":"15.0","new_version":"15.1","repository_url":"https://github.com/pytest-dev/pytest-rerunfailures"}],"path":null,"ecosystem":"conda"},"body":"Bumps [pytest-rerunfailures](https://github.com/pytest-dev/pytest-rerunfailures) from 15.0 to 15.1.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/blob/master/CHANGES.rst\"\u003epytest-rerunfailures's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e15.1 (2025-05-08)\u003c/h2\u003e\n\u003cp\u003eBug fixes\n+++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003e--fail-on-flaky\u003c/code\u003e option to fail the test run with custom exit code\nonly when reruns are detected.\n(\u003ccode\u003e[#287](https://github.com/pytest-dev/pytest-rerunfailures/issues/287) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/287\u0026gt;\u003c/code\u003e_)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSwitched to using the SPDX license identifier in the project metadata.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eOther changes\n+++++++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eChange exception filtering logic to match \u003ccode\u003eAssertionError\u003c/code\u003e raised via\n\u003ccode\u003eassert\u003c/code\u003e statements when filtering by \u0026quot;AssertionError\u0026quot;.\n(\u003ccode\u003e[#292](https://github.com/pytest-dev/pytest-rerunfailures/issues/292) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/292\u0026gt;\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/pytest-dev/pytest-rerunfailures/commit/beaa1a46d3d57e30c8e6fa2ad26d42721eeb7d73\"\u003e\u003ccode\u003ebeaa1a4\u003c/code\u003e\u003c/a\u003e Preparing release 15.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/1ddc2455289ef9a25c8b8736dfb84b401ca9be89\"\u003e\u003ccode\u003e1ddc245\u003c/code\u003e\u003c/a\u003e Pimp MANIFEST.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/c5a282cf4e1b20452440da6c16baa9ef9dda83a3\"\u003e\u003ccode\u003ec5a282c\u003c/code\u003e\u003c/a\u003e Update exception filtering to match against actual exception (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/293\"\u003e#293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/3064a7782efbee1ede8f76ae59d87b670b10b829\"\u003e\u003ccode\u003e3064a77\u003c/code\u003e\u003c/a\u003e Use SPDX license identifier (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/d0ff1d4337993cb0f74a46e59f1e6bed0857a0a6\"\u003e\u003ccode\u003ed0ff1d4\u003c/code\u003e\u003c/a\u003e Adjust \u003ccode\u003e--fail-on-flaky\u003c/code\u003e behavior to improve exit status handling (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/288\"\u003e#288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/c4992c38f17090debe74519eb3945e54e0c01d66\"\u003e\u003ccode\u003ec4992c3\u003c/code\u003e\u003c/a\u003e Configure for readthedocs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/5a1a3b2f48ad64e6944354b50eb188378e96dab2\"\u003e\u003ccode\u003e5a1a3b2\u003c/code\u003e\u003c/a\u003e Initial draft docs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/283\"\u003e#283\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/4bbc0bea3ba206639313d165d7252bd7501c96a5\"\u003e\u003ccode\u003e4bbc0be\u003c/code\u003e\u003c/a\u003e Fix duplicate keyword. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/88d1bf27871f1362b4c1d140a99183a1364f0099\"\u003e\u003ccode\u003e88d1bf2\u003c/code\u003e\u003c/a\u003e Release 15.0 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/281\"\u003e#281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/compare/15.0...15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pytest-rerunfailures\u0026package-manager=pip\u0026previous-version=15.0\u0026new-version=15.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don'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/Chisanan232/PyFake-API-Server/pull/535","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Chisanan232%2FPyFake-API-Server/issues/535","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/535/packages"},{"uuid":"2508614651","node_id":"PR_kwDOEWQDts6Vhmv7","number":2266,"state":"closed","title":"Bump pytest-rerunfailures from 15.0 to 15.1 in /requirements","user":"dependabot[bot]","labels":["maintenance","dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-05-12T14:15:20.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-05-09T04:34:29.000Z","updated_at":"2025-05-12T14:15:20.000Z","time_to_close":294051,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"pytest-rerunfailures","old_version":"15.0","new_version":"15.1","repository_url":"https://github.com/pytest-dev/pytest-rerunfailures"}],"path":"/requirements","ecosystem":"conda"},"body":"Bumps [pytest-rerunfailures](https://github.com/pytest-dev/pytest-rerunfailures) from 15.0 to 15.1.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/blob/master/CHANGES.rst\"\u003epytest-rerunfailures's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e15.1 (2025-05-08)\u003c/h2\u003e\n\u003cp\u003eBug fixes\n+++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003e--fail-on-flaky\u003c/code\u003e option to fail the test run with custom exit code\nonly when reruns are detected.\n(\u003ccode\u003e[#287](https://github.com/pytest-dev/pytest-rerunfailures/issues/287) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/287\u0026gt;\u003c/code\u003e_)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSwitched to using the SPDX license identifier in the project metadata.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eOther changes\n+++++++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eChange exception filtering logic to match \u003ccode\u003eAssertionError\u003c/code\u003e raised via\n\u003ccode\u003eassert\u003c/code\u003e statements when filtering by \u0026quot;AssertionError\u0026quot;.\n(\u003ccode\u003e[#292](https://github.com/pytest-dev/pytest-rerunfailures/issues/292) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/292\u0026gt;\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/pytest-dev/pytest-rerunfailures/commit/beaa1a46d3d57e30c8e6fa2ad26d42721eeb7d73\"\u003e\u003ccode\u003ebeaa1a4\u003c/code\u003e\u003c/a\u003e Preparing release 15.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/1ddc2455289ef9a25c8b8736dfb84b401ca9be89\"\u003e\u003ccode\u003e1ddc245\u003c/code\u003e\u003c/a\u003e Pimp MANIFEST.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/c5a282cf4e1b20452440da6c16baa9ef9dda83a3\"\u003e\u003ccode\u003ec5a282c\u003c/code\u003e\u003c/a\u003e Update exception filtering to match against actual exception (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/293\"\u003e#293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/3064a7782efbee1ede8f76ae59d87b670b10b829\"\u003e\u003ccode\u003e3064a77\u003c/code\u003e\u003c/a\u003e Use SPDX license identifier (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/d0ff1d4337993cb0f74a46e59f1e6bed0857a0a6\"\u003e\u003ccode\u003ed0ff1d4\u003c/code\u003e\u003c/a\u003e Adjust \u003ccode\u003e--fail-on-flaky\u003c/code\u003e behavior to improve exit status handling (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/288\"\u003e#288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/c4992c38f17090debe74519eb3945e54e0c01d66\"\u003e\u003ccode\u003ec4992c3\u003c/code\u003e\u003c/a\u003e Configure for readthedocs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/5a1a3b2f48ad64e6944354b50eb188378e96dab2\"\u003e\u003ccode\u003e5a1a3b2\u003c/code\u003e\u003c/a\u003e Initial draft docs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/283\"\u003e#283\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/4bbc0bea3ba206639313d165d7252bd7501c96a5\"\u003e\u003ccode\u003e4bbc0be\u003c/code\u003e\u003c/a\u003e Fix duplicate keyword. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/88d1bf27871f1362b4c1d140a99183a1364f0099\"\u003e\u003ccode\u003e88d1bf2\u003c/code\u003e\u003c/a\u003e Release 15.0 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/281\"\u003e#281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/compare/15.0...15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eMost Recent Ignore Conditions Applied to This Pull Request\u003c/summary\u003e\n\n| Dependency Name | Ignore Conditions |\n| --- | --- |\n| pytest-rerunfailures | [\u003c 12, \u003e 11.0] |\n\u003c/details\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pytest-rerunfailures\u0026package-manager=pip\u0026previous-version=15.0\u0026new-version=15.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don'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/ansys/pydpf-core/pull/2266","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ansys%2Fpydpf-core/issues/2266","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/2266/packages"},{"uuid":"2508384393","node_id":"PR_kwDOBDa8Z86VguiJ","number":3911,"state":"closed","title":"build: bump the testing group with 2 updates","user":"dependabot[bot]","labels":["dependencies","maintenance"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2025-05-09T09:30:43.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-05-09T00:55:35.000Z","updated_at":"2025-05-09T09:30:43.000Z","time_to_close":30908,"merged_at":"2025-05-09T09:30:43.000Z","merged_by":"germa89","closed_by":null,"dependency_metadata":{"prefix":"build: bump","group_name":"testing","update_count":2,"packages":[{"name":"pytest-rerunfailures","old_version":"15.0","new_version":"15.1","repository_url":"https://github.com/pytest-dev/pytest-rerunfailures"},{"name":"pytest-timeout","old_version":"2.3.1","new_version":"2.4.0","repository_url":"https://github.com/pytest-dev/pytest-timeout"}],"path":null,"ecosystem":"conda"},"body":"[//]: # (dependabot-start)\n⚠️  **Dependabot is rebasing this PR** ⚠️ \n\nRebasing might not happen immediately, so don't worry if this takes some time.\n\nNote: if you make any changes to this PR yourself, they will take precedence over the rebase.\n\n---\n\n[//]: # (dependabot-end)\n\nBumps the testing group with 2 updates: [pytest-rerunfailures](https://github.com/pytest-dev/pytest-rerunfailures) and [pytest-timeout](https://github.com/pytest-dev/pytest-timeout).\n\nUpdates `pytest-rerunfailures` from 15.0 to 15.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/blob/master/CHANGES.rst\"\u003epytest-rerunfailures's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e15.1 (2025-05-08)\u003c/h2\u003e\n\u003cp\u003eBug fixes\n+++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003e--fail-on-flaky\u003c/code\u003e option to fail the test run with custom exit code\nonly when reruns are detected.\n(\u003ccode\u003e[#287](https://github.com/pytest-dev/pytest-rerunfailures/issues/287) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/287\u0026gt;\u003c/code\u003e_)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSwitched to using the SPDX license identifier in the project metadata.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eOther changes\n+++++++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eChange exception filtering logic to match \u003ccode\u003eAssertionError\u003c/code\u003e raised via\n\u003ccode\u003eassert\u003c/code\u003e statements when filtering by \u0026quot;AssertionError\u0026quot;.\n(\u003ccode\u003e[#292](https://github.com/pytest-dev/pytest-rerunfailures/issues/292) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/292\u0026gt;\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/pytest-dev/pytest-rerunfailures/commit/beaa1a46d3d57e30c8e6fa2ad26d42721eeb7d73\"\u003e\u003ccode\u003ebeaa1a4\u003c/code\u003e\u003c/a\u003e Preparing release 15.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/1ddc2455289ef9a25c8b8736dfb84b401ca9be89\"\u003e\u003ccode\u003e1ddc245\u003c/code\u003e\u003c/a\u003e Pimp MANIFEST.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/c5a282cf4e1b20452440da6c16baa9ef9dda83a3\"\u003e\u003ccode\u003ec5a282c\u003c/code\u003e\u003c/a\u003e Update exception filtering to match against actual exception (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/293\"\u003e#293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/3064a7782efbee1ede8f76ae59d87b670b10b829\"\u003e\u003ccode\u003e3064a77\u003c/code\u003e\u003c/a\u003e Use SPDX license identifier (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/d0ff1d4337993cb0f74a46e59f1e6bed0857a0a6\"\u003e\u003ccode\u003ed0ff1d4\u003c/code\u003e\u003c/a\u003e Adjust \u003ccode\u003e--fail-on-flaky\u003c/code\u003e behavior to improve exit status handling (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/288\"\u003e#288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/c4992c38f17090debe74519eb3945e54e0c01d66\"\u003e\u003ccode\u003ec4992c3\u003c/code\u003e\u003c/a\u003e Configure for readthedocs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/5a1a3b2f48ad64e6944354b50eb188378e96dab2\"\u003e\u003ccode\u003e5a1a3b2\u003c/code\u003e\u003c/a\u003e Initial draft docs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/283\"\u003e#283\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/4bbc0bea3ba206639313d165d7252bd7501c96a5\"\u003e\u003ccode\u003e4bbc0be\u003c/code\u003e\u003c/a\u003e Fix duplicate keyword. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/88d1bf27871f1362b4c1d140a99183a1364f0099\"\u003e\u003ccode\u003e88d1bf2\u003c/code\u003e\u003c/a\u003e Release 15.0 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/281\"\u003e#281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/compare/15.0...15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-timeout` from 2.3.1 to 2.4.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-timeout/commit/ddabc934535081a5bf9ba7c9ca5b494aeaf8f665\"\u003e\u003ccode\u003eddabc93\u003c/code\u003e\u003c/a\u003e Add python 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-timeout/commit/617b1b6f0ab74517b92a4966b6db9e509d987972\"\u003e\u003ccode\u003e617b1b6\u003c/code\u003e\u003c/a\u003e Prepare release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-timeout/commit/2e96621ee1b61057438c0f8c5b158eddc31654c5\"\u003e\u003ccode\u003e2e96621\u003c/code\u003e\u003c/a\u003e Change error message to clearly relate it to pytest-timeout (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-timeout/issues/180\"\u003e#180\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-timeout/commit/733b26b5d3b6f1c86876339f336cd827dc7d1a0c\"\u003e\u003ccode\u003e733b26b\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-timeout/commit/fa5fd451afa3e7e676c7a31a9e7b058dabf0988b\"\u003e\u003ccode\u003efa5fd45\u003c/code\u003e\u003c/a\u003e Add support sys.monitoring\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-timeout/commit/3d41ba8042ab1d07613572d95853dcc1c3602880\"\u003e\u003ccode\u003e3d41ba8\u003c/code\u003e\u003c/a\u003e Update README.rst with pytest-xdist 3.0.2 news\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-timeout/commit/935f51cf0931dbbee8162e89b53289f1f43df499\"\u003e\u003ccode\u003e935f51c\u003c/code\u003e\u003c/a\u003e Add missing Python 3.12 trove classifier\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pytest-dev/pytest-timeout/compare/2.3.1...2.4.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\n\n## Summary by Sourcery\n\nUpdate testing dependencies.\n\nBuild:\n- Bump `pytest-rerunfailures` from 15.0 to 15.1.\n- Bump `pytest-timeout` from 2.3.1 to 2.4.0.","html_url":"https://github.com/ansys/pymapdl/pull/3911","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ansys%2Fpymapdl/issues/3911","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/3911/packages"},{"uuid":"2508184702","node_id":"PR_kwDONb48dc6Vf9x-","number":339,"state":"closed","title":"⬆ Bump pytest-rerunfailures from 15.0 to 15.1","user":"dependabot[bot]","labels":["🔎 enhancement","🐍 python","dependencies"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":"2025-05-09T01:52:12.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-05-08T22:14:50.000Z","updated_at":"2025-05-09T01:52:12.000Z","time_to_close":13042,"merged_at":"2025-05-09T01:52:12.000Z","merged_by":"Chisanan232","closed_by":null,"dependency_metadata":{"prefix":"⬆ Bump","packages":[{"name":"pytest-rerunfailures","old_version":"15.0","new_version":"15.1","repository_url":"https://github.com/pytest-dev/pytest-rerunfailures"}],"path":null,"ecosystem":"conda"},"body":"Bumps [pytest-rerunfailures](https://github.com/pytest-dev/pytest-rerunfailures) from 15.0 to 15.1.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/blob/master/CHANGES.rst\"\u003epytest-rerunfailures's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e15.1 (2025-05-08)\u003c/h2\u003e\n\u003cp\u003eBug fixes\n+++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003e--fail-on-flaky\u003c/code\u003e option to fail the test run with custom exit code\nonly when reruns are detected.\n(\u003ccode\u003e[#287](https://github.com/pytest-dev/pytest-rerunfailures/issues/287) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/287\u0026gt;\u003c/code\u003e_)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSwitched to using the SPDX license identifier in the project metadata.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eOther changes\n+++++++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eChange exception filtering logic to match \u003ccode\u003eAssertionError\u003c/code\u003e raised via\n\u003ccode\u003eassert\u003c/code\u003e statements when filtering by \u0026quot;AssertionError\u0026quot;.\n(\u003ccode\u003e[#292](https://github.com/pytest-dev/pytest-rerunfailures/issues/292) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/292\u0026gt;\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/pytest-dev/pytest-rerunfailures/commit/beaa1a46d3d57e30c8e6fa2ad26d42721eeb7d73\"\u003e\u003ccode\u003ebeaa1a4\u003c/code\u003e\u003c/a\u003e Preparing release 15.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/1ddc2455289ef9a25c8b8736dfb84b401ca9be89\"\u003e\u003ccode\u003e1ddc245\u003c/code\u003e\u003c/a\u003e Pimp MANIFEST.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/c5a282cf4e1b20452440da6c16baa9ef9dda83a3\"\u003e\u003ccode\u003ec5a282c\u003c/code\u003e\u003c/a\u003e Update exception filtering to match against actual exception (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/293\"\u003e#293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/3064a7782efbee1ede8f76ae59d87b670b10b829\"\u003e\u003ccode\u003e3064a77\u003c/code\u003e\u003c/a\u003e Use SPDX license identifier (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/d0ff1d4337993cb0f74a46e59f1e6bed0857a0a6\"\u003e\u003ccode\u003ed0ff1d4\u003c/code\u003e\u003c/a\u003e Adjust \u003ccode\u003e--fail-on-flaky\u003c/code\u003e behavior to improve exit status handling (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/288\"\u003e#288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/c4992c38f17090debe74519eb3945e54e0c01d66\"\u003e\u003ccode\u003ec4992c3\u003c/code\u003e\u003c/a\u003e Configure for readthedocs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/5a1a3b2f48ad64e6944354b50eb188378e96dab2\"\u003e\u003ccode\u003e5a1a3b2\u003c/code\u003e\u003c/a\u003e Initial draft docs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/283\"\u003e#283\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/4bbc0bea3ba206639313d165d7252bd7501c96a5\"\u003e\u003ccode\u003e4bbc0be\u003c/code\u003e\u003c/a\u003e Fix duplicate keyword. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/88d1bf27871f1362b4c1d140a99183a1364f0099\"\u003e\u003ccode\u003e88d1bf2\u003c/code\u003e\u003c/a\u003e Release 15.0 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/281\"\u003e#281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/compare/15.0...15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pytest-rerunfailures\u0026package-manager=pip\u0026previous-version=15.0\u0026new-version=15.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don'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/Chisanan232/PyFake-API-Server-Surveillance/pull/339","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Chisanan232%2FPyFake-API-Server-Surveillance/issues/339","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/339/packages"},{"uuid":"2507938780","node_id":"PR_kwDOOVNBGM6VfBvc","number":28,"state":"closed","title":"⬆ Bump pytest-rerunfailures from 15.0 to 15.1","user":"dependabot[bot]","labels":["dependencies","🐍 python","🔎 enhancement"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":"2025-05-09T01:52:38.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-05-08T19:40:59.000Z","updated_at":"2025-05-09T01:52:38.000Z","time_to_close":22299,"merged_at":"2025-05-09T01:52:38.000Z","merged_by":"Chisanan232","closed_by":null,"dependency_metadata":{"prefix":"⬆ Bump","packages":[{"name":"pytest-rerunfailures","old_version":"15.0","new_version":"15.1","repository_url":"https://github.com/pytest-dev/pytest-rerunfailures"}],"path":null,"ecosystem":"conda"},"body":"Bumps [pytest-rerunfailures](https://github.com/pytest-dev/pytest-rerunfailures) from 15.0 to 15.1.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/blob/master/CHANGES.rst\"\u003epytest-rerunfailures's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e15.1 (2025-05-08)\u003c/h2\u003e\n\u003cp\u003eBug fixes\n+++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003e--fail-on-flaky\u003c/code\u003e option to fail the test run with custom exit code\nonly when reruns are detected.\n(\u003ccode\u003e[#287](https://github.com/pytest-dev/pytest-rerunfailures/issues/287) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/287\u0026gt;\u003c/code\u003e_)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSwitched to using the SPDX license identifier in the project metadata.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eOther changes\n+++++++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eChange exception filtering logic to match \u003ccode\u003eAssertionError\u003c/code\u003e raised via\n\u003ccode\u003eassert\u003c/code\u003e statements when filtering by \u0026quot;AssertionError\u0026quot;.\n(\u003ccode\u003e[#292](https://github.com/pytest-dev/pytest-rerunfailures/issues/292) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/292\u0026gt;\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/pytest-dev/pytest-rerunfailures/commit/beaa1a46d3d57e30c8e6fa2ad26d42721eeb7d73\"\u003e\u003ccode\u003ebeaa1a4\u003c/code\u003e\u003c/a\u003e Preparing release 15.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/1ddc2455289ef9a25c8b8736dfb84b401ca9be89\"\u003e\u003ccode\u003e1ddc245\u003c/code\u003e\u003c/a\u003e Pimp MANIFEST.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/c5a282cf4e1b20452440da6c16baa9ef9dda83a3\"\u003e\u003ccode\u003ec5a282c\u003c/code\u003e\u003c/a\u003e Update exception filtering to match against actual exception (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/293\"\u003e#293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/3064a7782efbee1ede8f76ae59d87b670b10b829\"\u003e\u003ccode\u003e3064a77\u003c/code\u003e\u003c/a\u003e Use SPDX license identifier (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/d0ff1d4337993cb0f74a46e59f1e6bed0857a0a6\"\u003e\u003ccode\u003ed0ff1d4\u003c/code\u003e\u003c/a\u003e Adjust \u003ccode\u003e--fail-on-flaky\u003c/code\u003e behavior to improve exit status handling (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/288\"\u003e#288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/c4992c38f17090debe74519eb3945e54e0c01d66\"\u003e\u003ccode\u003ec4992c3\u003c/code\u003e\u003c/a\u003e Configure for readthedocs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/5a1a3b2f48ad64e6944354b50eb188378e96dab2\"\u003e\u003ccode\u003e5a1a3b2\u003c/code\u003e\u003c/a\u003e Initial draft docs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/283\"\u003e#283\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/4bbc0bea3ba206639313d165d7252bd7501c96a5\"\u003e\u003ccode\u003e4bbc0be\u003c/code\u003e\u003c/a\u003e Fix duplicate keyword. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/88d1bf27871f1362b4c1d140a99183a1364f0099\"\u003e\u003ccode\u003e88d1bf2\u003c/code\u003e\u003c/a\u003e Release 15.0 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/281\"\u003e#281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/compare/15.0...15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pytest-rerunfailures\u0026package-manager=pip\u0026previous-version=15.0\u0026new-version=15.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don'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/Chisanan232/Create-PR-Bot/pull/28","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Chisanan232%2FCreate-PR-Bot/issues/28","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/28/packages"}],"issue_packages":[{"old_version":"16.1","new_version":"16.3","update_type":null,"path":null,"pr_created_at":"2026-06-03T07:02:34.000Z","version_change":"16.1 → 16.3","issue":{"uuid":"4577657595","node_id":"PR_kwDOG1Zs187iGw6R","number":12925,"state":"closed","title":"Chore(deps): Bump the utilities-minor group with 13 updates","user":"dependabot[bot]","labels":["non-trivial","backend","dependencies"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":"2026-06-03T22:32:19.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-03T07:02:34.000Z","updated_at":"2026-06-03T22:32:21.000Z","time_to_close":55785,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Chore(deps): Bump","group_name":"utilities-minor","update_count":13,"packages":[{"name":"faiss-cpu","old_version":"1.13.2","new_version":"1.14.2","repository_url":"https://github.com/facebookresearch/faiss"},{"name":"httpx-oauth","old_version":"0.16.1","new_version":"0.17.0","repository_url":"https://github.com/frankie567/httpx-oauth"},{"name":"imap-tools","old_version":"1.12.1","new_version":"1.13.0","repository_url":"https://github.com/ikvk/imap_tools"},{"name":"openai","old_version":"2.32.0","new_version":"2.38.0","repository_url":"https://github.com/openai/openai-python"},{"name":"regex","old_version":"2026.4.4","new_version":"2026.5.9","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"sentence-transformers","old_version":"5.4.1","new_version":"5.5.1","repository_url":"https://github.com/huggingface/sentence-transformers"},{"name":"torch","old_version":"2.11.0","new_version":"2.12.0","repository_url":"https://github.com/pytorch/pytorch"},{"name":"watchfiles","old_version":"1.1.1","new_version":"1.2.0","repository_url":"https://github.com/samuelcolvin/watchfiles"},{"name":"prek","old_version":"0.3.10","new_version":"0.4.3","repository_url":"https://github.com/j178/prek"},{"name":"faker","old_version":"40.15.0","new_version":"40.19.1","repository_url":"https://github.com/joke2k/faker"},{"name":"pytest-rerunfailures","old_version":"16.1","new_version":"16.3","repository_url":"https://github.com/pytest-dev/pytest-rerunfailures"},{"name":"types-pytz","old_version":"2026.1.1.20260304","new_version":"2026.2.0.20260518","repository_url":"https://github.com/python/typeshed"},{"name":"types-regex","old_version":"2026.4.4.20260408","new_version":"2026.5.9.20260518","repository_url":"https://github.com/python/typeshed"}],"path":null,"ecosystem":"conda"},"body":"Bumps the utilities-minor group with 13 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [faiss-cpu](https://github.com/facebookresearch/faiss) | `1.13.2` | `1.14.2` |\n| [httpx-oauth](https://github.com/frankie567/httpx-oauth) | `0.16.1` | `0.17.0` |\n| [imap-tools](https://github.com/ikvk/imap_tools) | `1.12.1` | `1.13.0` |\n| [openai](https://github.com/openai/openai-python) | `2.32.0` | `2.38.0` |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.4.4` | `2026.5.9` |\n| [sentence-transformers](https://github.com/huggingface/sentence-transformers) | `5.4.1` | `5.5.1` |\n| [torch](https://github.com/pytorch/pytorch) | `2.11.0` | `2.12.0` |\n| [watchfiles](https://github.com/samuelcolvin/watchfiles) | `1.1.1` | `1.2.0` |\n| [prek](https://github.com/j178/prek) | `0.3.10` | `0.4.3` |\n| [faker](https://github.com/joke2k/faker) | `40.15.0` | `40.19.1` |\n| [pytest-rerunfailures](https://github.com/pytest-dev/pytest-rerunfailures) | `16.1` | `16.3` |\n| [types-pytz](https://github.com/python/typeshed) | `2026.1.1.20260304` | `2026.2.0.20260518` |\n| [types-regex](https://github.com/python/typeshed) | `2026.4.4.20260408` | `2026.5.9.20260518` |\n\nUpdates `faiss-cpu` from 1.13.2 to 1.14.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/facebookresearch/faiss/releases\"\u003efaiss-cpu's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.14.2\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSuperKMeans\u003c/strong\u003e — faster k-means via ADSampling + PDX progressive pruning (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5168\"\u003e#5168\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eMetal GPU backend\u003c/strong\u003e for Apple Silicon, starting with \u003ccode\u003eIndexFlat\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5144\"\u003e#5144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRVV (RISC-V Vector) SIMD backend\u003c/strong\u003e + RISC-V cross-compilation CI (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5156\"\u003e#5156\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5184\"\u003e#5184\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epip install support\u003c/strong\u003e via scikit-build-core + cibuildwheel (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/4862\"\u003e#4862\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSVS IVF index\u003c/strong\u003e enabled; SVS upgraded to 0.3.0 (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/4801\"\u003e#4801\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/4999\"\u003e#4999\u003c/a\u003e); SVSVamana usable as IVF coarse quantizer via \u003ccode\u003eindex_factory\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5175\"\u003e#5175\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eTurboQuant (CPU)\u003c/strong\u003e quantizer (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5049\"\u003e#5049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eHNSW improvements\u003c/strong\u003e — optional persistent locks for incremental adds (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5031\"\u003e#5031\u003c/a\u003e), \u003ccode\u003eprune_headroom\u003c/code\u003e to avoid O(n²) pruning (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/4847\"\u003e#4847\u003c/a\u003e), narrower add-time critical section (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/4915\"\u003e#4915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eExtensive index deserialization hardening\u003c/strong\u003e — validation and OOM/overflow protection across ~40 PRs (binary, IVF, HNSW, FastScan, ScalarQuantizer, AdditiveQuantizer, ProductQuantizer, SVS, VectorTransform, …)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eMajor Dynamic Dispatch refactor\u003c/strong\u003e across distances, hamming, partitioning, RaBitQ, FastScan; dynamic dispatch now builds on Windows (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5127\"\u003e#5127\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecuVS upgraded to 26.02\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/4945\"\u003e#4945\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/4788\"\u003e#4788\u003c/a\u003e); CI moved to \u003cstrong\u003eCUDA 13.2\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5207\"\u003e#5207\u003c/a\u003e); \u003cstrong\u003eC++20 for cuVS\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/4881\"\u003e#4881\u003c/a\u003e); filtered search for cuVS indexes (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/4858\"\u003e#4858\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eOMP exception safety\u003c/strong\u003e across \u003ccode\u003eIndexHNSW\u003c/code\u003e, \u003ccode\u003eIndexNNDescent\u003c/code\u003e, \u003ccode\u003eIndexNSG\u003c/code\u003e, \u003ccode\u003eIndexFlatCodes\u003c/code\u003e, \u003ccode\u003eIndexIVF\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5106\"\u003e#5106\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5105\"\u003e#5105\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5111\"\u003e#5111\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5133\"\u003e#5133\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5037\"\u003e#5037\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5053\"\u003e#5053\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFull Changelog\u003c/h2\u003e\n\u003cp\u003eAdded\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eb7618fadc7fdf9b677277fbe96864c1902a6d8dc Add SuperKMeans: faster k-means via ADSampling+PDX progressive pruning (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5168\"\u003e#5168\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e66c9d082651659fb6e78d67c547b035d3c2c8228 Add SuperKMeans foundations: math primitives, PDX layout, SIMD kernels\u003c/li\u003e\n\u003cli\u003edc7afcfdf0d4bf7cc694f4974db77e471422d4cb Support SVSVamana as IVF coarse quantizer via index_factory (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5175\"\u003e#5175\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e7a8e4ddaca3d25363a79942e9fcd26de78436607 CI: cross-compile for riscv64 with RVV dynamic dispatch (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5184\"\u003e#5184\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e03202795b6451f2c6942262c998de3b980e96157 Introduce RVV (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5156\"\u003e#5156\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e417c53e0ce23e8c3f2843bc727c9493e35b1d5d0 Add NoneSIMDLevel context manager for cross-level reference checks (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5158\"\u003e#5158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e46def46902231ed57552ddbcfd751e17720c6d32 Enable SVS IVF Index in FAISS (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/4801\"\u003e#4801\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e585ba7954afb4da180a897bf195acd7516a44632 Add pip install support via scikit-build-core + cibuildwheel (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/4862\"\u003e#4862\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e799bf3aaeca910113fd2f1b0287568f07eb002fa Introduce early stop facilities for IVF, attempt 2 (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5160\"\u003e#5160\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e66cea524339ee7cd1b3954e3b5a677edb2adad74 Add Metal GPU backend for Apple Silicon (IndexFlat) (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5144\"\u003e#5144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e17fd3332c77c2801da4b467de67b5cadf045b328 Add database-parallel flat search for few-query workloads (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5000\"\u003e#5000\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ec7f07bbc0ad0e9c0b68c6c7a3696850f42500906 Add C++ per-SIMD-level tests for distance utility functions (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5154\"\u003e#5154\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e0242758a3d073be0f5b0117b524a1fbdfcf02860 Add bit-exact RQ encode cross-level test (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5155\"\u003e#5155\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e2f68a3730777f88da34d562bc90f637bb39c1cb3 Add per-SIMD-level tests for hamming.h utils + fix crosshamming bug (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5153\"\u003e#5153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ea7116ed4ec2ab4f0889d305592f579d5b2fb5745 Add TurboQuant (CPU) (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5049\"\u003e#5049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e11e5d3916054b23bf60253763abf5e9033fca39e Add optional persistent locks to IndexHNSW for incremental adds (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5031\"\u003e#5031\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ee82aa28b838d1cad66044c3888b75eb832a39fb4 Add OMP exception capture helpers and migrate IndexIVF (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5111\"\u003e#5111\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e6299bff1f60e5423fa8cfe8e8d3926f8d87bdafb Add QT_0bit to ScalarQuantizer for centroid-only IVF distance (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5079\"\u003e#5079\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e3030fe0635b743ccfddf3684752438269a5ab0c5 Add filtered search for cuVS indexes (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/4858\"\u003e#4858\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ef83ea51eaa60987315fcd2deca153924abd7995d Support IVFRaBitQSearchParameters in RaBitQFastScan scanner (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5081\"\u003e#5081\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e82a823513d8a7a7e497de11e7da0cba2aae7721d Add iterator callbacks for distance computation and heap admission (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5082\"\u003e#5082\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eb068fd985a7460c04ec6c4f909900409392520d0 Support IO_FLAG_MMAP_IFC on Darwin (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5058\"\u003e#5058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e113bf6ceac4e9d1bfeaf29279b29a8293759f83b Expose fast_scan_code_size from non-IVF FastScan indices (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5077\"\u003e#5077\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e786d993dbfb8b74b2a0d4d9543b2b08310acabbe Expose a fast scan code size from fast scan indices (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5064\"\u003e#5064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e95f1e45221ede8caf1b0139a3c8864d473e0e47d OMP build diagnostics (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/4842\"\u003e#4842\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ec4ac852e5b5aa2ba4bde8a977633c367aa85d5db Add a balanced assignment function (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5050\"\u003e#5050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e8402a6b764c024ca78fb87d768cb81de3f60c925 Add unit tests for HNSW deserialization validation (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5033\"\u003e#5033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e1dc5e1fb60405eda268a7d55b1d5a14feef962ba V2 enable specifying a subset of SIMD levels that are implemented at dispatching time. (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/4959\"\u003e#4959\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ee6f5c0c9a9f70f63c00d3ac5651edce6aebd734d Add SIMD dynamic dispatch migration guide (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/4973\"\u003e#4973\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e8177a3bca62af1042d955277cafe9db73d5a0c1d Add nvidia-smi diagnostic call (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/4960\"\u003e#4960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e67fc664fe0ac1774bd4dcf2ab1aaa488cc7d0545 Add CappedInvertedLists for per-list size limiting (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/4880\"\u003e#4880\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/facebookresearch/faiss/blob/main/CHANGELOG.md\"\u003efaiss-cpu's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.14.2] - 2026-05-21\u003c/h2\u003e\n\u003cp\u003eAdded\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eb7618fadc7fdf9b677277fbe96864c1902a6d8dc Add SuperKMeans: faster k-means via ADSampling+PDX progressive pruning (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5168\"\u003e#5168\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e66c9d082651659fb6e78d67c547b035d3c2c8228 Add SuperKMeans foundations: math primitives, PDX layout, SIMD kernels\u003c/li\u003e\n\u003cli\u003edc7afcfdf0d4bf7cc694f4974db77e471422d4cb Support SVSVamana as IVF coarse quantizer via index_factory (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5175\"\u003e#5175\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e7a8e4ddaca3d25363a79942e9fcd26de78436607 CI: cross-compile for riscv64 with RVV dynamic dispatch (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5184\"\u003e#5184\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e03202795b6451f2c6942262c998de3b980e96157 Introduce RVV (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5156\"\u003e#5156\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e417c53e0ce23e8c3f2843bc727c9493e35b1d5d0 Add NoneSIMDLevel context manager for cross-level reference checks (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5158\"\u003e#5158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e46def46902231ed57552ddbcfd751e17720c6d32 Enable SVS IVF Index in FAISS (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/4801\"\u003e#4801\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e585ba7954afb4da180a897bf195acd7516a44632 Add pip install support via scikit-build-core + cibuildwheel (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/4862\"\u003e#4862\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e799bf3aaeca910113fd2f1b0287568f07eb002fa Introduce early stop facilities for IVF, attempt 2 (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5160\"\u003e#5160\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e66cea524339ee7cd1b3954e3b5a677edb2adad74 Add Metal GPU backend for Apple Silicon (IndexFlat) (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5144\"\u003e#5144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e17fd3332c77c2801da4b467de67b5cadf045b328 Add database-parallel flat search for few-query workloads (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5000\"\u003e#5000\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ec7f07bbc0ad0e9c0b68c6c7a3696850f42500906 Add C++ per-SIMD-level tests for distance utility functions (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5154\"\u003e#5154\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e0242758a3d073be0f5b0117b524a1fbdfcf02860 Add bit-exact RQ encode cross-level test (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5155\"\u003e#5155\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e2f68a3730777f88da34d562bc90f637bb39c1cb3 Add per-SIMD-level tests for hamming.h utils + fix crosshamming bug (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5153\"\u003e#5153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ea7116ed4ec2ab4f0889d305592f579d5b2fb5745 Add TurboQuant (CPU) (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5049\"\u003e#5049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e11e5d3916054b23bf60253763abf5e9033fca39e Add optional persistent locks to IndexHNSW for incremental adds (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5031\"\u003e#5031\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ee82aa28b838d1cad66044c3888b75eb832a39fb4 Add OMP exception capture helpers and migrate IndexIVF (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5111\"\u003e#5111\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e6299bff1f60e5423fa8cfe8e8d3926f8d87bdafb Add QT_0bit to ScalarQuantizer for centroid-only IVF distance (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5079\"\u003e#5079\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e3030fe0635b743ccfddf3684752438269a5ab0c5 Add filtered search for cuVS indexes (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/4858\"\u003e#4858\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ef83ea51eaa60987315fcd2deca153924abd7995d Support IVFRaBitQSearchParameters in RaBitQFastScan scanner (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5081\"\u003e#5081\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e82a823513d8a7a7e497de11e7da0cba2aae7721d Add iterator callbacks for distance computation and heap admission (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5082\"\u003e#5082\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eb068fd985a7460c04ec6c4f909900409392520d0 Support IO_FLAG_MMAP_IFC on Darwin (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5058\"\u003e#5058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e113bf6ceac4e9d1bfeaf29279b29a8293759f83b Expose fast_scan_code_size from non-IVF FastScan indices (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5077\"\u003e#5077\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e786d993dbfb8b74b2a0d4d9543b2b08310acabbe Expose a fast scan code size from fast scan indices (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5064\"\u003e#5064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e95f1e45221ede8caf1b0139a3c8864d473e0e47d OMP build diagnostics (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/4842\"\u003e#4842\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ec4ac852e5b5aa2ba4bde8a977633c367aa85d5db Add a balanced assignment function (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5050\"\u003e#5050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e8402a6b764c024ca78fb87d768cb81de3f60c925 Add unit tests for HNSW deserialization validation (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5033\"\u003e#5033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e1dc5e1fb60405eda268a7d55b1d5a14feef962ba V2 enable specifying a subset of SIMD levels that are implemented at dispatching time. (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/4959\"\u003e#4959\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ee6f5c0c9a9f70f63c00d3ac5651edce6aebd734d Add SIMD dynamic dispatch migration guide (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/4973\"\u003e#4973\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e8177a3bca62af1042d955277cafe9db73d5a0c1d Add nvidia-smi diagnostic call (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/4960\"\u003e#4960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e67fc664fe0ac1774bd4dcf2ab1aaa488cc7d0545 Add CappedInvertedLists for per-list size limiting (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/4880\"\u003e#4880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ee57a8939c91244009c7ef5745d59f33139dc46d2 introduce \u003ccode\u003eSingleQueryResultCollectHandler\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/4926\"\u003e#4926\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e748c0311e423844f25d46a95d27d1621c520a4c7 HNSW: add prune_headroom to avoid O(n^2) pruning/locking, headroom test (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/4847\"\u003e#4847\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e1e4d2271a6b27c70c4d824cc47067d36998d9daf Introduce an early stop threshold for Kmeans (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e4a0fba1fe2c5e5c8fb3405e614ef9b11524b1064 Add FastScanCodeScanner dispatch boundary with per-SIMD TUs (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/4897\"\u003e#4897\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e0fcba2284c266f12ead208ef61559c81e2d7ac72 Add sentinels to index format enums. (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/4907\"\u003e#4907\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e40480fb303fe06a7126e78c71965041911b687c5 Support limits on index deserialization loops — useful for tests (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/4902\"\u003e#4902\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e1e4544a37e62f89bce0baf3253d214d37fba5192 Add defaulted SIMDLevel template parameter to handler and scaler types (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/4867\"\u003e#4867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eabdd37bd964b87be5283334ca49ff603a8e46f4c Add Pixi installation option to docs (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5214\"\u003e#5214\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eChanged\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e9d5491a117b1628dd911d942353156db63553fcf Templatize SIMDResultHandler on SL, mark handle() final (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5223\"\u003e#5223\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eb63f236a5252580e1f24158ca7bc6f58517983f2 Upgrade GitHub Actions CI from CUDA 12.6 to CUDA 13.2 (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5207\"\u003e#5207\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ea9f5baa58c3bacf208d9f02362ea9db47ffb9f21 Move RISC-V fast_scan forwarders to dedicated impl-riscv.cpp (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5216\"\u003e#5216\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e8932716646db11b5f03f1d6e64d2b96ad6cd202b Validate SVS storage_kind via shared helper at all deserialization read sites (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5204\"\u003e#5204\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebc490b56b0896a56d8fc68df42b00798ab5d7eee Make IVFPQSearchCagraConfig dtype fields settable from Python (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5191\"\u003e#5191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003effd3727d4815a819b3c229adc1ec4fb0e584156c Update pattern for index factory string with SVSVamana (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5201\"\u003e#5201\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/facebookresearch/faiss/commit/8f038486672564190a78307e4fb5ce2da6c43d45\"\u003e\u003ccode\u003e8f03848\u003c/code\u003e\u003c/a\u003e Disable attestations for prod PyPI publish (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5230\"\u003e#5230\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebookresearch/faiss/commit/dd3003ea8bb6d8719027b273f0f93189f8b3c03f\"\u003e\u003ccode\u003edd3003e\u003c/code\u003e\u003c/a\u003e Fix Panorama segfault (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5200\"\u003e#5200\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebookresearch/faiss/commit/086bd74fed9c41c20202352c00ffce21c3d8c555\"\u003e\u003ccode\u003e086bd74\u003c/code\u003e\u003c/a\u003e Add verbose logging to PyPI publish step (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5229\"\u003e#5229\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebookresearch/faiss/commit/fd3403ebf2d4b34097a3c1093e5db59310817119\"\u003e\u003ccode\u003efd3403e\u003c/code\u003e\u003c/a\u003e Update backward compatibility test to v1.14.2 (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5228\"\u003e#5228\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebookresearch/faiss/commit/9137034bfb00acf1974f133abf3fd15f7d5fa9e9\"\u003e\u003ccode\u003e9137034\u003c/code\u003e\u003c/a\u003e Increment to next release, v1.14.2 (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5227\"\u003e#5227\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebookresearch/faiss/commit/abdd37bd964b87be5283334ca49ff603a8e46f4c\"\u003e\u003ccode\u003eabdd37b\u003c/code\u003e\u003c/a\u003e Add Pixi installation option to docs (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5214\"\u003e#5214\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebookresearch/faiss/commit/9d5491a117b1628dd911d942353156db63553fcf\"\u003e\u003ccode\u003e9d5491a\u003c/code\u003e\u003c/a\u003e Templatize SIMDResultHandler on SL, mark handle() final (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5223\"\u003e#5223\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebookresearch/faiss/commit/b63f236a5252580e1f24158ca7bc6f58517983f2\"\u003e\u003ccode\u003eb63f236\u003c/code\u003e\u003c/a\u003e Upgrade GitHub Actions CI from CUDA 12.6 to CUDA 13.2 (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5207\"\u003e#5207\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebookresearch/faiss/commit/cb69d7c5665241d1e84f476105ffb6fd6c7c192c\"\u003e\u003ccode\u003ecb69d7c\u003c/code\u003e\u003c/a\u003e Fix Dq=None crash and np.empty nondeterminism in search_preassigned wrappers ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebookresearch/faiss/commit/5c92c5c1ee744545a77f6be9f14d4fdccaad7869\"\u003e\u003ccode\u003e5c92c5c\u003c/code\u003e\u003c/a\u003e Fix flaky test_hnsw smoke test by increasing efSearch (\u003ca href=\"https://redirect.github.com/facebookresearch/faiss/issues/5222\"\u003e#5222\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/facebookresearch/faiss/compare/v1.13.2...v1.14.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `httpx-oauth` from 0.16.1 to 0.17.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/frankie567/httpx-oauth/releases\"\u003ehttpx-oauth's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.17.0\u003c/h2\u003e\n\u003cp\u003eBump version 0.16.1 → 0.17.0\u003c/p\u003e\n\u003ch2\u003eBreaking changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 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/frankie567/httpx-oauth/commit/e714306c50df28f3b6b2338d1cd2ceb6022d0093\"\u003e\u003ccode\u003ee714306\u003c/code\u003e\u003c/a\u003e Bump version 0.16.1 → 0.17.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frankie567/httpx-oauth/commit/d7862dda0aa7b297eb610e1bd2a0d5a83bd34fab\"\u003e\u003ccode\u003ed7862dd\u003c/code\u003e\u003c/a\u003e Fix Justfile\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frankie567/httpx-oauth/commit/d4d04092f00c57444c7daaf91d431fbf0ff2d1e2\"\u003e\u003ccode\u003ed4d0409\u003c/code\u003e\u003c/a\u003e Fix CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frankie567/httpx-oauth/commit/e47288dd38f930008ea4e757221792f205ab8ecf\"\u003e\u003ccode\u003ee47288d\u003c/code\u003e\u003c/a\u003e Fix CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frankie567/httpx-oauth/commit/fb351e0367b6a581936f97be21f4788de60741f8\"\u003e\u003ccode\u003efb351e0\u003c/code\u003e\u003c/a\u003e Fix typing issue\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frankie567/httpx-oauth/commit/228717c819971732ac0bdfbd95cc98167f99ecb8\"\u003e\u003ccode\u003e228717c\u003c/code\u003e\u003c/a\u003e Upgrade tooling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frankie567/httpx-oauth/commit/f0f1a0fb525027c1415213efab4925bd02932f9d\"\u003e\u003ccode\u003ef0f1a0f\u003c/code\u003e\u003c/a\u003e Drop Python 3.9 support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frankie567/httpx-oauth/commit/003d13e833f412bc849ced7ed0890d4a4647ff84\"\u003e\u003ccode\u003e003d13e\u003c/code\u003e\u003c/a\u003e Update README.md\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/frankie567/httpx-oauth/compare/v0.16.1...v0.17.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `imap-tools` from 1.12.1 to 1.13.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ikvk/imap_tools/releases\"\u003eimap-tools's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.13.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded: MailBoxFolderManager.unset - Unselect current folder, raises MailboxFolderUnselectError\u003c/li\u003e\n\u003cli\u003eAdded: ValueError at MailBoxFolderManager.status - Folder argument are not specified and current folder is unset\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/ikvk/imap_tools/blob/master/docs/release_notes.rst\"\u003eimap-tools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.13.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded: MailBoxFolderManager.unset - Unselect current folder, raises MailboxFolderUnselectError\u003c/li\u003e\n\u003cli\u003eAdded: ValueError at MailBoxFolderManager.status - Folder argument are not specified and current folder is unset\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/ikvk/imap_tools/commit/bf5880573f3812ae4dde8c430b06a333850c5ea5\"\u003e\u003ccode\u003ebf58805\u003c/code\u003e\u003c/a\u003e +MailBoxFolderManager.unset, ValueError at MailBoxFolderManager.status\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ikvk/imap_tools/commit/1eb5f20b75b01d701d2fe5a6d710b5303af60408\"\u003e\u003ccode\u003e1eb5f20\u003c/code\u003e\u003c/a\u003e docs\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/ikvk/imap_tools/compare/v1.12.1...v1.13.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `openai` from 2.32.0 to 2.38.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/releases\"\u003eopenai's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.38.0\u003c/h2\u003e\n\u003ch2\u003e2.38.0 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.37.0...v2.38.0\"\u003ev2.37.0...v2.38.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e api update (\u003ca href=\"https://github.com/openai/openai-python/commit/33d1d013250053886a73d178136e6bd1b09df059\"\u003e33d1d01\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-python/commit/a21700a2cd510cb9e6c88065ac8e942d4c041aa8\"\u003ea21700a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update OpenAPI spec or Stainless config (\u003ca href=\"https://github.com/openai/openai-python/commit/00265c5daba4d2481452ad35220f1556dab6bcf6\"\u003e00265c5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e docs updates (\u003ca href=\"https://github.com/openai/openai-python/commit/ee101520d49e22c09cf8096f8cbb3848ea58a1f9\"\u003eee10152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echeck release PR custom code sync (\u003ca href=\"https://github.com/openai/openai-python/commit/2638779a5b8fffaa8fdb6eebc1d734f15d2491f8\"\u003e2638779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove release automation trigger (\u003ca href=\"https://github.com/openai/openai-python/commit/bd6eea559f2996d914258a65e645981bdce3cad4\"\u003ebd6eea5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etrigger release automation (\u003ca href=\"https://github.com/openai/openai-python/commit/f62d08201eea8e08d4bb3385662f934d4adccb29\"\u003ef62d082\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.37.0\u003c/h2\u003e\n\u003ch2\u003e2.37.0 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.36.0...v2.37.0\"\u003ev2.36.0...v2.37.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add service_tier parameter to responses compact method (\u003ca href=\"https://github.com/openai/openai-python/commit/625827c5509ece3c40e5002be37a9bd9d91b5374\"\u003e625827c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal/types:\u003c/strong\u003e support eagerly validating pydantic iterators (\u003ca href=\"https://github.com/openai/openai-python/commit/7e527bc927cc58b74d7619abf7f1fbcfff8bddfa\"\u003e7e527bc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove unnecessary client_id when using workload identity provider for auth (\u003ca href=\"https://github.com/openai/openai-python/commit/c39ea8d12a010052d7f02cebe8daabd2d1f89597\"\u003ec39ea8d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e add missing f-string prefix in file type error message (\u003ca href=\"https://github.com/openai/openai-python/commit/c85ebd935cb4b80e7e97ce255437684f6411fb00\"\u003ec85ebd9\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.36.0\u003c/h2\u003e\n\u003ch2\u003e2.36.0 (2026-05-07)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.35.1...v2.36.0\"\u003ev2.35.1...v2.36.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-python/commit/13c639cc7d57e4fbd4406563511e15eeb88a54b2\"\u003e13c639c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e realtime 2 (\u003ca href=\"https://github.com/openai/openai-python/commit/8fe0ab87e67eeb3cc27426b50093845229520f0e\"\u003e8fe0ab8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.35.1\u003c/h2\u003e\n\u003ch2\u003e2.35.1 (2026-05-06)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.35.0...v2.35.1\"\u003ev2.35.0...v2.35.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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/blob/main/CHANGELOG.md\"\u003eopenai's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.38.0 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.37.0...v2.38.0\"\u003ev2.37.0...v2.38.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e api update (\u003ca href=\"https://github.com/openai/openai-python/commit/33d1d013250053886a73d178136e6bd1b09df059\"\u003e33d1d01\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-python/commit/a21700a2cd510cb9e6c88065ac8e942d4c041aa8\"\u003ea21700a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update OpenAPI spec or Stainless config (\u003ca href=\"https://github.com/openai/openai-python/commit/00265c5daba4d2481452ad35220f1556dab6bcf6\"\u003e00265c5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e docs updates (\u003ca href=\"https://github.com/openai/openai-python/commit/ee101520d49e22c09cf8096f8cbb3848ea58a1f9\"\u003eee10152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echeck release PR custom code sync (\u003ca href=\"https://github.com/openai/openai-python/commit/2638779a5b8fffaa8fdb6eebc1d734f15d2491f8\"\u003e2638779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove release automation trigger (\u003ca href=\"https://github.com/openai/openai-python/commit/bd6eea559f2996d914258a65e645981bdce3cad4\"\u003ebd6eea5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etrigger release automation (\u003ca href=\"https://github.com/openai/openai-python/commit/f62d08201eea8e08d4bb3385662f934d4adccb29\"\u003ef62d082\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.37.0 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.36.0...v2.37.0\"\u003ev2.36.0...v2.37.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add service_tier parameter to responses compact method (\u003ca href=\"https://github.com/openai/openai-python/commit/625827c5509ece3c40e5002be37a9bd9d91b5374\"\u003e625827c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal/types:\u003c/strong\u003e support eagerly validating pydantic iterators (\u003ca href=\"https://github.com/openai/openai-python/commit/7e527bc927cc58b74d7619abf7f1fbcfff8bddfa\"\u003e7e527bc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove unnecessary client_id when using workload identity provider for auth (\u003ca href=\"https://github.com/openai/openai-python/commit/c39ea8d12a010052d7f02cebe8daabd2d1f89597\"\u003ec39ea8d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e add missing f-string prefix in file type error message (\u003ca href=\"https://github.com/openai/openai-python/commit/c85ebd935cb4b80e7e97ce255437684f6411fb00\"\u003ec85ebd9\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.36.0 (2026-05-07)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.35.1...v2.36.0\"\u003ev2.35.1...v2.36.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-python/commit/13c639cc7d57e4fbd4406563511e15eeb88a54b2\"\u003e13c639c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e realtime 2 (\u003ca href=\"https://github.com/openai/openai-python/commit/8fe0ab87e67eeb3cc27426b50093845229520f0e\"\u003e8fe0ab8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.35.1 (2026-05-06)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.35.0...v2.35.1\"\u003ev2.35.0...v2.35.1\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e fix imagegen \u003ccode\u003esize\u003c/code\u003e enum regression (\u003ca href=\"https://github.com/openai/openai-python/commit/44846536bc3b02c393daa5bae70a85de04c7f621\"\u003e4484653\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/openai/openai-python/commit/e75766769547601a25ed83b666c4d0fd046881f0\"\u003e\u003ccode\u003ee757667\u003c/code\u003e\u003c/a\u003e release: 2.38.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/b85b647b5312debb951814dfb9ed13f906d6bf43\"\u003e\u003ccode\u003eb85b647\u003c/code\u003e\u003c/a\u003e feat(api): api update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/d881c67866083ae187e14664e289e68a3ba04686\"\u003e\u003ccode\u003ed881c67\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;chore: check release PR custom code sync\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/d4a322816ad637330e40fdcdee9ca48bc92a2a4f\"\u003e\u003ccode\u003ed4a3228\u003c/code\u003e\u003c/a\u003e chore: check release PR custom code sync\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/48888380cdfc01e4f22f9ed7fbd5250231472e0d\"\u003e\u003ccode\u003e4888838\u003c/code\u003e\u003c/a\u003e chore: remove release automation trigger\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/74978f055a7adf004dec718e80bb46241e54d9ca\"\u003e\u003ccode\u003e74978f0\u003c/code\u003e\u003c/a\u003e chore: trigger release automation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/bab18af787cd5d962aedeb4b5b86df4f6cf28003\"\u003e\u003ccode\u003ebab18af\u003c/code\u003e\u003c/a\u003e chore(api): docs updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/a6f899aa1e046dd0cc18b89c4f73260463888db6\"\u003e\u003ccode\u003ea6f899a\u003c/code\u003e\u003c/a\u003e feat(api): manual updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/2897485d445f2924c5c2a8e6a9f40eec633ff345\"\u003e\u003ccode\u003e2897485\u003c/code\u003e\u003c/a\u003e feat(api): update OpenAPI spec or Stainless config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/a2f1d6c56980713619760c60a5c7bfb580b0adcb\"\u003e\u003ccode\u003ea2f1d6c\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/openai/openai-python/compare/v2.32.0...v2.38.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `regex` from 2026.4.4 to 2026.5.9\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mrabarnett/mrab-regex/blob/hg/changelog.txt\"\u003eregex's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eVersion: 2026.5.9\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eReverse matching with full unicode casefolding could lead to out-of-range string indexes.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.4.4\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eA fix for older Python versions before free-threading was  supported.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.4.3\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eMore fixes for free-threading.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.32\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed segfault.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.31\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed bug again.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.30\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed bug.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.28\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed version.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.27\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eVarious fixes, including ones to improve free-threading support.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.2.28\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eReplaced atomic operations with mutex on pattern object for free-threaded Python.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.2.26\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003ePR [#598](https://github.com/mrabarnett/mrab-regex/issues/598): Fix race condition in storage caching with atomic operations.\n\u003cp\u003eReplaced use of PyUnicode_GET_LENGTH with PyUnicode_GetLength.\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eVersion: 2026.2.19\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eAdded \\z as alias of \\Z, like in re module.\n\u003cp\u003eAdded prefixmatch as alias of match, like in re module.\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eVersion: 2026.1.15\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/mrabarnett/mrab-regex/commit/e57d185bb711729091907b23edac5dcba0426243\"\u003e\u003ccode\u003ee57d185\u003c/code\u003e\u003c/a\u003e Reverse matching with full unicode casefolding lead to out-of-range string in...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mrabarnett/mrab-regex/compare/2026.4.4...2026.5.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sentence-transformers` from 5.4.1 to 5.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/sentence-transformers/releases\"\u003esentence-transformers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.5.1 - Small Multimodal patch\u003c/h2\u003e\n\u003cp\u003eThis patch release fixes a small quirk with multimodal inference when using single-key multimodal inputs like \u003ccode\u003emodel.encode({\u0026quot;image\u0026quot;: ...})\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eInstall this version with\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Training + Inference\r\npip install sentence-transformers[train]==5.5.1\r\n\u003ch1\u003eInference only, use one of:\u003c/h1\u003e\n\u003cp\u003epip install sentence-transformers==5.5.1\npip install sentence-transformers[onnx-gpu]==5.5.1\npip install sentence-transformers[onnx]==5.5.1\npip install sentence-transformers[openvino]==5.5.1\u003c/p\u003e\n\u003ch1\u003eMultimodal dependencies (optional):\u003c/h1\u003e\n\u003cp\u003epip install sentence-transformers[image]==5.5.1\npip install sentence-transformers[audio]==5.5.1\npip install sentence-transformers[video]==5.5.1\u003c/p\u003e\n\u003ch1\u003eOr combine as needed:\u003c/h1\u003e\n\u003cp\u003epip install sentence-transformers[train,onnx,image]==5.5.1\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003ch2\u003eBug fixed\u003c/h2\u003e\n\u003cp\u003ePreviously, inference like \u003ccode\u003emodel.encode({\u0026quot;image\u0026quot;: ...})\u003c/code\u003e or \u003ccode\u003emodel.encode([{\u0026quot;image\u0026quot;: ...}, ...])\u003c/code\u003e would be inferred as the \u003ccode\u003e(\u0026quot;image\u0026quot;,)\u003c/code\u003e modality, which differed from the inferred modality of \u003ccode\u003e\u0026quot;image\u0026quot;\u003c/code\u003e for just \u003ccode\u003emodel.encode(my_image)\u003c/code\u003e or \u003ccode\u003emodel.encode([my_image, my_image_2, ...])\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThis results in confusing errors if the model doesn't have a \u003ccode\u003emodality_config\u003c/code\u003e mapping for \u003ccode\u003e(\u0026quot;image\u0026quot;,)\u003c/code\u003e in addition to \u003ccode\u003e\u0026quot;image\u0026quot;\u003c/code\u003e, so now a single-key multimodal dict is collapsed to the bare modality (just \u003ccode\u003e\u0026quot;image\u0026quot;\u003c/code\u003e in this example).\u003c/p\u003e\n\u003cp\u003eThis affected this code:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e\r\nfrom sentence_transformers import SentenceTransformer\r\n\u003cp\u003emodel = SentenceTransformer('BAAI/BGE-VL-base', trust_remote_code=True)\nembedding = model.encode({\u0026quot;image\u0026quot;: \u0026quot;\u003ca href=\"https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/blog/ettin-reranker/mteb_ndcg10_all-MiniLM-L6-v2.png\u0026amp;quot;%7D\"\u003ehttps://huggingface.co/datasets/huggingface/documentation-images/resolve/main/blog/ettin-reranker/mteb_ndcg10_all-MiniLM-L6-v2.png\u0026amp;quot;}\u003c/a\u003e)\nprint(embedding.shape)\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eWhich previously failed as the model only implements a path for \u003ccode\u003e\u0026quot;text\u0026quot;\u003c/code\u003e, \u003ccode\u003e\u0026quot;image\u0026quot;\u003c/code\u003e, and \u003ccode\u003e(\u0026quot;image\u0026quot;, \u0026quot;text\u0026quot;)\u003c/code\u003e.\u003c/p\u003e\n\u003ch2\u003eAll Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[fix] Collapse single-key multimodal dicts to bare modality by \u003ca href=\"https://github.com/tomaarsen\"\u003e\u003ccode\u003e@​tomaarsen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3779\"\u003e#3779\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/huggingface/sentence-transformers/compare/v5.5.0...v5.5.1\"\u003ehttps://github.com/huggingface/sentence-transformers/compare/v5.5.0...v5.5.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.5.0 - Training Agent Skill, EmbedDistillLoss, and ADRMSELoss\u003c/h2\u003e\n\u003cp\u003eThis release ships the \u003ccode\u003etrain-sentence-transformers\u003c/code\u003e Agent Skill, adds two new training losses, and brings a long list of robustness and correctness fixes.\u003c/p\u003e\n\u003cp\u003eThe new \u003ccode\u003etrain-sentence-transformers\u003c/code\u003e Agent Skill lets AI coding agents (Claude Code, Codex, Cursor, Gemini CLI, ...) drive end-to-end training and fine-tuning across all three model types. \u003ccode\u003eEmbedDistillLoss\u003c/code\u003e is a new embedding-level knowledge distillation loss for \u003ccode\u003eSentenceTransformer\u003c/code\u003e: it aligns a student model's embeddings with pre-computed teacher embeddings, an alternative to the score-based distillation provided by \u003ccode\u003eMarginMSELoss\u003c/code\u003e and \u003ccode\u003eDistillKLDivLoss\u003c/code\u003e. \u003ccode\u003eADRMSELoss\u003c/code\u003e is a new listwise learning-to-rank loss for \u003ccode\u003eCrossEncoder\u003c/code\u003e from the Rank-DistiLLM paper. \u003ccode\u003eencode()\u003c/code\u003e and \u003ccode\u003epredict()\u003c/code\u003e also gain a per-call \u003ccode\u003eprocessing_kwargs\u003c/code\u003e override, and more.\u003c/p\u003e\n\u003cp\u003eInstall this version with\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/huggingface/sentence-transformers/commit/ce3ec6d87f25b2d1cccb0a20f8fd495dad5c30fb\"\u003e\u003ccode\u003ece3ec6d\u003c/code\u003e\u003c/a\u003e Release v5.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/610a7c5ccfdfccc19933900feba0206f2e76bf59\"\u003e\u003ccode\u003e610a7c5\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003efix\u003c/code\u003e] Collapse single-key multimodal dicts to bare modality (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3779\"\u003e#3779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/f9f3269c7bd548555b7273a5378d52eeaa5d6286\"\u003e\u003ccode\u003ef9f3269\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into v5.5-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/02dc21d77dfd22b5816fb5398877253100b89b43\"\u003e\u003ccode\u003e02dc21d\u003c/code\u003e\u003c/a\u003e Update index tip for v5.5.0 (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3774\"\u003e#3774\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/833828b3dae0cf9e6943ae01b9c9645f883daf3b\"\u003e\u003ccode\u003e833828b\u003c/code\u003e\u003c/a\u003e Release v5.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/98ac358861359fd275824732e5f658b2f4ca6c78\"\u003e\u003ccode\u003e98ac358\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003edocs\u003c/code\u003e] Load models in float32 in the training examples \u0026amp; docs (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3773\"\u003e#3773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/d8ee0410ba140f41aa2ac0735a97e1d690dd2df5\"\u003e\u003ccode\u003ed8ee041\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003edocs\u003c/code\u003e] Use modality-neutral terms (input, document) in loss docs \u0026amp; docstrin...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/4c6850e444e5bcedfb026e9d674ae18c19ab5233\"\u003e\u003ccode\u003e4c6850e\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eexamples\u003c/code\u003e] Avoid LoggingHandler, silence httpx in examples (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3771\"\u003e#3771\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/1418823d250763751ea95212dfb9ecaa919f5e92\"\u003e\u003ccode\u003e1418823\u003c/code\u003e\u003c/a\u003e docs: fix grammar in parallel-sentence-mining README (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3769\"\u003e#3769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/22a383d3644cfaa40038adb0b70a9320f7f73d36\"\u003e\u003ccode\u003e22a383d\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003edocs\u003c/code\u003e] Use direct class imports in examples \u0026amp; docs (drop `losses.MSELoss(.....\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/sentence-transformers/compare/v5.4.1...v5.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `torch` from 2.11.0 to 2.12.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytorch/pytorch/releases\"\u003etorch's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ePyTorch 2.12.0 Release Notes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#highlights\"\u003eHighlights\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#backwards-incompatible-changes\"\u003eBackwards Incompatible Changes\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#deprecations\"\u003eDeprecations\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#new-features\"\u003eNew Features\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#improvements\"\u003eImprovements\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#bug-fixes\"\u003eBug fixes\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#performance\"\u003ePerformance\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#documentation\"\u003eDocumentation\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#developers\"\u003eDevelopers\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#security\"\u003eSecurity\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eHighlights\u003c/h1\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eFor more details about these highlighted features, you can look at the release blogpost. Below are the full release notes for this release.\u003c/p\u003e\n\u003ch1\u003eBackwards Incompatible Changes\u003c/h1\u003e\n\u003ch2\u003eBuild Frontend\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eStrengthened SVE compile checks in \u003ccode\u003eFindARM.cmake\u003c/code\u003e, which may reject previously accepted but incorrect SVE configurations (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/pull/176646\"\u003e#176646\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eSource builds that enable SVE now validate the compiler configuration more strictly. If a build previously passed with an incomplete or mismatched SVE setup, it may now fail during CMake configuration instead of later in compilation. Update the compiler/toolchain flags so they accurately describe the target SVE support, or disable SVE for that build.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated the minimum CUDA version required to build PyTorch from source to CUDA 12.6 (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/pull/178925\"\u003e#178925\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eBuilding PyTorch from source with CUDA versions older than 12.6 is no longer supported. Users building custom binaries should install CUDA 12.6 or newer and make sure \u003ccode\u003eCUDA_HOME\u003c/code\u003e points to that installation.\u003c/p\u003e\n\u003cp\u003eVersion 2.11:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003eCUDA_HOME=/usr/local/cuda-12.4 python setup.py develop\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion 2.12:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003eCUDA_HOME=/usr/local/cuda-12.6 python setup.py develop\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eEnforced a C++20 minimum in CMake build files (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/pull/178662\"\u003e#178662\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/pytorch/pytorch/commit/0d62256a2b23365f8e1604297eb23a6545102aa8\"\u003e\u003ccode\u003e0d62256\u003c/code\u003e\u003c/a\u003e [release] Dockerfile: skip torchaudio install when CUDA_PATH=cu132 (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/183346\"\u003e#183346\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/7661cd9c6b841b62b7f411aa52ec51f05457263b\"\u003e\u003ccode\u003e7661cd9\u003c/code\u003e\u003c/a\u003e [MPS] Fix SDPA wrong output for permuted q/k/v with B \u0026gt; 1 (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/181886\"\u003e#181886\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/9da6087ab64ab6a2118686420ca5353c90dd7e1f\"\u003e\u003ccode\u003e9da6087\u003c/code\u003e\u003c/a\u003e Fix stale PYTORCH_RELEASES_CODE_CC dict (fixes \u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/182250\"\u003e#182250\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/182369\"\u003e#182369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/e4c37cc011d47246ce8ea4b99c9b28fb7f400224\"\u003e\u003ccode\u003ee4c37cc\u003c/code\u003e\u003c/a\u003e Avoid raw stream name collisions in Inductor (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/182178\"\u003e#182178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/822d047dc8dd8d919f83c3ad5c786e405075d1f0\"\u003e\u003ccode\u003e822d047\u003c/code\u003e\u003c/a\u003e [MPS] Fix bool mask handling in 1-pass SDPA decode kernel (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/182285\"\u003e#182285\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/182311\"\u003e#182311\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/5c5e523cd520e6986006e45be243b3ee927ea546\"\u003e\u003ccode\u003e5c5e523\u003c/code\u003e\u003c/a\u003e Add enable_gqa parameter to SDPA MPS meta registration (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/181550\"\u003e#181550\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/eece52ead16886e5463c3dcee9b04db783cc68d5\"\u003e\u003ccode\u003eeece52e\u003c/code\u003e\u003c/a\u003e [AOTI] Add BC-safe c_shim v2 for _scaled_dot_product_attention_math_for_mps e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/b39330bbe210b9628207e84d8ba2cabb7975fbac\"\u003e\u003ccode\u003eb39330b\u003c/code\u003e\u003c/a\u003e [Inductor] Call latest c_shim version for versioned fallback ops (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/181548\"\u003e#181548\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/06f10d088229a25ac52bd14b6cacc04a4161f6ca\"\u003e\u003ccode\u003e06f10d0\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;[FSDP2] add fqn to communication ops\u0026quot; (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/182100\"\u003e#182100\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/182157\"\u003e#182157\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/449e3393139a1aca9afec120c9a63f98f12d55b0\"\u003e\u003ccode\u003e449e339\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;[Inductor] Improve materialization heuristic for a chain of computaio...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytorch/pytorch/compare/v2.11.0...v2.12.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `watchfiles` from 1.1.1 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/samuelcolvin/watchfiles/releases\"\u003ewatchfiles's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.0 2026-05-17\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eci: add riscv64 manylinux wheels by \u003ca href=\"https://github.com/justeph\"\u003e\u003ccode\u003e@​justeph\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/samuelcolvin/watchfiles/pull/359\"\u003esamuelcolvin/watchfiles#359\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix linting by \u003ca href=\"https://github.com/samuelcolvin\"\u003e\u003ccode\u003e@​samuelcolvin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/samuelcolvin/watchfiles/pull/370\"\u003esamuelcolvin/watchfiles#370\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Python 3.15-dev build, drop 3.9, increase MVRV to 1.83 by \u003ca href=\"https://github.com/simonw\"\u003e\u003ccode\u003e@​simonw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/samuelcolvin/watchfiles/pull/369\"\u003esamuelcolvin/watchfiles#369\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: improve type safety and error handling by \u003ca href=\"https://github.com/N3XT3R1337\"\u003e\u003ccode\u003e@​N3XT3R1337\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/samuelcolvin/watchfiles/pull/365\"\u003esamuelcolvin/watchfiles#365\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRuff target version to 3.10 by \u003ca href=\"https://github.com/samuelcolvin\"\u003e\u003ccode\u003e@​samuelcolvin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/samuelcolvin/watchfiles/pull/379\"\u003esamuelcolvin/watchfiles#379\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupgrade uv lock by \u003ca href=\"https://github.com/samuelcolvin\"\u003e\u003ccode\u003e@​samuelcolvin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/samuelcolvin/watchfiles/pull/378\"\u003esamuelcolvin/watchfiles#378\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eprep v1.2.0 release by \u003ca href=\"https://github.com/samuelcolvin\"\u003e\u003ccode\u003e@​samuelcolvin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/samuelcolvin/watchfiles/pull/371\"\u003esamuelcolvin/watchfiles#371\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/justeph\"\u003e\u003ccode\u003e@​justeph\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/samuelcolvin/watchfiles/pull/359\"\u003esamuelcolvin/watchfiles#359\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simonw\"\u003e\u003ccode\u003e@​simonw\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/samuelcolvin/watchfiles/pull/369\"\u003esamuelcolvin/watchfiles#369\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/N3XT3R1337\"\u003e\u003ccode\u003e@​N3XT3R1337\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/samuelcolvin/watchfiles/pull/365\"\u003esamuelcolvin/watchfiles#365\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/samuelcolvin/watchfiles/compare/v1.1.1...v1.2.0\"\u003ehttps://github.com/samuelcolvin/watchfiles/compare/v1.1.1...v1.2.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/samuelcolvin/watchfiles/commit/b6eb04ffaa99c3e656e448c75d137013ffa2ece3\"\u003e\u003ccode\u003eb6eb04f\u003c/code\u003e\u003c/a\u003e prep v1.2.0 release (\u003ca href=\"https://redirect.github.com/samuelcolvin/watchfiles/issues/371\"\u003e#371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/samuelcolvin/watchfiles/commit/517ffb2ad432d126326fa710af2040a8343588f2\"\u003e\u003ccode\u003e517ffb2\u003c/code\u003e\u003c/a\u003e upgrade uv lock (\u003ca href=\"https://redirect.github.com/samuelcolvin/watchfiles/issues/378\"\u003e#378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/samuelcolvin/watchfiles/commit/e156213f44bec3fcd3f970b0f6a1419494e21c1f\"\u003e\u003ccode\u003ee156213\u003c/code\u003e\u003c/a\u003e Ruff target version to 3.10 (\u003ca href=\"https://redirect.github.com/samuelcolvin/watchfiles/issues/379\"\u003e#379\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/samuelcolvin/watchfiles/commit/f4f63ebcb4ef7602038d8cb90fdc03ac4514f380\"\u003e\u003ccode\u003ef4f63eb\u003c/code\u003e\u003c/a\u003e fix: improve type safety and error handling (\u003ca href=\"https://redirect.github.com/samuelcolvin/watchfiles/issues/365\"\u003e#365\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/samuelcolvin/watchfiles/commit/a928957581ec6f73fbd560efacd519f1dc9ab2de\"\u003e\u003ccode\u003ea928957\u003c/code\u003e\u003c/a\u003e Add Python 3.15-dev build, drop 3.9, increase MVRV to 1.83 (\u003ca href=\"https://redirect.github.com/samuelcolvin/watchfiles/issues/369\"\u003e#369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/samuelcolvin/watchfiles/commit/f8b91fcabd929b655a9ed440115ea5a1997de736\"\u003e\u003ccode\u003ef8b91fc\u003c/code\u003e\u003c/a\u003e fix linting (\u003ca href=\"https://redirect.github.com/samuelcolvin/watchfiles/issues/370\"\u003e#370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/samuelcolvin/watchfiles/commit/ac594d105be711b98d1835fe5a26f65917b5d784\"\u003e\u003ccode\u003eac594d1\u003c/code\u003e\u003c/a\u003e ci: add riscv64 manylinux wheels (\u003ca href=\"https://redirect.github.com/samuelcolvin/watchfiles/issues/359\"\u003e#359\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/samuelcolvin/watchfiles/compare/v1.1.1...v1.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `prek` from 0.3.10 to 0.4.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/j178/prek/releases\"\u003eprek's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.4.3\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-27.\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore stat-only hook rewrites (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2131\"\u003e#2131\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSponsorship\u003c/h3\u003e\n\u003cp\u003eIf \u003ccode\u003eprek\u003c/code\u003e saves time for you or your team, please consider sponsoring the\nproject on \u003ca href=\"https://github.com/sponsors/j178\"\u003eGitHub Sponsors\u003c/a\u003e. It helps keep\nnew features, performance work, and maintenance moving.\u003c/p\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stevbev\"\u003e\u003ccode\u003e@​stevbev\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall prek 0.4.3\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl --proto '=https' --tlsv1.2 -LsSf https://github.com/j178/prek/releases/download/v0.4.3/prek-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eInstall prebuilt binaries via powershell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003epowershell -ExecutionPolicy Bypass -c \u0026quot;irm https://github.com/j178/prek/releases/download/v0.4.3/prek-installer.ps1 | iex\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eInstall prebuilt binaries via Homebrew\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ebrew install prek\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003eDownload prek 0.4.3\u003c/h2\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eFile\u003c/th\u003e\n\u003cth\u003ePlatform\u003c/th\u003e\n\u003cth\u003eChecksum\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.3/prek-aarch64-apple-darwin.tar.gz\"\u003eprek-aarch64-apple-darwin.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eApple Silicon macOS\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.3/prek-aarch64-apple-darwin.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.3/prek-x86_64-apple-darwin.tar.gz\"\u003eprek-x86_64-apple-darwin.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eIntel macOS\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.3/prek-x86_64-apple-darwin.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.3/prek-aarch64-pc-windows-msvc.zip\"\u003eprek-aarch64-pc-windows-msvc.zip\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eARM64 Windows\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.3/prek-aarch64-pc-windows-msvc.zip.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.3/prek-i686-pc-windows-msvc.zip\"\u003eprek-i686-pc-windows-msvc.zip\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ex86 Windows\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.3/prek-i686-pc-windows-msvc.zip.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.3/prek-x86_64-pc-windows-msvc.zip\"\u003eprek-x86_64-pc-windows-msvc.zip\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ex64 Windows\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.3/prek-x86_64-pc-windows-msvc.zip.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.3/prek-aarch64-unknown-linux-gnu.tar.gz\"\u003eprek-aarch64-unknown-linux-gnu.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eARM64 Linux\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.3/prek-aarch64-unknown-linux-gnu.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.3/prek-i686-unknown-linux-gnu.tar.gz\"\u003eprek-i686-unknown-linux-gnu.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ex86 Linux\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.3/prek-i686-unknown-linux-gnu.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\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/j178/prek/blob/master/CHANGELOG.md\"\u003eprek's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.4.3\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-27.\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore stat-only hook rewrites (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2131\"\u003e#2131\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSponsorship\u003c/h3\u003e\n\u003cp\u003eIf \u003ccode\u003eprek\u003c/code\u003e saves time for you or your team, please consider sponsoring the\nproject on \u003ca href=\"https://github.com/sponsors/j178\"\u003eGitHub Sponsors\u003c/a\u003e. It helps keep\nnew features, performance work, and maintenance moving.\u003c/p\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stevbev\"\u003e\u003ccode\u003e@​stevbev\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.4.2\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-26.\u003c/p\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cp\u003e0.4.2 is mainly about making \u003ccode\u003eprek run\u003c/code\u003e faster in large repos.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eprek\u003c/code\u003e now does less \u003ccode\u003egit diff\u003c/code\u003e work. After hooks run, \u003ccode\u003eprek\u003c/code\u003e uses diff checks\nto detect files changed by hooks. If a hook modifies files, prek marks that hook\nas failed. That is important, but full diff snapshots can be slow in big repos,\nespecially when they happen after every hook group.\u003c/p\u003e\n\u003cp\u003eWe skip the expensive diff path in two common cases: built-in hooks that prek\nknows are read-only, and clean worktrees where a cheap dirty check is enough\nunless a hook actually changes files. In the right large-repo workload,\nskipping that work can make runs up to 10x faster.\u003c/p\u003e\n\u003cp\u003eWorkspace mode is faster too. Hooks have historically been too serial.\nPriority-based concurrency helped, but it required users to choose good\n\u003ccode\u003epriority\u003c/code\u003e values. Now sibling projects at the same workspace depth run in\nparallel automatically. Their files do not overlap, so this is safe and needs\nno extra config. For multi-project workspaces, this can dramatically reduce\ntotal hook time.\u003c/p\u003e\n\u003ch3\u003eSponsorship\u003c/h3\u003e\n\u003cp\u003eIf \u003ccode\u003eprek\u003c/code\u003e saves time for you or your team, please consider sponsoring the\nproject on \u003ca href=\"https://github.com/sponsors/j178\"\u003eGitHub Sponsors\u003c/a\u003e. It helps keep\nnew features, performance work, and maintenance moving.\u003c/p\u003e\n\u003ch3\u003eEnhancements\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\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/02bb73f2be5539f3a1d219e74ad2ba344a633758\"\u003e\u003ccode\u003e02bb73f\u003c/code\u003e\u003c/a\u003e Bump version to 0.4.3 (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2132\"\u003e#2132\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/0f64ff91cf2a0934c30407522b93058c8d70cc6c\"\u003e\u003ccode\u003e0f64ff9\u003c/code\u003e\u003c/a\u003e Ignore stat-only hook rewrites (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2131\"\u003e#2131\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/de77cc91be8e5a021f6308d6d85c14f73492fe60\"\u003e\u003ccode\u003ede77cc9\u003c/code\u003e\u003c/a\u003e Bump version to 0.4.2 (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2126\"\u003e#2126\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/c54be46c21685a0139e966052153b4636cb43afb\"\u003e\u003ccode\u003ec54be46\u003c/code\u003e\u003c/a\u003e Simplify hook progress folding (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2125\"\u003e#2125\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/e908f821fb326878621511b36587c881e50d97f8\"\u003e\u003ccode\u003ee908f82\u003c/code\u003e\u003c/a\u003e Add link to comprehensive list of open-source projects using prek (\u003ca href=\"https://redirect.github.com/j178/prek/issues/938\"\u003e#938\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/7cd6ba4dd9abff3dbf8ed4cd5514405468321053\"\u003e\u003ccode\u003e7cd6ba4\u003c/code\u003e\u003c/a\u003e Run same-depth projects concurrently (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2110\"\u003e#2110\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/bbb381038f9fa3531e7feff47ad1bc9d0d9dc5a7\"\u003e\u003ccode\u003ebbb3810\u003c/code\u003e\u003c/a\u003e Lock file maintenance (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2123\"\u003e#2123\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/7d5282ca7653e877daf7df58cc3d2ce908dae920\"\u003e\u003ccode\u003e7d5282c\u003c/code\u003e\u003c/a\u003e Update Rust crate quick-xml to 0.40 (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2121\"\u003e#2121\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/97130ea81b5081ada2e9d6bd3d2f452b7aff7c1b\"\u003e\u003ccode\u003e97130ea\u003c/code\u003e\u003c/a\u003e Update dependency uv to v0.11.14 (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2118\"\u003e#2118\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/480f4bfe81d1c723ffaa3e2e73b70eeec16a935e\"\u003e\u003ccode\u003e480f4bf\u003c/code\u003e\u003c/a\u003e Update pre-commit hook crate-ci/typos to v1.46.2 (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2120\"\u003e#2120\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/j178/prek/compare/v0.3.10...v0.4.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `faker` from 40.15.0 to 40.19.1\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 v40.19.1\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/joke2k/faker/blob/refs/tags/v40.19.1/CHANGELOG.md\"\u003eCHANGELOG.md\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eRelease v40.19.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/joke2k/faker/blob/refs/tags/v40.19.0/CHANGELOG.md\"\u003eCHANGELOG.md\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eRelease v40.18.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/joke2k/faker/blob/refs/tags/v40.18.0/CHANGELOG.md\"\u003eCHANGELOG.md\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eRelease v40.17.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/joke2k/faker/blob/refs/tags/v40.17.0/CHANGELOG.md\"\u003eCHANGELOG.md\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eRelease v40.16.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/joke2k/faker/blob/refs/tags/v40.16.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/v40.19.0...v40.19.1\"\u003ev40.19.1 - 2026-05-22\u003c/a\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix shared state mutation in \u003ccode\u003een_IN\u003c/code\u003e \u003ccode\u003epincode_in_state\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/joke2k/faker/issues/2369\"\u003e#2369\u003c/a\u003e). Thanks \u003ca href=\"https://github.com/RedZapdos123\"\u003e\u003ccode\u003e@​RedZapdos123\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003ca href=\"https://github.com/joke2k/faker/compare/v40.18.0...v40.19.0\"\u003ev40.19.0 - 2026-05-22\u003c/a\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003euuid1\u003c/code\u003e and \u003ccode\u003euuid7\u003c/code\u003e providers to \u003ccode\u003emisc\u003c/code\u003e provider (\u003ca href=\"https://redirect.github.com/joke2k/faker/issues/2344\"\u003e#2344\u003c/a\u003e). Thanks \u003ca href=\"https://github.com/Krishnachaitanyakc\"\u003e\u003ccode\u003e@​Krishnachaitanyakc\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003ca href=\"https://github.com/joke2k/faker/compare/v40.17.0...v40.18.0\"\u003ev40.18.0 - 2026-05-14\u003c/a\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd automotive providers for \u003ccode\u003ear_DZ\u003c/code\u003e and \u003ccode\u003efr_DZ\u003c/code\u003e locales. Thanks \u003ca href=\"https://github.com/othmane099\"\u003e\u003ccode\u003e@​othmane099\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ephone_number\u003c/code\u003e provider for \u003ccode\u003ear_DZ\u003c/code\u003e and \u003ccode\u003efr_DZ\u003c/code\u003e locales. Thanks \u003ca href=\"https://github.com/othmane099\"\u003e\u003ccode\u003e@​othmane099\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003ca href=\"https://github.com/joke2k/faker/compare/v40.16.0...v40.17.0\"\u003ev40.17.0 - 2026-05-14\u003c/a\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eam_ET\u003c/code\u003e \u003ccode\u003ephone_number\u003c/code\u003e provider for Ethiopia. Thanks \u003ca href=\"https://github.com/jasur-py\"\u003e\u003ccode\u003e@​jasur-py\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003ca href=\"https://github.com/joke2k/faker/compare/v40.15.0...v40.16.0\"\u003ev40.16.0 - 2026-05-14\u003c/a\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix duplicate phone number prefix \u003ccode\u003e145\u003c/code\u003e in \u003ccode\u003ezh_CN\u003c/code\u003e locale. Thanks \u003ca href=\"https://github.com/r266-tec\"\u003e\u003ccode\u003e@​r266-tec\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/3e9b7b0f47fbea4b2ebf8d33678da653d5a7ed74\"\u003e\u003ccode\u003e3e9b7b0\u003c/code\u003e\u003c/a\u003e Bump version: 40.19.0 → 40.19.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/fea051597658968d2f096a2af16a67afcd6b6bd5\"\u003e\u003ccode\u003efea0515\u003c/code\u003e\u003c/a\u003e 📝 Update CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/a2af5110e4eabc738b76fba65eb3c697bd9fff00\"\u003e\u003ccode\u003ea2af511\u003c/code\u003e\u003c/a\u003e fix(en_IN): avoid shared state mutation in \u003ccode\u003epincode_in_state\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/joke2k/faker/issues/2369\"\u003e#2369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/fbb59f3f3e15904e076b7cfb79609df211779db5\"\u003e\u003ccode\u003efbb59f3\u003c/code\u003e\u003c/a\u003e Bump version: 40.18.0 → 40.19.0\u003c/li\u003e\n\u003cli\u003e\u003c...\n\n_Description has been truncated_","html_url":"https://github.com/paperless-ngx/paperless-ngx/pull/12925","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/paperless-ngx%2Fpaperless-ngx/issues/12925","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/12925/packages"}},{"old_version":"12.0","new_version":"16.0.1","update_type":null,"path":null,"pr_created_at":"2026-02-09T19:38:22.000Z","version_change":"12.0 → 16.0.1","issue":{"uuid":"3917820634","node_id":"PR_kwDOKoYLLM7CjqOH","number":195,"state":"open","title":"Bump the major-versions group across 1 directory with 16 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-02-09T19:38:22.000Z","updated_at":"2026-02-09T19:38:23.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"major-versions","update_count":16,"packages":[{"name":"django","old_version":"4.2.6","new_version":"4.2.28"},{"name":"django-guardian","old_version":"2.4.0","new_version":"3.2.0","repository_url":"https://github.com/django-guardian/django-guardian"},{"name":"django-extensions","old_version":"3.2.3","new_version":"4.1","repository_url":"https://github.com/django-extensions/django-extensions"},{"name":"django-filter","old_version":"23.3","new_version":"25.1","repository_url":"https://github.com/carltongibson/django-filter"},{"name":"gunicorn","old_version":"21.2.0","new_version":"23.0.0","repository_url":"https://github.com/benoitc/gunicorn"},{"name":"redis","old_version":"4.6.0","new_version":"6.4.0","repository_url":"https://github.com/redis/redis-py"},{"name":"watchdog","old_version":"3.0.0","new_version":"6.0.0","repository_url":"https://github.com/gorakhargosh/watchdog"},{"name":"ocrmypdf","old_version":"14.4.0","new_version":"15.4.4","repository_url":"https://github.com/ocrmypdf/OCRmyPDF"},{"name":"django-multiselectfield","old_version":"0.1.12","new_version":"1.0.1","repository_url":"https://github.com/goinnn/django-multiselectfield"},{"name":"django-auditlog","old_version":"2.3.0","new_version":"3.3.0","repository_url":"https://github.com/jazzband/django-auditlog"},{"name":"black","old_version":"23.9.1","new_version":"25.11.0","repository_url":"https://github.com/psf/black"},{"name":"pre-commit","old_version":"3.4.0","new_version":"4.3.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pytest","old_version":"7.4.2","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-cov","old_version":"4.1.0","new_version":"7.0.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"pytest-sugar","old_version":"0.9.7","new_version":"1.1.1","repository_url":"https://github.com/Teemu/pytest-sugar"},{"name":"pytest-rerunfailures","old_version":"12.0","new_version":"16.0.1","repository_url":"https://github.com/pytest-dev/pytest-rerunfailures"}],"path":null,"ecosystem":"conda"},"body":"Bumps the major-versions group with 16 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| django | `4.2.6` | `4.2.28` |\n| [django-guardian](https://github.com/django-guardian/django-guardian) | `2.4.0` | `3.2.0` |\n| [django-extensions](https://github.com/django-extensions/django-extensions) | `3.2.3` | `4.1` |\n| [django-filter](https://github.com/carltongibson/django-filter) | `23.3` | `25.1` |\n| [gunicorn](https://github.com/benoitc/gunicorn) | `21.2.0` | `23.0.0` |\n| [redis](https://github.com/redis/redis-py) | `4.6.0` | `6.4.0` |\n| [watchdog](https://github.com/gorakhargosh/watchdog) | `3.0.0` | `6.0.0` |\n| [ocrmypdf](https://github.com/ocrmypdf/OCRmyPDF) | `14.4.0` | `15.4.4` |\n| [django-multiselectfield](https://github.com/goinnn/django-multiselectfield) | `0.1.12` | `1.0.1` |\n| [django-auditlog](https://github.com/jazzband/django-auditlog) | `2.3.0` | `3.3.0` |\n| [black](https://github.com/psf/black) | `23.9.1` | `25.11.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `3.4.0` | `4.3.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `7.4.2` | `8.4.2` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `4.1.0` | `7.0.0` |\n| [pytest-sugar](https://github.com/Teemu/pytest-sugar) | `0.9.7` | `1.1.1` |\n| [pytest-rerunfailures](https://github.com/pytest-dev/pytest-rerunfailures) | `12.0` | `16.0.1` |\n\n\nUpdates `django` from 4.2.6 to 4.2.28\n\nUpdates `django-guardian` from 2.4.0 to 3.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-guardian/django-guardian/releases\"\u003edjango-guardian's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.2.0 The Bozkir progression\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate enforcement contact link in CODE_OF_CONDUCT.md by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/918\"\u003edjango-guardian/django-guardian#918\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptional cached anonymous user  - Pr 907 by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/912\"\u003edjango-guardian/django-guardian#912\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003egenerator warnings and logics are added for security purposes by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/920\"\u003edjango-guardian/django-guardian#920\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erollback compatible create anon user fix is developed by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/919\"\u003edjango-guardian/django-guardian#919\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e644 using inlines in django admin with guardian by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/921\"\u003edjango-guardian/django-guardian#921\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-guardian/django-guardian/compare/3.1.3...3.2.0\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.3...3.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.1.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edjango-packages badge is added by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/910\"\u003edjango-guardian/django-guardian#910\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate issue templates by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/909\"\u003edjango-guardian/django-guardian#909\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMakefile support by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/906\"\u003edjango-guardian/django-guardian#906\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePR merging scenario is fixed by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/913\"\u003edjango-guardian/django-guardian#913\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed issue causing prefetch_perms() to throw when passed an empty list by \u003ca href=\"https://github.com/keattang\"\u003e\u003ccode\u003e@​keattang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/904\"\u003edjango-guardian/django-guardian#904\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRe apply \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/812\"\u003e#812\u003c/a\u003e using correct lookup method by \u003ca href=\"https://github.com/sevdog\"\u003e\u003ccode\u003e@​sevdog\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/842\"\u003edjango-guardian/django-guardian#842\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOPS: Bump version for release by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/915\"\u003edjango-guardian/django-guardian#915\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-guardian/django-guardian/compare/3.1.2...3.1.3\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.2...3.1.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.1.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.0 in /.github/workflows 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-guardian/django-guardian/pull/903\"\u003edjango-guardian/django-guardian#903\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix type and deprecate old name by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/902\"\u003edjango-guardian/django-guardian#902\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/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/903\"\u003edjango-guardian/django-guardian#903\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-guardian/django-guardian/compare/3.1.1...3.1.2\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.1...3.1.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epre-commit checker step is added by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/901\"\u003edjango-guardian/django-guardian#901\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-guardian/django-guardian/compare/3.1.0...3.1.1\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.0...3.1.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eImproved indexing, tweaks and bugfixes\u003c/h2\u003e\n\u003ch2\u003eSaving the 🌳🌳🌳 and the 💰💰💰\u003c/h2\u003e\n\u003cp\u003e⚠️⚠️⚠️ \u003cstrong\u003eWARNING:\u003c/strong\u003e This release contains an update to database indexing which should yield \u003cstrong\u003econsiderable additional performance\u003c/strong\u003e, especially on large table permissions lookups (thanks \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e for such rigorous performance testing!!!). Following the migration that introduces these indexes, databases should reindex automatically in the background (typically within 0-30s even for large tables): this is unlikely to be noticeable but users may experience a short lived performance hit during this period.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow ignore_conflicts on bulk create by \u003ca href=\"https://github.com/pgiki\"\u003e\u003ccode\u003e@​pgiki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/814\"\u003edjango-guardian/django-guardian#814\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/django-guardian/django-guardian/commit/4120d00c28c1b6d3bacb988f6db86bacf91ed0f1\"\u003e\u003ccode\u003e4120d00\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/921\"\u003e#921\u003c/a\u003e from django-guardian/644-using-inlines-in-django-admi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/c896b220bdf96783f1c25d730f12ebef95758c99\"\u003e\u003ccode\u003ec896b22\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/919\"\u003e#919\u003c/a\u003e from django-guardian/770-migration-rollback-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/3814e2383c69266350a3d885d445bdd79da8cb78\"\u003e\u003ccode\u003e3814e23\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 770-migration-rollback-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/94854899f4a030b42840837e08b42923a71c5b78\"\u003e\u003ccode\u003e9485489\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/920\"\u003e#920\u003c/a\u003e from django-guardian/666-permissionrequiredmixin-does...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/e01e2e1edeec60b2c79d561db56e0949ea3c4dad\"\u003e\u003ccode\u003ee01e2e1\u003c/code\u003e\u003c/a\u003e check only username field fixing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/e1ae3c5a7ab74a679ef1ccff2a480a88117df464\"\u003e\u003ccode\u003ee1ae3c5\u003c/code\u003e\u003c/a\u003e show warning instead of error for backward compatibility and giving time the ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/63c10f549dfe2b5ba67e9eec36095cf3e6a2bab8\"\u003e\u003ccode\u003e63c10f5\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 644-using-inlines-in-django-admin-with-guardian\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/b27ebbdcc7f9952d9d9aaaa879b5e202063ccaa8\"\u003e\u003ccode\u003eb27ebbd\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 666-permissionrequiredmixin-does-not-warn-against-us...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/d7ed4a3bccb730d3cdf16fdc404f25b94674c653\"\u003e\u003ccode\u003ed7ed4a3\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 770-migration-rollback-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/03fed6924e06fd13991d9e8ae1b4590addf5473e\"\u003e\u003ccode\u003e03fed69\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/912\"\u003e#912\u003c/a\u003e from django-guardian/pr-907\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-guardian/django-guardian/compare/v2.4.0...3.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-extensions` from 3.2.3 to 4.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-extensions/django-extensions/releases\"\u003edjango-extensions's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd: show_permissions command (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1920\"\u003e#1920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, style per app (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1848\"\u003e#1848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: JSONField, bulk_update's (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1924\"\u003e#1924\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/ahmad88me\"\u003e\u003ccode\u003e@​ahmad88me\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1848\"\u003edjango-extensions/django-extensions#1848\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-extensions/django-extensions/compare/4.0...4.1\"\u003ehttps://github.com/django-extensions/django-extensions/compare/4.0...4.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprovement: Support for Python 3.12 and 3.13\u003c/li\u003e\n\u003cli\u003eImprovement: Support for Django 5.x\u003c/li\u003e\n\u003cli\u003eImprovement: Switch from setup.{cfg,py} to pyproject.toml\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Add option to display field choices in graph_models (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1854\"\u003e#1854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Add webp support (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1857\"\u003e#1857\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Support for ordering edges on pydot/dot/graphviz (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1914\"\u003e#1914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: mail_debug, Update mail_debug command to use aiosmtpd (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1880\"\u003e#1880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: shell_plus, Improve error message for missing import (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1898\"\u003e#1898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: reset_db, Add reset_db support for django_tenants (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1855\"\u003e#1855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: docs, various improvements (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1852\"\u003e#1852\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1888\"\u003e#1888\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1882\"\u003e#1882\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1901\"\u003e#1901\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1912\"\u003e#1912\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1913\"\u003e#1913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: jobs, Handle non-package modules when looking for job definitions (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1887\"\u003e#1887\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: Add django-prometheus DB backends support (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1800\"\u003e#1800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: Call post_command when the command raises an unhandled exception (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1837\"\u003e#1837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: sqldiff, do not consider ('serial', 'integer') nor ('bigserial', 'bigint') as a field-type-differ (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1867\"\u003e#1867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: shell_plus, Fix start up order and add history (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1869\"\u003e#1869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove pipchecker and associated tests (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1906\"\u003e#1906\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFollowing Django's release numbering style more closely (see \u003ca href=\"https://docs.djangoproject.com/en/5.2/internals/release-process/\"\u003ehttps://docs.djangoproject.com/en/5.2/internals/release-process/\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/dimitrismistriotis\"\u003e\u003ccode\u003e@​dimitrismistriotis\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1859\"\u003edjango-extensions/django-extensions#1859\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/titouanc\"\u003e\u003ccode\u003e@​titouanc\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1854\"\u003edjango-extensions/django-extensions#1854\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dmwyatt\"\u003e\u003ccode\u003e@​dmwyatt\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1872\"\u003edjango-extensions/django-extensions#1872\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stianjensen\"\u003e\u003ccode\u003e@​stianjensen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1898\"\u003edjango-extensions/django-extensions#1898\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PapaZ810\"\u003e\u003ccode\u003e@​PapaZ810\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1888\"\u003edjango-extensions/django-extensions#1888\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kviktor\"\u003e\u003ccode\u003e@​kviktor\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1857\"\u003edjango-extensions/django-extensions#1857\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aripollak\"\u003e\u003ccode\u003e@​aripollak\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1913\"\u003edjango-extensions/django-extensions#1913\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/flowgunso\"\u003e\u003ccode\u003e@​flowgunso\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1914\"\u003edjango-extensions/django-extensions#1914\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anitahammer\"\u003e\u003ccode\u003e@​anitahammer\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1869\"\u003edjango-extensions/django-extensions#1869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nicolaspanel\"\u003e\u003ccode\u003e@​nicolaspanel\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1867\"\u003edjango-extensions/django-extensions#1867\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yujinyuz\"\u003e\u003ccode\u003e@​yujinyuz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1855\"\u003edjango-extensions/django-extensions#1855\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/soof-golan\"\u003e\u003ccode\u003e@​soof-golan\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1852\"\u003edjango-extensions/django-extensions#1852\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ghickman\"\u003e\u003ccode\u003e@​ghickman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1887\"\u003edjango-extensions/django-extensions#1887\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jrobichaud\"\u003e\u003ccode\u003e@​jrobichaud\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1837\"\u003edjango-extensions/django-extensions#1837\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-extensions/django-extensions/compare/3.2.3...4.0\"\u003ehttps://github.com/django-extensions/django-extensions/compare/3.2.3...4.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.2.4b1\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-extensions/django-extensions/blob/main/CHANGELOG.md\"\u003edjango-extensions's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.1\u003c/h2\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd: show_permissions command (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1920\"\u003e#1920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, style per app (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1848\"\u003e#1848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: JSONField, bulk_update's (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1924\"\u003e#1924\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.0\u003c/h2\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eImprovement: Support for Python 3.12 and 3.13\u003c/li\u003e\n\u003cli\u003eImprovement: Support for Django 5.x\u003c/li\u003e\n\u003cli\u003eImprovement: Switch from setup.{cfg,py} to pyproject.toml\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Add option to display field choices in graph_models (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1854\"\u003e#1854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Add webp support (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1857\"\u003e#1857\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Support for ordering edges on pydot/dot/graphviz (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1914\"\u003e#1914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: mail_debug, Update mail_debug command to use aiosmtpd (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1880\"\u003e#1880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: shell_plus, Improve error message for missing import (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1898\"\u003e#1898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: reset_db, Add reset_db support for django_tenants (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1855\"\u003e#1855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: docs, various improvements (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1852\"\u003e#1852\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1888\"\u003e#1888\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1882\"\u003e#1882\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1901\"\u003e#1901\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1912\"\u003e#1912\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1913\"\u003e#1913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: jobs, Handle non-package modules when looking for job definitions (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1887\"\u003e#1887\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: Add django-prometheus DB backends support (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1800\"\u003e#1800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: Call post_command when the command raises an unhandled exception (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1837\"\u003e#1837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: sqldiff, do not consider ('serial', 'integer') nor ('bigserial', 'bigint') as a \u003ccode\u003efield-type-differ\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1867\"\u003e#1867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: shell_plus, Fix start up order and add history (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1869\"\u003e#1869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove pipchecker and associated tests (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1906\"\u003e#1906\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFollowing Django's release numbering style more closely (see \u003ca href=\"https://docs.djangoproject.com/en/5.2/internals/release-process/\"\u003ehttps://docs.djangoproject.com/en/5.2/internals/release-process/\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-extensions/django-extensions/commit/ad015513e5d8e8ee6ad748fca5f32ccf3fb3d5c5\"\u003e\u003ccode\u003ead01551\u003c/code\u003e\u003c/a\u003e v4.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/2c3e914f1264c0a029b3b47b7425d0f68ce637ed\"\u003e\u003ccode\u003e2c3e914\u003c/code\u003e\u003c/a\u003e update CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/fb5b2af1b6595ee126237c299acf242fcfee817e\"\u003e\u003ccode\u003efb5b2af\u003c/code\u003e\u003c/a\u003e ruff format\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/7e978d27b031843640f9204ff495738c46233d7f\"\u003e\u003ccode\u003e7e978d2\u003c/code\u003e\u003c/a\u003e graph_models style per app (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1848\"\u003e#1848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/067064ea0c6dec7cba1583447fe5fe1c706d5351\"\u003e\u003ccode\u003e067064e\u003c/code\u003e\u003c/a\u003e avoid trying to serialize expressions when serializing default values\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/a886068502474e70a2d68ff4634a15cc3366088d\"\u003e\u003ccode\u003ea886068\u003c/code\u003e\u003c/a\u003e update CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/d824501cbc6d04a24a43ff5756b496f84093b225\"\u003e\u003ccode\u003ed824501\u003c/code\u003e\u003c/a\u003e Add show_permissions management command (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1920\"\u003e#1920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/934f93f53bdf6c6271ae1ddaee71bc9bf3364a0e\"\u003e\u003ccode\u003e934f93f\u003c/code\u003e\u003c/a\u003e bumped version number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/c4577df5b69ec1ebcbe6bc64d7a5c20362f3a8fa\"\u003e\u003ccode\u003ec4577df\u003c/code\u003e\u003c/a\u003e v4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/7cdb43ab56a3b610b47680d8a2fe86b09d5913aa\"\u003e\u003ccode\u003e7cdb43a\u003c/code\u003e\u003c/a\u003e pyproject formatting\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-extensions/django-extensions/compare/3.2.3...4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-filter` from 23.3 to 25.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/carltongibson/django-filter/blob/main/CHANGES.rst\"\u003edjango-filter's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 25.1 (2025-02-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved the in-built API schema generation methods, which have been\ndeprecated since v23.2.\u003c/p\u003e\n\u003cp\u003eYou should use \u003ccode\u003edrf-spectacular \u0026lt;https://drf-spectacular.readthedocs.io/en/latest/\u0026gt;\u003c/code\u003e_\nfor generating OpenAPI schemas with DRF.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped support for EOL Python 3.8.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded testing against Python 3.13.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded official support for Django 5.2.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 24.3 (2024-08-02)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdds official support for Django 5.1.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow using dictionaries for grouped choices on Django 5.0+.\u003c/p\u003e\n\u003cp\u003eThanks to Sævar Öfjörð Magnússon.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdds \u003ccode\u003eunknown_field_behavior\u003c/code\u003e FilterSet option to allowing warning and\nignore behaviours for unknown field types during FilterSet generation.\u003c/p\u003e\n\u003cp\u003eThanks to Loes.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 24.2 (2024-03-27)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed a regression in v23.4 where callable choices were incorrectly evaluated\nat filter instantiation, on Django versions prior to 5.0.\u003c/p\u003e\n\u003cp\u003eThanks to Craig de Stigter for the report and reproduce.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 24.1 (2024-03-08)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated supported Python and Django versions, and resolved upcoming Django\ndeprecations.\u003c/p\u003e\n\u003cp\u003eRequired versions are now at least Python 3.8 and Django 4.2.\u003c/p\u003e\n\u003cp\u003eThanks to Michael Manganiello.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllowed passing a FilterSet class to the filterset_factory().\u003c/p\u003e\n\u003cp\u003eThanks to Birger Schacht.\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/carltongibson/django-filter/commit/27dd67284405ee832701509b3515baa50c6e074d\"\u003e\u003ccode\u003e27dd672\u003c/code\u003e\u003c/a\u003e Updated Change notes for 25.1 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/2ea38174b010f378a9b57d90c566c2bab7b37bbb\"\u003e\u003ccode\u003e2ea3817\u003c/code\u003e\u003c/a\u003e Added Trove classifier for Django 5.2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/4d2306c211c1d86f85f04fb311b8b05bfefb08a8\"\u003e\u003ccode\u003e4d2306c\u003c/code\u003e\u003c/a\u003e Replaced hardcoded pks in tests (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1703\"\u003e#1703\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/fbf5a76a4d97480d78779397b90d34fa8f13d141\"\u003e\u003ccode\u003efbf5a76\u003c/code\u003e\u003c/a\u003e Update tox after Django 5.2 alpha release. (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1700\"\u003e#1700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/1e76d6859e109ae34d5e2a657c66146a9d744c80\"\u003e\u003ccode\u003e1e76d68\u003c/code\u003e\u003c/a\u003e Use QueryDict for data default. (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1691\"\u003e#1691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/e709e5d43a4ad8b8e8ea62520669b88300c9c686\"\u003e\u003ccode\u003ee709e5d\u003c/code\u003e\u003c/a\u003e Add testing against Python 3.13.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/ccde000dfe74362b62301b248681e9505133e821\"\u003e\u003ccode\u003eccde000\u003c/code\u003e\u003c/a\u003e Dropped support for EOL Python 3.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/2a644e176634ec0ce99d9446d980501e9763e194\"\u003e\u003ccode\u003e2a644e1\u003c/code\u003e\u003c/a\u003e Removed deprecated schema generation methods from DRF backend. (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1698\"\u003e#1698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/2494df96c6387a9fa411fcb00b696b15dfd9216b\"\u003e\u003ccode\u003e2494df9\u003c/code\u003e\u003c/a\u003e fix typo in filterset.txt (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1695\"\u003e#1695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/3656174bd90d20f3d916fd98b6476c270013b681\"\u003e\u003ccode\u003e3656174\u003c/code\u003e\u003c/a\u003e Translated using Weblate (Czech) (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1687\"\u003e#1687\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/carltongibson/django-filter/compare/23.3...25.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gunicorn` from 21.2.0 to 23.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\u003e23.0.0\u003c/h2\u003e\n\u003cp\u003eGunicorn 23.0.0 has been released. This version improve HTTP 1.1. support and  which improve safety\u003c/p\u003e\n\u003cp\u003eYou're invited to upgrade asap your own installation.\u003c/p\u003e\n\u003ch1\u003e23.0.0 - 2024-08-10\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eminor docs fixes (:pr:\u003ccode\u003e3217\u003c/code\u003e, :pr:\u003ccode\u003e3089\u003c/code\u003e, :pr:\u003ccode\u003e3167\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eworker_class parameter accepts a class (:pr:\u003ccode\u003e3079\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003efix deadlock if request terminated during chunked parsing (:pr:\u003ccode\u003e2688\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003epermit receiving Transfer-Encodings: compress, deflate, gzip (:pr:\u003ccode\u003e3261\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003epermit Transfer-Encoding headers specifying multiple encodings. note: no parameters, still (:pr:\u003ccode\u003e3261\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003esdist generation now explicitly excludes sphinx build folder (:pr:\u003ccode\u003e3257\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003edecode bytes-typed status (as can be passed by gevent) as utf-8 instead of raising \u003ccode\u003eTypeError\u003c/code\u003e (:pr:\u003ccode\u003e2336\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eraise correct Exception when encounting invalid chunked requests (:pr:\u003ccode\u003e3258\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ethe SCRIPT_NAME and PATH_INFO headers, when received from allowed forwarders, are no longer restricted for containing an underscore (:pr:\u003ccode\u003e3192\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003einclude IPv6 loopback address \u003ccode\u003e[::1]\u003c/code\u003e in default for :ref:\u003ccode\u003eforwarded-allow-ips\u003c/code\u003e and :ref:\u003ccode\u003eproxy-allow-ips\u003c/code\u003e (:pr:\u003ccode\u003e3192\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e** NOTE **\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SCRIPT_NAME change mitigates a regression that appeared first in the 22.0.0 release\u003c/li\u003e\n\u003cli\u003eReview your :ref:\u003ccode\u003eforwarded-allow-ips\u003c/code\u003e setting if you are still not seeing the SCRIPT_NAME transmitted\u003c/li\u003e\n\u003cli\u003eReview your :ref:\u003ccode\u003eforwarder-headers\u003c/code\u003e setting if you are missing headers after upgrading from a version prior to 22.0.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e** Breaking changes **\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003erefuse requests where the uri field is empty (:pr:\u003ccode\u003e3255\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003erefuse requests with invalid CR/LR/NUL in heade field values (:pr:\u003ccode\u003e3253\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eremove temporary \u003ccode\u003e--tolerate-dangerous-framing\u003c/code\u003e switch from 22.0 (:pr:\u003ccode\u003e3260\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eIf any of the breaking changes affect you, be aware that now refused requests can post a security problem, especially so in setups involving request pipe-lining and/or proxies.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFix CVE-2024-1135\u003c/p\u003e\n\u003ch2\u003eGunicorn 22.0 has been released\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eGunicorn 22.0.0 has been released.\u003c/strong\u003e This version fix the numerous security vulnerabilities. You're invited to upgrade asap your own installation.\u003c/p\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e22.0.0 - 2024-04-17\n===================\n\u003cul\u003e\n\u003cli\u003euse \u003ccode\u003eutime\u003c/code\u003e to notify workers liveness\u003c/li\u003e\n\u003cli\u003emigrate setup to pyproject.toml\u003c/li\u003e\n\u003cli\u003efix numerous security vulnerabilities in HTTP parser (closing some request smuggling vectors)\u003c/li\u003e\n\u003cli\u003eparsing additional requests is no longer attempted past unsupported request framing\u003c/li\u003e\n\u003cli\u003eon HTTP versions \u0026lt; 1.1 support for chunked transfer is refused (only used in exploits)\u003c/li\u003e\n\u003cli\u003erequests conflicting configured or passed SCRIPT_NAME now produce a verbose error\u003c/li\u003e\n\u003cli\u003eTrailer fields are no longer inspected for headers indicating secure scheme\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/li\u003e\n\u003c/ul\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/411986d6191114dd1d1bbb9c72c948dbf0ef0425\"\u003e\u003ccode\u003e411986d\u003c/code\u003e\u003c/a\u003e fix doc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/334392e7795f2017e83f7054d372422512d6f4b6\"\u003e\u003ccode\u003e334392e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/2559\"\u003e#2559\u003c/a\u003e from laggardkernel/bugfix/reexec-env\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/e75c3533e32f91a9dceba9e8e1341fea5540ba81\"\u003e\u003ccode\u003ee75c353\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3189\"\u003e#3189\u003c/a\u003e from pajod/patch-py36\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/9357b28dd867950e33ca3864207cb35a1eb8ba6f\"\u003e\u003ccode\u003e9357b28\u003c/code\u003e\u003c/a\u003e keep document user in access_log_format setting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/79fdef0822cbfe7e16b659b07230af9be098d5fc\"\u003e\u003ccode\u003e79fdef0\u003c/code\u003e\u003c/a\u003e bump to 23.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/3acd9fbfd1159ca3cd80a8052ada89a0bf27f806\"\u003e\u003ccode\u003e3acd9fb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/2620\"\u003e#2620\u003c/a\u003e from talkerbox/improve-access-log-format-docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/3f56d76548e4ade034bf5e174737902970285d1f\"\u003e\u003ccode\u003e3f56d76\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3192\"\u003e#3192\u003c/a\u003e from pajod/patch-allowed-script-name\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/256d474a7910bd605f2cc8c082b79c1ae55215a9\"\u003e\u003ccode\u003e256d474\u003c/code\u003e\u003c/a\u003e docs: revert duped directive\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/ffa48b581dcaa75f17fd2df263515e4266feeef6\"\u003e\u003ccode\u003effa48b5\u003c/code\u003e\u003c/a\u003e test: default change was intentional\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/52538ca9070b5e7ead5d0fa731e82a622dc6f3ee\"\u003e\u003ccode\u003e52538ca\u003c/code\u003e\u003c/a\u003e docs: recommend SCRIPT_NAME=/subfolder\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/benoitc/gunicorn/compare/21.2.0...23.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `redis` from 4.6.0 to 6.4.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\u003e6.4.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e🚀 New Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded epsilon property to the vsim command (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3723\"\u003e#3723\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdating the latest Redis image for github pipeline testing (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3726\"\u003e#3726\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\n\u003ca href=\"https://github.com/htemelski-redis\"\u003e\u003ccode\u003e@​htemelski-redis\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/elena-kolevska\"\u003e\u003ccode\u003e@​elena-kolevska\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/petyaslavova\"\u003e\u003ccode\u003e@​petyaslavova\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/vladvildanov\"\u003e\u003ccode\u003e@​vladvildanov\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e6.3.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e🚀 New Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for new BITOP operations: DIFF, DIFF1, ANDOR, ONE (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3690\"\u003e#3690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport new VAMANA vector index type (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3702\"\u003e#3702\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd new stream commands (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3711\"\u003e#3711\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd async Retry \u003cstrong\u003eeq\u003c/strong\u003e and \u003cstrong\u003ehash\u003c/strong\u003e \u0026amp; fix ExponentialWithJitterBackoff \u003cstrong\u003eeq\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3668\"\u003e#3668\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixing sentinel command execution to allow returning of actual responses when meaningful - behaviour controlled by 'return_responses' argument. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3191\"\u003e#3191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAnnotate deprecated_args decorator to preserve wrapped function type signature (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3701\"\u003e#3701\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix ConnectionPool to raise MaxConnectionsError instead of Connection… (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3698\"\u003e#3698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd async Retry \u003cstrong\u003eeq\u003c/strong\u003e and \u003cstrong\u003ehash\u003c/strong\u003e \u0026amp; fix ExponentialWithJitterBackoff \u003cstrong\u003eeq\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3668\"\u003e#3668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSentinelManagedConnection searches for new master upon connection failure (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3560\"\u003e#3560\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3601\"\u003e#3601\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: avoid instantiating a connection on \u003cem\u003erepr\u003c/em\u003e_ (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3653\"\u003e#3653\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixing the return type hint for the transaction method in the standalone client. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3660\"\u003e#3660\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump rojopolis/spellcheck-github-actions from 0.48.0 to 0.49.0 (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3665\"\u003e#3665\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDropping integration tests with Redis 6.2 from pipeline actions. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3659\"\u003e#3659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove deprecated arg from call to ClusterPipeline (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3670\"\u003e#3670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTransactionStrategy reset: UNWATCH only when status is watching (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3671\"\u003e#3671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eKeyT for set operations (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3190\"\u003e#3190\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoving references to old docs site '\u003ca href=\"https://redis-py.readthedocs.io/\"\u003ehttps://redis-py.readthedocs.io/\u003c/a\u003e' replaced by '\u003ca href=\"https://redis.readthedocs.io/\"\u003ehttps://redis.readthedocs.io/\u003c/a\u003e' (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3674\"\u003e#3674\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoving unnecessary check for tests using AsyncMock (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3432\"\u003e#3432\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdating test images for github pipeline execution (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3678\"\u003e#3678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdating the latest Redis image for pipeline testing (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3695\"\u003e#3695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump rojopolis/spellcheck-github-actions from 0.49.0 to 0.51.0 (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3689\"\u003e#3689\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDOC-5225 testable probabilistic dt examples (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3691\"\u003e#3691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate README.md (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3699\"\u003e#3699\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eConvert the value to int type only if it exists in CLIENT INFO (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3688\"\u003e#3688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix compatibility with latest pytest-asyncio version(1.1.0) (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3708\"\u003e#3708\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDOC-5424 time series examples (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3705\"\u003e#3705\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdding information in connection pool class doc string for available SSLConnection class, that can be used for SSL connections (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3710\"\u003e#3710\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/redis/redis-py/commit/fff669daaf43ae8092ea8ab7a2a3196a9b1b7e41\"\u003e\u003ccode\u003efff669d\u003c/code\u003e\u003c/a\u003e Updated package version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/43ce2a4025c020bd26e401371c16ca4920b470a5\"\u003e\u003ccode\u003e43ce2a4\u003c/code\u003e\u003c/a\u003e Updating the latest Redis image for github pipeline testing (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3726\"\u003e#3726\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/64426cbdd43153b70b0e29d9d7b3ab2c63760359\"\u003e\u003ccode\u003e64426cb\u003c/code\u003e\u003c/a\u003e Added epsilon property to the vsim command (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3723\"\u003e#3723\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/67ab74d705b4c1d00d600c500596af7a68abfd56\"\u003e\u003ccode\u003e67ab74d\u003c/code\u003e\u003c/a\u003e Add new stream commands (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3711\"\u003e#3711\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/4c9512b1fe592dc9becebe9e5f053b0184b47f2c\"\u003e\u003ccode\u003e4c9512b\u003c/code\u003e\u003c/a\u003e Adding information in connection pool class doc string for available SSLConne...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/31399ed43588840bbbfdbbf0e8260d1b989b49ce\"\u003e\u003ccode\u003e31399ed\u003c/code\u003e\u003c/a\u003e SentinelManagedConnection searches for new master upon connection failure (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3\"\u003e#3\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/7291deb5eb8054a0dc915a8bf499a17498bc5968\"\u003e\u003ccode\u003e7291deb\u003c/code\u003e\u003c/a\u003e add async Retry \u003ccode\u003e__eq__\u003c/code\u003e and \u003ccode\u003e__hash__\u003c/code\u003e \u0026amp; fix ExponentialWithJitterBackof...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/4cf094fdd2c1f2ce335e671af3fad7ad0a48f309\"\u003e\u003ccode\u003e4cf094f\u003c/code\u003e\u003c/a\u003e Fix ConnectionPool to raise MaxConnectionsError instead of Connection… (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3698\"\u003e#3698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/a00141618572764821bbe6bd74e025536e061587\"\u003e\u003ccode\u003ea001416\u003c/code\u003e\u003c/a\u003e DOC-5424 time series examples (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3705\"\u003e#3705\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/2b1ff5363715c8ba0043314a8b4bcbbc1ba741f5\"\u003e\u003ccode\u003e2b1ff53\u003c/code\u003e\u003c/a\u003e Fix compatibility with latest pytest-asyncio version(1.1.0) (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3708\"\u003e#3708\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/redis/redis-py/compare/v4.6.0...v6.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `watchdog` from 3.0.0 to 6.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/gorakhargosh/watchdog/releases\"\u003ewatchdog's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[inotify] Use of \u003ccode\u003eselect.poll()\u003c/code\u003e instead of deprecated \u003ccode\u003eselect.select()\u003c/code\u003e, if available. (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1078\"\u003e#1078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_class()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_instancemethod()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_module()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eis_class_private_name()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eis_classmethod()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eis_method(met()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003emethod_name()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003ename()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Removed the \u003ccode\u003e--trace\u003c/code\u003e CLI argument from the \u003ccode\u003ewatchmedo log\u003c/code\u003e command, useless since events are logged by default at the \u003ccode\u003eLoggerTrick\u003c/code\u003e class level.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePin test dependecies.\u003c/li\u003e\n\u003cli\u003e[docs] Add typing info to quick start. (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1082\"\u003e#1082\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[inotify] Fix reading inotify file descriptor after closing it. (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1081\"\u003e#1081\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[utils] The \u003ccode\u003estop_signal\u003c/code\u003e keyword-argument type of the \u003ccode\u003eAutoRestartTrick\u003c/code\u003e class can now be either a \u003ccode\u003esignal.Signals\u003c/code\u003e or an \u003ccode\u003eint\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e[utils] Added the \u003ccode\u003e__repr__()\u003c/code\u003e method to the \u003ccode\u003eTrick\u003c/code\u003e class.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Fixed Mypy issues.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Added the \u003ccode\u003e__repr__()\u003c/code\u003e method to the \u003ccode\u003eHelpFormatter\u003c/code\u003e class.\u003c/li\u003e\n\u003cli\u003e[windows] Fixed Mypy issues.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e💟 Thanks to our beloved contributors: \u003ca href=\"https://github.com/g-pichler\"\u003e\u003ccode\u003e@​g-pichler\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ethan-vanderheijden\"\u003e\u003ccode\u003e@​ethan-vanderheijden\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/nhairs\"\u003e\u003ccode\u003e@​nhairs\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[inotify] Improve cleaning up \u003ccode\u003eInotify\u003c/code\u003e threads, and add \u003ccode\u003eeventlet\u003c/code\u003e test cases (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1070\"\u003e#1070\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e💟 Thanks to our beloved contributors: \u003ca href=\"https://github.com/ethan-vanderheijden\"\u003e\u003ccode\u003e@​ethan-vanderheijden\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEnable OS specific Mypy checks (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1064\"\u003e#1064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[watchmedo] Fix \u003ccode\u003etricks\u003c/code\u003e argument type of \u003ccode\u003eschedule_tricks()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1063\"\u003e#1063\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e💟 Thanks to our beloved contributors: \u003ca href=\"https://github.com/gnought\"\u003e\u003ccode\u003e@​gnought\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[kqueue] Fix \u003ccode\u003eTypeError: kqueue.control() only accepts positional parameters\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1062\"\u003e#1062\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e💟 Thanks to our beloved contributors: \u003ca href=\"https://github.com/apoirier\"\u003e\u003ccode\u003e@​apoirier\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8 (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1055\"\u003e#1055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[core] Enforced usage of proper keyword-arguments (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1057\"\u003e#1057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[core] Renamed the \u003ccode\u003eBaseObserverSubclassCallable\u003c/code\u003e class to \u003ccode\u003eObserverType\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1055\"\u003e#1055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[inotify] Renamed the \u003ccode\u003einotify_event_struct\u003c/code\u003e class to \u003ccode\u003eInotifyEventStruct\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1055\"\u003e#1055\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/gorakhargosh/watchdog/blob/master/changelog.rst\"\u003ewatchdog's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e6.0.0\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n2024-11-01 • `full history \u0026lt;https://github.com/gorakhargosh/watchdog/compare/v5.0.3...v6.0.0\u0026gt;`__\n\u003cul\u003e\n\u003cli\u003ePin test dependencies.\u003c/li\u003e\n\u003cli\u003e[docs] Add typing info to quick start. (\u003ccode\u003e[#1082](https://github.com/gorakhargosh/watchdog/issues/1082) \u0026amp;lt;https://github.com/gorakhargosh/watchdog/pull/1082\u0026amp;gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003e[inotify] Use of \u003ccode\u003eselect.poll()\u003c/code\u003e instead of deprecated \u003ccode\u003eselect.select()\u003c/code\u003e, if available. (\u003ccode\u003e[#1078](https://github.com/gorakhargosh/watchdog/issues/1078) \u0026amp;lt;https://github.com/gorakhargosh/watchdog/pull/1078\u0026amp;gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003e[inotify] Fix reading inotify file descriptor after closing it. (\u003ccode\u003e[#1081](https://github.com/gorakhargosh/watchdog/issues/1081) \u0026amp;lt;https://github.com/gorakhargosh/watchdog/pull/1081\u0026amp;gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003e[utils] The \u003ccode\u003estop_signal\u003c/code\u003e keyword-argument type of the \u003ccode\u003eAutoRestartTrick\u003c/code\u003e class can now be either a \u003ccode\u003esignal.Signals\u003c/code\u003e or an \u003ccode\u003eint\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e[utils] Added the \u003ccode\u003e__repr__()\u003c/code\u003e method to the \u003ccode\u003eTrick\u003c/code\u003e class.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_class()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_instancemethod()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_module()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eis_class_private_name()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eis_classmethod()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eic_method(met()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003emethod_name()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003ename()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Fixed Mypy issues.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Added the \u003ccode\u003e__repr__()\u003c/code\u003e method to the \u003ccode\u003eHelpFormatter\u003c/code\u003e class.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Removed the \u003ccode\u003e--trace\u003c/code\u003e CLI argument from the \u003ccode\u003ewatchmedo log\u003c/code\u003e command, useless since events are logged by default at the \u003ccode\u003eLoggerTrick\u003c/code\u003e class level.\u003c/li\u003e\n\u003cli\u003e[windows] Fixed Mypy issues.\u003c/li\u003e\n\u003cli\u003eThanks to our beloved contributors: \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/g-pichler\"\u003e\u003ccode\u003e@​g-pichler\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ethan-vanderheijden\"\u003e\u003ccode\u003e@​ethan-vanderheijden\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/nhairs\"\u003e\u003ccode\u003e@​nhairs\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e5.0.3\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e2024-09-27 • \u003ccode\u003efull history \u0026lt;https://github.com/gorakhargosh/watchdog/compare/v5.0.2...v5.0.3\u0026gt;\u003c/code\u003e__\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[inotify] Improve cleaning up \u003ccode\u003eInotify\u003c/code\u003e threads, and add \u003ccode\u003eeventlet\u003c/code\u003e test cases (\u003ccode\u003e[#1070](https://github.com/gorakhargosh/watchdog/issues/1070) \u0026lt;https://github.com/gorakhargosh/watchdog/pull/1070\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eThanks to our beloved contributors: \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ethan-vanderheijden\"\u003e\u003ccode\u003e@​ethan-vanderheijden\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e5.0.2\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n2024-09-03 • `full history \u0026lt;https://github.com/gorakhargosh/watchdog/compare/v5.0.1...v5.0.2\u0026gt;`__\n\u003cul\u003e\n\u003cli\u003eEnable OS specific Mypy checks (\u003ccode\u003e[#1064](https://github.com/gorakhargosh/watchdog/issues/1064) \u0026amp;lt;https://github.com/gorakhargosh/watchdog/pull/1064\u0026amp;gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003e[watchmedo] Fix \u003ccode\u003etricks\u003c/code\u003e argument type of \u003ccode\u003eschedule_tricks()\u003c/code\u003e (\u003ccode\u003e[#1063](https://github.com/gorakhargosh/watchdog/issues/1063) \u0026amp;lt;https://github.com/gorakhargosh/watchdog/pull/1063\u0026amp;gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eThanks to our beloved contributors: \u003ca href=\"https://github.com/gnought\"\u003e\u003ccode\u003e@​gnought\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e5.0.1\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e2024-09-02 • \u003ccode\u003efull history \u0026lt;https://github.com/gorakhargosh/watchdog/compare/v5.0.0...v5.0.1\u0026gt;\u003c/code\u003e__\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[kqueue] Fix \u003ccode\u003eTypeError: kqueue.control() only accepts positional parameters\u003c/code\u003e  (\u003ccode\u003e[#1062](https://github.com/gorakhargosh/watchdog/issues/1062) \u0026lt;https://github.com/gorakhargosh/watchdog/pull/1062\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eThanks to our beloved contributors: \u003ca href=\"https://github.com/apoirier\"\u003e\u003ccode\u003e@​apoirier\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\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/gorakhargosh/watchdog/commit/76c091dc8841de1d1a1cd6511bb509fe4f058de6\"\u003e\u003ccode\u003e76c091d\u003c/code\u003e\u003c/a\u003e Version 6.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/58386d88747259b8b3da5082e30f1c6e0aa3b31a\"\u003e\u003ccode\u003e58386d8\u003c/code\u003e\u003c/a\u003e Fixes, and clean-up (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1084\"\u003e#1084\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/db698a52bbb1eb8cc34e889a8afdac6f17a99e57\"\u003e\u003ccode\u003edb698a5\u003c/code\u003e\u003c/a\u003e fix: reading inotify file descriptor after closing it. (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1081\"\u003e#1081\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/73d561265b109f30cf76a280cdcc74aa9e6df391\"\u003e\u003ccode\u003e73d5612\u003c/code\u003e\u003c/a\u003e [docs] Add typing info to quick start (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1082\"\u003e#1082\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/d774fec477a8f57d24b588164ebdd39b2d507bcd\"\u003e\u003ccode\u003ed774fec\u003c/code\u003e\u003c/a\u003e docs: Update README Badges (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1083\"\u003e#1083\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/6b74737501c85df9b9c2585faef4797a5250171b\"\u003e\u003ccode\u003e6b74737\u003c/code\u003e\u003c/a\u003e docs: funding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/3d1b888bccdd27a28f9f12a4e89288afe1ee493a\"\u003e\u003ccode\u003e3d1b888\u003c/code\u003e\u003c/a\u003e [inotify] Use of \u003ccode\u003eselect.poll()\u003c/code\u003e instead of deprecated \u003ccode\u003eselect.select()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1078\"\u003e#1078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/6a4f1cf846e03c8701fcc53b9e910077b5824e59\"\u003e\u003ccode\u003e6a4f1cf\u003c/code\u003e\u003c/a\u003e Bump the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/ad6df50908fca071ac8ad6558453bb28b522f794\"\u003e\u003ccode\u003ead6df50\u003c/code\u003e\u003c/a\u003e Version 5.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/59650f8fe72ac498374434a10a3dd49f3c3d1429\"\u003e\u003ccode\u003e59650f8\u003c/code\u003e\u003c/a\u003e fix: polish \u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1070\"\u003e#1070\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/gorakhargosh/watchdog/compare/v3.0.0...v6.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ocrmypdf` from 14.4.0 to 15.4.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/blob/main/docs/release_notes.md\"\u003eocrmypdf's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev15.4.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed documentation for installing Ghostscript on Windows. {issue}\u003ccode\u003e1198\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdded warning message about security issue in older versions of Ghostscript.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev15.4.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed deprecation warning in pikepdf older than 8.7.1; pikepdf \u0026gt;= 8.7.1 is\nnow required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev15.4.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWe now raise an exception on a certain class of PDFs that likely need an\nexplicit color conversion strategy selected to display correctly\nfor PDF/A conversion.\u003c/li\u003e\n\u003cli\u003eFixed an error that occurred while trying to write a log message after the\ndebug log handler was removed.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev15.4.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed misc/watcher.py regressions: accept \u003ccode\u003e--ocr-json-settings\u003c/code\u003e as either\nfilename or JSON string, as previously; and argument count mismatch.\n{issue}\u003ccode\u003e1183,1185\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eWe no longer attempt to set /ProcSet in the PDF output, since this is an\nobsolete PDF feature.\u003c/li\u003e\n\u003cli\u003eDocumentation improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev15.4.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded new experimental APIs to support offline editing of the final text.\nSpecifically, one can now generate hOCR files with OCRmyPDF, edit them with\nsome other tool, and then finalize the PDF. They are experimental and\nsubject to change, including details of how the working folder is used.\nThere is no command line interface.\u003c/li\u003e\n\u003cli\u003eCode reorganization: executors, progress bars, initialization and setup.\u003c/li\u003e\n\u003cli\u003eFixed test coverage in cases where the coverage tool did not properly trace\ninto threads or subprocesses. This code was still being tested but appeared\nas not covered.\u003c/li\u003e\n\u003cli\u003eIn the test suite, reduced use of subprocesses and other techniques that\ninterfere with coverage measurement.\u003c/li\u003e\n\u003cli\u003eImproved error check for when we appear to be running inside a snap container\nand files are not available.\u003c/li\u003e\n\u003cli\u003ePlugin specification now properly defines progress bars as a protocol rather\nthan defining them as \u0026quot;tqdm-like\u0026quot;.\u003c/li\u003e\n\u003cli\u003eWe now default to using \u0026quot;forkserver\u0026quot; process creation on POSIX platforms\nrather than fork, since this is method is more robust and avoids some\nissues when threads are present.\u003c/li\u003e\n\u003cli\u003eFixed an instance where the user's request to \u003ccode\u003e--no-use-threads\u003c/code\u003e was ignored.\u003c/li\u003e\n\u003cli\u003eIf a PDF does not have language metadata on its top level object, we add\nthe OCR language.\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/ocrmypdf/OCRmyPDF/commit/c90d5cd84b0e27906310c28f0d78c3ded9106d65\"\u003e\u003ccode\u003ec90d5cd\u003c/code\u003e\u003c/a\u003e Fix Ghostscript installation instructions and add warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/9898904be70bf957154cc66cb5d6f57bac7c26b4\"\u003e\u003ccode\u003e9898904\u003c/code\u003e\u003c/a\u003e Fix pikepdf PdfMatrix deprecation warning; v15.4.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/27d52298420e785300e418bef4e4219ef97720e1\"\u003e\u003ccode\u003e27d5229\u003c/code\u003e\u003c/a\u003e Make logger names unique\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/4a9a575ef0f2cd7459538a43e802c8d8b3846168\"\u003e\u003ccode\u003e4a9a575\u003c/code\u003e\u003c/a\u003e ghostscript: better comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/52fd9a630d57ac7af91db423b17e6b0297fc1c66\"\u003e\u003ccode\u003e52fd9a6\u003c/code\u003e\u003c/a\u003e v15.4.2 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/a596ccf84469c81c6d19ab0eb59f53a5df0bc3c7\"\u003e\u003ccode\u003ea596ccf\u003c/code\u003e\u003c/a\u003e Raise exception if resulting PDF might appear blank in a known in some PDF vi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/e7fa97731f507c1d91e4289b9d5f3344533d7c4c\"\u003e\u003ccode\u003ee7fa977\u003c/code\u003e\u003c/a\u003e ghostscript duplicate filter: filter within a window of previous messages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/290aa2810868fb506a0ded2db8dabb580d5a2459\"\u003e\u003ccode\u003e290aa28\u003c/code\u003e\u003c/a\u003e Fix error on attempt to write to debug log after removing debug log handler\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/a95640ed9ec0a5caa360bd64b9ad6cc9f916fa61\"\u003e\u003ccode\u003ea95640e\u003c/code\u003e\u003c/a\u003e v15.4.1 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/f69267bb675c3261121b70451f6e673f433bc7ad\"\u003e\u003ccode\u003ef69267b\u003c/code\u003e\u003c/a\u003e watcher: restore ability to read json from file or command line string\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/compare/v14.4.0...v15.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-multiselectfield` from 0.1.12 to 1.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/goinnn/django-multiselectfield/releases\"\u003edjango-multiselectfield's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBadge image worked on GitHub but was broken on PyPI — fixed it.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.0\u003c/h2\u003e\n\u003cp\u003eThis release introduces multiple changes that are incompatible with previous versions.\u003c/p\u003e\n\u003cp\u003eThe major version number has been incremented following \u003ccode\u003eSemantic Versioning (SemVer) \u0026lt;https://semver.org/\u0026gt;\u003c/code\u003e_, as several components of the package have changed in ways that may require updates in client code.\u003c/p\u003e\n\u003cp\u003eThe internal codebase has been significantly cleaned up and reorganized, making it more maintainable and consistent.\u003c/p\u003e\n\u003cp\u003eThis version contains \u003cstrong\u003e40% fewer lines of code\u003c/strong\u003e compared to the previous release.\u003c/p\u003e\n\u003cp\u003eLess code means fewer bugs, easier maintenance, and better long-term sustainability.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFList (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\"\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2\u003c/a\u003e):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/50d3f785883e0a314f2dc89950e3fe1e88a7ede6\"\u003e50d3f785883e0a314f2dc89950e3fe1e88a7ede6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIt was created to support MultiSelectFields in admin.list_display, but it never actually worked. If you add a multiselect field to list_display, Django does not call to \u003cstrong\u003estr\u003c/strong\u003e method of MSGList (renamed to MSFList)\u003c/li\u003e\n\u003cli\u003eIt was created for integer choices too and it is a misconception. This is explained in the README file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFFlatchoices (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\"\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2\u003c/a\u003e):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/5638247c1d70670d4f81adf35143ef17a7d7575e\"\u003e5638247c1d70670d4f81adf35143ef17a7d7575e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIn list_display, labels for the choices are now shown (comma-separated) instead of the values of the choices (comma-separated).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn to_python method, value is a list or a string. (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/c4579138dda2833cbce26afbf57da5353aa45690\"\u003ec4579138dda2833cbce26afbf57da5353aa45690\u003c/a\u003e)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove set case and dict case\u003c/li\u003e\n\u003cli\u003eIf this breaks something, please create a test to help understand the use case.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoving integer choices:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIt was a mistake. MultiSelectField inherits of CharField, not IntegerField.\u003c/li\u003e\n\u003cli\u003eIt is impossible knows if original choice is (1, 'Item title 2.1') or ('1', 'Item title 2.1')\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: Form instance generated twice since Django  (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/168\"\u003e#168\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix CSS admin:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/173\"\u003e#173\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/7711f4aa755c81d00f07ce8a6ff0fd9240061f9c\"\u003e7711f4aa755c81d00f07ce8a6ff0fd9240061f9c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix Properly Display Categorized Choices in get_FOO_display (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/169\"\u003e#169\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSortMultiSelectField: (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/172\"\u003e#172\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/goinnn/django-multiselectfield/blob/master/CHANGES.rst\"\u003edjango-multiselectfield's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.0.1 (2025-06-12)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBadge image worked on GitHub but was broken on PyPI — fixed it.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.0.0 (2025-06-12)\u003c/h2\u003e\n\u003cp\u003eThis release introduces multiple changes that are incompatible with previous versions.\u003c/p\u003e\n\u003cp\u003eThe major version number has been incremented following \u003ccode\u003eSemantic Versioning (SemVer) \u0026lt;https://semver.org/\u0026gt;\u003c/code\u003e_, as several components of the package have changed in ways that may require updates in client code.\u003c/p\u003e\n\u003cp\u003eThe internal codebase has been significantly cleaned up and reorganized, making it more maintainable and consistent.\u003c/p\u003e\n\u003cp\u003eThis version contains \u003cstrong\u003e40% fewer lines of code\u003c/strong\u003e compared to the previous release.\u003c/p\u003e\n\u003cp\u003eLess code means fewer bugs, easier maintenance, and better long-term sustainability.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFList (\u003ccode\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\u0026gt;\u003c/code\u003e_):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ccode\u003e50d3f785883e0a314f2dc89950e3fe1e88a7ede6 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/50d3f785883e0a314f2dc89950e3fe1e88a7ede6\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eIt was created to support MultiSelectFields in admin.list_display, but it never actually worked. If you add a multiselect field to list_display, Django does not call to \u003cstrong\u003estr\u003c/strong\u003e method of MSGList (renamed to MSFList)\u003c/li\u003e\n\u003cli\u003eIt was created for integer choices too and it is a misconception. This is explained in the README file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFFlatchoices (\u003ccode\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\u0026gt;\u003c/code\u003e_):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ccode\u003e5638247c1d70670d4f81adf35143ef17a7d7575e \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/5638247c1d70670d4f81adf35143ef17a7d7575e\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eIn list_display, labels for the choices are now shown (comma-separated) instead of the values of the choices (comma-separated).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn to_python method, value is a list or a string. (\u003ccode\u003ec4579138dda2833cbce26afbf57da5353aa45690 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/c4579138dda2833cbce26afbf57da5353aa45690\u0026gt;\u003c/code\u003e_)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove set case and dict case\u003c/li\u003e\n\u003cli\u003eIf this breaks something, please create a test to help understand the use case.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoving integer choices:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIt was a mistake. MultiSelectField inherits of CharField, not IntegerField.\u003c/li\u003e\n\u003cli\u003eIt is impossibl...\n\n_Description has been truncated_","html_url":"https://github.com/dsp-testing/paperless-ngx/pull/195","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/dsp-testing%2Fpaperless-ngx/issues/195","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/195/packages"}},{"old_version":"12.0","new_version":"16.0.1","update_type":null,"path":null,"pr_created_at":"2025-12-15T15:58:57.000Z","version_change":"12.0 → 16.0.1","issue":{"uuid":"3731088988","node_id":"PR_kwDOKoYLLM649Wm5","number":187,"state":"open","title":"Bump the major-versions group across 1 directory with 16 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-12-15T15:58:57.000Z","updated_at":"2025-12-15T15:58:59.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"major-versions","update_count":16,"packages":[{"name":"django","old_version":"4.2.6","new_version":"4.2.27"},{"name":"django-guardian","old_version":"2.4.0","new_version":"3.2.0","repository_url":"https://github.com/django-guardian/django-guardian"},{"name":"django-extensions","old_version":"3.2.3","new_version":"4.1","repository_url":"https://github.com/django-extensions/django-extensions"},{"name":"django-filter","old_version":"23.3","new_version":"25.1","repository_url":"https://github.com/carltongibson/django-filter"},{"name":"gunicorn","old_version":"21.2.0","new_version":"23.0.0","repository_url":"https://github.com/benoitc/gunicorn"},{"name":"python-ipware","old_version":"2.0.0","new_version":"3.0.0","repository_url":"https://github.com/un33k/python-ipware"},{"name":"redis","old_version":"4.6.0","new_version":"6.4.0","repository_url":"https://github.com/redis/redis-py"},{"name":"ocrmypdf","old_version":"14.4.0","new_version":"15.4.4","repository_url":"https://github.com/ocrmypdf/OCRmyPDF"},{"name":"django-multiselectfield","old_version":"0.1.12","new_version":"1.0.1","repository_url":"https://github.com/goinnn/django-multiselectfield"},{"name":"django-auditlog","old_version":"2.3.0","new_version":"3.3.0","repository_url":"https://github.com/jazzband/django-auditlog"},{"name":"black","old_version":"23.9.1","new_version":"25.11.0","repository_url":"https://github.com/psf/black"},{"name":"pre-commit","old_version":"3.4.0","new_version":"4.3.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pytest","old_version":"7.4.2","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-cov","old_version":"4.1.0","new_version":"7.0.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"pytest-sugar","old_version":"0.9.7","new_version":"1.1.1","repository_url":"https://github.com/Teemu/pytest-sugar"},{"name":"pytest-rerunfailures","old_version":"12.0","new_version":"16.0.1","repository_url":"https://github.com/pytest-dev/pytest-rerunfailures"}],"path":null,"ecosystem":"conda"},"body":"Bumps the major-versions group with 16 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| django | `4.2.6` | `4.2.27` |\n| [django-guardian](https://github.com/django-guardian/django-guardian) | `2.4.0` | `3.2.0` |\n| [django-extensions](https://github.com/django-extensions/django-extensions) | `3.2.3` | `4.1` |\n| [django-filter](https://github.com/carltongibson/django-filter) | `23.3` | `25.1` |\n| [gunicorn](https://github.com/benoitc/gunicorn) | `21.2.0` | `23.0.0` |\n| [python-ipware](https://github.com/un33k/python-ipware) | `2.0.0` | `3.0.0` |\n| [redis](https://github.com/redis/redis-py) | `4.6.0` | `6.4.0` |\n| [ocrmypdf](https://github.com/ocrmypdf/OCRmyPDF) | `14.4.0` | `15.4.4` |\n| [django-multiselectfield](https://github.com/goinnn/django-multiselectfield) | `0.1.12` | `1.0.1` |\n| [django-auditlog](https://github.com/jazzband/django-auditlog) | `2.3.0` | `3.3.0` |\n| [black](https://github.com/psf/black) | `23.9.1` | `25.11.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `3.4.0` | `4.3.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `7.4.2` | `8.4.2` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `4.1.0` | `7.0.0` |\n| [pytest-sugar](https://github.com/Teemu/pytest-sugar) | `0.9.7` | `1.1.1` |\n| [pytest-rerunfailures](https://github.com/pytest-dev/pytest-rerunfailures) | `12.0` | `16.0.1` |\n\n\nUpdates `django` from 4.2.6 to 4.2.27\n\nUpdates `django-guardian` from 2.4.0 to 3.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-guardian/django-guardian/releases\"\u003edjango-guardian's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.2.0 The Bozkir progression\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate enforcement contact link in CODE_OF_CONDUCT.md by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/918\"\u003edjango-guardian/django-guardian#918\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptional cached anonymous user  - Pr 907 by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/912\"\u003edjango-guardian/django-guardian#912\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003egenerator warnings and logics are added for security purposes by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/920\"\u003edjango-guardian/django-guardian#920\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erollback compatible create anon user fix is developed by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/919\"\u003edjango-guardian/django-guardian#919\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e644 using inlines in django admin with guardian by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/921\"\u003edjango-guardian/django-guardian#921\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-guardian/django-guardian/compare/3.1.3...3.2.0\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.3...3.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.1.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edjango-packages badge is added by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/910\"\u003edjango-guardian/django-guardian#910\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate issue templates by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/909\"\u003edjango-guardian/django-guardian#909\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMakefile support by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/906\"\u003edjango-guardian/django-guardian#906\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePR merging scenario is fixed by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/913\"\u003edjango-guardian/django-guardian#913\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed issue causing prefetch_perms() to throw when passed an empty list by \u003ca href=\"https://github.com/keattang\"\u003e\u003ccode\u003e@​keattang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/904\"\u003edjango-guardian/django-guardian#904\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRe apply \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/812\"\u003e#812\u003c/a\u003e using correct lookup method by \u003ca href=\"https://github.com/sevdog\"\u003e\u003ccode\u003e@​sevdog\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/842\"\u003edjango-guardian/django-guardian#842\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOPS: Bump version for release by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/915\"\u003edjango-guardian/django-guardian#915\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-guardian/django-guardian/compare/3.1.2...3.1.3\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.2...3.1.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.1.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.0 in /.github/workflows 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-guardian/django-guardian/pull/903\"\u003edjango-guardian/django-guardian#903\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix type and deprecate old name by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/902\"\u003edjango-guardian/django-guardian#902\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/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/903\"\u003edjango-guardian/django-guardian#903\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-guardian/django-guardian/compare/3.1.1...3.1.2\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.1...3.1.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epre-commit checker step is added by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/901\"\u003edjango-guardian/django-guardian#901\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-guardian/django-guardian/compare/3.1.0...3.1.1\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.0...3.1.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eImproved indexing, tweaks and bugfixes\u003c/h2\u003e\n\u003ch2\u003eSaving the 🌳🌳🌳 and the 💰💰💰\u003c/h2\u003e\n\u003cp\u003e⚠️⚠️⚠️ \u003cstrong\u003eWARNING:\u003c/strong\u003e This release contains an update to database indexing which should yield \u003cstrong\u003econsiderable additional performance\u003c/strong\u003e, especially on large table permissions lookups (thanks \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e for such rigorous performance testing!!!). Following the migration that introduces these indexes, databases should reindex automatically in the background (typically within 0-30s even for large tables): this is unlikely to be noticeable but users may experience a short lived performance hit during this period.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow ignore_conflicts on bulk create by \u003ca href=\"https://github.com/pgiki\"\u003e\u003ccode\u003e@​pgiki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/814\"\u003edjango-guardian/django-guardian#814\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/django-guardian/django-guardian/commit/4120d00c28c1b6d3bacb988f6db86bacf91ed0f1\"\u003e\u003ccode\u003e4120d00\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/921\"\u003e#921\u003c/a\u003e from django-guardian/644-using-inlines-in-django-admi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/c896b220bdf96783f1c25d730f12ebef95758c99\"\u003e\u003ccode\u003ec896b22\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/919\"\u003e#919\u003c/a\u003e from django-guardian/770-migration-rollback-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/3814e2383c69266350a3d885d445bdd79da8cb78\"\u003e\u003ccode\u003e3814e23\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 770-migration-rollback-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/94854899f4a030b42840837e08b42923a71c5b78\"\u003e\u003ccode\u003e9485489\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/920\"\u003e#920\u003c/a\u003e from django-guardian/666-permissionrequiredmixin-does...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/e01e2e1edeec60b2c79d561db56e0949ea3c4dad\"\u003e\u003ccode\u003ee01e2e1\u003c/code\u003e\u003c/a\u003e check only username field fixing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/e1ae3c5a7ab74a679ef1ccff2a480a88117df464\"\u003e\u003ccode\u003ee1ae3c5\u003c/code\u003e\u003c/a\u003e show warning instead of error for backward compatibility and giving time the ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/63c10f549dfe2b5ba67e9eec36095cf3e6a2bab8\"\u003e\u003ccode\u003e63c10f5\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 644-using-inlines-in-django-admin-with-guardian\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/b27ebbdcc7f9952d9d9aaaa879b5e202063ccaa8\"\u003e\u003ccode\u003eb27ebbd\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 666-permissionrequiredmixin-does-not-warn-against-us...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/d7ed4a3bccb730d3cdf16fdc404f25b94674c653\"\u003e\u003ccode\u003ed7ed4a3\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 770-migration-rollback-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/03fed6924e06fd13991d9e8ae1b4590addf5473e\"\u003e\u003ccode\u003e03fed69\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/912\"\u003e#912\u003c/a\u003e from django-guardian/pr-907\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-guardian/django-guardian/compare/v2.4.0...3.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-extensions` from 3.2.3 to 4.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-extensions/django-extensions/releases\"\u003edjango-extensions's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd: show_permissions command (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1920\"\u003e#1920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, style per app (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1848\"\u003e#1848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: JSONField, bulk_update's (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1924\"\u003e#1924\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/ahmad88me\"\u003e\u003ccode\u003e@​ahmad88me\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1848\"\u003edjango-extensions/django-extensions#1848\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-extensions/django-extensions/compare/4.0...4.1\"\u003ehttps://github.com/django-extensions/django-extensions/compare/4.0...4.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprovement: Support for Python 3.12 and 3.13\u003c/li\u003e\n\u003cli\u003eImprovement: Support for Django 5.x\u003c/li\u003e\n\u003cli\u003eImprovement: Switch from setup.{cfg,py} to pyproject.toml\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Add option to display field choices in graph_models (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1854\"\u003e#1854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Add webp support (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1857\"\u003e#1857\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Support for ordering edges on pydot/dot/graphviz (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1914\"\u003e#1914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: mail_debug, Update mail_debug command to use aiosmtpd (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1880\"\u003e#1880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: shell_plus, Improve error message for missing import (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1898\"\u003e#1898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: reset_db, Add reset_db support for django_tenants (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1855\"\u003e#1855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: docs, various improvements (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1852\"\u003e#1852\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1888\"\u003e#1888\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1882\"\u003e#1882\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1901\"\u003e#1901\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1912\"\u003e#1912\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1913\"\u003e#1913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: jobs, Handle non-package modules when looking for job definitions (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1887\"\u003e#1887\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: Add django-prometheus DB backends support (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1800\"\u003e#1800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: Call post_command when the command raises an unhandled exception (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1837\"\u003e#1837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: sqldiff, do not consider ('serial', 'integer') nor ('bigserial', 'bigint') as a field-type-differ (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1867\"\u003e#1867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: shell_plus, Fix start up order and add history (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1869\"\u003e#1869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove pipchecker and associated tests (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1906\"\u003e#1906\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFollowing Django's release numbering style more closely (see \u003ca href=\"https://docs.djangoproject.com/en/5.2/internals/release-process/\"\u003ehttps://docs.djangoproject.com/en/5.2/internals/release-process/\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/dimitrismistriotis\"\u003e\u003ccode\u003e@​dimitrismistriotis\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1859\"\u003edjango-extensions/django-extensions#1859\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/titouanc\"\u003e\u003ccode\u003e@​titouanc\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1854\"\u003edjango-extensions/django-extensions#1854\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dmwyatt\"\u003e\u003ccode\u003e@​dmwyatt\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1872\"\u003edjango-extensions/django-extensions#1872\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stianjensen\"\u003e\u003ccode\u003e@​stianjensen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1898\"\u003edjango-extensions/django-extensions#1898\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PapaZ810\"\u003e\u003ccode\u003e@​PapaZ810\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1888\"\u003edjango-extensions/django-extensions#1888\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kviktor\"\u003e\u003ccode\u003e@​kviktor\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1857\"\u003edjango-extensions/django-extensions#1857\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aripollak\"\u003e\u003ccode\u003e@​aripollak\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1913\"\u003edjango-extensions/django-extensions#1913\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/flowgunso\"\u003e\u003ccode\u003e@​flowgunso\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1914\"\u003edjango-extensions/django-extensions#1914\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anitahammer\"\u003e\u003ccode\u003e@​anitahammer\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1869\"\u003edjango-extensions/django-extensions#1869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nicolaspanel\"\u003e\u003ccode\u003e@​nicolaspanel\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1867\"\u003edjango-extensions/django-extensions#1867\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yujinyuz\"\u003e\u003ccode\u003e@​yujinyuz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1855\"\u003edjango-extensions/django-extensions#1855\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/soof-golan\"\u003e\u003ccode\u003e@​soof-golan\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1852\"\u003edjango-extensions/django-extensions#1852\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ghickman\"\u003e\u003ccode\u003e@​ghickman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1887\"\u003edjango-extensions/django-extensions#1887\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jrobichaud\"\u003e\u003ccode\u003e@​jrobichaud\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1837\"\u003edjango-extensions/django-extensions#1837\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-extensions/django-extensions/compare/3.2.3...4.0\"\u003ehttps://github.com/django-extensions/django-extensions/compare/3.2.3...4.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.2.4b1\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-extensions/django-extensions/blob/main/CHANGELOG.md\"\u003edjango-extensions's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.1\u003c/h2\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd: show_permissions command (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1920\"\u003e#1920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, style per app (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1848\"\u003e#1848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: JSONField, bulk_update's (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1924\"\u003e#1924\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.0\u003c/h2\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eImprovement: Support for Python 3.12 and 3.13\u003c/li\u003e\n\u003cli\u003eImprovement: Support for Django 5.x\u003c/li\u003e\n\u003cli\u003eImprovement: Switch from setup.{cfg,py} to pyproject.toml\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Add option to display field choices in graph_models (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1854\"\u003e#1854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Add webp support (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1857\"\u003e#1857\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Support for ordering edges on pydot/dot/graphviz (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1914\"\u003e#1914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: mail_debug, Update mail_debug command to use aiosmtpd (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1880\"\u003e#1880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: shell_plus, Improve error message for missing import (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1898\"\u003e#1898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: reset_db, Add reset_db support for django_tenants (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1855\"\u003e#1855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: docs, various improvements (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1852\"\u003e#1852\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1888\"\u003e#1888\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1882\"\u003e#1882\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1901\"\u003e#1901\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1912\"\u003e#1912\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1913\"\u003e#1913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: jobs, Handle non-package modules when looking for job definitions (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1887\"\u003e#1887\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: Add django-prometheus DB backends support (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1800\"\u003e#1800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: Call post_command when the command raises an unhandled exception (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1837\"\u003e#1837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: sqldiff, do not consider ('serial', 'integer') nor ('bigserial', 'bigint') as a \u003ccode\u003efield-type-differ\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1867\"\u003e#1867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: shell_plus, Fix start up order and add history (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1869\"\u003e#1869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove pipchecker and associated tests (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1906\"\u003e#1906\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFollowing Django's release numbering style more closely (see \u003ca href=\"https://docs.djangoproject.com/en/5.2/internals/release-process/\"\u003ehttps://docs.djangoproject.com/en/5.2/internals/release-process/\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-extensions/django-extensions/commit/ad015513e5d8e8ee6ad748fca5f32ccf3fb3d5c5\"\u003e\u003ccode\u003ead01551\u003c/code\u003e\u003c/a\u003e v4.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/2c3e914f1264c0a029b3b47b7425d0f68ce637ed\"\u003e\u003ccode\u003e2c3e914\u003c/code\u003e\u003c/a\u003e update CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/fb5b2af1b6595ee126237c299acf242fcfee817e\"\u003e\u003ccode\u003efb5b2af\u003c/code\u003e\u003c/a\u003e ruff format\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/7e978d27b031843640f9204ff495738c46233d7f\"\u003e\u003ccode\u003e7e978d2\u003c/code\u003e\u003c/a\u003e graph_models style per app (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1848\"\u003e#1848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/067064ea0c6dec7cba1583447fe5fe1c706d5351\"\u003e\u003ccode\u003e067064e\u003c/code\u003e\u003c/a\u003e avoid trying to serialize expressions when serializing default values\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/a886068502474e70a2d68ff4634a15cc3366088d\"\u003e\u003ccode\u003ea886068\u003c/code\u003e\u003c/a\u003e update CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/d824501cbc6d04a24a43ff5756b496f84093b225\"\u003e\u003ccode\u003ed824501\u003c/code\u003e\u003c/a\u003e Add show_permissions management command (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1920\"\u003e#1920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/934f93f53bdf6c6271ae1ddaee71bc9bf3364a0e\"\u003e\u003ccode\u003e934f93f\u003c/code\u003e\u003c/a\u003e bumped version number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/c4577df5b69ec1ebcbe6bc64d7a5c20362f3a8fa\"\u003e\u003ccode\u003ec4577df\u003c/code\u003e\u003c/a\u003e v4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/7cdb43ab56a3b610b47680d8a2fe86b09d5913aa\"\u003e\u003ccode\u003e7cdb43a\u003c/code\u003e\u003c/a\u003e pyproject formatting\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-extensions/django-extensions/compare/3.2.3...4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-filter` from 23.3 to 25.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/carltongibson/django-filter/blob/main/CHANGES.rst\"\u003edjango-filter's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 25.1 (2025-02-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved the in-built API schema generation methods, which have been\ndeprecated since v23.2.\u003c/p\u003e\n\u003cp\u003eYou should use \u003ccode\u003edrf-spectacular \u0026lt;https://drf-spectacular.readthedocs.io/en/latest/\u0026gt;\u003c/code\u003e_\nfor generating OpenAPI schemas with DRF.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped support for EOL Python 3.8.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded testing against Python 3.13.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded official support for Django 5.2.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 24.3 (2024-08-02)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdds official support for Django 5.1.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow using dictionaries for grouped choices on Django 5.0+.\u003c/p\u003e\n\u003cp\u003eThanks to Sævar Öfjörð Magnússon.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdds \u003ccode\u003eunknown_field_behavior\u003c/code\u003e FilterSet option to allowing warning and\nignore behaviours for unknown field types during FilterSet generation.\u003c/p\u003e\n\u003cp\u003eThanks to Loes.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 24.2 (2024-03-27)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed a regression in v23.4 where callable choices were incorrectly evaluated\nat filter instantiation, on Django versions prior to 5.0.\u003c/p\u003e\n\u003cp\u003eThanks to Craig de Stigter for the report and reproduce.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 24.1 (2024-03-08)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated supported Python and Django versions, and resolved upcoming Django\ndeprecations.\u003c/p\u003e\n\u003cp\u003eRequired versions are now at least Python 3.8 and Django 4.2.\u003c/p\u003e\n\u003cp\u003eThanks to Michael Manganiello.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllowed passing a FilterSet class to the filterset_factory().\u003c/p\u003e\n\u003cp\u003eThanks to Birger Schacht.\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/carltongibson/django-filter/commit/27dd67284405ee832701509b3515baa50c6e074d\"\u003e\u003ccode\u003e27dd672\u003c/code\u003e\u003c/a\u003e Updated Change notes for 25.1 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/2ea38174b010f378a9b57d90c566c2bab7b37bbb\"\u003e\u003ccode\u003e2ea3817\u003c/code\u003e\u003c/a\u003e Added Trove classifier for Django 5.2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/4d2306c211c1d86f85f04fb311b8b05bfefb08a8\"\u003e\u003ccode\u003e4d2306c\u003c/code\u003e\u003c/a\u003e Replaced hardcoded pks in tests (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1703\"\u003e#1703\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/fbf5a76a4d97480d78779397b90d34fa8f13d141\"\u003e\u003ccode\u003efbf5a76\u003c/code\u003e\u003c/a\u003e Update tox after Django 5.2 alpha release. (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1700\"\u003e#1700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/1e76d6859e109ae34d5e2a657c66146a9d744c80\"\u003e\u003ccode\u003e1e76d68\u003c/code\u003e\u003c/a\u003e Use QueryDict for data default. (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1691\"\u003e#1691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/e709e5d43a4ad8b8e8ea62520669b88300c9c686\"\u003e\u003ccode\u003ee709e5d\u003c/code\u003e\u003c/a\u003e Add testing against Python 3.13.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/ccde000dfe74362b62301b248681e9505133e821\"\u003e\u003ccode\u003eccde000\u003c/code\u003e\u003c/a\u003e Dropped support for EOL Python 3.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/2a644e176634ec0ce99d9446d980501e9763e194\"\u003e\u003ccode\u003e2a644e1\u003c/code\u003e\u003c/a\u003e Removed deprecated schema generation methods from DRF backend. (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1698\"\u003e#1698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/2494df96c6387a9fa411fcb00b696b15dfd9216b\"\u003e\u003ccode\u003e2494df9\u003c/code\u003e\u003c/a\u003e fix typo in filterset.txt (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1695\"\u003e#1695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/3656174bd90d20f3d916fd98b6476c270013b681\"\u003e\u003ccode\u003e3656174\u003c/code\u003e\u003c/a\u003e Translated using Weblate (Czech) (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1687\"\u003e#1687\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/carltongibson/django-filter/compare/23.3...25.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gunicorn` from 21.2.0 to 23.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\u003e23.0.0\u003c/h2\u003e\n\u003cp\u003eGunicorn 23.0.0 has been released. This version improve HTTP 1.1. support and  which improve safety\u003c/p\u003e\n\u003cp\u003eYou're invited to upgrade asap your own installation.\u003c/p\u003e\n\u003ch1\u003e23.0.0 - 2024-08-10\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eminor docs fixes (:pr:\u003ccode\u003e3217\u003c/code\u003e, :pr:\u003ccode\u003e3089\u003c/code\u003e, :pr:\u003ccode\u003e3167\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eworker_class parameter accepts a class (:pr:\u003ccode\u003e3079\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003efix deadlock if request terminated during chunked parsing (:pr:\u003ccode\u003e2688\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003epermit receiving Transfer-Encodings: compress, deflate, gzip (:pr:\u003ccode\u003e3261\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003epermit Transfer-Encoding headers specifying multiple encodings. note: no parameters, still (:pr:\u003ccode\u003e3261\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003esdist generation now explicitly excludes sphinx build folder (:pr:\u003ccode\u003e3257\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003edecode bytes-typed status (as can be passed by gevent) as utf-8 instead of raising \u003ccode\u003eTypeError\u003c/code\u003e (:pr:\u003ccode\u003e2336\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eraise correct Exception when encounting invalid chunked requests (:pr:\u003ccode\u003e3258\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ethe SCRIPT_NAME and PATH_INFO headers, when received from allowed forwarders, are no longer restricted for containing an underscore (:pr:\u003ccode\u003e3192\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003einclude IPv6 loopback address \u003ccode\u003e[::1]\u003c/code\u003e in default for :ref:\u003ccode\u003eforwarded-allow-ips\u003c/code\u003e and :ref:\u003ccode\u003eproxy-allow-ips\u003c/code\u003e (:pr:\u003ccode\u003e3192\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e** NOTE **\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SCRIPT_NAME change mitigates a regression that appeared first in the 22.0.0 release\u003c/li\u003e\n\u003cli\u003eReview your :ref:\u003ccode\u003eforwarded-allow-ips\u003c/code\u003e setting if you are still not seeing the SCRIPT_NAME transmitted\u003c/li\u003e\n\u003cli\u003eReview your :ref:\u003ccode\u003eforwarder-headers\u003c/code\u003e setting if you are missing headers after upgrading from a version prior to 22.0.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e** Breaking changes **\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003erefuse requests where the uri field is empty (:pr:\u003ccode\u003e3255\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003erefuse requests with invalid CR/LR/NUL in heade field values (:pr:\u003ccode\u003e3253\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eremove temporary \u003ccode\u003e--tolerate-dangerous-framing\u003c/code\u003e switch from 22.0 (:pr:\u003ccode\u003e3260\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eIf any of the breaking changes affect you, be aware that now refused requests can post a security problem, especially so in setups involving request pipe-lining and/or proxies.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFix CVE-2024-1135\u003c/p\u003e\n\u003ch2\u003eGunicorn 22.0 has been released\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eGunicorn 22.0.0 has been released.\u003c/strong\u003e This version fix the numerous security vulnerabilities. You're invited to upgrade asap your own installation.\u003c/p\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e22.0.0 - 2024-04-17\n===================\n\u003cul\u003e\n\u003cli\u003euse \u003ccode\u003eutime\u003c/code\u003e to notify workers liveness\u003c/li\u003e\n\u003cli\u003emigrate setup to pyproject.toml\u003c/li\u003e\n\u003cli\u003efix numerous security vulnerabilities in HTTP parser (closing some request smuggling vectors)\u003c/li\u003e\n\u003cli\u003eparsing additional requests is no longer attempted past unsupported request framing\u003c/li\u003e\n\u003cli\u003eon HTTP versions \u0026lt; 1.1 support for chunked transfer is refused (only used in exploits)\u003c/li\u003e\n\u003cli\u003erequests conflicting configured or passed SCRIPT_NAME now produce a verbose error\u003c/li\u003e\n\u003cli\u003eTrailer fields are no longer inspected for headers indicating secure scheme\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/li\u003e\n\u003c/ul\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/411986d6191114dd1d1bbb9c72c948dbf0ef0425\"\u003e\u003ccode\u003e411986d\u003c/code\u003e\u003c/a\u003e fix doc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/334392e7795f2017e83f7054d372422512d6f4b6\"\u003e\u003ccode\u003e334392e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/2559\"\u003e#2559\u003c/a\u003e from laggardkernel/bugfix/reexec-env\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/e75c3533e32f91a9dceba9e8e1341fea5540ba81\"\u003e\u003ccode\u003ee75c353\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3189\"\u003e#3189\u003c/a\u003e from pajod/patch-py36\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/9357b28dd867950e33ca3864207cb35a1eb8ba6f\"\u003e\u003ccode\u003e9357b28\u003c/code\u003e\u003c/a\u003e keep document user in access_log_format setting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/79fdef0822cbfe7e16b659b07230af9be098d5fc\"\u003e\u003ccode\u003e79fdef0\u003c/code\u003e\u003c/a\u003e bump to 23.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/3acd9fbfd1159ca3cd80a8052ada89a0bf27f806\"\u003e\u003ccode\u003e3acd9fb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/2620\"\u003e#2620\u003c/a\u003e from talkerbox/improve-access-log-format-docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/3f56d76548e4ade034bf5e174737902970285d1f\"\u003e\u003ccode\u003e3f56d76\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3192\"\u003e#3192\u003c/a\u003e from pajod/patch-allowed-script-name\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/256d474a7910bd605f2cc8c082b79c1ae55215a9\"\u003e\u003ccode\u003e256d474\u003c/code\u003e\u003c/a\u003e docs: revert duped directive\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/ffa48b581dcaa75f17fd2df263515e4266feeef6\"\u003e\u003ccode\u003effa48b5\u003c/code\u003e\u003c/a\u003e test: default change was intentional\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/52538ca9070b5e7ead5d0fa731e82a622dc6f3ee\"\u003e\u003ccode\u003e52538ca\u003c/code\u003e\u003c/a\u003e docs: recommend SCRIPT_NAME=/subfolder\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/benoitc/gunicorn/compare/21.2.0...23.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-ipware` from 2.0.0 to 3.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/un33k/python-ipware/blob/main/CHANGELOG.md\"\u003epython-ipware's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.0.0\u003c/h2\u003e\n\u003cp\u003eFix:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRelease major version, as there is a possibility of api change causing minimal backward incompatibly\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.5\u003c/h2\u003e\n\u003cp\u003eEnhance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAI assisted clean up\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.4\u003c/h2\u003e\n\u003cp\u003eEnhance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eproxy_count=0\u003c/code\u003e as an option (\u003ca href=\"https://github.com/FraKraBa\"\u003e\u003ccode\u003e@​FraKraBa\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.3\u003c/h2\u003e\n\u003cp\u003eEnhance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eHTTP_CF_CONNECTING_IP\u003c/code\u003e to list of known ip headers (Adam M.)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.2\u003c/h2\u003e\n\u003cp\u003eEnhance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded logger name\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.1\u003c/h2\u003e\n\u003cp\u003eIssue:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003eHTTP_VIA\u003c/code\u003e header support (unreliable IP information) (\u003ca href=\"https://github.com/yourcelf\"\u003e\u003ccode\u003e@​yourcelf\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eEnhance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eInclude support for python 3.12\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/un33k/python-ipware/commit/cab810ced72457abcc77ffd234be9cb0a75f7ec3\"\u003e\u003ccode\u003ecab810c\u003c/code\u003e\u003c/a\u003e version 3 major (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/21\"\u003e#21\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/5d01f1e6662f3de861d44006247fd5f0a3ae4a0b\"\u003e\u003ccode\u003e5d01f1e\u003c/code\u003e\u003c/a\u003e Feat/enhance (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/20\"\u003e#20\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/bd56bcd1d4ed2d2bbd690059e5a231d6b51bcd31\"\u003e\u003ccode\u003ebd56bcd\u003c/code\u003e\u003c/a\u003e Allow for proxy_count of exact 0 (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/19\"\u003e#19\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/ddfde3c6d4dee387a59287a2c0afc933f9773791\"\u003e\u003ccode\u003eddfde3c\u003c/code\u003e\u003c/a\u003e Update Readme (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/17\"\u003e#17\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/aab321baf9958ae128460c2279364926f6612dca\"\u003e\u003ccode\u003eaab321b\u003c/code\u003e\u003c/a\u003e Add HTTP_CF_CONNECTING_IP to ip Header list (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/16\"\u003e#16\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/e908cc321dc61e203033768f8d1072efc71f4556\"\u003e\u003ccode\u003ee908cc3\u003c/code\u003e\u003c/a\u003e Added logger name (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/15\"\u003e#15\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/ad1f01783279ecd8dfff91b3db8558f92b5bde0b\"\u003e\u003ccode\u003ead1f017\u003c/code\u003e\u003c/a\u003e Remove HTTP_VIA support, support for 3.12 (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/14\"\u003e#14\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/un33k/python-ipware/compare/v2.0.0...v3.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `redis` from 4.6.0 to 6.4.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\u003e6.4.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e🚀 New Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded epsilon property to the vsim command (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3723\"\u003e#3723\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdating the latest Redis image for github pipeline testing (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3726\"\u003e#3726\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\n\u003ca href=\"https://github.com/htemelski-redis\"\u003e\u003ccode\u003e@​htemelski-redis\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/elena-kolevska\"\u003e\u003ccode\u003e@​elena-kolevska\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/petyaslavova\"\u003e\u003ccode\u003e@​petyaslavova\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/vladvildanov\"\u003e\u003ccode\u003e@​vladvildanov\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e6.3.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e🚀 New Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for new BITOP operations: DIFF, DIFF1, ANDOR, ONE (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3690\"\u003e#3690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport new VAMANA vector index type (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3702\"\u003e#3702\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd new stream commands (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3711\"\u003e#3711\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd async Retry \u003cstrong\u003eeq\u003c/strong\u003e and \u003cstrong\u003ehash\u003c/strong\u003e \u0026amp; fix ExponentialWithJitterBackoff \u003cstrong\u003eeq\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3668\"\u003e#3668\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixing sentinel command execution to allow returning of actual responses when meaningful - behaviour controlled by 'return_responses' argument. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3191\"\u003e#3191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAnnotate deprecated_args decorator to preserve wrapped function type signature (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3701\"\u003e#3701\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix ConnectionPool to raise MaxConnectionsError instead of Connection… (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3698\"\u003e#3698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd async Retry \u003cstrong\u003eeq\u003c/strong\u003e and \u003cstrong\u003ehash\u003c/strong\u003e \u0026amp; fix ExponentialWithJitterBackoff \u003cstrong\u003eeq\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3668\"\u003e#3668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSentinelManagedConnection searches for new master upon connection failure (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3560\"\u003e#3560\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3601\"\u003e#3601\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: avoid instantiating a connection on \u003cem\u003erepr\u003c/em\u003e_ (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3653\"\u003e#3653\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixing the return type hint for the transaction method in the standalone client. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3660\"\u003e#3660\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump rojopolis/spellcheck-github-actions from 0.48.0 to 0.49.0 (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3665\"\u003e#3665\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDropping integration tests with Redis 6.2 from pipeline actions. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3659\"\u003e#3659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove deprecated arg from call to ClusterPipeline (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3670\"\u003e#3670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTransactionStrategy reset: UNWATCH only when status is watching (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3671\"\u003e#3671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eKeyT for set operations (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3190\"\u003e#3190\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoving references to old docs site '\u003ca href=\"https://redis-py.readthedocs.io/\"\u003ehttps://redis-py.readthedocs.io/\u003c/a\u003e' replaced by '\u003ca href=\"https://redis.readthedocs.io/\"\u003ehttps://redis.readthedocs.io/\u003c/a\u003e' (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3674\"\u003e#3674\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoving unnecessary check for tests using AsyncMock (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3432\"\u003e#3432\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdating test images for github pipeline execution (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3678\"\u003e#3678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdating the latest Redis image for pipeline testing (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3695\"\u003e#3695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump rojopolis/spellcheck-github-actions from 0.49.0 to 0.51.0 (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3689\"\u003e#3689\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDOC-5225 testable probabilistic dt examples (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3691\"\u003e#3691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate README.md (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3699\"\u003e#3699\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eConvert the value to int type only if it exists in CLIENT INFO (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3688\"\u003e#3688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix compatibility with latest pytest-asyncio version(1.1.0) (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3708\"\u003e#3708\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDOC-5424 time series examples (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3705\"\u003e#3705\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdding information in connection pool class doc string for available SSLConnection class, that can be used for SSL connections (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3710\"\u003e#3710\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/redis/redis-py/commit/fff669daaf43ae8092ea8ab7a2a3196a9b1b7e41\"\u003e\u003ccode\u003efff669d\u003c/code\u003e\u003c/a\u003e Updated package version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/43ce2a4025c020bd26e401371c16ca4920b470a5\"\u003e\u003ccode\u003e43ce2a4\u003c/code\u003e\u003c/a\u003e Updating the latest Redis image for github pipeline testing (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3726\"\u003e#3726\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/64426cbdd43153b70b0e29d9d7b3ab2c63760359\"\u003e\u003ccode\u003e64426cb\u003c/code\u003e\u003c/a\u003e Added epsilon property to the vsim command (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3723\"\u003e#3723\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/67ab74d705b4c1d00d600c500596af7a68abfd56\"\u003e\u003ccode\u003e67ab74d\u003c/code\u003e\u003c/a\u003e Add new stream commands (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3711\"\u003e#3711\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/4c9512b1fe592dc9becebe9e5f053b0184b47f2c\"\u003e\u003ccode\u003e4c9512b\u003c/code\u003e\u003c/a\u003e Adding information in connection pool class doc string for available SSLConne...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/31399ed43588840bbbfdbbf0e8260d1b989b49ce\"\u003e\u003ccode\u003e31399ed\u003c/code\u003e\u003c/a\u003e SentinelManagedConnection searches for new master upon connection failure (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3\"\u003e#3\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/7291deb5eb8054a0dc915a8bf499a17498bc5968\"\u003e\u003ccode\u003e7291deb\u003c/code\u003e\u003c/a\u003e add async Retry \u003ccode\u003e__eq__\u003c/code\u003e and \u003ccode\u003e__hash__\u003c/code\u003e \u0026amp; fix ExponentialWithJitterBackof...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/4cf094fdd2c1f2ce335e671af3fad7ad0a48f309\"\u003e\u003ccode\u003e4cf094f\u003c/code\u003e\u003c/a\u003e Fix ConnectionPool to raise MaxConnectionsError instead of Connection… (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3698\"\u003e#3698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/a00141618572764821bbe6bd74e025536e061587\"\u003e\u003ccode\u003ea001416\u003c/code\u003e\u003c/a\u003e DOC-5424 time series examples (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3705\"\u003e#3705\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/2b1ff5363715c8ba0043314a8b4bcbbc1ba741f5\"\u003e\u003ccode\u003e2b1ff53\u003c/code\u003e\u003c/a\u003e Fix compatibility with latest pytest-asyncio version(1.1.0) (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3708\"\u003e#3708\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/redis/redis-py/compare/v4.6.0...v6.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ocrmypdf` from 14.4.0 to 15.4.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/blob/main/docs/release_notes.md\"\u003eocrmypdf's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev15.4.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed documentation for installing Ghostscript on Windows. {issue}\u003ccode\u003e1198\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdded warning message about security issue in older versions of Ghostscript.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev15.4.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed deprecation warning in pikepdf older than 8.7.1; pikepdf \u0026gt;= 8.7.1 is\nnow required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev15.4.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWe now raise an exception on a certain class of PDFs that likely need an\nexplicit color conversion strategy selected to display correctly\nfor PDF/A conversion.\u003c/li\u003e\n\u003cli\u003eFixed an error that occurred while trying to write a log message after the\ndebug log handler was removed.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev15.4.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed misc/watcher.py regressions: accept \u003ccode\u003e--ocr-json-settings\u003c/code\u003e as either\nfilename or JSON string, as previously; and argument count mismatch.\n{issue}\u003ccode\u003e1183,1185\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eWe no longer attempt to set /ProcSet in the PDF output, since this is an\nobsolete PDF feature.\u003c/li\u003e\n\u003cli\u003eDocumentation improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev15.4.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded new experimental APIs to support offline editing of the final text.\nSpecifically, one can now generate hOCR files with OCRmyPDF, edit them with\nsome other tool, and then finalize the PDF. They are experimental and\nsubject to change, including details of how the working folder is used.\nThere is no command line interface.\u003c/li\u003e\n\u003cli\u003eCode reorganization: executors, progress bars, initialization and setup.\u003c/li\u003e\n\u003cli\u003eFixed test coverage in cases where the coverage tool did not properly trace\ninto threads or subprocesses. This code was still being tested but appeared\nas not covered.\u003c/li\u003e\n\u003cli\u003eIn the test suite, reduced use of subprocesses and other techniques that\ninterfere with coverage measurement.\u003c/li\u003e\n\u003cli\u003eImproved error check for when we appear to be running inside a snap container\nand files are not available.\u003c/li\u003e\n\u003cli\u003ePlugin specification now properly defines progress bars as a protocol rather\nthan defining them as \u0026quot;tqdm-like\u0026quot;.\u003c/li\u003e\n\u003cli\u003eWe now default to using \u0026quot;forkserver\u0026quot; process creation on POSIX platforms\nrather than fork, since this is method is more robust and avoids some\nissues when threads are present.\u003c/li\u003e\n\u003cli\u003eFixed an instance where the user's request to \u003ccode\u003e--no-use-threads\u003c/code\u003e was ignored.\u003c/li\u003e\n\u003cli\u003eIf a PDF does not have language metadata on its top level object, we add\nthe OCR language.\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/ocrmypdf/OCRmyPDF/commit/c90d5cd84b0e27906310c28f0d78c3ded9106d65\"\u003e\u003ccode\u003ec90d5cd\u003c/code\u003e\u003c/a\u003e Fix Ghostscript installation instructions and add warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/9898904be70bf957154cc66cb5d6f57bac7c26b4\"\u003e\u003ccode\u003e9898904\u003c/code\u003e\u003c/a\u003e Fix pikepdf PdfMatrix deprecation warning; v15.4.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/27d52298420e785300e418bef4e4219ef97720e1\"\u003e\u003ccode\u003e27d5229\u003c/code\u003e\u003c/a\u003e Make logger names unique\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/4a9a575ef0f2cd7459538a43e802c8d8b3846168\"\u003e\u003ccode\u003e4a9a575\u003c/code\u003e\u003c/a\u003e ghostscript: better comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/52fd9a630d57ac7af91db423b17e6b0297fc1c66\"\u003e\u003ccode\u003e52fd9a6\u003c/code\u003e\u003c/a\u003e v15.4.2 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/a596ccf84469c81c6d19ab0eb59f53a5df0bc3c7\"\u003e\u003ccode\u003ea596ccf\u003c/code\u003e\u003c/a\u003e Raise exception if resulting PDF might appear blank in a known in some PDF vi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/e7fa97731f507c1d91e4289b9d5f3344533d7c4c\"\u003e\u003ccode\u003ee7fa977\u003c/code\u003e\u003c/a\u003e ghostscript duplicate filter: filter within a window of previous messages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/290aa2810868fb506a0ded2db8dabb580d5a2459\"\u003e\u003ccode\u003e290aa28\u003c/code\u003e\u003c/a\u003e Fix error on attempt to write to debug log after removing debug log handler\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/a95640ed9ec0a5caa360bd64b9ad6cc9f916fa61\"\u003e\u003ccode\u003ea95640e\u003c/code\u003e\u003c/a\u003e v15.4.1 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/f69267bb675c3261121b70451f6e673f433bc7ad\"\u003e\u003ccode\u003ef69267b\u003c/code\u003e\u003c/a\u003e watcher: restore ability to read json from file or command line string\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/compare/v14.4.0...v15.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-multiselectfield` from 0.1.12 to 1.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/goinnn/django-multiselectfield/releases\"\u003edjango-multiselectfield's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBadge image worked on GitHub but was broken on PyPI — fixed it.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.0\u003c/h2\u003e\n\u003cp\u003eThis release introduces multiple changes that are incompatible with previous versions.\u003c/p\u003e\n\u003cp\u003eThe major version number has been incremented following \u003ccode\u003eSemantic Versioning (SemVer) \u0026lt;https://semver.org/\u0026gt;\u003c/code\u003e_, as several components of the package have changed in ways that may require updates in client code.\u003c/p\u003e\n\u003cp\u003eThe internal codebase has been significantly cleaned up and reorganized, making it more maintainable and consistent.\u003c/p\u003e\n\u003cp\u003eThis version contains \u003cstrong\u003e40% fewer lines of code\u003c/strong\u003e compared to the previous release.\u003c/p\u003e\n\u003cp\u003eLess code means fewer bugs, easier maintenance, and better long-term sustainability.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFList (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\"\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2\u003c/a\u003e):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/50d3f785883e0a314f2dc89950e3fe1e88a7ede6\"\u003e50d3f785883e0a314f2dc89950e3fe1e88a7ede6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIt was created to support MultiSelectFields in admin.list_display, but it never actually worked. If you add a multiselect field to list_display, Django does not call to \u003cstrong\u003estr\u003c/strong\u003e method of MSGList (renamed to MSFList)\u003c/li\u003e\n\u003cli\u003eIt was created for integer choices too and it is a misconception. This is explained in the README file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFFlatchoices (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\"\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2\u003c/a\u003e):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/5638247c1d70670d4f81adf35143ef17a7d7575e\"\u003e5638247c1d70670d4f81adf35143ef17a7d7575e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIn list_display, labels for the choices are now shown (comma-separated) instead of the values of the choices (comma-separated).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn to_python method, value is a list or a string. (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/c4579138dda2833cbce26afbf57da5353aa45690\"\u003ec4579138dda2833cbce26afbf57da5353aa45690\u003c/a\u003e)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove set case and dict case\u003c/li\u003e\n\u003cli\u003eIf this breaks something, please create a test to help understand the use case.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoving integer choices:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIt was a mistake. MultiSelectField inherits of CharField, not IntegerField.\u003c/li\u003e\n\u003cli\u003eIt is impossible knows if original choice is (1, 'Item title 2.1') or ('1', 'Item title 2.1')\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: Form instance generated twice since Django  (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/168\"\u003e#168\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix CSS admin:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/173\"\u003e#173\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/7711f4aa755c81d00f07ce8a6ff0fd9240061f9c\"\u003e7711f4aa755c81d00f07ce8a6ff0fd9240061f9c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix Properly Display Categorized Choices in get_FOO_display (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/169\"\u003e#169\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSortMultiSelectField: (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/172\"\u003e#172\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/goinnn/django-multiselectfield/blob/master/CHANGES.rst\"\u003edjango-multiselectfield's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.0.1 (2025-06-12)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBadge image worked on GitHub but was broken on PyPI — fixed it.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.0.0 (2025-06-12)\u003c/h2\u003e\n\u003cp\u003eThis release introduces multiple changes that are incompatible with previous versions.\u003c/p\u003e\n\u003cp\u003eThe major version number has been incremented following \u003ccode\u003eSemantic Versioning (SemVer) \u0026lt;https://semver.org/\u0026gt;\u003c/code\u003e_, as several components of the package have changed in ways that may require updates in client code.\u003c/p\u003e\n\u003cp\u003eThe internal codebase has been significantly cleaned up and reorganized, making it more maintainable and consistent.\u003c/p\u003e\n\u003cp\u003eThis version contains \u003cstrong\u003e40% fewer lines of code\u003c/strong\u003e compared to the previous release.\u003c/p\u003e\n\u003cp\u003eLess code means fewer bugs, easier maintenance, and better long-term sustainability.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFList (\u003ccode\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\u0026gt;\u003c/code\u003e_):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ccode\u003e50d3f785883e0a314f2dc89950e3fe1e88a7ede6 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/50d3f785883e0a314f2dc89950e3fe1e88a7ede6\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eIt was created to support MultiSelectFields in admin.list_display, but it never actually worked. If you add a multiselect field to list_display, Django does not call to \u003cstrong\u003estr\u003c/strong\u003e method of MSGList (renamed to MSFList)\u003c/li\u003e\n\u003cli\u003eIt was created for integer choices too and it is a misconception. This is explained in the README file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFFlatchoices (\u003ccode\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\u0026gt;\u003c/code\u003e_):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ccode\u003e5638247c1d70670d4f81adf35143ef17a7d7575e \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/5638247c1d70670d4f81adf35143ef17a7d7575e\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eIn list_display, labels for the choices are now shown (comma-separated) instead of the values of the choices (comma-separated).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn to_python method, value is a list or a string. (\u003ccode\u003ec4579138dda2833cbce26afbf57da5353aa45690 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/c4579138dda2833cbce26afbf57da5353aa45690\u0026gt;\u003c/code\u003e_)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove set case and dict case\u003c/li\u003e\n\u003cli\u003eIf this breaks something, please create a test to help understand the use case.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoving integer choices:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIt was a mistake. MultiSelectField inherits of CharField, not IntegerField.\u003c/li\u003e\n\u003cli\u003eIt is impossible knows if original choice is (1, 'Item title 2.1') or ('1', 'Item title 2.1')\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: Form instance generated twice since Django  (\u003ccode\u003e[#168](https://github.com/goinnn/django-multiselectfield/issues/168) \u0026lt;https://github.com/goinnn/django-multiselectfield/pull/168\u0026gt;\u003c/code\u003e_)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix CSS admin:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ccode\u003e[#173](https://github.com/goinnn/django-multiselectfield/issues/173) \u0026lt;https://github.com/goinnn/django-multiselectfield/pull/173\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003e(\u003ccode\u003e7711f4aa755c81d00f07ce8a6ff0fd9240061f9c \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/7711f4aa755c81d00f07ce8a6ff0fd9240061f9c\u0026gt;\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/goinnn/django-multiselectfield/commit/679bac60a5156b26c608972a1b4a576b7010e6c2\"\u003e\u003ccode\u003e679bac6\u003c/code\u003e\u003c/a\u003e Ready to new release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/bef25142b5f266164185ec3de4abdfcf91c3e89d\"\u003e\u003ccode\u003ebef2514\u003c/code\u003e\u003c/a\u003e Ready to new release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/9a564a35581f89c35279ebfa20a2d693b3d23d73\"\u003e\u003ccode\u003e9a564a3\u003c/code\u003e\u003c/a\u003e Add image from github (pypi broken)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/f2b3186c1da7f50abf68b8e11e1d54c2683e2b34\"\u003e\u003ccode\u003ef2b3186\u003c/code\u003e\u003c/a\u003e Fix typo error\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/72894698f191aeddd5364977365c6c2c88a5ac53\"\u003e\u003ccode\u003e7289469\u003c/code\u003e\u003c/a\u003e Fix another pypi error\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/f17a82819157736ff0378f57c8bb114060f4f803\"\u003e\u003ccode\u003ef17a828\u003c/code\u003e\u003c/a\u003e Improve readme file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/d9e2b979f5f37fea812b39a90247e1afd5314415\"\u003e\u003ccode\u003ed9e2b97\u003c/code\u003e\u003c/a\u003e Fix error uploading to pypi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/a387bc619d95a1e61da4ad7e7b0d319429322243\"\u003e\u003ccode\u003ea387bc6\u003c/code\u003e\u003c/a\u003e Ready to new release. The major version number has been incremented because t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/4fc13699678de3bdbe6c7299c6fdbfb901ca08f6\"\u003e\u003ccode\u003e4fc1369\u003c/code\u003e\u003c/a\u003e If the choices are Proxy str (i18n) patched_display_for_field gets an error\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/8bafbdbd9db515206b1fef6ec7263d9b485c2c31\"\u003e\u003ccode\u003e8bafbdb\u003c/code\u003e\u003c/a\u003e Add static files to package\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/goinnn/django-multiselectfield/compare/v0.1.12...v1.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-auditlog` from 2.3.0 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/jazzband/django-auditlog/releases\"\u003edjango-auditlog's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.3.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUse canonical timezone name for Buenos Aires by \u003ca href=\"https://github.com/EdwardBetts\"\u003e\u003ccode\u003e@​EdwardBetts\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/736\"\u003ejazzband/django-auditlog#736\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded fixes for changes_display_dict when AUDITLOG_STORE_JSON_CHANGES is True by \u003ca href=\"https://github.com/The-Alchemist\"\u003e\u003ccode\u003e@​The-Alchemist\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/738\"\u003ejazzband/django-auditlog#738\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd audit log history view to Django Admin by \u003ca href=\"https://github.com/2ykwang\"\u003e\u003ccode\u003e@​2ykwang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/743\"\u003ejazzband/django-auditlog#743\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExtend CI and local test coverage to MySQL and SQLite by \u003ca href=\"https://github.com/2ykwang\"\u003e\u003ccode\u003e@​2ykwang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/744\"\u003ejazzband/django-auditlog#744\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 4 to 5 in the github-actions group 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/jazzband/django-auditlog/pull/752\"\u003ejazzband/django-auditlog#752\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/jazzband/django-auditlog/pull/753\"\u003ejazzband/django-auditlog#753\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/setup-python from 5 to 6 in the github-actions group 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/jazzband/django-auditlog/pull/754\"\u003ejazzband/django-auditlog#754\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Expression test compatibility for Django 6.0+ by \u003ca href=\"https://github.com/2ykwang\"\u003e\u003ccode\u003e@​2ykwang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/759\"\u003ejazzband/django-auditlog#759\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd I18N Support by \u003ca href=\"https://github.com/2ykwang\"\u003e\u003ccode\u003e@​2ykwang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/762\"\u003ejazzband/django-auditlog#762\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix None type mismatch in change detection by \u003ca href=\"https://github.com/2ykwang\"\u003e\u003ccode\u003e@​2ykwang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/763\"\u003ejazzband/django-auditlog#763\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare release 3.3.0 by \u003ca href=\"https://github.com/2ykwang\"\u003e\u003ccode\u003e@​2ykwang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/756\"\u003ejazzband/django-auditlog#756\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/EdwardBetts\"\u003e\u003ccode\u003e@​EdwardBetts\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/736\"\u003ejazzband/django-auditlog#736\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jazzband/django-auditlog/compare/v3.2.1...v3.3.0\"\u003ehttps://github.com/jazzband/django-auditlog/compare/v3.2.1...v3.3.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev3.2.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Django 5.2 by \u003ca href=\"https://github.com/mahdirahimi1999\"\u003e\u003ccode\u003e@​mahdirahimi1999\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/730\"\u003ejazzband/django-auditlog#730\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded fixes for updates and deletes if AUDITLOG_STORE_JSON_CHANGES is True by \u003ca href=\"https://github.com/The-Alchemist\"\u003e\u003ccode\u003e@​The-Alchemist\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/732\"\u003ejazzband/django-auditlog#732\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare release 3.2.1 by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/733\"\u003ejazzband/django-auditlog#733\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/mahdirahimi1999\"\u003e\u003ccode\u003e@​mahdirahimi1999\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/730\"\u003ejazzband/django-auditlog#730\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jazzband/django-auditlog/compare/v3.2.0...v3.2.1\"\u003ehttps://github.com/jazzband/django-auditlog/compare/v3.2.0...v3.2.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev3.2.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eimprove actor_email assignment by \u003ca href=\"https://github.com/GreatBahram\"\u003e\u003ccode\u003e@​GreatBahram\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/720\"\u003ejazzband/django-auditlog#720\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003enew setting: STORE_JSON_CHANGES that intelligently store JSON by \u003ca href=\"https://github.com/The-Alchemist\"\u003e\u003ccode\u003e@​The-Alchemist\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/719\"\u003ejazzband/django-auditlog#719\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eget_field_value\u003c/code\u003e field default value handling for Django 6.0 compatibility by \u003ca href=\"https://github.com/2ykwang\"\u003e\u003ccode\u003e@​2ykwang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/726\"\u003ejazzband/django-auditlog#726\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for custom masking functions by \u003ca href=\"https://github.com/2ykwang\"\u003e\u003ccode\u003e@​2ykwang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/725\"\u003ejazzband/django-auditlog#725\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate pre-commit repos by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/728\"\u003ejazzband/django-auditlog#728\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare release 3.2.0 by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/729\"\u003ejazzband/django-auditlog#729\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/The-Alchemist\"\u003e\u003ccode\u003e@​The-Alchemist\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/719\"\u003ejazzband/django-auditlog#719\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog...\n\n_Description has been truncated_","html_url":"https://github.com/dsp-testing/paperless-ngx/pull/187","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/dsp-testing%2Fpaperless-ngx/issues/187","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/187/packages"}},{"old_version":"12.0","new_version":"16.0.1","update_type":null,"path":null,"pr_created_at":"2025-11-17T16:01:58.000Z","version_change":"12.0 → 16.0.1","issue":{"uuid":"3633961058","node_id":"PR_kwDOKoYLLM6z47eA","number":183,"state":"open","title":"Bump the major-versions group across 1 directory with 17 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-11-17T16:01:58.000Z","updated_at":"2025-11-17T16:02:00.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"major-versions","update_count":17,"packages":[{"name":"django","old_version":"4.2.6","new_version":"4.2.26"},{"name":"django-guardian","old_version":"2.4.0","new_version":"3.2.0","repository_url":"https://github.com/django-guardian/django-guardian"},{"name":"django-extensions","old_version":"3.2.3","new_version":"4.1","repository_url":"https://github.com/django-extensions/django-extensions"},{"name":"django-filter","old_version":"23.3","new_version":"25.1","repository_url":"https://github.com/carltongibson/django-filter"},{"name":"gunicorn","old_version":"21.2.0","new_version":"23.0.0","repository_url":"https://github.com/benoitc/gunicorn"},{"name":"python-ipware","old_version":"2.0.0","new_version":"3.0.0","repository_url":"https://github.com/un33k/python-ipware"},{"name":"redis","old_version":"4.6.0","new_version":"5.2.1","repository_url":"https://github.com/redis/redis-py"},{"name":"watchdog","old_version":"3.0.0","new_version":"6.0.0","repository_url":"https://github.com/gorakhargosh/watchdog"},{"name":"ocrmypdf","old_version":"14.4.0","new_version":"15.4.4","repository_url":"https://github.com/ocrmypdf/OCRmyPDF"},{"name":"django-multiselectfield","old_version":"0.1.12","new_version":"1.0.1","repository_url":"https://github.com/goinnn/django-multiselectfield"},{"name":"django-auditlog","old_version":"2.3.0","new_version":"3.3.0","repository_url":"https://github.com/jazzband/django-auditlog"},{"name":"black","old_version":"23.9.1","new_version":"25.11.0","repository_url":"https://github.com/psf/black"},{"name":"pre-commit","old_version":"3.4.0","new_version":"4.3.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pytest","old_version":"7.4.2","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-cov","old_version":"4.1.0","new_version":"7.0.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"pytest-sugar","old_version":"0.9.7","new_version":"1.1.1","repository_url":"https://github.com/Teemu/pytest-sugar"},{"name":"pytest-rerunfailures","old_version":"12.0","new_version":"16.0.1","repository_url":"https://github.com/pytest-dev/pytest-rerunfailures"}],"path":null,"ecosystem":"conda"},"body":"Bumps the major-versions group with 17 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| django | `4.2.6` | `4.2.26` |\n| [django-guardian](https://github.com/django-guardian/django-guardian) | `2.4.0` | `3.2.0` |\n| [django-extensions](https://github.com/django-extensions/django-extensions) | `3.2.3` | `4.1` |\n| [django-filter](https://github.com/carltongibson/django-filter) | `23.3` | `25.1` |\n| [gunicorn](https://github.com/benoitc/gunicorn) | `21.2.0` | `23.0.0` |\n| [python-ipware](https://github.com/un33k/python-ipware) | `2.0.0` | `3.0.0` |\n| [redis](https://github.com/redis/redis-py) | `4.6.0` | `5.2.1` |\n| [watchdog](https://github.com/gorakhargosh/watchdog) | `3.0.0` | `6.0.0` |\n| [ocrmypdf](https://github.com/ocrmypdf/OCRmyPDF) | `14.4.0` | `15.4.4` |\n| [django-multiselectfield](https://github.com/goinnn/django-multiselectfield) | `0.1.12` | `1.0.1` |\n| [django-auditlog](https://github.com/jazzband/django-auditlog) | `2.3.0` | `3.3.0` |\n| [black](https://github.com/psf/black) | `23.9.1` | `25.11.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `3.4.0` | `4.3.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `7.4.2` | `8.4.2` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `4.1.0` | `7.0.0` |\n| [pytest-sugar](https://github.com/Teemu/pytest-sugar) | `0.9.7` | `1.1.1` |\n| [pytest-rerunfailures](https://github.com/pytest-dev/pytest-rerunfailures) | `12.0` | `16.0.1` |\n\n\nUpdates `django` from 4.2.6 to 4.2.26\n\nUpdates `django-guardian` from 2.4.0 to 3.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-guardian/django-guardian/releases\"\u003edjango-guardian's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.2.0 The Bozkir progression\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate enforcement contact link in CODE_OF_CONDUCT.md by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/918\"\u003edjango-guardian/django-guardian#918\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptional cached anonymous user  - Pr 907 by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/912\"\u003edjango-guardian/django-guardian#912\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003egenerator warnings and logics are added for security purposes by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/920\"\u003edjango-guardian/django-guardian#920\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erollback compatible create anon user fix is developed by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/919\"\u003edjango-guardian/django-guardian#919\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e644 using inlines in django admin with guardian by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/921\"\u003edjango-guardian/django-guardian#921\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-guardian/django-guardian/compare/3.1.3...3.2.0\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.3...3.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.1.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edjango-packages badge is added by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/910\"\u003edjango-guardian/django-guardian#910\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate issue templates by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/909\"\u003edjango-guardian/django-guardian#909\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMakefile support by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/906\"\u003edjango-guardian/django-guardian#906\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePR merging scenario is fixed by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/913\"\u003edjango-guardian/django-guardian#913\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed issue causing prefetch_perms() to throw when passed an empty list by \u003ca href=\"https://github.com/keattang\"\u003e\u003ccode\u003e@​keattang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/904\"\u003edjango-guardian/django-guardian#904\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRe apply \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/812\"\u003e#812\u003c/a\u003e using correct lookup method by \u003ca href=\"https://github.com/sevdog\"\u003e\u003ccode\u003e@​sevdog\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/842\"\u003edjango-guardian/django-guardian#842\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOPS: Bump version for release by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/915\"\u003edjango-guardian/django-guardian#915\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-guardian/django-guardian/compare/3.1.2...3.1.3\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.2...3.1.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.1.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.0 in /.github/workflows 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-guardian/django-guardian/pull/903\"\u003edjango-guardian/django-guardian#903\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix type and deprecate old name by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/902\"\u003edjango-guardian/django-guardian#902\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/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/903\"\u003edjango-guardian/django-guardian#903\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-guardian/django-guardian/compare/3.1.1...3.1.2\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.1...3.1.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epre-commit checker step is added by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/901\"\u003edjango-guardian/django-guardian#901\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-guardian/django-guardian/compare/3.1.0...3.1.1\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.0...3.1.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eImproved indexing, tweaks and bugfixes\u003c/h2\u003e\n\u003ch2\u003eSaving the 🌳🌳🌳 and the 💰💰💰\u003c/h2\u003e\n\u003cp\u003e⚠️⚠️⚠️ \u003cstrong\u003eWARNING:\u003c/strong\u003e This release contains an update to database indexing which should yield \u003cstrong\u003econsiderable additional performance\u003c/strong\u003e, especially on large table permissions lookups (thanks \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e for such rigorous performance testing!!!). Following the migration that introduces these indexes, databases should reindex automatically in the background (typically within 0-30s even for large tables): this is unlikely to be noticeable but users may experience a short lived performance hit during this period.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow ignore_conflicts on bulk create by \u003ca href=\"https://github.com/pgiki\"\u003e\u003ccode\u003e@​pgiki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/814\"\u003edjango-guardian/django-guardian#814\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/django-guardian/django-guardian/commit/4120d00c28c1b6d3bacb988f6db86bacf91ed0f1\"\u003e\u003ccode\u003e4120d00\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/921\"\u003e#921\u003c/a\u003e from django-guardian/644-using-inlines-in-django-admi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/c896b220bdf96783f1c25d730f12ebef95758c99\"\u003e\u003ccode\u003ec896b22\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/919\"\u003e#919\u003c/a\u003e from django-guardian/770-migration-rollback-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/3814e2383c69266350a3d885d445bdd79da8cb78\"\u003e\u003ccode\u003e3814e23\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 770-migration-rollback-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/94854899f4a030b42840837e08b42923a71c5b78\"\u003e\u003ccode\u003e9485489\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/920\"\u003e#920\u003c/a\u003e from django-guardian/666-permissionrequiredmixin-does...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/e01e2e1edeec60b2c79d561db56e0949ea3c4dad\"\u003e\u003ccode\u003ee01e2e1\u003c/code\u003e\u003c/a\u003e check only username field fixing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/e1ae3c5a7ab74a679ef1ccff2a480a88117df464\"\u003e\u003ccode\u003ee1ae3c5\u003c/code\u003e\u003c/a\u003e show warning instead of error for backward compatibility and giving time the ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/63c10f549dfe2b5ba67e9eec36095cf3e6a2bab8\"\u003e\u003ccode\u003e63c10f5\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 644-using-inlines-in-django-admin-with-guardian\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/b27ebbdcc7f9952d9d9aaaa879b5e202063ccaa8\"\u003e\u003ccode\u003eb27ebbd\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 666-permissionrequiredmixin-does-not-warn-against-us...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/d7ed4a3bccb730d3cdf16fdc404f25b94674c653\"\u003e\u003ccode\u003ed7ed4a3\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 770-migration-rollback-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/03fed6924e06fd13991d9e8ae1b4590addf5473e\"\u003e\u003ccode\u003e03fed69\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/912\"\u003e#912\u003c/a\u003e from django-guardian/pr-907\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-guardian/django-guardian/compare/v2.4.0...3.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-extensions` from 3.2.3 to 4.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-extensions/django-extensions/releases\"\u003edjango-extensions's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd: show_permissions command (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1920\"\u003e#1920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, style per app (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1848\"\u003e#1848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: JSONField, bulk_update's (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1924\"\u003e#1924\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/ahmad88me\"\u003e\u003ccode\u003e@​ahmad88me\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1848\"\u003edjango-extensions/django-extensions#1848\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-extensions/django-extensions/compare/4.0...4.1\"\u003ehttps://github.com/django-extensions/django-extensions/compare/4.0...4.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprovement: Support for Python 3.12 and 3.13\u003c/li\u003e\n\u003cli\u003eImprovement: Support for Django 5.x\u003c/li\u003e\n\u003cli\u003eImprovement: Switch from setup.{cfg,py} to pyproject.toml\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Add option to display field choices in graph_models (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1854\"\u003e#1854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Add webp support (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1857\"\u003e#1857\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Support for ordering edges on pydot/dot/graphviz (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1914\"\u003e#1914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: mail_debug, Update mail_debug command to use aiosmtpd (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1880\"\u003e#1880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: shell_plus, Improve error message for missing import (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1898\"\u003e#1898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: reset_db, Add reset_db support for django_tenants (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1855\"\u003e#1855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: docs, various improvements (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1852\"\u003e#1852\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1888\"\u003e#1888\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1882\"\u003e#1882\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1901\"\u003e#1901\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1912\"\u003e#1912\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1913\"\u003e#1913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: jobs, Handle non-package modules when looking for job definitions (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1887\"\u003e#1887\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: Add django-prometheus DB backends support (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1800\"\u003e#1800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: Call post_command when the command raises an unhandled exception (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1837\"\u003e#1837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: sqldiff, do not consider ('serial', 'integer') nor ('bigserial', 'bigint') as a field-type-differ (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1867\"\u003e#1867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: shell_plus, Fix start up order and add history (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1869\"\u003e#1869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove pipchecker and associated tests (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1906\"\u003e#1906\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFollowing Django's release numbering style more closely (see \u003ca href=\"https://docs.djangoproject.com/en/5.2/internals/release-process/\"\u003ehttps://docs.djangoproject.com/en/5.2/internals/release-process/\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/dimitrismistriotis\"\u003e\u003ccode\u003e@​dimitrismistriotis\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1859\"\u003edjango-extensions/django-extensions#1859\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/titouanc\"\u003e\u003ccode\u003e@​titouanc\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1854\"\u003edjango-extensions/django-extensions#1854\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dmwyatt\"\u003e\u003ccode\u003e@​dmwyatt\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1872\"\u003edjango-extensions/django-extensions#1872\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stianjensen\"\u003e\u003ccode\u003e@​stianjensen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1898\"\u003edjango-extensions/django-extensions#1898\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PapaZ810\"\u003e\u003ccode\u003e@​PapaZ810\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1888\"\u003edjango-extensions/django-extensions#1888\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kviktor\"\u003e\u003ccode\u003e@​kviktor\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1857\"\u003edjango-extensions/django-extensions#1857\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aripollak\"\u003e\u003ccode\u003e@​aripollak\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1913\"\u003edjango-extensions/django-extensions#1913\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/flowgunso\"\u003e\u003ccode\u003e@​flowgunso\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1914\"\u003edjango-extensions/django-extensions#1914\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anitahammer\"\u003e\u003ccode\u003e@​anitahammer\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1869\"\u003edjango-extensions/django-extensions#1869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nicolaspanel\"\u003e\u003ccode\u003e@​nicolaspanel\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1867\"\u003edjango-extensions/django-extensions#1867\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yujinyuz\"\u003e\u003ccode\u003e@​yujinyuz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1855\"\u003edjango-extensions/django-extensions#1855\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/soof-golan\"\u003e\u003ccode\u003e@​soof-golan\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1852\"\u003edjango-extensions/django-extensions#1852\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ghickman\"\u003e\u003ccode\u003e@​ghickman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1887\"\u003edjango-extensions/django-extensions#1887\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jrobichaud\"\u003e\u003ccode\u003e@​jrobichaud\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1837\"\u003edjango-extensions/django-extensions#1837\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-extensions/django-extensions/compare/3.2.3...4.0\"\u003ehttps://github.com/django-extensions/django-extensions/compare/3.2.3...4.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.2.4b1\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-extensions/django-extensions/blob/main/CHANGELOG.md\"\u003edjango-extensions's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.1\u003c/h2\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd: show_permissions command (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1920\"\u003e#1920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, style per app (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1848\"\u003e#1848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: JSONField, bulk_update's (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1924\"\u003e#1924\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.0\u003c/h2\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eImprovement: Support for Python 3.12 and 3.13\u003c/li\u003e\n\u003cli\u003eImprovement: Support for Django 5.x\u003c/li\u003e\n\u003cli\u003eImprovement: Switch from setup.{cfg,py} to pyproject.toml\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Add option to display field choices in graph_models (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1854\"\u003e#1854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Add webp support (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1857\"\u003e#1857\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Support for ordering edges on pydot/dot/graphviz (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1914\"\u003e#1914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: mail_debug, Update mail_debug command to use aiosmtpd (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1880\"\u003e#1880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: shell_plus, Improve error message for missing import (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1898\"\u003e#1898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: reset_db, Add reset_db support for django_tenants (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1855\"\u003e#1855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: docs, various improvements (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1852\"\u003e#1852\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1888\"\u003e#1888\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1882\"\u003e#1882\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1901\"\u003e#1901\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1912\"\u003e#1912\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1913\"\u003e#1913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: jobs, Handle non-package modules when looking for job definitions (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1887\"\u003e#1887\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: Add django-prometheus DB backends support (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1800\"\u003e#1800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: Call post_command when the command raises an unhandled exception (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1837\"\u003e#1837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: sqldiff, do not consider ('serial', 'integer') nor ('bigserial', 'bigint') as a \u003ccode\u003efield-type-differ\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1867\"\u003e#1867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: shell_plus, Fix start up order and add history (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1869\"\u003e#1869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove pipchecker and associated tests (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1906\"\u003e#1906\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFollowing Django's release numbering style more closely (see \u003ca href=\"https://docs.djangoproject.com/en/5.2/internals/release-process/\"\u003ehttps://docs.djangoproject.com/en/5.2/internals/release-process/\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-extensions/django-extensions/commit/ad015513e5d8e8ee6ad748fca5f32ccf3fb3d5c5\"\u003e\u003ccode\u003ead01551\u003c/code\u003e\u003c/a\u003e v4.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/2c3e914f1264c0a029b3b47b7425d0f68ce637ed\"\u003e\u003ccode\u003e2c3e914\u003c/code\u003e\u003c/a\u003e update CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/fb5b2af1b6595ee126237c299acf242fcfee817e\"\u003e\u003ccode\u003efb5b2af\u003c/code\u003e\u003c/a\u003e ruff format\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/7e978d27b031843640f9204ff495738c46233d7f\"\u003e\u003ccode\u003e7e978d2\u003c/code\u003e\u003c/a\u003e graph_models style per app (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1848\"\u003e#1848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/067064ea0c6dec7cba1583447fe5fe1c706d5351\"\u003e\u003ccode\u003e067064e\u003c/code\u003e\u003c/a\u003e avoid trying to serialize expressions when serializing default values\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/a886068502474e70a2d68ff4634a15cc3366088d\"\u003e\u003ccode\u003ea886068\u003c/code\u003e\u003c/a\u003e update CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/d824501cbc6d04a24a43ff5756b496f84093b225\"\u003e\u003ccode\u003ed824501\u003c/code\u003e\u003c/a\u003e Add show_permissions management command (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1920\"\u003e#1920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/934f93f53bdf6c6271ae1ddaee71bc9bf3364a0e\"\u003e\u003ccode\u003e934f93f\u003c/code\u003e\u003c/a\u003e bumped version number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/c4577df5b69ec1ebcbe6bc64d7a5c20362f3a8fa\"\u003e\u003ccode\u003ec4577df\u003c/code\u003e\u003c/a\u003e v4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/7cdb43ab56a3b610b47680d8a2fe86b09d5913aa\"\u003e\u003ccode\u003e7cdb43a\u003c/code\u003e\u003c/a\u003e pyproject formatting\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-extensions/django-extensions/compare/3.2.3...4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-filter` from 23.3 to 25.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/carltongibson/django-filter/blob/main/CHANGES.rst\"\u003edjango-filter's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 25.1 (2025-02-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved the in-built API schema generation methods, which have been\ndeprecated since v23.2.\u003c/p\u003e\n\u003cp\u003eYou should use \u003ccode\u003edrf-spectacular \u0026lt;https://drf-spectacular.readthedocs.io/en/latest/\u0026gt;\u003c/code\u003e_\nfor generating OpenAPI schemas with DRF.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped support for EOL Python 3.8.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded testing against Python 3.13.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded official support for Django 5.2.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 24.3 (2024-08-02)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdds official support for Django 5.1.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow using dictionaries for grouped choices on Django 5.0+.\u003c/p\u003e\n\u003cp\u003eThanks to Sævar Öfjörð Magnússon.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdds \u003ccode\u003eunknown_field_behavior\u003c/code\u003e FilterSet option to allowing warning and\nignore behaviours for unknown field types during FilterSet generation.\u003c/p\u003e\n\u003cp\u003eThanks to Loes.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 24.2 (2024-03-27)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed a regression in v23.4 where callable choices were incorrectly evaluated\nat filter instantiation, on Django versions prior to 5.0.\u003c/p\u003e\n\u003cp\u003eThanks to Craig de Stigter for the report and reproduce.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 24.1 (2024-03-08)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated supported Python and Django versions, and resolved upcoming Django\ndeprecations.\u003c/p\u003e\n\u003cp\u003eRequired versions are now at least Python 3.8 and Django 4.2.\u003c/p\u003e\n\u003cp\u003eThanks to Michael Manganiello.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllowed passing a FilterSet class to the filterset_factory().\u003c/p\u003e\n\u003cp\u003eThanks to Birger Schacht.\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/carltongibson/django-filter/commit/27dd67284405ee832701509b3515baa50c6e074d\"\u003e\u003ccode\u003e27dd672\u003c/code\u003e\u003c/a\u003e Updated Change notes for 25.1 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/2ea38174b010f378a9b57d90c566c2bab7b37bbb\"\u003e\u003ccode\u003e2ea3817\u003c/code\u003e\u003c/a\u003e Added Trove classifier for Django 5.2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/4d2306c211c1d86f85f04fb311b8b05bfefb08a8\"\u003e\u003ccode\u003e4d2306c\u003c/code\u003e\u003c/a\u003e Replaced hardcoded pks in tests (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1703\"\u003e#1703\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/fbf5a76a4d97480d78779397b90d34fa8f13d141\"\u003e\u003ccode\u003efbf5a76\u003c/code\u003e\u003c/a\u003e Update tox after Django 5.2 alpha release. (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1700\"\u003e#1700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/1e76d6859e109ae34d5e2a657c66146a9d744c80\"\u003e\u003ccode\u003e1e76d68\u003c/code\u003e\u003c/a\u003e Use QueryDict for data default. (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1691\"\u003e#1691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/e709e5d43a4ad8b8e8ea62520669b88300c9c686\"\u003e\u003ccode\u003ee709e5d\u003c/code\u003e\u003c/a\u003e Add testing against Python 3.13.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/ccde000dfe74362b62301b248681e9505133e821\"\u003e\u003ccode\u003eccde000\u003c/code\u003e\u003c/a\u003e Dropped support for EOL Python 3.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/2a644e176634ec0ce99d9446d980501e9763e194\"\u003e\u003ccode\u003e2a644e1\u003c/code\u003e\u003c/a\u003e Removed deprecated schema generation methods from DRF backend. (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1698\"\u003e#1698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/2494df96c6387a9fa411fcb00b696b15dfd9216b\"\u003e\u003ccode\u003e2494df9\u003c/code\u003e\u003c/a\u003e fix typo in filterset.txt (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1695\"\u003e#1695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/3656174bd90d20f3d916fd98b6476c270013b681\"\u003e\u003ccode\u003e3656174\u003c/code\u003e\u003c/a\u003e Translated using Weblate (Czech) (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1687\"\u003e#1687\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/carltongibson/django-filter/compare/23.3...25.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gunicorn` from 21.2.0 to 23.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\u003e23.0.0\u003c/h2\u003e\n\u003cp\u003eGunicorn 23.0.0 has been released. This version improve HTTP 1.1. support and  which improve safety\u003c/p\u003e\n\u003cp\u003eYou're invited to upgrade asap your own installation.\u003c/p\u003e\n\u003ch1\u003e23.0.0 - 2024-08-10\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eminor docs fixes (:pr:\u003ccode\u003e3217\u003c/code\u003e, :pr:\u003ccode\u003e3089\u003c/code\u003e, :pr:\u003ccode\u003e3167\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eworker_class parameter accepts a class (:pr:\u003ccode\u003e3079\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003efix deadlock if request terminated during chunked parsing (:pr:\u003ccode\u003e2688\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003epermit receiving Transfer-Encodings: compress, deflate, gzip (:pr:\u003ccode\u003e3261\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003epermit Transfer-Encoding headers specifying multiple encodings. note: no parameters, still (:pr:\u003ccode\u003e3261\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003esdist generation now explicitly excludes sphinx build folder (:pr:\u003ccode\u003e3257\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003edecode bytes-typed status (as can be passed by gevent) as utf-8 instead of raising \u003ccode\u003eTypeError\u003c/code\u003e (:pr:\u003ccode\u003e2336\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eraise correct Exception when encounting invalid chunked requests (:pr:\u003ccode\u003e3258\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ethe SCRIPT_NAME and PATH_INFO headers, when received from allowed forwarders, are no longer restricted for containing an underscore (:pr:\u003ccode\u003e3192\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003einclude IPv6 loopback address \u003ccode\u003e[::1]\u003c/code\u003e in default for :ref:\u003ccode\u003eforwarded-allow-ips\u003c/code\u003e and :ref:\u003ccode\u003eproxy-allow-ips\u003c/code\u003e (:pr:\u003ccode\u003e3192\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e** NOTE **\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SCRIPT_NAME change mitigates a regression that appeared first in the 22.0.0 release\u003c/li\u003e\n\u003cli\u003eReview your :ref:\u003ccode\u003eforwarded-allow-ips\u003c/code\u003e setting if you are still not seeing the SCRIPT_NAME transmitted\u003c/li\u003e\n\u003cli\u003eReview your :ref:\u003ccode\u003eforwarder-headers\u003c/code\u003e setting if you are missing headers after upgrading from a version prior to 22.0.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e** Breaking changes **\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003erefuse requests where the uri field is empty (:pr:\u003ccode\u003e3255\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003erefuse requests with invalid CR/LR/NUL in heade field values (:pr:\u003ccode\u003e3253\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eremove temporary \u003ccode\u003e--tolerate-dangerous-framing\u003c/code\u003e switch from 22.0 (:pr:\u003ccode\u003e3260\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eIf any of the breaking changes affect you, be aware that now refused requests can post a security problem, especially so in setups involving request pipe-lining and/or proxies.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFix CVE-2024-1135\u003c/p\u003e\n\u003ch2\u003eGunicorn 22.0 has been released\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eGunicorn 22.0.0 has been released.\u003c/strong\u003e This version fix the numerous security vulnerabilities. You're invited to upgrade asap your own installation.\u003c/p\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e22.0.0 - 2024-04-17\n===================\n\u003cul\u003e\n\u003cli\u003euse \u003ccode\u003eutime\u003c/code\u003e to notify workers liveness\u003c/li\u003e\n\u003cli\u003emigrate setup to pyproject.toml\u003c/li\u003e\n\u003cli\u003efix numerous security vulnerabilities in HTTP parser (closing some request smuggling vectors)\u003c/li\u003e\n\u003cli\u003eparsing additional requests is no longer attempted past unsupported request framing\u003c/li\u003e\n\u003cli\u003eon HTTP versions \u0026lt; 1.1 support for chunked transfer is refused (only used in exploits)\u003c/li\u003e\n\u003cli\u003erequests conflicting configured or passed SCRIPT_NAME now produce a verbose error\u003c/li\u003e\n\u003cli\u003eTrailer fields are no longer inspected for headers indicating secure scheme\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/li\u003e\n\u003c/ul\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/411986d6191114dd1d1bbb9c72c948dbf0ef0425\"\u003e\u003ccode\u003e411986d\u003c/code\u003e\u003c/a\u003e fix doc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/334392e7795f2017e83f7054d372422512d6f4b6\"\u003e\u003ccode\u003e334392e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/2559\"\u003e#2559\u003c/a\u003e from laggardkernel/bugfix/reexec-env\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/e75c3533e32f91a9dceba9e8e1341fea5540ba81\"\u003e\u003ccode\u003ee75c353\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3189\"\u003e#3189\u003c/a\u003e from pajod/patch-py36\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/9357b28dd867950e33ca3864207cb35a1eb8ba6f\"\u003e\u003ccode\u003e9357b28\u003c/code\u003e\u003c/a\u003e keep document user in access_log_format setting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/79fdef0822cbfe7e16b659b07230af9be098d5fc\"\u003e\u003ccode\u003e79fdef0\u003c/code\u003e\u003c/a\u003e bump to 23.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/3acd9fbfd1159ca3cd80a8052ada89a0bf27f806\"\u003e\u003ccode\u003e3acd9fb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/2620\"\u003e#2620\u003c/a\u003e from talkerbox/improve-access-log-format-docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/3f56d76548e4ade034bf5e174737902970285d1f\"\u003e\u003ccode\u003e3f56d76\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3192\"\u003e#3192\u003c/a\u003e from pajod/patch-allowed-script-name\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/256d474a7910bd605f2cc8c082b79c1ae55215a9\"\u003e\u003ccode\u003e256d474\u003c/code\u003e\u003c/a\u003e docs: revert duped directive\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/ffa48b581dcaa75f17fd2df263515e4266feeef6\"\u003e\u003ccode\u003effa48b5\u003c/code\u003e\u003c/a\u003e test: default change was intentional\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/52538ca9070b5e7ead5d0fa731e82a622dc6f3ee\"\u003e\u003ccode\u003e52538ca\u003c/code\u003e\u003c/a\u003e docs: recommend SCRIPT_NAME=/subfolder\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/benoitc/gunicorn/compare/21.2.0...23.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-ipware` from 2.0.0 to 3.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/un33k/python-ipware/blob/main/CHANGELOG.md\"\u003epython-ipware's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.0.0\u003c/h2\u003e\n\u003cp\u003eFix:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRelease major version, as there is a possibility of api change causing minimal backward incompatibly\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.5\u003c/h2\u003e\n\u003cp\u003eEnhance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAI assisted clean up\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.4\u003c/h2\u003e\n\u003cp\u003eEnhance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eproxy_count=0\u003c/code\u003e as an option (\u003ca href=\"https://github.com/FraKraBa\"\u003e\u003ccode\u003e@​FraKraBa\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.3\u003c/h2\u003e\n\u003cp\u003eEnhance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eHTTP_CF_CONNECTING_IP\u003c/code\u003e to list of known ip headers (Adam M.)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.2\u003c/h2\u003e\n\u003cp\u003eEnhance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded logger name\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.1\u003c/h2\u003e\n\u003cp\u003eIssue:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003eHTTP_VIA\u003c/code\u003e header support (unreliable IP information) (\u003ca href=\"https://github.com/yourcelf\"\u003e\u003ccode\u003e@​yourcelf\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eEnhance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eInclude support for python 3.12\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/un33k/python-ipware/commit/cab810ced72457abcc77ffd234be9cb0a75f7ec3\"\u003e\u003ccode\u003ecab810c\u003c/code\u003e\u003c/a\u003e version 3 major (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/21\"\u003e#21\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/5d01f1e6662f3de861d44006247fd5f0a3ae4a0b\"\u003e\u003ccode\u003e5d01f1e\u003c/code\u003e\u003c/a\u003e Feat/enhance (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/20\"\u003e#20\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/bd56bcd1d4ed2d2bbd690059e5a231d6b51bcd31\"\u003e\u003ccode\u003ebd56bcd\u003c/code\u003e\u003c/a\u003e Allow for proxy_count of exact 0 (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/19\"\u003e#19\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/ddfde3c6d4dee387a59287a2c0afc933f9773791\"\u003e\u003ccode\u003eddfde3c\u003c/code\u003e\u003c/a\u003e Update Readme (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/17\"\u003e#17\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/aab321baf9958ae128460c2279364926f6612dca\"\u003e\u003ccode\u003eaab321b\u003c/code\u003e\u003c/a\u003e Add HTTP_CF_CONNECTING_IP to ip Header list (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/16\"\u003e#16\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/e908cc321dc61e203033768f8d1072efc71f4556\"\u003e\u003ccode\u003ee908cc3\u003c/code\u003e\u003c/a\u003e Added logger name (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/15\"\u003e#15\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/ad1f01783279ecd8dfff91b3db8558f92b5bde0b\"\u003e\u003ccode\u003ead1f017\u003c/code\u003e\u003c/a\u003e Remove HTTP_VIA support, support for 3.12 (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/14\"\u003e#14\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/un33k/python-ipware/compare/v2.0.0...v3.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `redis` from 4.6.0 to 5.2.1\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\u003e5.2.1\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed unsecured tempfile.mktemp() command usage (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3446\"\u003e#3446\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed bug with SLOWLOG GET response parsing on Redis Software (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3441\"\u003e#3441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed issue with invoking _close() on closed event loop (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3438\"\u003e#3438\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMigrate test infrastructure to new custom docker images (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3415\"\u003e#3415\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed flacky test with HEXPIREAT command (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3437\"\u003e#3437\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\u003cp\u003e\u003ca href=\"https://github.com/IlianIliev\"\u003e\u003ccode\u003e@​IlianIliev\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/uglide\"\u003e\u003ccode\u003e@​uglide\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/teodorfn\"\u003e\u003ccode\u003e@​teodorfn\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.2.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e🚀 New Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExtend AggregateRequest with scorer argument (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3409\"\u003e#3409\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePin pytest-profiling version due to the bug (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3417\"\u003e#3417\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\u003cp\u003e\u003ca href=\"https://github.com/uglide\"\u003e\u003ccode\u003e@​uglide\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/rbs333\"\u003e\u003ccode\u003e@​rbs333\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/dwdougherty\"\u003e\u003ccode\u003e@​dwdougherty\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.1.1\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e5.1.1\u003c/h2\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed return type for Redis Set commands to be Set instead of List (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3399\"\u003e#3399\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed bug with partial Hiredis availability (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3400\"\u003e#3400\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed bug with async pipeline and cluster fails with some commands (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3402\"\u003e#3402\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.1.0\u003c/h2\u003e\n\u003ch3\u003e🚀 New Features\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\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/a74fa6a3dc1996ff256d5b1849c3018a7ac05c99\"\u003e\u003ccode\u003ea74fa6a\u003c/code\u003e\u003c/a\u003e Release 5.2.1 (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3451\"\u003e#3451\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/166ae7bfd79a88cdfbd7959b2c28cd79aa0eaf0c\"\u003e\u003ccode\u003e166ae7b\u003c/code\u003e\u003c/a\u003e Updated package version (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3418\"\u003e#3418\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/00f5be420b397adfa1b9aa9c2761f7d8a27c0a9a\"\u003e\u003ccode\u003e00f5be4\u003c/code\u003e\u003c/a\u003e adds scorer to AggregateRequest (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3409\"\u003e#3409\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/4c4d4afd2b31b5c36a2d5e22419bcbf584265a17\"\u003e\u003ccode\u003e4c4d4af\u003c/code\u003e\u003c/a\u003e Pin pytest-profiling (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3417\"\u003e#3417\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/d6ddb0d66bc4bd28c99d9cf148c9085117cc8ce9\"\u003e\u003ccode\u003ed6ddb0d\u003c/code\u003e\u003c/a\u003e DOC-4199: add TCEs to the combined query page (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3380\"\u003e#3380\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/17db62e3c9ea796f5705d2857f49e52799057af7\"\u003e\u003ccode\u003e17db62e\u003c/code\u003e\u003c/a\u003e DOC-4200: add TCEs to the aggregation query page (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3381\"\u003e#3381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/700045c7a7db6d986df6610d61239375a2211053\"\u003e\u003ccode\u003e700045c\u003c/code\u003e\u003c/a\u003e Backport 5.1 changes into master (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3406\"\u003e#3406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/2e46613dcdf9db7f948f3258fee1c9199da8cbfa\"\u003e\u003ccode\u003e2e46613\u003c/code\u003e\u003c/a\u003e Client side caching refactoring (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3350\"\u003e#3350\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/7d73d742d6df4b3d6f6a1f0ec73e72d4a02add74\"\u003e\u003ccode\u003e7d73d74\u003c/code\u003e\u003c/a\u003e DOC-4197: add TCEs to the geospatial query page (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3378\"\u003e#3378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/c7483b3d63a2001508a2ff2c9952ad50d9252732\"\u003e\u003ccode\u003ec7483b3\u003c/code\u003e\u003c/a\u003e DOC-4196: add TCEs to the full-text query page (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3377\"\u003e#3377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/redis/redis-py/compare/v4.6.0...v5.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `watchdog` from 3.0.0 to 6.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/gorakhargosh/watchdog/releases\"\u003ewatchdog's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[inotify] Use of \u003ccode\u003eselect.poll()\u003c/code\u003e instead of deprecated \u003ccode\u003eselect.select()\u003c/code\u003e, if available. (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1078\"\u003e#1078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_class()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_instancemethod()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_module()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eis_class_private_name()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eis_classmethod()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eis_method(met()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003emethod_name()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003ename()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Removed the \u003ccode\u003e--trace\u003c/code\u003e CLI argument from the \u003ccode\u003ewatchmedo log\u003c/code\u003e command, useless since events are logged by default at the \u003ccode\u003eLoggerTrick\u003c/code\u003e class level.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePin test dependecies.\u003c/li\u003e\n\u003cli\u003e[docs] Add typing info to quick start. (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1082\"\u003e#1082\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[inotify] Fix reading inotify file descriptor after closing it. (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1081\"\u003e#1081\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[utils] The \u003ccode\u003estop_signal\u003c/code\u003e keyword-argument type of the \u003ccode\u003eAutoRestartTrick\u003c/code\u003e class can now be either a \u003ccode\u003esignal.Signals\u003c/code\u003e or an \u003ccode\u003eint\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e[utils] Added the \u003ccode\u003e__repr__()\u003c/code\u003e method to the \u003ccode\u003eTrick\u003c/code\u003e class.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Fixed Mypy issues.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Added the \u003ccode\u003e__repr__()\u003c/code\u003e method to the \u003ccode\u003eHelpFormatter\u003c/code\u003e class.\u003c/li\u003e\n\u003cli\u003e[windows] Fixed Mypy issues.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e💟 Thanks to our beloved contributors: \u003ca href=\"https://github.com/g-pichler\"\u003e\u003ccode\u003e@​g-pichler\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ethan-vanderheijden\"\u003e\u003ccode\u003e@​ethan-vanderheijden\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/nhairs\"\u003e\u003ccode\u003e@​nhairs\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[inotify] Improve cleaning up \u003ccode\u003eInotify\u003c/code\u003e threads, and add \u003ccode\u003eeventlet\u003c/code\u003e test cases (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1070\"\u003e#1070\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e💟 Thanks to our beloved contributors: \u003ca href=\"https://github.com/ethan-vanderheijden\"\u003e\u003ccode\u003e@​ethan-vanderheijden\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEnable OS specific Mypy checks (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1064\"\u003e#1064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[watchmedo] Fix \u003ccode\u003etricks\u003c/code\u003e argument type of \u003ccode\u003eschedule_tricks()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1063\"\u003e#1063\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e💟 Thanks to our beloved contributors: \u003ca href=\"https://github.com/gnought\"\u003e\u003ccode\u003e@​gnought\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[kqueue] Fix \u003ccode\u003eTypeError: kqueue.control() only accepts positional parameters\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1062\"\u003e#1062\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e💟 Thanks to our beloved contributors: \u003ca href=\"https://github.com/apoirier\"\u003e\u003ccode\u003e@​apoirier\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8 (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1055\"\u003e#1055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[core] Enforced usage of proper keyword-arguments (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1057\"\u003e#1057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[core] Renamed the \u003ccode\u003eBaseObserverSubclassCallable\u003c/code\u003e class to \u003ccode\u003eObserverType\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1055\"\u003e#1055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[inotify] Renamed the \u003ccode\u003einotify_event_struct\u003c/code\u003e class to \u003ccode\u003eInotifyEventStruct\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1055\"\u003e#1055\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/gorakhargosh/watchdog/blob/master/changelog.rst\"\u003ewatchdog's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e6.0.0\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n2024-11-01 • `full history \u0026lt;https://github.com/gorakhargosh/watchdog/compare/v5.0.3...v6.0.0\u0026gt;`__\n\u003cul\u003e\n\u003cli\u003ePin test dependencies.\u003c/li\u003e\n\u003cli\u003e[docs] Add typing info to quick start. (\u003ccode\u003e[#1082](https://github.com/gorakhargosh/watchdog/issues/1082) \u0026amp;lt;https://github.com/gorakhargosh/watchdog/pull/1082\u0026amp;gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003e[inotify] Use of \u003ccode\u003eselect.poll()\u003c/code\u003e instead of deprecated \u003ccode\u003eselect.select()\u003c/code\u003e, if available. (\u003ccode\u003e[#1078](https://github.com/gorakhargosh/watchdog/issues/1078) \u0026amp;lt;https://github.com/gorakhargosh/watchdog/pull/1078\u0026amp;gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003e[inotify] Fix reading inotify file descriptor after closing it. (\u003ccode\u003e[#1081](https://github.com/gorakhargosh/watchdog/issues/1081) \u0026amp;lt;https://github.com/gorakhargosh/watchdog/pull/1081\u0026amp;gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003e[utils] The \u003ccode\u003estop_signal\u003c/code\u003e keyword-argument type of the \u003ccode\u003eAutoRestartTrick\u003c/code\u003e class can now be either a \u003ccode\u003esignal.Signals\u003c/code\u003e or an \u003ccode\u003eint\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e[utils] Added the \u003ccode\u003e__repr__()\u003c/code\u003e method to the \u003ccode\u003eTrick\u003c/code\u003e class.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_class()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_instancemethod()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_module()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eis_class_private_name()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eis_classmethod()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eic_method(met()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003emethod_name()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003ename()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Fixed Mypy issues.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Added the \u003ccode\u003e__repr__()\u003c/code\u003e method to the \u003ccode\u003eHelpFormatter\u003c/code\u003e class.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Removed the \u003ccode\u003e--trace\u003c/code\u003e CLI argument from the \u003ccode\u003ewatchmedo log\u003c/code\u003e command, useless since events are logged by default at the \u003ccode\u003eLoggerTrick\u003c/code\u003e class level.\u003c/li\u003e\n\u003cli\u003e[windows] Fixed Mypy issues.\u003c/li\u003e\n\u003cli\u003eThanks to our beloved contributors: \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/g-pichler\"\u003e\u003ccode\u003e@​g-pichler\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ethan-vanderheijden\"\u003e\u003ccode\u003e@​ethan-vanderheijden\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/nhairs\"\u003e\u003ccode\u003e@​nhairs\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e5.0.3\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e2024-09-27 • \u003ccode\u003efull history \u0026lt;https://github.com/gorakhargosh/watchdog/compare/v5.0.2...v5.0.3\u0026gt;\u003c/code\u003e__\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[inotify] Improve cleaning up \u003ccode\u003eInotify\u003c/code\u003e threads, and add \u003ccode\u003eeventlet\u003c/code\u003e test cases (\u003ccode\u003e[#1070](https://github.com/gorakhargosh/watchdog/issues/1070) \u0026lt;https://github.com/gorakhargosh/watchdog/pull/1070\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eThanks to our beloved contributors: \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ethan-vanderheijden\"\u003e\u003ccode\u003e@​ethan-vanderheijden\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e5.0.2\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n2024-09-03 • `full history \u0026lt;https://github.com/gorakhargosh/watchdog/compare/v5.0.1...v5.0.2\u0026gt;`__\n\u003cul\u003e\n\u003cli\u003eEnable OS specific Mypy checks (\u003ccode\u003e[#1064](https://github.com/gorakhargosh/watchdog/issues/1064) \u0026amp;lt;https://github.com/gorakhargosh/watchdog/pull/1064\u0026amp;gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003e[watchmedo] Fix \u003ccode\u003etricks\u003c/code\u003e argument type of \u003ccode\u003eschedule_tricks()\u003c/code\u003e (\u003ccode\u003e[#1063](https://github.com/gorakhargosh/watchdog/issues/1063) \u0026amp;lt;https://github.com/gorakhargosh/watchdog/pull/1063\u0026amp;gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eThanks to our beloved contributors: \u003ca href=\"https://github.com/gnought\"\u003e\u003ccode\u003e@​gnought\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e5.0.1\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e2024-09-02 • \u003ccode\u003efull history \u0026lt;https://github.com/gorakhargosh/watchdog/compare/v5.0.0...v5.0.1\u0026gt;\u003c/code\u003e__\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[kqueue] Fix \u003ccode\u003eTypeError: kqueue.control() only accepts positional parameters\u003c/code\u003e  (\u003ccode\u003e[#1062](https://github.com/gorakhargosh/watchdog/issues/1062) \u0026lt;https://github.com/gorakhargosh/watchdog/pull/1062\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eThanks to our beloved contributors: \u003ca href=\"https://github.com/apoirier\"\u003e\u003ccode\u003e@​apoirier\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\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/gorakhargosh/watchdog/commit/76c091dc8841de1d1a1cd6511bb509fe4f058de6\"\u003e\u003ccode\u003e76c091d\u003c/code\u003e\u003c/a\u003e Version 6.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/58386d88747259b8b3da5082e30f1c6e0aa3b31a\"\u003e\u003ccode\u003e58386d8\u003c/code\u003e\u003c/a\u003e Fixes, and clean-up (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1084\"\u003e#1084\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/db698a52bbb1eb8cc34e889a8afdac6f17a99e57\"\u003e\u003ccode\u003edb698a5\u003c/code\u003e\u003c/a\u003e fix: reading inotify file descriptor after closing it. (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1081\"\u003e#1081\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/73d561265b109f30cf76a280cdcc74aa9e6df391\"\u003e\u003ccode\u003e73d5612\u003c/code\u003e\u003c/a\u003e [docs] Add typing info to quick start (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1082\"\u003e#1082\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/d774fec477a8f57d24b588164ebdd39b2d507bcd\"\u003e\u003ccode\u003ed774fec\u003c/code\u003e\u003c/a\u003e docs: Update README Badges (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1083\"\u003e#1083\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/6b74737501c85df9b9c2585faef4797a5250171b\"\u003e\u003ccode\u003e6b74737\u003c/code\u003e\u003c/a\u003e docs: funding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/3d1b888bccdd27a28f9f12a4e89288afe1ee493a\"\u003e\u003ccode\u003e3d1b888\u003c/code\u003e\u003c/a\u003e [inotify] Use of \u003ccode\u003eselect.poll()\u003c/code\u003e instead of deprecated \u003ccode\u003eselect.select()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1078\"\u003e#1078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/6a4f1cf846e03c8701fcc53b9e910077b5824e59\"\u003e\u003ccode\u003e6a4f1cf\u003c/code\u003e\u003c/a\u003e Bump the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/ad6df50908fca071ac8ad6558453bb28b522f794\"\u003e\u003ccode\u003ead6df50\u003c/code\u003e\u003c/a\u003e Version 5.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/59650f8fe72ac498374434a10a3dd49f3c3d1429\"\u003e\u003ccode\u003e59650f8\u003c/code\u003e\u003c/a\u003e fix: polish \u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1070\"\u003e#1070\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/gorakhargosh/watchdog/compare/v3.0.0...v6.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ocrmypdf` from 14.4.0 to 15.4.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/blob/main/docs/release_notes.md\"\u003eocrmypdf's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev15.4.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed documentation for installing Ghostscript on Windows. {issue}\u003ccode\u003e1198\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdded warning message about security issue in older versions of Ghostscript.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev15.4.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed deprecation warning in pikepdf older than 8.7.1; pikepdf \u0026gt;= 8.7.1 is\nnow required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev15.4.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWe now raise an exception on a certain class of PDFs that likely need an\nexplicit color conversion strategy selected to display correctly\nfor PDF/A conversion.\u003c/li\u003e\n\u003cli\u003eFixed an error that occurred while trying to write a log message after the\ndebug log handler was removed.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev15.4.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed misc/watcher.py regressions: accept \u003ccode\u003e--ocr-json-settings\u003c/code\u003e as either\nfilename or JSON string, as previously; and argument count mismatch.\n{issue}\u003ccode\u003e1183,1185\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eWe no longer attempt to set /ProcSet in the PDF output, since this is an\nobsolete PDF feature.\u003c/li\u003e\n\u003cli\u003eDocumentation improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev15.4.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded new experimental APIs to support offline editing of the final text.\nSpecifically, one can now generate hOCR files with OCRmyPDF, edit them with\nsome other tool, and then finalize the PDF. They are experimental and\nsubject to change, including details of how the working folder is used.\nThere is no command line interface.\u003c/li\u003e\n\u003cli\u003eCode reorganization: executors, progress bars, initialization and setup.\u003c/li\u003e\n\u003cli\u003eFixed test coverage in cases where the coverage tool did not properly trace\ninto threads or subprocesses. This code was still being tested but appeared\nas not covered.\u003c/li\u003e\n\u003cli\u003eIn the test suite, reduced use of subprocesses and other techniques that\ninterfere with coverage measurement.\u003c/li\u003e\n\u003cli\u003eImproved error check for when we appear to be running inside a snap container\nand files are not available.\u003c/li\u003e\n\u003cli\u003ePlugin specification now properly defines progress bars as a protocol rather\nthan defining them as \u0026quot;tqdm-like\u0026quot;.\u003c/li\u003e\n\u003cli\u003eWe now default to using \u0026quot;forkserver\u0026quot; process creation on POSIX platforms\nrather than fork, since this is method is more robust and avoids some\nissues when threads are present.\u003c/li\u003e\n\u003cli\u003eFixed an instance where the user's request to \u003ccode\u003e--no-use-threads\u003c/code\u003e was ignored.\u003c/li\u003e\n\u003cli\u003eIf a PDF does not have language metadata on its top level object, we add\nthe OCR language.\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/ocrmypdf/OCRmyPDF/commit/c90d5cd84b0e27906310c28f0d78c3ded9106d65\"\u003e\u003ccode\u003ec90d5cd\u003c/code\u003e\u003c/a\u003e Fix Ghostscript installation instructions and add warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/9898904be70bf957154cc66cb5d6f57bac7c26b4\"\u003e\u003ccode\u003e9898904\u003c/code\u003e\u003c/a\u003e Fix pikepdf PdfMatrix deprecation warning; v15.4.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/27d52298420e785300e418bef4e4219ef97720e1\"\u003e\u003ccode\u003e27d5229\u003c/code\u003e\u003c/a\u003e Make logger names unique\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/4a9a575ef0f2cd7459538a43e802c8d8b3846168\"\u003e\u003ccode\u003e4a9a575\u003c/code\u003e\u003c/a\u003e ghostscript: better comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/52fd9a630d57ac7af91db423b17e6b0297fc1c66\"\u003e\u003ccode\u003e52fd9a6\u003c/code\u003e\u003c/a\u003e v15.4.2 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/a596ccf84469c81c6d19ab0eb59f53a5df0bc3c7\"\u003e\u003ccode\u003ea596ccf\u003c/code\u003e\u003c/a\u003e Raise exception if resulting PDF might appear blank in a known in some PDF vi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/e7fa97731f507c1d91e4289b9d5f3344533d7c4c\"\u003e\u003ccode\u003ee7fa977\u003c/code\u003e\u003c/a\u003e ghostscript duplicate filter: filter within a window of previous messages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/290aa2810868fb506a0ded2db8dabb580d5a2459\"\u003e\u003ccode\u003e290aa28\u003c/code\u003e\u003c/a\u003e Fix error on attempt to write to debug log after removing debug log handler\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/a95640ed9ec0a5caa360bd64b9ad6cc9f916fa61\"\u003e\u003ccode\u003ea95640e\u003c/code\u003e\u003c/a\u003e v15.4.1 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/f69267bb675c3261121b70451f6e673f433bc7ad\"\u003e\u003ccode\u003ef69267b\u003c/code\u003e\u003c/a\u003e watcher: restore ability to read json from file or command line string\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/compare/v14.4.0...v15.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-multiselectfield` from 0.1.12 to 1.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/goinnn/django-multiselectfield/releases\"\u003edjango-multiselectfield's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBadge image worked on GitHub but was broken on PyPI — fixed it.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.0\u003c/h2\u003e\n\u003cp\u003eThis release introduces multiple changes that are incompatible with previous versions.\u003c/p\u003e\n\u003cp\u003eThe major version number has been incremented following \u003ccode\u003eSemantic Versioning (SemVer) \u0026lt;https://semver.org/\u0026gt;\u003c/code\u003e_, as several components of the package have changed in ways that may require updates in client code.\u003c/p\u003e\n\u003cp\u003eThe internal codebase has been significantly cleaned up and reorganized, making it more maintainable and consistent.\u003c/p\u003e\n\u003cp\u003eThis version contains \u003cstrong\u003e40% fewer lines of code\u003c/strong\u003e compared to the previous release.\u003c/p\u003e\n\u003cp\u003eLess code means fewer bugs, easier maintenance, and better long-term sustainability.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFList (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\"\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2\u003c/a\u003e):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/50d3f785883e0a314f2dc89950e3fe1e88a7ede6\"\u003e50d3f785883e0a314f2dc89950e3fe1e88a7ede6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIt was created to support MultiSelectFields in admin.list_display, but it never actually worked. If you add a multiselect field to list_display, Django does not call to \u003cstrong\u003estr\u003c/strong\u003e method of MSGList (renamed to MSFList)\u003c/li\u003e\n\u003cli\u003eIt was created for integer choices too and it is a misconception. This is explained in the README file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFFlatchoices (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\"\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2\u003c/a\u003e):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/5638247c1d70670d4f81adf35143ef17a7d7575e\"\u003e5638247c1d70670d4f81adf35143ef17a7d7575e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIn list_display, labels for the choices are now shown (comma-separated) instead of the values of the choices (comma-separated).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn to_python method, value is a list or a string. (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/c4579138dda2833cbce26afbf57da5353aa45690\"\u003ec4579138dda2833cbce26afbf57da5353aa45690\u003c/a\u003e)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove set case and dict case\u003c/li\u003e\n\u003cli\u003eIf this breaks something, please create a test to help understand the use case.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoving integer choices:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIt was a mistake. MultiSelectField inherits of CharField, not IntegerField.\u003c/li\u003e\n\u003cli\u003eIt is impossible knows if original choice is (1, 'Item title 2.1') or ('1', 'Item title 2.1')\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: Form instance generated twice since Django  (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/168\"\u003e#168\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix CSS admin:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/173\"\u003e#173\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/7711f4aa755c81d00f07ce8a6ff0fd9240061f9c\"\u003e7711f4aa755c81d00f07ce8a6ff0fd9240061f9c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix Properly Display Categorized Choices in get_FOO_display (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/169\"\u003e#169\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSortMultiSelectField: (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/172\"\u003e#172\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/goinnn/django-multiselectfield/blob/master/CHANGES.rst\"\u003edjango-multiselectfield's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.0.1 (2025-06-12)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBadge image worked on GitHub but was broken on PyPI — fixed it.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.0.0 (2025-06-12)\u003c/h2\u003e\n\u003cp\u003eThis release introduces multiple changes that are incompatible with previous versions.\u003c/p\u003e\n\u003cp\u003eThe major version number has been incremented following \u003ccode\u003eSemantic Versioning (SemVer) \u0026lt;https://semver.org/\u0026gt;\u003c/code\u003e_, as several components of the package have changed in ways that may require updates in client code.\u003c/p\u003e\n\u003cp\u003eThe internal codebase has been significantly cleaned up and reorganized, making it more maintainable and consistent.\u003c/p\u003e\n\u003cp\u003eThis version contains \u003cstrong\u003e40% fewer lines of code\u003c/strong\u003e compared to the previous release.\u003c/p\u003e\n\u003cp\u003eLess code means fewer bugs, easier maintenance, and better long-term sustainability.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFList (\u003ccode\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\u0026gt;\u003c/code\u003e_):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ccode\u003e50d3f785883e0a314f2dc89950e3fe1e88a7ede6 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/50d3f785883e0a314f2dc89950e3fe1e88a7ede6\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eIt was created to support MultiSelectFields in admin.list_display, but it never actually worked. If you add a multiselect field to list_display, Django does not call to \u003cstrong\u003estr\u003c/strong\u003e method of MSGList (renamed to MSFList)\u003c/li\u003e\n\u003cli\u003eIt was created for integer choices too and it is a misconception. This is explained in the README file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFFlatchoices (\u003ccode\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\u0026gt;\u003c/code\u003e_):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ccode\u003e5638247c1d70670d4f81adf35143ef17a7d7575e \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/5638247c1d70670d4f81adf35143ef17a7d7575e\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eIn list_display, labels for the choices are now shown (comma-separated) instead of the values of the choices (comma-separated).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn to_python method, value is a list or a string. (\u003ccode\u003ec4579138dda2833cbce26afbf57da5353aa45690 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/c4579138dda2833cbce26afbf57da5...\n\n_Description has been truncated_","html_url":"https://github.com/dsp-testing/paperless-ngx/pull/183","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/dsp-testing%2Fpaperless-ngx/issues/183","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/183/packages"}},{"old_version":"15.0","new_version":"16.0.1","update_type":null,"path":null,"pr_created_at":"2025-09-29T18:31:06.000Z","version_change":"15.0 → 16.0.1","issue":{"uuid":"2871636928","node_id":"PR_kwDOOpHihs6rKbPA","number":61,"state":"open","title":"Chore(deps): Bump the major-versions group across 1 directory with 5 updates","user":"dependabot[bot]","labels":["backend","dependencies"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-29T18:31:06.000Z","updated_at":"2025-09-29T18:31:06.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Chore(deps): Bump","group_name":"major-versions","update_count":5,"packages":[{"name":"django-guardian","old_version":"2.4.0","new_version":"3.2.0","repository_url":"https://github.com/django-guardian/django-guardian"},{"name":"django-multiselectfield","old_version":"0.1.13","new_version":"1.0.1","repository_url":"https://github.com/goinnn/django-multiselectfield"},{"name":"pytest-cov","old_version":"6.0.0","new_version":"7.0.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"pytest-rerunfailures","old_version":"15.0","new_version":"16.0.1","repository_url":"https://github.com/pytest-dev/pytest-rerunfailures"},{"name":"types-setuptools","old_version":"75.8.2.20250301","new_version":"80.9.0.20250822","repository_url":"https://github.com/typeshed-internal/stub_uploader"}],"path":null,"ecosystem":"conda"},"body":"Bumps the major-versions group with 5 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [django-guardian](https://github.com/django-guardian/django-guardian) | `2.4.0` | `3.2.0` |\n| [django-multiselectfield](https://github.com/goinnn/django-multiselectfield) | `0.1.13` | `1.0.1` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `6.0.0` | `7.0.0` |\n| [pytest-rerunfailures](https://github.com/pytest-dev/pytest-rerunfailures) | `15.0` | `16.0.1` |\n| [types-setuptools](https://github.com/typeshed-internal/stub_uploader) | `75.8.2.20250301` | `80.9.0.20250822` |\n\n\nUpdates `django-guardian` from 2.4.0 to 3.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-guardian/django-guardian/releases\"\u003edjango-guardian's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.2.0 The Bozkir progression\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate enforcement contact link in CODE_OF_CONDUCT.md by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/918\"\u003edjango-guardian/django-guardian#918\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptional cached anonymous user  - Pr 907 by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/912\"\u003edjango-guardian/django-guardian#912\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003egenerator warnings and logics are added for security purposes by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/920\"\u003edjango-guardian/django-guardian#920\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erollback compatible create anon user fix is developed by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/919\"\u003edjango-guardian/django-guardian#919\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e644 using inlines in django admin with guardian by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/921\"\u003edjango-guardian/django-guardian#921\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-guardian/django-guardian/compare/3.1.3...3.2.0\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.3...3.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.1.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edjango-packages badge is added by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/910\"\u003edjango-guardian/django-guardian#910\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate issue templates by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/909\"\u003edjango-guardian/django-guardian#909\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMakefile support by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/906\"\u003edjango-guardian/django-guardian#906\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePR merging scenario is fixed by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/913\"\u003edjango-guardian/django-guardian#913\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed issue causing prefetch_perms() to throw when passed an empty list by \u003ca href=\"https://github.com/keattang\"\u003e\u003ccode\u003e@​keattang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/904\"\u003edjango-guardian/django-guardian#904\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRe apply \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/812\"\u003e#812\u003c/a\u003e using correct lookup method by \u003ca href=\"https://github.com/sevdog\"\u003e\u003ccode\u003e@​sevdog\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/842\"\u003edjango-guardian/django-guardian#842\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOPS: Bump version for release by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/915\"\u003edjango-guardian/django-guardian#915\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-guardian/django-guardian/compare/3.1.2...3.1.3\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.2...3.1.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.1.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.0 in /.github/workflows 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-guardian/django-guardian/pull/903\"\u003edjango-guardian/django-guardian#903\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix type and deprecate old name by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/902\"\u003edjango-guardian/django-guardian#902\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/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/903\"\u003edjango-guardian/django-guardian#903\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-guardian/django-guardian/compare/3.1.1...3.1.2\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.1...3.1.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epre-commit checker step is added by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/901\"\u003edjango-guardian/django-guardian#901\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-guardian/django-guardian/compare/3.1.0...3.1.1\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.0...3.1.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eImproved indexing, tweaks and bugfixes\u003c/h2\u003e\n\u003ch2\u003eSaving the 🌳🌳🌳 and the 💰💰💰\u003c/h2\u003e\n\u003cp\u003e⚠️⚠️⚠️ \u003cstrong\u003eWARNING:\u003c/strong\u003e This release contains an update to database indexing which should yield \u003cstrong\u003econsiderable additional performance\u003c/strong\u003e, especially on large table permissions lookups (thanks \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e for such rigorous performance testing!!!). Following the migration that introduces these indexes, databases should reindex automatically in the background (typically within 0-30s even for large tables): this is unlikely to be noticeable but users may experience a short lived performance hit during this period.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow ignore_conflicts on bulk create by \u003ca href=\"https://github.com/pgiki\"\u003e\u003ccode\u003e@​pgiki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/814\"\u003edjango-guardian/django-guardian#814\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/django-guardian/django-guardian/commit/4120d00c28c1b6d3bacb988f6db86bacf91ed0f1\"\u003e\u003ccode\u003e4120d00\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/921\"\u003e#921\u003c/a\u003e from django-guardian/644-using-inlines-in-django-admi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/c896b220bdf96783f1c25d730f12ebef95758c99\"\u003e\u003ccode\u003ec896b22\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/919\"\u003e#919\u003c/a\u003e from django-guardian/770-migration-rollback-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/3814e2383c69266350a3d885d445bdd79da8cb78\"\u003e\u003ccode\u003e3814e23\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 770-migration-rollback-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/94854899f4a030b42840837e08b42923a71c5b78\"\u003e\u003ccode\u003e9485489\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/920\"\u003e#920\u003c/a\u003e from django-guardian/666-permissionrequiredmixin-does...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/e01e2e1edeec60b2c79d561db56e0949ea3c4dad\"\u003e\u003ccode\u003ee01e2e1\u003c/code\u003e\u003c/a\u003e check only username field fixing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/e1ae3c5a7ab74a679ef1ccff2a480a88117df464\"\u003e\u003ccode\u003ee1ae3c5\u003c/code\u003e\u003c/a\u003e show warning instead of error for backward compatibility and giving time the ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/63c10f549dfe2b5ba67e9eec36095cf3e6a2bab8\"\u003e\u003ccode\u003e63c10f5\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 644-using-inlines-in-django-admin-with-guardian\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/b27ebbdcc7f9952d9d9aaaa879b5e202063ccaa8\"\u003e\u003ccode\u003eb27ebbd\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 666-permissionrequiredmixin-does-not-warn-against-us...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/d7ed4a3bccb730d3cdf16fdc404f25b94674c653\"\u003e\u003ccode\u003ed7ed4a3\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 770-migration-rollback-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/03fed6924e06fd13991d9e8ae1b4590addf5473e\"\u003e\u003ccode\u003e03fed69\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/912\"\u003e#912\u003c/a\u003e from django-guardian/pr-907\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-guardian/django-guardian/compare/v2.4.0...3.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-multiselectfield` from 0.1.13 to 1.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/goinnn/django-multiselectfield/releases\"\u003edjango-multiselectfield's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBadge image worked on GitHub but was broken on PyPI — fixed it.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.0\u003c/h2\u003e\n\u003cp\u003eThis release introduces multiple changes that are incompatible with previous versions.\u003c/p\u003e\n\u003cp\u003eThe major version number has been incremented following \u003ccode\u003eSemantic Versioning (SemVer) \u0026lt;https://semver.org/\u0026gt;\u003c/code\u003e_, as several components of the package have changed in ways that may require updates in client code.\u003c/p\u003e\n\u003cp\u003eThe internal codebase has been significantly cleaned up and reorganized, making it more maintainable and consistent.\u003c/p\u003e\n\u003cp\u003eThis version contains \u003cstrong\u003e40% fewer lines of code\u003c/strong\u003e compared to the previous release.\u003c/p\u003e\n\u003cp\u003eLess code means fewer bugs, easier maintenance, and better long-term sustainability.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFList (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\"\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2\u003c/a\u003e):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/50d3f785883e0a314f2dc89950e3fe1e88a7ede6\"\u003e50d3f785883e0a314f2dc89950e3fe1e88a7ede6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIt was created to support MultiSelectFields in admin.list_display, but it never actually worked. If you add a multiselect field to list_display, Django does not call to \u003cstrong\u003estr\u003c/strong\u003e method of MSGList (renamed to MSFList)\u003c/li\u003e\n\u003cli\u003eIt was created for integer choices too and it is a misconception. This is explained in the README file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFFlatchoices (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\"\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2\u003c/a\u003e):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/5638247c1d70670d4f81adf35143ef17a7d7575e\"\u003e5638247c1d70670d4f81adf35143ef17a7d7575e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIn list_display, labels for the choices are now shown (comma-separated) instead of the values of the choices (comma-separated).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn to_python method, value is a list or a string. (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/c4579138dda2833cbce26afbf57da5353aa45690\"\u003ec4579138dda2833cbce26afbf57da5353aa45690\u003c/a\u003e)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove set case and dict case\u003c/li\u003e\n\u003cli\u003eIf this breaks something, please create a test to help understand the use case.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoving integer choices:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIt was a mistake. MultiSelectField inherits of CharField, not IntegerField.\u003c/li\u003e\n\u003cli\u003eIt is impossible knows if original choice is (1, 'Item title 2.1') or ('1', 'Item title 2.1')\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: Form instance generated twice since Django  (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/168\"\u003e#168\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix CSS admin:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/173\"\u003e#173\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/7711f4aa755c81d00f07ce8a6ff0fd9240061f9c\"\u003e7711f4aa755c81d00f07ce8a6ff0fd9240061f9c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix Properly Display Categorized Choices in get_FOO_display (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/169\"\u003e#169\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSortMultiSelectField: (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/172\"\u003e#172\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/goinnn/django-multiselectfield/blob/master/CHANGES.rst\"\u003edjango-multiselectfield's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.0.1 (2025-06-12)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBadge image worked on GitHub but was broken on PyPI — fixed it.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.0.0 (2025-06-12)\u003c/h2\u003e\n\u003cp\u003eThis release introduces multiple changes that are incompatible with previous versions.\u003c/p\u003e\n\u003cp\u003eThe major version number has been incremented following \u003ccode\u003eSemantic Versioning (SemVer) \u0026lt;https://semver.org/\u0026gt;\u003c/code\u003e_, as several components of the package have changed in ways that may require updates in client code.\u003c/p\u003e\n\u003cp\u003eThe internal codebase has been significantly cleaned up and reorganized, making it more maintainable and consistent.\u003c/p\u003e\n\u003cp\u003eThis version contains \u003cstrong\u003e40% fewer lines of code\u003c/strong\u003e compared to the previous release.\u003c/p\u003e\n\u003cp\u003eLess code means fewer bugs, easier maintenance, and better long-term sustainability.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFList (\u003ccode\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\u0026gt;\u003c/code\u003e_):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ccode\u003e50d3f785883e0a314f2dc89950e3fe1e88a7ede6 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/50d3f785883e0a314f2dc89950e3fe1e88a7ede6\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eIt was created to support MultiSelectFields in admin.list_display, but it never actually worked. If you add a multiselect field to list_display, Django does not call to \u003cstrong\u003estr\u003c/strong\u003e method of MSGList (renamed to MSFList)\u003c/li\u003e\n\u003cli\u003eIt was created for integer choices too and it is a misconception. This is explained in the README file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFFlatchoices (\u003ccode\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\u0026gt;\u003c/code\u003e_):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ccode\u003e5638247c1d70670d4f81adf35143ef17a7d7575e \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/5638247c1d70670d4f81adf35143ef17a7d7575e\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eIn list_display, labels for the choices are now shown (comma-separated) instead of the values of the choices (comma-separated).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn to_python method, value is a list or a string. (\u003ccode\u003ec4579138dda2833cbce26afbf57da5353aa45690 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/c4579138dda2833cbce26afbf57da5353aa45690\u0026gt;\u003c/code\u003e_)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove set case and dict case\u003c/li\u003e\n\u003cli\u003eIf this breaks something, please create a test to help understand the use case.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoving integer choices:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIt was a mistake. MultiSelectField inherits of CharField, not IntegerField.\u003c/li\u003e\n\u003cli\u003eIt is impossible knows if original choice is (1, 'Item title 2.1') or ('1', 'Item title 2.1')\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: Form instance generated twice since Django  (\u003ccode\u003e[#168](https://github.com/goinnn/django-multiselectfield/issues/168) \u0026lt;https://github.com/goinnn/django-multiselectfield/pull/168\u0026gt;\u003c/code\u003e_)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix CSS admin:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ccode\u003e[#173](https://github.com/goinnn/django-multiselectfield/issues/173) \u0026lt;https://github.com/goinnn/django-multiselectfield/pull/173\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003e(\u003ccode\u003e7711f4aa755c81d00f07ce8a6ff0fd9240061f9c \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/7711f4aa755c81d00f07ce8a6ff0fd9240061f9c\u0026gt;\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/goinnn/django-multiselectfield/commit/679bac60a5156b26c608972a1b4a576b7010e6c2\"\u003e\u003ccode\u003e679bac6\u003c/code\u003e\u003c/a\u003e Ready to new release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/bef25142b5f266164185ec3de4abdfcf91c3e89d\"\u003e\u003ccode\u003ebef2514\u003c/code\u003e\u003c/a\u003e Ready to new release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/9a564a35581f89c35279ebfa20a2d693b3d23d73\"\u003e\u003ccode\u003e9a564a3\u003c/code\u003e\u003c/a\u003e Add image from github (pypi broken)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/f2b3186c1da7f50abf68b8e11e1d54c2683e2b34\"\u003e\u003ccode\u003ef2b3186\u003c/code\u003e\u003c/a\u003e Fix typo error\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/72894698f191aeddd5364977365c6c2c88a5ac53\"\u003e\u003ccode\u003e7289469\u003c/code\u003e\u003c/a\u003e Fix another pypi error\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/f17a82819157736ff0378f57c8bb114060f4f803\"\u003e\u003ccode\u003ef17a828\u003c/code\u003e\u003c/a\u003e Improve readme file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/d9e2b979f5f37fea812b39a90247e1afd5314415\"\u003e\u003ccode\u003ed9e2b97\u003c/code\u003e\u003c/a\u003e Fix error uploading to pypi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/a387bc619d95a1e61da4ad7e7b0d319429322243\"\u003e\u003ccode\u003ea387bc6\u003c/code\u003e\u003c/a\u003e Ready to new release. The major version number has been incremented because t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/4fc13699678de3bdbe6c7299c6fdbfb901ca08f6\"\u003e\u003ccode\u003e4fc1369\u003c/code\u003e\u003c/a\u003e If the choices are Proxy str (i18n) patched_display_for_field gets an error\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/8bafbdbd9db515206b1fef6ec7263d9b485c2c31\"\u003e\u003ccode\u003e8bafbdb\u003c/code\u003e\u003c/a\u003e Add static files to package\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/goinnn/django-multiselectfield/compare/v0.1.13...v1.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-cov` from 6.0.0 to 7.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst\"\u003epytest-cov's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.0.0 (2025-09-09)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped support for subprocesses measurement.\u003c/p\u003e\n\u003cp\u003eIt was a feature added long time ago when coverage lacked a nice way to measure subprocesses created in tests.\nIt relied on a \u003ccode\u003e.pth\u003c/code\u003e file, there was no way to opt-out and it created bad interations\nwith \u003ccode\u003ecoverage's new patch system \u0026lt;https://coverage.readthedocs.io/en/latest/config.html#run-patch\u0026gt;\u003c/code\u003e_ added\nin \u003ccode\u003e7.10 \u0026lt;https://coverage.readthedocs.io/en/7.10.6/changes.html#version-7-10-0-2025-07-24\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003cp\u003eTo migrate to this release you might need to enable the suprocess patch, example for \u003ccode\u003e.coveragerc\u003c/code\u003e:\u003c/p\u003e\n\u003cp\u003e.. code-block:: ini\u003c/p\u003e\n\u003cp\u003e[run]\npatch = subprocess\u003c/p\u003e\n\u003cp\u003eThis release also requires at least coverage 7.10.6.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSwitched packaging to have metadata completely in \u003ccode\u003epyproject.toml\u003c/code\u003e and use \u003ccode\u003ehatchling \u0026lt;https://pypi.org/project/hatchling/\u0026gt;\u003c/code\u003e_ for\nbuilding.\nContributed by Ofek Lev in \u003ccode\u003e[#551](https://github.com/pytest-dev/pytest-cov/issues/551) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/551\u0026gt;\u003c/code\u003e_\nwith some extras in \u003ccode\u003e[#716](https://github.com/pytest-dev/pytest-cov/issues/716) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/716\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved some not really necessary testing deps like \u003ccode\u003esix\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.3.0 (2025-09-06)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for markdown reports.\nContributed by Marcos Boger in \u003ccode\u003e[#712](https://github.com/pytest-dev/pytest-cov/issues/712) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/712\u0026gt;\u003c/code\u003e_\nand \u003ccode\u003e[#714](https://github.com/pytest-dev/pytest-cov/issues/714) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/714\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eFixed some formatting issues in docs.\nAnonymous contribution in \u003ccode\u003e[#706](https://github.com/pytest-dev/pytest-cov/issues/706) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/706\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.2.1 (2025-06-12)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a version requirement for pytest's pluggy dependency (1.2.0, released 2023-06-21) that has the required new-style hookwrapper API.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved deprecated license classifier (packaging).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDisabled coverage warnings in two more situations where they have no value:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u0026quot;module-not-measured\u0026quot; in workers\u003c/li\u003e\n\u003cli\u003e\u0026quot;already-imported\u0026quot; in subprocesses\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.2.0 (2025-06-11)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eThe plugin now adds 3 rules in the filter warnings configuration to prevent common coverage warnings being raised as obscure errors::\u003c/p\u003e\n\u003cp\u003edefault:unclosed database in \u0026lt;sqlite3.Connection object at:ResourceWarning\nonce::PytestCovWarning\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/pytest-dev/pytest-cov/commit/224d8964caad90074a8cf6dc8720b8f70f31629b\"\u003e\u003ccode\u003e224d896\u003c/code\u003e\u003c/a\u003e Bump version: 6.3.0 → 7.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/73424e3999f865eac72e27f09d5fe11b9703cfd6\"\u003e\u003ccode\u003e73424e3\u003c/code\u003e\u003c/a\u003e Cleanup the docs a bit.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/36f1cc2967831dbd4c8aa70086fc86dc495f8b9a\"\u003e\u003ccode\u003e36f1cc2\u003c/code\u003e\u003c/a\u003e Bump pins in template.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/f299c590a63a48e51e3ae949993dc7bb1f1d480d\"\u003e\u003ccode\u003ef299c59\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 2 updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/25f0b2e0cdbc345c0d3e49170f7a328c3e0d805f\"\u003e\u003ccode\u003e25f0b2e\u003c/code\u003e\u003c/a\u003e Update docs/config.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/bb23eacc5531fb8f499213d8420407e0d72f88e3\"\u003e\u003ccode\u003ebb23eac\u003c/code\u003e\u003c/a\u003e Improve configuration docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/a19531e91e1ab753ccf648a2d9bab08a6fddebb9\"\u003e\u003ccode\u003ea19531e\u003c/code\u003e\u003c/a\u003e Switch from build/pre-commit to uv/prek - this should make this faster.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/82f999391073f2fb8ae422af452602f310086a2a\"\u003e\u003ccode\u003e82f9993\u003c/code\u003e\u003c/a\u003e Update changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/211b5cd41c29916bc643b4a11b00578ba4fd6fe8\"\u003e\u003ccode\u003e211b5cd\u003c/code\u003e\u003c/a\u003e Fix links.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/97aadd74bcbc00a2078d240e8fe871dd62b83d80\"\u003e\u003ccode\u003e97aadd7\u003c/code\u003e\u003c/a\u003e Update some ci config, reformat and apply some lint fixes.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-cov/compare/v6.0.0...v7.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-rerunfailures` from 15.0 to 16.0.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/blob/master/CHANGES.rst\"\u003epytest-rerunfailures's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e16.0.1 (2025-09-02)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReverted the ability to access error attributes because of an incompatibility\nwith \u003ccode\u003epytest-xdist \u0026lt;https://github.com/pytest-dev/pytest-xdist/issues/843\u0026gt;\u003c/code\u003e\u003cem\u003e.\nFixes \u003ccode\u003e[#302](https://github.com/pytest-dev/pytest-rerunfailures/issues/302) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/302\u0026gt;\u003c/code\u003e\u003c/em\u003e,\n\u003ccode\u003e[#303](https://github.com/pytest-dev/pytest-rerunfailures/issues/303) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/303\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e16.0 (2025-08-29)\u003c/h2\u003e\n\u003cp\u003eBreaking changes\n++++++++++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for pytest \u0026lt; 8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFeatures\n++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd support for pytest 8.4.x.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd support for upcoming Python 3.14.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow \u003ccode\u003e@pytest.mark.flaky(condition)\u003c/code\u003e to accept a callable or a string\nto be evaluated. The evaluated string has access to the exception instance\nvia the \u003ccode\u003eerror\u003c/code\u003e object.\n(\u003ccode\u003e[#230](https://github.com/pytest-dev/pytest-rerunfailures/issues/230) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/230\u0026gt;\u003c/code\u003e_)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e15.1 (2025-05-08)\u003c/h2\u003e\n\u003cp\u003eBug fixes\n+++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003e--fail-on-flaky\u003c/code\u003e option to fail the test run with custom exit code\nonly when reruns are detected.\n(\u003ccode\u003e[#287](https://github.com/pytest-dev/pytest-rerunfailures/issues/287) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/287\u0026gt;\u003c/code\u003e_)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSwitched to using the SPDX license identifier in the project metadata.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eOther changes\n+++++++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eChange exception filtering logic to match \u003ccode\u003eAssertionError\u003c/code\u003e raised via\n\u003ccode\u003eassert\u003c/code\u003e statements when filtering by \u0026quot;AssertionError\u0026quot;.\n(\u003ccode\u003e[#292](https://github.com/pytest-dev/pytest-rerunfailures/issues/292) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/292\u0026gt;\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/pytest-dev/pytest-rerunfailures/commit/f97618f95c630af28bbecacc83fc8715146bfa57\"\u003e\u003ccode\u003ef97618f\u003c/code\u003e\u003c/a\u003e Preparing release 16.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/c60d17dee372d5ad935d6da35c6e13ba2d34018d\"\u003e\u003ccode\u003ec60d17d\u003c/code\u003e\u003c/a\u003e Prepare release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/91b0b043f3923b429dd9573536eeebc20dbe8996\"\u003e\u003ccode\u003e91b0b04\u003c/code\u003e\u003c/a\u003e Make \u003ccode\u003epytest-xdist\u003c/code\u003e happy again (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/304\"\u003e#304\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/010a2c2904755e66a2271bc15ff268e628923ec1\"\u003e\u003ccode\u003e010a2c2\u003c/code\u003e\u003c/a\u003e Back to development: 16.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/34a87e464a5228a5fd416102702c6b3b3b463b9b\"\u003e\u003ccode\u003e34a87e4\u003c/code\u003e\u003c/a\u003e Preparing release 16.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/9a889596964101fbd92d3a2aecb6af5e37506550\"\u003e\u003ccode\u003e9a88959\u003c/code\u003e\u003c/a\u003e Add support for Python 3.14 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/301\"\u003e#301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/5dc2e6e0b3dc7efe611a541c56a38bc09f5428d7\"\u003e\u003ccode\u003e5dc2e6e\u003c/code\u003e\u003c/a\u003e Remove outdated fixtures description in README (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/291\"\u003e#291\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/da8ea4861012a7d980c5153bff0f196b523c734f\"\u003e\u003ccode\u003eda8ea48\u003c/code\u003e\u003c/a\u003e Drop support for pytest \u0026lt; 8, add support for pytest 8.4.x. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/300\"\u003e#300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/72f29f34abc55a5eb1694d48f2302c00b991cddb\"\u003e\u003ccode\u003e72f29f3\u003c/code\u003e\u003c/a\u003e Add Priority to README (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/296\"\u003e#296\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/bd8cb4d92025f228b84cd87d6f6e5a1687b927ef\"\u003e\u003ccode\u003ebd8cb4d\u003c/code\u003e\u003c/a\u003e Allow to pass a callable condition to the \u003ccode\u003eflaky\u003c/code\u003e marker (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/299\"\u003e#299\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/compare/15.0...16.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `types-setuptools` from 75.8.2.20250301 to 80.9.0.20250822\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/typeshed-internal/stub_uploader/commits\"\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/hong880226/paperless-ngx/pull/61","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/hong880226%2Fpaperless-ngx/issues/61","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/61/packages"}},{"old_version":"15.0","new_version":"16.0.1","update_type":null,"path":null,"pr_created_at":"2025-09-29T00:31:34.000Z","version_change":"15.0 → 16.0.1","issue":{"uuid":"2868629639","node_id":"PR_kwDOOhicjM6q-9CH","number":74,"state":"open","title":"Chore(deps): Bump the major-versions group across 1 directory with 5 updates","user":"dependabot[bot]","labels":["dependencies","backend"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-29T00:31:34.000Z","updated_at":"2025-09-29T00:31:35.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Chore(deps): Bump","group_name":"major-versions","update_count":5,"packages":[{"name":"django-guardian","old_version":"2.4.0","new_version":"3.2.0","repository_url":"https://github.com/django-guardian/django-guardian"},{"name":"django-multiselectfield","old_version":"0.1.13","new_version":"1.0.1","repository_url":"https://github.com/goinnn/django-multiselectfield"},{"name":"pytest-cov","old_version":"6.0.0","new_version":"7.0.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"pytest-rerunfailures","old_version":"15.0","new_version":"16.0.1","repository_url":"https://github.com/pytest-dev/pytest-rerunfailures"},{"name":"types-setuptools","old_version":"75.8.2.20250301","new_version":"80.9.0.20250822","repository_url":"https://github.com/typeshed-internal/stub_uploader"}],"path":null,"ecosystem":"conda"},"body":"Bumps the major-versions group with 5 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [django-guardian](https://github.com/django-guardian/django-guardian) | `2.4.0` | `3.2.0` |\n| [django-multiselectfield](https://github.com/goinnn/django-multiselectfield) | `0.1.13` | `1.0.1` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `6.0.0` | `7.0.0` |\n| [pytest-rerunfailures](https://github.com/pytest-dev/pytest-rerunfailures) | `15.0` | `16.0.1` |\n| [types-setuptools](https://github.com/typeshed-internal/stub_uploader) | `75.8.2.20250301` | `80.9.0.20250822` |\n\n\nUpdates `django-guardian` from 2.4.0 to 3.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-guardian/django-guardian/releases\"\u003edjango-guardian's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.2.0 The Bozkir progression\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate enforcement contact link in CODE_OF_CONDUCT.md by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/918\"\u003edjango-guardian/django-guardian#918\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptional cached anonymous user  - Pr 907 by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/912\"\u003edjango-guardian/django-guardian#912\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003egenerator warnings and logics are added for security purposes by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/920\"\u003edjango-guardian/django-guardian#920\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erollback compatible create anon user fix is developed by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/919\"\u003edjango-guardian/django-guardian#919\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e644 using inlines in django admin with guardian by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/921\"\u003edjango-guardian/django-guardian#921\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-guardian/django-guardian/compare/3.1.3...3.2.0\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.3...3.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.1.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edjango-packages badge is added by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/910\"\u003edjango-guardian/django-guardian#910\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate issue templates by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/909\"\u003edjango-guardian/django-guardian#909\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMakefile support by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/906\"\u003edjango-guardian/django-guardian#906\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePR merging scenario is fixed by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/913\"\u003edjango-guardian/django-guardian#913\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed issue causing prefetch_perms() to throw when passed an empty list by \u003ca href=\"https://github.com/keattang\"\u003e\u003ccode\u003e@​keattang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/904\"\u003edjango-guardian/django-guardian#904\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRe apply \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/812\"\u003e#812\u003c/a\u003e using correct lookup method by \u003ca href=\"https://github.com/sevdog\"\u003e\u003ccode\u003e@​sevdog\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/842\"\u003edjango-guardian/django-guardian#842\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOPS: Bump version for release by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/915\"\u003edjango-guardian/django-guardian#915\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-guardian/django-guardian/compare/3.1.2...3.1.3\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.2...3.1.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.1.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.0 in /.github/workflows 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-guardian/django-guardian/pull/903\"\u003edjango-guardian/django-guardian#903\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix type and deprecate old name by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/902\"\u003edjango-guardian/django-guardian#902\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/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/903\"\u003edjango-guardian/django-guardian#903\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-guardian/django-guardian/compare/3.1.1...3.1.2\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.1...3.1.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epre-commit checker step is added by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/901\"\u003edjango-guardian/django-guardian#901\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-guardian/django-guardian/compare/3.1.0...3.1.1\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.0...3.1.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eImproved indexing, tweaks and bugfixes\u003c/h2\u003e\n\u003ch2\u003eSaving the 🌳🌳🌳 and the 💰💰💰\u003c/h2\u003e\n\u003cp\u003e⚠️⚠️⚠️ \u003cstrong\u003eWARNING:\u003c/strong\u003e This release contains an update to database indexing which should yield \u003cstrong\u003econsiderable additional performance\u003c/strong\u003e, especially on large table permissions lookups (thanks \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e for such rigorous performance testing!!!). Following the migration that introduces these indexes, databases should reindex automatically in the background (typically within 0-30s even for large tables): this is unlikely to be noticeable but users may experience a short lived performance hit during this period.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow ignore_conflicts on bulk create by \u003ca href=\"https://github.com/pgiki\"\u003e\u003ccode\u003e@​pgiki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/814\"\u003edjango-guardian/django-guardian#814\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/django-guardian/django-guardian/commit/4120d00c28c1b6d3bacb988f6db86bacf91ed0f1\"\u003e\u003ccode\u003e4120d00\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/921\"\u003e#921\u003c/a\u003e from django-guardian/644-using-inlines-in-django-admi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/c896b220bdf96783f1c25d730f12ebef95758c99\"\u003e\u003ccode\u003ec896b22\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/919\"\u003e#919\u003c/a\u003e from django-guardian/770-migration-rollback-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/3814e2383c69266350a3d885d445bdd79da8cb78\"\u003e\u003ccode\u003e3814e23\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 770-migration-rollback-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/94854899f4a030b42840837e08b42923a71c5b78\"\u003e\u003ccode\u003e9485489\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/920\"\u003e#920\u003c/a\u003e from django-guardian/666-permissionrequiredmixin-does...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/e01e2e1edeec60b2c79d561db56e0949ea3c4dad\"\u003e\u003ccode\u003ee01e2e1\u003c/code\u003e\u003c/a\u003e check only username field fixing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/e1ae3c5a7ab74a679ef1ccff2a480a88117df464\"\u003e\u003ccode\u003ee1ae3c5\u003c/code\u003e\u003c/a\u003e show warning instead of error for backward compatibility and giving time the ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/63c10f549dfe2b5ba67e9eec36095cf3e6a2bab8\"\u003e\u003ccode\u003e63c10f5\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 644-using-inlines-in-django-admin-with-guardian\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/b27ebbdcc7f9952d9d9aaaa879b5e202063ccaa8\"\u003e\u003ccode\u003eb27ebbd\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 666-permissionrequiredmixin-does-not-warn-against-us...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/d7ed4a3bccb730d3cdf16fdc404f25b94674c653\"\u003e\u003ccode\u003ed7ed4a3\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 770-migration-rollback-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/03fed6924e06fd13991d9e8ae1b4590addf5473e\"\u003e\u003ccode\u003e03fed69\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/912\"\u003e#912\u003c/a\u003e from django-guardian/pr-907\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-guardian/django-guardian/compare/v2.4.0...3.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-multiselectfield` from 0.1.13 to 1.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/goinnn/django-multiselectfield/releases\"\u003edjango-multiselectfield's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBadge image worked on GitHub but was broken on PyPI — fixed it.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.0\u003c/h2\u003e\n\u003cp\u003eThis release introduces multiple changes that are incompatible with previous versions.\u003c/p\u003e\n\u003cp\u003eThe major version number has been incremented following \u003ccode\u003eSemantic Versioning (SemVer) \u0026lt;https://semver.org/\u0026gt;\u003c/code\u003e_, as several components of the package have changed in ways that may require updates in client code.\u003c/p\u003e\n\u003cp\u003eThe internal codebase has been significantly cleaned up and reorganized, making it more maintainable and consistent.\u003c/p\u003e\n\u003cp\u003eThis version contains \u003cstrong\u003e40% fewer lines of code\u003c/strong\u003e compared to the previous release.\u003c/p\u003e\n\u003cp\u003eLess code means fewer bugs, easier maintenance, and better long-term sustainability.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFList (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\"\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2\u003c/a\u003e):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/50d3f785883e0a314f2dc89950e3fe1e88a7ede6\"\u003e50d3f785883e0a314f2dc89950e3fe1e88a7ede6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIt was created to support MultiSelectFields in admin.list_display, but it never actually worked. If you add a multiselect field to list_display, Django does not call to \u003cstrong\u003estr\u003c/strong\u003e method of MSGList (renamed to MSFList)\u003c/li\u003e\n\u003cli\u003eIt was created for integer choices too and it is a misconception. This is explained in the README file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFFlatchoices (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\"\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2\u003c/a\u003e):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/5638247c1d70670d4f81adf35143ef17a7d7575e\"\u003e5638247c1d70670d4f81adf35143ef17a7d7575e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIn list_display, labels for the choices are now shown (comma-separated) instead of the values of the choices (comma-separated).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn to_python method, value is a list or a string. (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/c4579138dda2833cbce26afbf57da5353aa45690\"\u003ec4579138dda2833cbce26afbf57da5353aa45690\u003c/a\u003e)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove set case and dict case\u003c/li\u003e\n\u003cli\u003eIf this breaks something, please create a test to help understand the use case.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoving integer choices:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIt was a mistake. MultiSelectField inherits of CharField, not IntegerField.\u003c/li\u003e\n\u003cli\u003eIt is impossible knows if original choice is (1, 'Item title 2.1') or ('1', 'Item title 2.1')\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: Form instance generated twice since Django  (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/168\"\u003e#168\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix CSS admin:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/173\"\u003e#173\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/7711f4aa755c81d00f07ce8a6ff0fd9240061f9c\"\u003e7711f4aa755c81d00f07ce8a6ff0fd9240061f9c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix Properly Display Categorized Choices in get_FOO_display (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/169\"\u003e#169\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSortMultiSelectField: (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/172\"\u003e#172\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/goinnn/django-multiselectfield/blob/master/CHANGES.rst\"\u003edjango-multiselectfield's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.0.1 (2025-06-12)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBadge image worked on GitHub but was broken on PyPI — fixed it.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.0.0 (2025-06-12)\u003c/h2\u003e\n\u003cp\u003eThis release introduces multiple changes that are incompatible with previous versions.\u003c/p\u003e\n\u003cp\u003eThe major version number has been incremented following \u003ccode\u003eSemantic Versioning (SemVer) \u0026lt;https://semver.org/\u0026gt;\u003c/code\u003e_, as several components of the package have changed in ways that may require updates in client code.\u003c/p\u003e\n\u003cp\u003eThe internal codebase has been significantly cleaned up and reorganized, making it more maintainable and consistent.\u003c/p\u003e\n\u003cp\u003eThis version contains \u003cstrong\u003e40% fewer lines of code\u003c/strong\u003e compared to the previous release.\u003c/p\u003e\n\u003cp\u003eLess code means fewer bugs, easier maintenance, and better long-term sustainability.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFList (\u003ccode\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\u0026gt;\u003c/code\u003e_):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ccode\u003e50d3f785883e0a314f2dc89950e3fe1e88a7ede6 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/50d3f785883e0a314f2dc89950e3fe1e88a7ede6\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eIt was created to support MultiSelectFields in admin.list_display, but it never actually worked. If you add a multiselect field to list_display, Django does not call to \u003cstrong\u003estr\u003c/strong\u003e method of MSGList (renamed to MSFList)\u003c/li\u003e\n\u003cli\u003eIt was created for integer choices too and it is a misconception. This is explained in the README file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFFlatchoices (\u003ccode\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\u0026gt;\u003c/code\u003e_):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ccode\u003e5638247c1d70670d4f81adf35143ef17a7d7575e \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/5638247c1d70670d4f81adf35143ef17a7d7575e\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eIn list_display, labels for the choices are now shown (comma-separated) instead of the values of the choices (comma-separated).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn to_python method, value is a list or a string. (\u003ccode\u003ec4579138dda2833cbce26afbf57da5353aa45690 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/c4579138dda2833cbce26afbf57da5353aa45690\u0026gt;\u003c/code\u003e_)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove set case and dict case\u003c/li\u003e\n\u003cli\u003eIf this breaks something, please create a test to help understand the use case.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoving integer choices:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIt was a mistake. MultiSelectField inherits of CharField, not IntegerField.\u003c/li\u003e\n\u003cli\u003eIt is impossible knows if original choice is (1, 'Item title 2.1') or ('1', 'Item title 2.1')\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: Form instance generated twice since Django  (\u003ccode\u003e[#168](https://github.com/goinnn/django-multiselectfield/issues/168) \u0026lt;https://github.com/goinnn/django-multiselectfield/pull/168\u0026gt;\u003c/code\u003e_)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix CSS admin:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ccode\u003e[#173](https://github.com/goinnn/django-multiselectfield/issues/173) \u0026lt;https://github.com/goinnn/django-multiselectfield/pull/173\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003e(\u003ccode\u003e7711f4aa755c81d00f07ce8a6ff0fd9240061f9c \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/7711f4aa755c81d00f07ce8a6ff0fd9240061f9c\u0026gt;\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/goinnn/django-multiselectfield/commit/679bac60a5156b26c608972a1b4a576b7010e6c2\"\u003e\u003ccode\u003e679bac6\u003c/code\u003e\u003c/a\u003e Ready to new release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/bef25142b5f266164185ec3de4abdfcf91c3e89d\"\u003e\u003ccode\u003ebef2514\u003c/code\u003e\u003c/a\u003e Ready to new release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/9a564a35581f89c35279ebfa20a2d693b3d23d73\"\u003e\u003ccode\u003e9a564a3\u003c/code\u003e\u003c/a\u003e Add image from github (pypi broken)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/f2b3186c1da7f50abf68b8e11e1d54c2683e2b34\"\u003e\u003ccode\u003ef2b3186\u003c/code\u003e\u003c/a\u003e Fix typo error\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/72894698f191aeddd5364977365c6c2c88a5ac53\"\u003e\u003ccode\u003e7289469\u003c/code\u003e\u003c/a\u003e Fix another pypi error\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/f17a82819157736ff0378f57c8bb114060f4f803\"\u003e\u003ccode\u003ef17a828\u003c/code\u003e\u003c/a\u003e Improve readme file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/d9e2b979f5f37fea812b39a90247e1afd5314415\"\u003e\u003ccode\u003ed9e2b97\u003c/code\u003e\u003c/a\u003e Fix error uploading to pypi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/a387bc619d95a1e61da4ad7e7b0d319429322243\"\u003e\u003ccode\u003ea387bc6\u003c/code\u003e\u003c/a\u003e Ready to new release. The major version number has been incremented because t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/4fc13699678de3bdbe6c7299c6fdbfb901ca08f6\"\u003e\u003ccode\u003e4fc1369\u003c/code\u003e\u003c/a\u003e If the choices are Proxy str (i18n) patched_display_for_field gets an error\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/8bafbdbd9db515206b1fef6ec7263d9b485c2c31\"\u003e\u003ccode\u003e8bafbdb\u003c/code\u003e\u003c/a\u003e Add static files to package\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/goinnn/django-multiselectfield/compare/v0.1.13...v1.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-cov` from 6.0.0 to 7.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst\"\u003epytest-cov's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.0.0 (2025-09-09)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped support for subprocesses measurement.\u003c/p\u003e\n\u003cp\u003eIt was a feature added long time ago when coverage lacked a nice way to measure subprocesses created in tests.\nIt relied on a \u003ccode\u003e.pth\u003c/code\u003e file, there was no way to opt-out and it created bad interations\nwith \u003ccode\u003ecoverage's new patch system \u0026lt;https://coverage.readthedocs.io/en/latest/config.html#run-patch\u0026gt;\u003c/code\u003e_ added\nin \u003ccode\u003e7.10 \u0026lt;https://coverage.readthedocs.io/en/7.10.6/changes.html#version-7-10-0-2025-07-24\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003cp\u003eTo migrate to this release you might need to enable the suprocess patch, example for \u003ccode\u003e.coveragerc\u003c/code\u003e:\u003c/p\u003e\n\u003cp\u003e.. code-block:: ini\u003c/p\u003e\n\u003cp\u003e[run]\npatch = subprocess\u003c/p\u003e\n\u003cp\u003eThis release also requires at least coverage 7.10.6.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSwitched packaging to have metadata completely in \u003ccode\u003epyproject.toml\u003c/code\u003e and use \u003ccode\u003ehatchling \u0026lt;https://pypi.org/project/hatchling/\u0026gt;\u003c/code\u003e_ for\nbuilding.\nContributed by Ofek Lev in \u003ccode\u003e[#551](https://github.com/pytest-dev/pytest-cov/issues/551) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/551\u0026gt;\u003c/code\u003e_\nwith some extras in \u003ccode\u003e[#716](https://github.com/pytest-dev/pytest-cov/issues/716) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/716\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved some not really necessary testing deps like \u003ccode\u003esix\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.3.0 (2025-09-06)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for markdown reports.\nContributed by Marcos Boger in \u003ccode\u003e[#712](https://github.com/pytest-dev/pytest-cov/issues/712) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/712\u0026gt;\u003c/code\u003e_\nand \u003ccode\u003e[#714](https://github.com/pytest-dev/pytest-cov/issues/714) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/714\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eFixed some formatting issues in docs.\nAnonymous contribution in \u003ccode\u003e[#706](https://github.com/pytest-dev/pytest-cov/issues/706) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/706\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.2.1 (2025-06-12)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a version requirement for pytest's pluggy dependency (1.2.0, released 2023-06-21) that has the required new-style hookwrapper API.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved deprecated license classifier (packaging).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDisabled coverage warnings in two more situations where they have no value:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u0026quot;module-not-measured\u0026quot; in workers\u003c/li\u003e\n\u003cli\u003e\u0026quot;already-imported\u0026quot; in subprocesses\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.2.0 (2025-06-11)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eThe plugin now adds 3 rules in the filter warnings configuration to prevent common coverage warnings being raised as obscure errors::\u003c/p\u003e\n\u003cp\u003edefault:unclosed database in \u0026lt;sqlite3.Connection object at:ResourceWarning\nonce::PytestCovWarning\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/pytest-dev/pytest-cov/commit/224d8964caad90074a8cf6dc8720b8f70f31629b\"\u003e\u003ccode\u003e224d896\u003c/code\u003e\u003c/a\u003e Bump version: 6.3.0 → 7.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/73424e3999f865eac72e27f09d5fe11b9703cfd6\"\u003e\u003ccode\u003e73424e3\u003c/code\u003e\u003c/a\u003e Cleanup the docs a bit.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/36f1cc2967831dbd4c8aa70086fc86dc495f8b9a\"\u003e\u003ccode\u003e36f1cc2\u003c/code\u003e\u003c/a\u003e Bump pins in template.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/f299c590a63a48e51e3ae949993dc7bb1f1d480d\"\u003e\u003ccode\u003ef299c59\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 2 updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/25f0b2e0cdbc345c0d3e49170f7a328c3e0d805f\"\u003e\u003ccode\u003e25f0b2e\u003c/code\u003e\u003c/a\u003e Update docs/config.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/bb23eacc5531fb8f499213d8420407e0d72f88e3\"\u003e\u003ccode\u003ebb23eac\u003c/code\u003e\u003c/a\u003e Improve configuration docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/a19531e91e1ab753ccf648a2d9bab08a6fddebb9\"\u003e\u003ccode\u003ea19531e\u003c/code\u003e\u003c/a\u003e Switch from build/pre-commit to uv/prek - this should make this faster.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/82f999391073f2fb8ae422af452602f310086a2a\"\u003e\u003ccode\u003e82f9993\u003c/code\u003e\u003c/a\u003e Update changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/211b5cd41c29916bc643b4a11b00578ba4fd6fe8\"\u003e\u003ccode\u003e211b5cd\u003c/code\u003e\u003c/a\u003e Fix links.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/97aadd74bcbc00a2078d240e8fe871dd62b83d80\"\u003e\u003ccode\u003e97aadd7\u003c/code\u003e\u003c/a\u003e Update some ci config, reformat and apply some lint fixes.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-cov/compare/v6.0.0...v7.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-rerunfailures` from 15.0 to 16.0.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/blob/master/CHANGES.rst\"\u003epytest-rerunfailures's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e16.0.1 (2025-09-02)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReverted the ability to access error attributes because of an incompatibility\nwith \u003ccode\u003epytest-xdist \u0026lt;https://github.com/pytest-dev/pytest-xdist/issues/843\u0026gt;\u003c/code\u003e\u003cem\u003e.\nFixes \u003ccode\u003e[#302](https://github.com/pytest-dev/pytest-rerunfailures/issues/302) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/302\u0026gt;\u003c/code\u003e\u003c/em\u003e,\n\u003ccode\u003e[#303](https://github.com/pytest-dev/pytest-rerunfailures/issues/303) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/303\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e16.0 (2025-08-29)\u003c/h2\u003e\n\u003cp\u003eBreaking changes\n++++++++++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for pytest \u0026lt; 8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFeatures\n++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd support for pytest 8.4.x.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd support for upcoming Python 3.14.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow \u003ccode\u003e@pytest.mark.flaky(condition)\u003c/code\u003e to accept a callable or a string\nto be evaluated. The evaluated string has access to the exception instance\nvia the \u003ccode\u003eerror\u003c/code\u003e object.\n(\u003ccode\u003e[#230](https://github.com/pytest-dev/pytest-rerunfailures/issues/230) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/230\u0026gt;\u003c/code\u003e_)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e15.1 (2025-05-08)\u003c/h2\u003e\n\u003cp\u003eBug fixes\n+++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003e--fail-on-flaky\u003c/code\u003e option to fail the test run with custom exit code\nonly when reruns are detected.\n(\u003ccode\u003e[#287](https://github.com/pytest-dev/pytest-rerunfailures/issues/287) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/287\u0026gt;\u003c/code\u003e_)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSwitched to using the SPDX license identifier in the project metadata.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eOther changes\n+++++++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eChange exception filtering logic to match \u003ccode\u003eAssertionError\u003c/code\u003e raised via\n\u003ccode\u003eassert\u003c/code\u003e statements when filtering by \u0026quot;AssertionError\u0026quot;.\n(\u003ccode\u003e[#292](https://github.com/pytest-dev/pytest-rerunfailures/issues/292) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/292\u0026gt;\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/pytest-dev/pytest-rerunfailures/commit/f97618f95c630af28bbecacc83fc8715146bfa57\"\u003e\u003ccode\u003ef97618f\u003c/code\u003e\u003c/a\u003e Preparing release 16.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/c60d17dee372d5ad935d6da35c6e13ba2d34018d\"\u003e\u003ccode\u003ec60d17d\u003c/code\u003e\u003c/a\u003e Prepare release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/91b0b043f3923b429dd9573536eeebc20dbe8996\"\u003e\u003ccode\u003e91b0b04\u003c/code\u003e\u003c/a\u003e Make \u003ccode\u003epytest-xdist\u003c/code\u003e happy again (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/304\"\u003e#304\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/010a2c2904755e66a2271bc15ff268e628923ec1\"\u003e\u003ccode\u003e010a2c2\u003c/code\u003e\u003c/a\u003e Back to development: 16.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/34a87e464a5228a5fd416102702c6b3b3b463b9b\"\u003e\u003ccode\u003e34a87e4\u003c/code\u003e\u003c/a\u003e Preparing release 16.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/9a889596964101fbd92d3a2aecb6af5e37506550\"\u003e\u003ccode\u003e9a88959\u003c/code\u003e\u003c/a\u003e Add support for Python 3.14 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/301\"\u003e#301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/5dc2e6e0b3dc7efe611a541c56a38bc09f5428d7\"\u003e\u003ccode\u003e5dc2e6e\u003c/code\u003e\u003c/a\u003e Remove outdated fixtures description in README (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/291\"\u003e#291\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/da8ea4861012a7d980c5153bff0f196b523c734f\"\u003e\u003ccode\u003eda8ea48\u003c/code\u003e\u003c/a\u003e Drop support for pytest \u0026lt; 8, add support for pytest 8.4.x. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/300\"\u003e#300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/72f29f34abc55a5eb1694d48f2302c00b991cddb\"\u003e\u003ccode\u003e72f29f3\u003c/code\u003e\u003c/a\u003e Add Priority to README (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/296\"\u003e#296\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/bd8cb4d92025f228b84cd87d6f6e5a1687b927ef\"\u003e\u003ccode\u003ebd8cb4d\u003c/code\u003e\u003c/a\u003e Allow to pass a callable condition to the \u003ccode\u003eflaky\u003c/code\u003e marker (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/299\"\u003e#299\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/compare/15.0...16.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `types-setuptools` from 75.8.2.20250301 to 80.9.0.20250822\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/typeshed-internal/stub_uploader/commits\"\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/mooncitydev/paperless-ngx/pull/74","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/mooncitydev%2Fpaperless-ngx/issues/74","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/74/packages"}},{"old_version":"12.0","new_version":"16.0.1","update_type":null,"path":null,"pr_created_at":"2025-09-22T15:55:50.000Z","version_change":"12.0 → 16.0.1","issue":{"uuid":"3441650328","node_id":"PR_kwDOKoYLLM6p4T-h","number":170,"state":"open","title":"Bump the major-versions group across 1 directory with 16 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":"NONE","state_reason":null,"created_at":"2025-09-22T15:55:50.000Z","updated_at":"2025-09-29T16:21:16.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"major-versions","update_count":16,"packages":[{"name":"django","old_version":"4.2.6","new_version":"4.2.24"},{"name":"django-guardian","old_version":"2.4.0","new_version":"3.2.0","repository_url":"https://github.com/django-guardian/django-guardian"},{"name":"django-extensions","old_version":"3.2.3","new_version":"4.1","repository_url":"https://github.com/django-extensions/django-extensions"},{"name":"django-filter","old_version":"23.3","new_version":"25.1","repository_url":"https://github.com/carltongibson/django-filter"},{"name":"gunicorn","old_version":"21.2.0","new_version":"23.0.0","repository_url":"https://github.com/benoitc/gunicorn"},{"name":"python-ipware","old_version":"2.0.0","new_version":"3.0.0","repository_url":"https://github.com/un33k/python-ipware"},{"name":"redis","old_version":"4.6.0","new_version":"5.2.1","repository_url":"https://github.com/redis/redis-py"},{"name":"watchdog","old_version":"3.0.0","new_version":"6.0.0","repository_url":"https://github.com/gorakhargosh/watchdog"},{"name":"ocrmypdf","old_version":"14.4.0","new_version":"15.4.4","repository_url":"https://github.com/ocrmypdf/OCRmyPDF"},{"name":"django-multiselectfield","old_version":"0.1.12","new_version":"1.0.1","repository_url":"https://github.com/goinnn/django-multiselectfield"},{"name":"django-auditlog","old_version":"2.3.0","new_version":"3.2.1","repository_url":"https://github.com/jazzband/django-auditlog"},{"name":"pre-commit","old_version":"3.4.0","new_version":"4.3.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pytest","old_version":"7.4.2","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-cov","old_version":"4.1.0","new_version":"7.0.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"pytest-sugar","old_version":"0.9.7","new_version":"1.1.1","repository_url":"https://github.com/Teemu/pytest-sugar"},{"name":"pytest-rerunfailures","old_version":"12.0","new_version":"16.0.1","repository_url":"https://github.com/pytest-dev/pytest-rerunfailures"}],"path":null,"ecosystem":"conda"},"body":"[//]: # (dependabot-start)\n⚠️  **Dependabot is rebasing this PR** ⚠️ \n\nRebasing might not happen immediately, so don't worry if this takes some time.\n\nNote: if you make any changes to this PR yourself, they will take precedence over the rebase.\n\n---\n\n[//]: # (dependabot-end)\n\nBumps the major-versions group with 16 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| django | `4.2.6` | `4.2.24` |\n| [django-guardian](https://github.com/django-guardian/django-guardian) | `2.4.0` | `3.2.0` |\n| [django-extensions](https://github.com/django-extensions/django-extensions) | `3.2.3` | `4.1` |\n| [django-filter](https://github.com/carltongibson/django-filter) | `23.3` | `25.1` |\n| [gunicorn](https://github.com/benoitc/gunicorn) | `21.2.0` | `23.0.0` |\n| [python-ipware](https://github.com/un33k/python-ipware) | `2.0.0` | `3.0.0` |\n| [redis](https://github.com/redis/redis-py) | `4.6.0` | `5.2.1` |\n| [watchdog](https://github.com/gorakhargosh/watchdog) | `3.0.0` | `6.0.0` |\n| [ocrmypdf](https://github.com/ocrmypdf/OCRmyPDF) | `14.4.0` | `15.4.4` |\n| [django-multiselectfield](https://github.com/goinnn/django-multiselectfield) | `0.1.12` | `1.0.1` |\n| [django-auditlog](https://github.com/jazzband/django-auditlog) | `2.3.0` | `3.2.1` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `3.4.0` | `4.3.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `7.4.2` | `8.4.2` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `4.1.0` | `7.0.0` |\n| [pytest-sugar](https://github.com/Teemu/pytest-sugar) | `0.9.7` | `1.1.1` |\n| [pytest-rerunfailures](https://github.com/pytest-dev/pytest-rerunfailures) | `12.0` | `16.0.1` |\n\n\nUpdates `django` from 4.2.6 to 4.2.24\n\nUpdates `django-guardian` from 2.4.0 to 3.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-guardian/django-guardian/releases\"\u003edjango-guardian's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.2.0 The Bozkir progression\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate enforcement contact link in CODE_OF_CONDUCT.md by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/918\"\u003edjango-guardian/django-guardian#918\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptional cached anonymous user  - Pr 907 by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/912\"\u003edjango-guardian/django-guardian#912\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003egenerator warnings and logics are added for security purposes by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/920\"\u003edjango-guardian/django-guardian#920\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erollback compatible create anon user fix is developed by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/919\"\u003edjango-guardian/django-guardian#919\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e644 using inlines in django admin with guardian by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/921\"\u003edjango-guardian/django-guardian#921\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-guardian/django-guardian/compare/3.1.3...3.2.0\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.3...3.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.1.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edjango-packages badge is added by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/910\"\u003edjango-guardian/django-guardian#910\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate issue templates by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/909\"\u003edjango-guardian/django-guardian#909\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMakefile support by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/906\"\u003edjango-guardian/django-guardian#906\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePR merging scenario is fixed by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/913\"\u003edjango-guardian/django-guardian#913\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed issue causing prefetch_perms() to throw when passed an empty list by \u003ca href=\"https://github.com/keattang\"\u003e\u003ccode\u003e@​keattang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/904\"\u003edjango-guardian/django-guardian#904\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRe apply \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/812\"\u003e#812\u003c/a\u003e using correct lookup method by \u003ca href=\"https://github.com/sevdog\"\u003e\u003ccode\u003e@​sevdog\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/842\"\u003edjango-guardian/django-guardian#842\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOPS: Bump version for release by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/915\"\u003edjango-guardian/django-guardian#915\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-guardian/django-guardian/compare/3.1.2...3.1.3\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.2...3.1.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.1.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.0 in /.github/workflows 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-guardian/django-guardian/pull/903\"\u003edjango-guardian/django-guardian#903\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix type and deprecate old name by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/902\"\u003edjango-guardian/django-guardian#902\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/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/903\"\u003edjango-guardian/django-guardian#903\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-guardian/django-guardian/compare/3.1.1...3.1.2\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.1...3.1.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epre-commit checker step is added by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/901\"\u003edjango-guardian/django-guardian#901\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-guardian/django-guardian/compare/3.1.0...3.1.1\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.0...3.1.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eImproved indexing, tweaks and bugfixes\u003c/h2\u003e\n\u003ch2\u003eSaving the 🌳🌳🌳 and the 💰💰💰\u003c/h2\u003e\n\u003cp\u003e⚠️⚠️⚠️ \u003cstrong\u003eWARNING:\u003c/strong\u003e This release contains an update to database indexing which should yield \u003cstrong\u003econsiderable additional performance\u003c/strong\u003e, especially on large table permissions lookups (thanks \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e for such rigorous performance testing!!!). Following the migration that introduces these indexes, databases should reindex automatically in the background (typically within 0-30s even for large tables): this is unlikely to be noticeable but users may experience a short lived performance hit during this period.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow ignore_conflicts on bulk create by \u003ca href=\"https://github.com/pgiki\"\u003e\u003ccode\u003e@​pgiki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/814\"\u003edjango-guardian/django-guardian#814\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/django-guardian/django-guardian/commit/4120d00c28c1b6d3bacb988f6db86bacf91ed0f1\"\u003e\u003ccode\u003e4120d00\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/921\"\u003e#921\u003c/a\u003e from django-guardian/644-using-inlines-in-django-admi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/c896b220bdf96783f1c25d730f12ebef95758c99\"\u003e\u003ccode\u003ec896b22\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/919\"\u003e#919\u003c/a\u003e from django-guardian/770-migration-rollback-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/3814e2383c69266350a3d885d445bdd79da8cb78\"\u003e\u003ccode\u003e3814e23\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 770-migration-rollback-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/94854899f4a030b42840837e08b42923a71c5b78\"\u003e\u003ccode\u003e9485489\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/920\"\u003e#920\u003c/a\u003e from django-guardian/666-permissionrequiredmixin-does...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/e01e2e1edeec60b2c79d561db56e0949ea3c4dad\"\u003e\u003ccode\u003ee01e2e1\u003c/code\u003e\u003c/a\u003e check only username field fixing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/e1ae3c5a7ab74a679ef1ccff2a480a88117df464\"\u003e\u003ccode\u003ee1ae3c5\u003c/code\u003e\u003c/a\u003e show warning instead of error for backward compatibility and giving time the ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/63c10f549dfe2b5ba67e9eec36095cf3e6a2bab8\"\u003e\u003ccode\u003e63c10f5\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 644-using-inlines-in-django-admin-with-guardian\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/b27ebbdcc7f9952d9d9aaaa879b5e202063ccaa8\"\u003e\u003ccode\u003eb27ebbd\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 666-permissionrequiredmixin-does-not-warn-against-us...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/d7ed4a3bccb730d3cdf16fdc404f25b94674c653\"\u003e\u003ccode\u003ed7ed4a3\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 770-migration-rollback-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/03fed6924e06fd13991d9e8ae1b4590addf5473e\"\u003e\u003ccode\u003e03fed69\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/912\"\u003e#912\u003c/a\u003e from django-guardian/pr-907\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-guardian/django-guardian/compare/v2.4.0...3.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-extensions` from 3.2.3 to 4.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-extensions/django-extensions/releases\"\u003edjango-extensions's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd: show_permissions command (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1920\"\u003e#1920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, style per app (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1848\"\u003e#1848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: JSONField, bulk_update's (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1924\"\u003e#1924\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/ahmad88me\"\u003e\u003ccode\u003e@​ahmad88me\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1848\"\u003edjango-extensions/django-extensions#1848\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-extensions/django-extensions/compare/4.0...4.1\"\u003ehttps://github.com/django-extensions/django-extensions/compare/4.0...4.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprovement: Support for Python 3.12 and 3.13\u003c/li\u003e\n\u003cli\u003eImprovement: Support for Django 5.x\u003c/li\u003e\n\u003cli\u003eImprovement: Switch from setup.{cfg,py} to pyproject.toml\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Add option to display field choices in graph_models (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1854\"\u003e#1854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Add webp support (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1857\"\u003e#1857\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Support for ordering edges on pydot/dot/graphviz (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1914\"\u003e#1914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: mail_debug, Update mail_debug command to use aiosmtpd (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1880\"\u003e#1880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: shell_plus, Improve error message for missing import (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1898\"\u003e#1898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: reset_db, Add reset_db support for django_tenants (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1855\"\u003e#1855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: docs, various improvements (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1852\"\u003e#1852\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1888\"\u003e#1888\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1882\"\u003e#1882\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1901\"\u003e#1901\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1912\"\u003e#1912\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1913\"\u003e#1913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: jobs, Handle non-package modules when looking for job definitions (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1887\"\u003e#1887\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: Add django-prometheus DB backends support (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1800\"\u003e#1800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: Call post_command when the command raises an unhandled exception (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1837\"\u003e#1837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: sqldiff, do not consider ('serial', 'integer') nor ('bigserial', 'bigint') as a field-type-differ (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1867\"\u003e#1867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: shell_plus, Fix start up order and add history (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1869\"\u003e#1869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove pipchecker and associated tests (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1906\"\u003e#1906\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFollowing Django's release numbering style more closely (see \u003ca href=\"https://docs.djangoproject.com/en/5.2/internals/release-process/\"\u003ehttps://docs.djangoproject.com/en/5.2/internals/release-process/\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/dimitrismistriotis\"\u003e\u003ccode\u003e@​dimitrismistriotis\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1859\"\u003edjango-extensions/django-extensions#1859\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/titouanc\"\u003e\u003ccode\u003e@​titouanc\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1854\"\u003edjango-extensions/django-extensions#1854\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dmwyatt\"\u003e\u003ccode\u003e@​dmwyatt\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1872\"\u003edjango-extensions/django-extensions#1872\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stianjensen\"\u003e\u003ccode\u003e@​stianjensen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1898\"\u003edjango-extensions/django-extensions#1898\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PapaZ810\"\u003e\u003ccode\u003e@​PapaZ810\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1888\"\u003edjango-extensions/django-extensions#1888\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kviktor\"\u003e\u003ccode\u003e@​kviktor\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1857\"\u003edjango-extensions/django-extensions#1857\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aripollak\"\u003e\u003ccode\u003e@​aripollak\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1913\"\u003edjango-extensions/django-extensions#1913\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/flowgunso\"\u003e\u003ccode\u003e@​flowgunso\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1914\"\u003edjango-extensions/django-extensions#1914\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anitahammer\"\u003e\u003ccode\u003e@​anitahammer\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1869\"\u003edjango-extensions/django-extensions#1869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nicolaspanel\"\u003e\u003ccode\u003e@​nicolaspanel\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1867\"\u003edjango-extensions/django-extensions#1867\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yujinyuz\"\u003e\u003ccode\u003e@​yujinyuz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1855\"\u003edjango-extensions/django-extensions#1855\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/soof-golan\"\u003e\u003ccode\u003e@​soof-golan\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1852\"\u003edjango-extensions/django-extensions#1852\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ghickman\"\u003e\u003ccode\u003e@​ghickman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1887\"\u003edjango-extensions/django-extensions#1887\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jrobichaud\"\u003e\u003ccode\u003e@​jrobichaud\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1837\"\u003edjango-extensions/django-extensions#1837\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-extensions/django-extensions/compare/3.2.3...4.0\"\u003ehttps://github.com/django-extensions/django-extensions/compare/3.2.3...4.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.2.4b1\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-extensions/django-extensions/blob/main/CHANGELOG.md\"\u003edjango-extensions's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.1\u003c/h2\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd: show_permissions command (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1920\"\u003e#1920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, style per app (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1848\"\u003e#1848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: JSONField, bulk_update's (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1924\"\u003e#1924\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.0\u003c/h2\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eImprovement: Support for Python 3.12 and 3.13\u003c/li\u003e\n\u003cli\u003eImprovement: Support for Django 5.x\u003c/li\u003e\n\u003cli\u003eImprovement: Switch from setup.{cfg,py} to pyproject.toml\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Add option to display field choices in graph_models (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1854\"\u003e#1854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Add webp support (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1857\"\u003e#1857\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Support for ordering edges on pydot/dot/graphviz (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1914\"\u003e#1914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: mail_debug, Update mail_debug command to use aiosmtpd (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1880\"\u003e#1880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: shell_plus, Improve error message for missing import (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1898\"\u003e#1898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: reset_db, Add reset_db support for django_tenants (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1855\"\u003e#1855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: docs, various improvements (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1852\"\u003e#1852\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1888\"\u003e#1888\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1882\"\u003e#1882\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1901\"\u003e#1901\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1912\"\u003e#1912\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1913\"\u003e#1913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: jobs, Handle non-package modules when looking for job definitions (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1887\"\u003e#1887\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: Add django-prometheus DB backends support (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1800\"\u003e#1800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: Call post_command when the command raises an unhandled exception (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1837\"\u003e#1837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: sqldiff, do not consider ('serial', 'integer') nor ('bigserial', 'bigint') as a \u003ccode\u003efield-type-differ\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1867\"\u003e#1867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: shell_plus, Fix start up order and add history (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1869\"\u003e#1869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove pipchecker and associated tests (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1906\"\u003e#1906\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFollowing Django's release numbering style more closely (see \u003ca href=\"https://docs.djangoproject.com/en/5.2/internals/release-process/\"\u003ehttps://docs.djangoproject.com/en/5.2/internals/release-process/\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-extensions/django-extensions/commit/ad015513e5d8e8ee6ad748fca5f32ccf3fb3d5c5\"\u003e\u003ccode\u003ead01551\u003c/code\u003e\u003c/a\u003e v4.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/2c3e914f1264c0a029b3b47b7425d0f68ce637ed\"\u003e\u003ccode\u003e2c3e914\u003c/code\u003e\u003c/a\u003e update CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/fb5b2af1b6595ee126237c299acf242fcfee817e\"\u003e\u003ccode\u003efb5b2af\u003c/code\u003e\u003c/a\u003e ruff format\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/7e978d27b031843640f9204ff495738c46233d7f\"\u003e\u003ccode\u003e7e978d2\u003c/code\u003e\u003c/a\u003e graph_models style per app (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1848\"\u003e#1848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/067064ea0c6dec7cba1583447fe5fe1c706d5351\"\u003e\u003ccode\u003e067064e\u003c/code\u003e\u003c/a\u003e avoid trying to serialize expressions when serializing default values\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/a886068502474e70a2d68ff4634a15cc3366088d\"\u003e\u003ccode\u003ea886068\u003c/code\u003e\u003c/a\u003e update CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/d824501cbc6d04a24a43ff5756b496f84093b225\"\u003e\u003ccode\u003ed824501\u003c/code\u003e\u003c/a\u003e Add show_permissions management command (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1920\"\u003e#1920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/934f93f53bdf6c6271ae1ddaee71bc9bf3364a0e\"\u003e\u003ccode\u003e934f93f\u003c/code\u003e\u003c/a\u003e bumped version number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/c4577df5b69ec1ebcbe6bc64d7a5c20362f3a8fa\"\u003e\u003ccode\u003ec4577df\u003c/code\u003e\u003c/a\u003e v4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/7cdb43ab56a3b610b47680d8a2fe86b09d5913aa\"\u003e\u003ccode\u003e7cdb43a\u003c/code\u003e\u003c/a\u003e pyproject formatting\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-extensions/django-extensions/compare/3.2.3...4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-filter` from 23.3 to 25.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/carltongibson/django-filter/blob/main/CHANGES.rst\"\u003edjango-filter's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 25.1 (2025-02-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved the in-built API schema generation methods, which have been\ndeprecated since v23.2.\u003c/p\u003e\n\u003cp\u003eYou should use \u003ccode\u003edrf-spectacular \u0026lt;https://drf-spectacular.readthedocs.io/en/latest/\u0026gt;\u003c/code\u003e_\nfor generating OpenAPI schemas with DRF.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped support for EOL Python 3.8.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded testing against Python 3.13.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded official support for Django 5.2.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 24.3 (2024-08-02)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdds official support for Django 5.1.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow using dictionaries for grouped choices on Django 5.0+.\u003c/p\u003e\n\u003cp\u003eThanks to Sævar Öfjörð Magnússon.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdds \u003ccode\u003eunknown_field_behavior\u003c/code\u003e FilterSet option to allowing warning and\nignore behaviours for unknown field types during FilterSet generation.\u003c/p\u003e\n\u003cp\u003eThanks to Loes.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 24.2 (2024-03-27)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed a regression in v23.4 where callable choices were incorrectly evaluated\nat filter instantiation, on Django versions prior to 5.0.\u003c/p\u003e\n\u003cp\u003eThanks to Craig de Stigter for the report and reproduce.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 24.1 (2024-03-08)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated supported Python and Django versions, and resolved upcoming Django\ndeprecations.\u003c/p\u003e\n\u003cp\u003eRequired versions are now at least Python 3.8 and Django 4.2.\u003c/p\u003e\n\u003cp\u003eThanks to Michael Manganiello.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllowed passing a FilterSet class to the filterset_factory().\u003c/p\u003e\n\u003cp\u003eThanks to Birger Schacht.\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/carltongibson/django-filter/commit/27dd67284405ee832701509b3515baa50c6e074d\"\u003e\u003ccode\u003e27dd672\u003c/code\u003e\u003c/a\u003e Updated Change notes for 25.1 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/2ea38174b010f378a9b57d90c566c2bab7b37bbb\"\u003e\u003ccode\u003e2ea3817\u003c/code\u003e\u003c/a\u003e Added Trove classifier for Django 5.2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/4d2306c211c1d86f85f04fb311b8b05bfefb08a8\"\u003e\u003ccode\u003e4d2306c\u003c/code\u003e\u003c/a\u003e Replaced hardcoded pks in tests (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1703\"\u003e#1703\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/fbf5a76a4d97480d78779397b90d34fa8f13d141\"\u003e\u003ccode\u003efbf5a76\u003c/code\u003e\u003c/a\u003e Update tox after Django 5.2 alpha release. (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1700\"\u003e#1700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/1e76d6859e109ae34d5e2a657c66146a9d744c80\"\u003e\u003ccode\u003e1e76d68\u003c/code\u003e\u003c/a\u003e Use QueryDict for data default. (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1691\"\u003e#1691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/e709e5d43a4ad8b8e8ea62520669b88300c9c686\"\u003e\u003ccode\u003ee709e5d\u003c/code\u003e\u003c/a\u003e Add testing against Python 3.13.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/ccde000dfe74362b62301b248681e9505133e821\"\u003e\u003ccode\u003eccde000\u003c/code\u003e\u003c/a\u003e Dropped support for EOL Python 3.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/2a644e176634ec0ce99d9446d980501e9763e194\"\u003e\u003ccode\u003e2a644e1\u003c/code\u003e\u003c/a\u003e Removed deprecated schema generation methods from DRF backend. (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1698\"\u003e#1698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/2494df96c6387a9fa411fcb00b696b15dfd9216b\"\u003e\u003ccode\u003e2494df9\u003c/code\u003e\u003c/a\u003e fix typo in filterset.txt (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1695\"\u003e#1695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/3656174bd90d20f3d916fd98b6476c270013b681\"\u003e\u003ccode\u003e3656174\u003c/code\u003e\u003c/a\u003e Translated using Weblate (Czech) (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1687\"\u003e#1687\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/carltongibson/django-filter/compare/23.3...25.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gunicorn` from 21.2.0 to 23.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\u003e23.0.0\u003c/h2\u003e\n\u003cp\u003eGunicorn 23.0.0 has been released. This version improve HTTP 1.1. support and  which improve safety\u003c/p\u003e\n\u003cp\u003eYou're invited to upgrade asap your own installation.\u003c/p\u003e\n\u003ch1\u003e23.0.0 - 2024-08-10\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eminor docs fixes (:pr:\u003ccode\u003e3217\u003c/code\u003e, :pr:\u003ccode\u003e3089\u003c/code\u003e, :pr:\u003ccode\u003e3167\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eworker_class parameter accepts a class (:pr:\u003ccode\u003e3079\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003efix deadlock if request terminated during chunked parsing (:pr:\u003ccode\u003e2688\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003epermit receiving Transfer-Encodings: compress, deflate, gzip (:pr:\u003ccode\u003e3261\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003epermit Transfer-Encoding headers specifying multiple encodings. note: no parameters, still (:pr:\u003ccode\u003e3261\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003esdist generation now explicitly excludes sphinx build folder (:pr:\u003ccode\u003e3257\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003edecode bytes-typed status (as can be passed by gevent) as utf-8 instead of raising \u003ccode\u003eTypeError\u003c/code\u003e (:pr:\u003ccode\u003e2336\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eraise correct Exception when encounting invalid chunked requests (:pr:\u003ccode\u003e3258\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ethe SCRIPT_NAME and PATH_INFO headers, when received from allowed forwarders, are no longer restricted for containing an underscore (:pr:\u003ccode\u003e3192\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003einclude IPv6 loopback address \u003ccode\u003e[::1]\u003c/code\u003e in default for :ref:\u003ccode\u003eforwarded-allow-ips\u003c/code\u003e and :ref:\u003ccode\u003eproxy-allow-ips\u003c/code\u003e (:pr:\u003ccode\u003e3192\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e** NOTE **\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SCRIPT_NAME change mitigates a regression that appeared first in the 22.0.0 release\u003c/li\u003e\n\u003cli\u003eReview your :ref:\u003ccode\u003eforwarded-allow-ips\u003c/code\u003e setting if you are still not seeing the SCRIPT_NAME transmitted\u003c/li\u003e\n\u003cli\u003eReview your :ref:\u003ccode\u003eforwarder-headers\u003c/code\u003e setting if you are missing headers after upgrading from a version prior to 22.0.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e** Breaking changes **\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003erefuse requests where the uri field is empty (:pr:\u003ccode\u003e3255\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003erefuse requests with invalid CR/LR/NUL in heade field values (:pr:\u003ccode\u003e3253\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eremove temporary \u003ccode\u003e--tolerate-dangerous-framing\u003c/code\u003e switch from 22.0 (:pr:\u003ccode\u003e3260\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eIf any of the breaking changes affect you, be aware that now refused requests can post a security problem, especially so in setups involving request pipe-lining and/or proxies.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFix CVE-2024-1135\u003c/p\u003e\n\u003ch2\u003eGunicorn 22.0 has been released\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eGunicorn 22.0.0 has been released.\u003c/strong\u003e This version fix the numerous security vulnerabilities. You're invited to upgrade asap your own installation.\u003c/p\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e22.0.0 - 2024-04-17\n===================\n\u003cul\u003e\n\u003cli\u003euse \u003ccode\u003eutime\u003c/code\u003e to notify workers liveness\u003c/li\u003e\n\u003cli\u003emigrate setup to pyproject.toml\u003c/li\u003e\n\u003cli\u003efix numerous security vulnerabilities in HTTP parser (closing some request smuggling vectors)\u003c/li\u003e\n\u003cli\u003eparsing additional requests is no longer attempted past unsupported request framing\u003c/li\u003e\n\u003cli\u003eon HTTP versions \u0026lt; 1.1 support for chunked transfer is refused (only used in exploits)\u003c/li\u003e\n\u003cli\u003erequests conflicting configured or passed SCRIPT_NAME now produce a verbose error\u003c/li\u003e\n\u003cli\u003eTrailer fields are no longer inspected for headers indicating secure scheme\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/li\u003e\n\u003c/ul\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/411986d6191114dd1d1bbb9c72c948dbf0ef0425\"\u003e\u003ccode\u003e411986d\u003c/code\u003e\u003c/a\u003e fix doc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/334392e7795f2017e83f7054d372422512d6f4b6\"\u003e\u003ccode\u003e334392e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/2559\"\u003e#2559\u003c/a\u003e from laggardkernel/bugfix/reexec-env\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/e75c3533e32f91a9dceba9e8e1341fea5540ba81\"\u003e\u003ccode\u003ee75c353\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3189\"\u003e#3189\u003c/a\u003e from pajod/patch-py36\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/9357b28dd867950e33ca3864207cb35a1eb8ba6f\"\u003e\u003ccode\u003e9357b28\u003c/code\u003e\u003c/a\u003e keep document user in access_log_format setting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/79fdef0822cbfe7e16b659b07230af9be098d5fc\"\u003e\u003ccode\u003e79fdef0\u003c/code\u003e\u003c/a\u003e bump to 23.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/3acd9fbfd1159ca3cd80a8052ada89a0bf27f806\"\u003e\u003ccode\u003e3acd9fb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/2620\"\u003e#2620\u003c/a\u003e from talkerbox/improve-access-log-format-docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/3f56d76548e4ade034bf5e174737902970285d1f\"\u003e\u003ccode\u003e3f56d76\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3192\"\u003e#3192\u003c/a\u003e from pajod/patch-allowed-script-name\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/256d474a7910bd605f2cc8c082b79c1ae55215a9\"\u003e\u003ccode\u003e256d474\u003c/code\u003e\u003c/a\u003e docs: revert duped directive\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/ffa48b581dcaa75f17fd2df263515e4266feeef6\"\u003e\u003ccode\u003effa48b5\u003c/code\u003e\u003c/a\u003e test: default change was intentional\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/52538ca9070b5e7ead5d0fa731e82a622dc6f3ee\"\u003e\u003ccode\u003e52538ca\u003c/code\u003e\u003c/a\u003e docs: recommend SCRIPT_NAME=/subfolder\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/benoitc/gunicorn/compare/21.2.0...23.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-ipware` from 2.0.0 to 3.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/un33k/python-ipware/blob/main/CHANGELOG.md\"\u003epython-ipware's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.0.0\u003c/h2\u003e\n\u003cp\u003eFix:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRelease major version, as there is a possibility of api change causing minimal backward incompatibly\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.5\u003c/h2\u003e\n\u003cp\u003eEnhance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAI assisted clean up\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.4\u003c/h2\u003e\n\u003cp\u003eEnhance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eproxy_count=0\u003c/code\u003e as an option (\u003ca href=\"https://github.com/FraKraBa\"\u003e\u003ccode\u003e@​FraKraBa\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.3\u003c/h2\u003e\n\u003cp\u003eEnhance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eHTTP_CF_CONNECTING_IP\u003c/code\u003e to list of known ip headers (Adam M.)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.2\u003c/h2\u003e\n\u003cp\u003eEnhance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded logger name\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.1\u003c/h2\u003e\n\u003cp\u003eIssue:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003eHTTP_VIA\u003c/code\u003e header support (unreliable IP information) (\u003ca href=\"https://github.com/yourcelf\"\u003e\u003ccode\u003e@​yourcelf\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eEnhance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eInclude support for python 3.12\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/un33k/python-ipware/commit/cab810ced72457abcc77ffd234be9cb0a75f7ec3\"\u003e\u003ccode\u003ecab810c\u003c/code\u003e\u003c/a\u003e version 3 major (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/21\"\u003e#21\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/5d01f1e6662f3de861d44006247fd5f0a3ae4a0b\"\u003e\u003ccode\u003e5d01f1e\u003c/code\u003e\u003c/a\u003e Feat/enhance (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/20\"\u003e#20\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/bd56bcd1d4ed2d2bbd690059e5a231d6b51bcd31\"\u003e\u003ccode\u003ebd56bcd\u003c/code\u003e\u003c/a\u003e Allow for proxy_count of exact 0 (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/19\"\u003e#19\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/ddfde3c6d4dee387a59287a2c0afc933f9773791\"\u003e\u003ccode\u003eddfde3c\u003c/code\u003e\u003c/a\u003e Update Readme (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/17\"\u003e#17\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/aab321baf9958ae128460c2279364926f6612dca\"\u003e\u003ccode\u003eaab321b\u003c/code\u003e\u003c/a\u003e Add HTTP_CF_CONNECTING_IP to ip Header list (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/16\"\u003e#16\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/e908cc321dc61e203033768f8d1072efc71f4556\"\u003e\u003ccode\u003ee908cc3\u003c/code\u003e\u003c/a\u003e Added logger name (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/15\"\u003e#15\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/ad1f01783279ecd8dfff91b3db8558f92b5bde0b\"\u003e\u003ccode\u003ead1f017\u003c/code\u003e\u003c/a\u003e Remove HTTP_VIA support, support for 3.12 (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/14\"\u003e#14\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/un33k/python-ipware/compare/v2.0.0...v3.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `redis` from 4.6.0 to 5.2.1\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\u003e5.2.1\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed unsecured tempfile.mktemp() command usage (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3446\"\u003e#3446\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed bug with SLOWLOG GET response parsing on Redis Software (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3441\"\u003e#3441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed issue with invoking _close() on closed event loop (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3438\"\u003e#3438\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMigrate test infrastructure to new custom docker images (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3415\"\u003e#3415\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed flacky test with HEXPIREAT command (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3437\"\u003e#3437\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\u003cp\u003e\u003ca href=\"https://github.com/IlianIliev\"\u003e\u003ccode\u003e@​IlianIliev\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/uglide\"\u003e\u003ccode\u003e@​uglide\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/teodorfn\"\u003e\u003ccode\u003e@​teodorfn\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.2.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e🚀 New Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExtend AggregateRequest with scorer argument (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3409\"\u003e#3409\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePin pytest-profiling version due to the bug (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3417\"\u003e#3417\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\u003cp\u003e\u003ca href=\"https://github.com/uglide\"\u003e\u003ccode\u003e@​uglide\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/rbs333\"\u003e\u003ccode\u003e@​rbs333\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/dwdougherty\"\u003e\u003ccode\u003e@​dwdougherty\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.1.1\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e5.1.1\u003c/h2\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed return type for Redis Set commands to be Set instead of List (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3399\"\u003e#3399\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed bug with partial Hiredis availability (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3400\"\u003e#3400\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed bug with async pipeline and cluster fails with some commands (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3402\"\u003e#3402\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.1.0\u003c/h2\u003e\n\u003ch3\u003e🚀 New Features\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\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/a74fa6a3dc1996ff256d5b1849c3018a7ac05c99\"\u003e\u003ccode\u003ea74fa6a\u003c/code\u003e\u003c/a\u003e Release 5.2.1 (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3451\"\u003e#3451\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/166ae7bfd79a88cdfbd7959b2c28cd79aa0eaf0c\"\u003e\u003ccode\u003e166ae7b\u003c/code\u003e\u003c/a\u003e Updated package version (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3418\"\u003e#3418\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/00f5be420b397adfa1b9aa9c2761f7d8a27c0a9a\"\u003e\u003ccode\u003e00f5be4\u003c/code\u003e\u003c/a\u003e adds scorer to AggregateRequest (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3409\"\u003e#3409\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/4c4d4afd2b31b5c36a2d5e22419bcbf584265a17\"\u003e\u003ccode\u003e4c4d4af\u003c/code\u003e\u003c/a\u003e Pin pytest-profiling (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3417\"\u003e#3417\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/d6ddb0d66bc4bd28c99d9cf148c9085117cc8ce9\"\u003e\u003ccode\u003ed6ddb0d\u003c/code\u003e\u003c/a\u003e DOC-4199: add TCEs to the combined query page (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3380\"\u003e#3380\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/17db62e3c9ea796f5705d2857f49e52799057af7\"\u003e\u003ccode\u003e17db62e\u003c/code\u003e\u003c/a\u003e DOC-4200: add TCEs to the aggregation query page (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3381\"\u003e#3381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/700045c7a7db6d986df6610d61239375a2211053\"\u003e\u003ccode\u003e700045c\u003c/code\u003e\u003c/a\u003e Backport 5.1 changes into master (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3406\"\u003e#3406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/2e46613dcdf9db7f948f3258fee1c9199da8cbfa\"\u003e\u003ccode\u003e2e46613\u003c/code\u003e\u003c/a\u003e Client side caching refactoring (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3350\"\u003e#3350\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/7d73d742d6df4b3d6f6a1f0ec73e72d4a02add74\"\u003e\u003ccode\u003e7d73d74\u003c/code\u003e\u003c/a\u003e DOC-4197: add TCEs to the geospatial query page (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3378\"\u003e#3378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/c7483b3d63a2001508a2ff2c9952ad50d9252732\"\u003e\u003ccode\u003ec7483b3\u003c/code\u003e\u003c/a\u003e DOC-4196: add TCEs to the full-text query page (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3377\"\u003e#3377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/redis/redis-py/compare/v4.6.0...v5.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `watchdog` from 3.0.0 to 6.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/gorakhargosh/watchdog/releases\"\u003ewatchdog's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[inotify] Use of \u003ccode\u003eselect.poll()\u003c/code\u003e instead of deprecated \u003ccode\u003eselect.select()\u003c/code\u003e, if available. (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1078\"\u003e#1078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_class()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_instancemethod()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_module()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eis_class_private_name()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eis_classmethod()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eis_method(met()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003emethod_name()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003ename()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Removed the \u003ccode\u003e--trace\u003c/code\u003e CLI argument from the \u003ccode\u003ewatchmedo log\u003c/code\u003e command, useless since events are logged by default at the \u003ccode\u003eLoggerTrick\u003c/code\u003e class level.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePin test dependecies.\u003c/li\u003e\n\u003cli\u003e[docs] Add typing info to quick start. (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1082\"\u003e#1082\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[inotify] Fix reading inotify file descriptor after closing it. (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1081\"\u003e#1081\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[utils] The \u003ccode\u003estop_signal\u003c/code\u003e keyword-argument type of the \u003ccode\u003eAutoRestartTrick\u003c/code\u003e class can now be either a \u003ccode\u003esignal.Signals\u003c/code\u003e or an \u003ccode\u003eint\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e[utils] Added the \u003ccode\u003e__repr__()\u003c/code\u003e method to the \u003ccode\u003eTrick\u003c/code\u003e class.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Fixed Mypy issues.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Added the \u003ccode\u003e__repr__()\u003c/code\u003e method to the \u003ccode\u003eHelpFormatter\u003c/code\u003e class.\u003c/li\u003e\n\u003cli\u003e[windows] Fixed Mypy issues.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e💟 Thanks to our beloved contributors: \u003ca href=\"https://github.com/g-pichler\"\u003e\u003ccode\u003e@​g-pichler\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ethan-vanderheijden\"\u003e\u003ccode\u003e@​ethan-vanderheijden\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/nhairs\"\u003e\u003ccode\u003e@​nhairs\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[inotify] Improve cleaning up \u003ccode\u003eInotify\u003c/code\u003e threads, and add \u003ccode\u003eeventlet\u003c/code\u003e test cases (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1070\"\u003e#1070\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e💟 Thanks to our beloved contributors: \u003ca href=\"https://github.com/ethan-vanderheijden\"\u003e\u003ccode\u003e@​ethan-vanderheijden\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEnable OS specific Mypy checks (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1064\"\u003e#1064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[watchmedo] Fix \u003ccode\u003etricks\u003c/code\u003e argument type of \u003ccode\u003eschedule_tricks()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1063\"\u003e#1063\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e💟 Thanks to our beloved contributors: \u003ca href=\"https://github.com/gnought\"\u003e\u003ccode\u003e@​gnought\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[kqueue] Fix \u003ccode\u003eTypeError: kqueue.control() only accepts positional parameters\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1062\"\u003e#1062\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e💟 Thanks to our beloved contributors: \u003ca href=\"https://github.com/apoirier\"\u003e\u003ccode\u003e@​apoirier\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8 (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1055\"\u003e#1055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[core] Enforced usage of proper keyword-arguments (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1057\"\u003e#1057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[core] Renamed the \u003ccode\u003eBaseObserverSubclassCallable\u003c/code\u003e class to \u003ccode\u003eObserverType\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1055\"\u003e#1055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[inotify] Renamed the \u003ccode\u003einotify_event_struct\u003c/code\u003e class to \u003ccode\u003eInotifyEventStruct\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1055\"\u003e#1055\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/gorakhargosh/watchdog/blob/master/changelog.rst\"\u003ewatchdog's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e6.0.0\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n2024-11-01 • `full history \u0026lt;https://github.com/gorakhargosh/watchdog/compare/v5.0.3...v6.0.0\u0026gt;`__\n\u003cul\u003e\n\u003cli\u003ePin test dependencies.\u003c/li\u003e\n\u003cli\u003e[docs] Add typing info to quick start. (\u003ccode\u003e[#1082](https://github.com/gorakhargosh/watchdog/issues/1082) \u0026amp;lt;https://github.com/gorakhargosh/watchdog/pull/1082\u0026amp;gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003e[inotify] Use of \u003ccode\u003eselect.poll()\u003c/code\u003e instead of deprecated \u003ccode\u003eselect.select()\u003c/code\u003e, if available. (\u003ccode\u003e[#1078](https://github.com/gorakhargosh/watchdog/issues/1078) \u0026amp;lt;https://github.com/gorakhargosh/watchdog/pull/1078\u0026amp;gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003e[inotify] Fix reading inotify file descriptor after closing it. (\u003ccode\u003e[#1081](https://github.com/gorakhargosh/watchdog/issues/1081) \u0026amp;lt;https://github.com/gorakhargosh/watchdog/pull/1081\u0026amp;gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003e[utils] The \u003ccode\u003estop_signal\u003c/code\u003e keyword-argument type of the \u003ccode\u003eAutoRestartTrick\u003c/code\u003e class can now be either a \u003ccode\u003esignal.Signals\u003c/code\u003e or an \u003ccode\u003eint\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e[utils] Added the \u003ccode\u003e__repr__()\u003c/code\u003e method to the \u003ccode\u003eTrick\u003c/code\u003e class.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_class()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_instancemethod()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_module()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eis_class_private_name()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eis_classmethod()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eic_method(met()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003emethod_name()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003ename()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Fixed Mypy issues.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Added the \u003ccode\u003e__repr__()\u003c/code\u003e method to the \u003ccode\u003eHelpFormatter\u003c/code\u003e class.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Removed the \u003ccode\u003e--trace\u003c/code\u003e CLI argument from the \u003ccode\u003ewatchmedo log\u003c/code\u003e command, useless since events are logged by default at the \u003ccode\u003eLoggerTrick\u003c/code\u003e class level.\u003c/li\u003e\n\u003cli\u003e[windows] Fixed Mypy issues.\u003c/li\u003e\n\u003cli\u003eThanks to our beloved contributors: \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/g-pichler\"\u003e\u003ccode\u003e@​g-pichler\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ethan-vanderheijden\"\u003e\u003ccode\u003e@​ethan-vanderheijden\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/nhairs\"\u003e\u003ccode\u003e@​nhairs\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e5.0.3\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e2024-09-27 • \u003ccode\u003efull history \u0026lt;https://github.com/gorakhargosh/watchdog/compare/v5.0.2...v5.0.3\u0026gt;\u003c/code\u003e__\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[inotify] Improve cleaning up \u003ccode\u003eInotify\u003c/code\u003e threads, and add \u003ccode\u003eeventlet\u003c/code\u003e test cases (\u003ccode\u003e[#1070](https://github.com/gorakhargosh/watchdog/issues/1070) \u0026lt;https://github.com/gorakhargosh/watchdog/pull/1070\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eThanks to our beloved contributors: \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ethan-vanderheijden\"\u003e\u003ccode\u003e@​ethan-vanderheijden\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e5.0.2\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n2024-09-03 • `full history \u0026lt;https://github.com/gorakhargosh/watchdog/compare/v5.0.1...v5.0.2\u0026gt;`__\n\u003cul\u003e\n\u003cli\u003eEnable OS specific Mypy checks (\u003ccode\u003e[#1064](https://github.com/gorakhargosh/watchdog/issues/1064) \u0026amp;lt;https://github.com/gorakhargosh/watchdog/pull/1064\u0026amp;gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003e[watchmedo] Fix \u003ccode\u003etricks\u003c/code\u003e argument type of \u003ccode\u003eschedule_tricks()\u003c/code\u003e (\u003ccode\u003e[#1063](https://github.com/gorakhargosh/watchdog/issues/1063) \u0026amp;lt;https://github.com/gorakhargosh/watchdog/pull/1063\u0026amp;gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eThanks to our beloved contributors: \u003ca href=\"https://github.com/gnought\"\u003e\u003ccode\u003e@​gnought\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e5.0.1\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e2024-09-02 • \u003ccode\u003efull history \u0026lt;https://github.com/gorakhargosh/watchdog/compare/v5.0.0...v5.0.1\u0026gt;\u003c/code\u003e__\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[kqueue] Fix \u003ccode\u003eTypeError: kqueue.control() only accepts positional parameters\u003c/code\u003e  (\u003ccode\u003e[#1062](https://github.com/gorakhargosh/watchdog/issues/1062) \u0026lt;https://github.com/gorakhargosh/watchdog/pull/1062\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eThanks to our beloved contributors: \u003ca href=\"https://github.com/apoirier\"\u003e\u003ccode\u003e@​apoirier\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\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/gorakhargosh/watchdog/commit/76c091dc8841de1d1a1cd6511bb509fe4f058de6\"\u003e\u003ccode\u003e76c091d\u003c/code\u003e\u003c/a\u003e Version 6.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/58386d88747259b8b3da5082e30f1c6e0aa3b31a\"\u003e\u003ccode\u003e58386d8\u003c/code\u003e\u003c/a\u003e Fixes, and clean-up (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1084\"\u003e#1084\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/db698a52bbb1eb8cc34e889a8afdac6f17a99e57\"\u003e\u003ccode\u003edb698a5\u003c/code\u003e\u003c/a\u003e fix: reading inotify file descriptor after closing it. (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1081\"\u003e#1081\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/73d561265b109f30cf76a280cdcc74aa9e6df391\"\u003e\u003ccode\u003e73d5612\u003c/code\u003e\u003c/a\u003e [docs] Add typing info to quick start (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1082\"\u003e#1082\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/d774fec477a8f57d24b588164ebdd39b2d507bcd\"\u003e\u003ccode\u003ed774fec\u003c/code\u003e\u003c/a\u003e docs: Update README Badges (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1083\"\u003e#1083\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/6b74737501c85df9b9c2585faef4797a5250171b\"\u003e\u003ccode\u003e6b74737\u003c/code\u003e\u003c/a\u003e docs: funding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/3d1b888bccdd27a28f9f12a4e89288afe1ee493a\"\u003e\u003ccode\u003e3d1b888\u003c/code\u003e\u003c/a\u003e [inotify] Use of \u003ccode\u003eselect.poll()\u003c/code\u003e instead of deprecated \u003ccode\u003eselect.select()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1078\"\u003e#1078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/6a4f1cf846e03c8701fcc53b9e910077b5824e59\"\u003e\u003ccode\u003e6a4f1cf\u003c/code\u003e\u003c/a\u003e Bump the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/ad6df50908fca071ac8ad6558453bb28b522f794\"\u003e\u003ccode\u003ead6df50\u003c/code\u003e\u003c/a\u003e Version 5.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/59650f8fe72ac498374434a10a3dd49f3c3d1429\"\u003e\u003ccode\u003e59650f8\u003c/code\u003e\u003c/a\u003e fix: polish \u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1070\"\u003e#1070\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/gorakhargosh/watchdog/compare/v3.0.0...v6.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ocrmypdf` from 14.4.0 to 15.4.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/blob/main/docs/release_notes.md\"\u003eocrmypdf's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev15.4.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed documentation for installing Ghostscript on Windows. {issue}\u003ccode\u003e1198\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdded warning message about security issue in older versions of Ghostscript.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev15.4.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed deprecation warning in pikepdf older than 8.7.1; pikepdf \u0026gt;= 8.7.1 is\nnow required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev15.4.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWe now raise an exception on a certain class of PDFs that likely need an\nexplicit color conversion strategy selected to display correctly\nfor PDF/A conversion.\u003c/li\u003e\n\u003cli\u003eFixed an error that occurred while trying to write a log message after the\ndebug log handler was removed.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev15.4.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed misc/watcher.py regressions: accept \u003ccode\u003e--ocr-json-settings\u003c/code\u003e as either\nfilename or JSON string, as previously; and argument count mismatch.\n{issue}\u003ccode\u003e1183,1185\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eWe no longer attempt to set /ProcSet in the PDF output, since this is an\nobsolete PDF feature.\u003c/li\u003e\n\u003cli\u003eDocumentation improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev15.4.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded new experimental APIs to support offline editing of the final text.\nSpecifically, one can now generate hOCR files with OCRmyPDF, edit them with\nsome other tool, and then finalize the PDF. They are experimental and\nsubject to change, including details of how the working folder is used.\nThere is no command line interface.\u003c/li\u003e\n\u003cli\u003eCode reorganization: executors, progress bars, initialization and setup.\u003c/li\u003e\n\u003cli\u003eFixed test coverage in cases where the coverage tool did not properly trace\ninto threads or subprocesses. This code was still being tested but appeared\nas not covered.\u003c/li\u003e\n\u003cli\u003eIn the test suite, reduced use of subprocesses and other techniques that\ninterfere with coverage measurement.\u003c/li\u003e\n\u003cli\u003eImproved error check for when we appear to be running inside a snap container\nand files are not available.\u003c/li\u003e\n\u003cli\u003ePlugin specification now properly defines progress bars as a protocol rather\nthan defining them as \u0026quot;tqdm-like\u0026quot;.\u003c/li\u003e\n\u003cli\u003eWe now default to using \u0026quot;forkserver\u0026quot; process creation on POSIX platforms\nrather than fork, since this is method is more robust and avoids some\nissues when threads are present.\u003c/li\u003e\n\u003cli\u003eFixed an instance where the user's request to \u003ccode\u003e--no-use-threads\u003c/code\u003e was ignored.\u003c/li\u003e\n\u003cli\u003eIf a PDF does not have language metadata on its top level object, we add\nthe OCR language.\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/ocrmypdf/OCRmyPDF/commit/c90d5cd84b0e27906310c28f0d78c3ded9106d65\"\u003e\u003ccode\u003ec90d5cd\u003c/code\u003e\u003c/a\u003e Fix Ghostscript installation instructions and add warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/9898904be70bf957154cc66cb5d6f57bac7c26b4\"\u003e\u003ccode\u003e9898904\u003c/code\u003e\u003c/a\u003e Fix pikepdf PdfMatrix deprecation warning; v15.4.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/27d52298420e785300e418bef4e4219ef97720e1\"\u003e\u003ccode\u003e27d5229\u003c/code\u003e\u003c/a\u003e Make logger names unique\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/4a9a575ef0f2cd7459538a43e802c8d8b3846168\"\u003e\u003ccode\u003e4a9a575\u003c/code\u003e\u003c/a\u003e ghostscript: better comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/52fd9a630d57ac7af91db423b17e6b0297fc1c66\"\u003e\u003ccode\u003e52fd9a6\u003c/code\u003e\u003c/a\u003e v15.4.2 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/a596ccf84469c81c6d19ab0eb59f53a5df0bc3c7\"\u003e\u003ccode\u003ea596ccf\u003c/code\u003e\u003c/a\u003e Raise exception if resulting PDF might appear blank in a known in some PDF vi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/e7fa97731f507c1d91e4289b9d5f3344533d7c4c\"\u003e\u003ccode\u003ee7fa977\u003c/code\u003e\u003c/a\u003e ghostscript duplicate filter: filter within a window of previous messages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/290aa2810868fb506a0ded2db8dabb580d5a2459\"\u003e\u003ccode\u003e290aa28\u003c/code\u003e\u003c/a\u003e Fix error on attempt to write to debug log after removing debug log handler\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/a95640ed9ec0a5caa360bd64b9ad6cc9f916fa61\"\u003e\u003ccode\u003ea95640e\u003c/code\u003e\u003c/a\u003e v15.4.1 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/f69267bb675c3261121b70451f6e673f433bc7ad\"\u003e\u003ccode\u003ef69267b\u003c/code\u003e\u003c/a\u003e watcher: restore ability to read json from file or command line string\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/compare/v14.4.0...v15.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-multiselectfield` from 0.1.12 to 1.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/goinnn/django-multiselectfield/releases\"\u003edjango-multiselectfield's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBadge image worked on GitHub but was broken on PyPI — fixed it.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.0\u003c/h2\u003e\n\u003cp\u003eThis release introduces multiple changes that are incompatible with previous versions.\u003c/p\u003e\n\u003cp\u003eThe major version number has been incremented following \u003ccode\u003eSemantic Versioning (SemVer) \u0026lt;https://semver.org/\u0026gt;\u003c/code\u003e_, as several components of the package have changed in ways that may require updates in client code.\u003c/p\u003e\n\u003cp\u003eThe internal codebase has been significantly cleaned up and reorganized, making it more maintainable and consistent.\u003c/p\u003e\n\u003cp\u003eThis version contains \u003cstrong\u003e40% fewer lines of code\u003c/strong\u003e compared to the previous release.\u003c/p\u003e\n\u003cp\u003eLess code means fewer bugs, easier maintenance, and better long-term sustainability.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFList (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\"\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2\u003c/a\u003e):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/50d3f785883e0a314f2dc89950e3fe1e88a7ede6\"\u003e50d3f785883e0a314f2dc89950e3fe1e88a7ede6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIt was created to support MultiSelectFields in admin.list_display, but it never actually worked. If you add a multiselect field to list_display, Django does not call to \u003cstrong\u003estr\u003c/strong\u003e method of MSGList (renamed to MSFList)\u003c/li\u003e\n\u003cli\u003eIt was created for integer choices too and it is a misconception. This is explained in the README file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFFlatchoices (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\"\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2\u003c/a\u003e):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/5638247c1d70670d4f81adf35143ef17a7d7575e\"\u003e5638247c1d70670d4f81adf35143ef17a7d7575e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIn list_display, labels for the choices are now shown (comma-separated) instead of the values of the choices (comma-separated).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn to_python method, value is a list or a string. (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/c4579138dda2833cbce26afbf57da5353aa45690\"\u003ec4579138dda2833cbce26afbf57da5353aa45690\u003c/a\u003e)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove set case and dict case\u003c/li\u003e\n\u003cli\u003eIf this breaks something, please create a test to help understand the use case.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoving integer choices:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIt was a mistake. MultiSelectField inherits of CharField, not IntegerField.\u003c/li\u003e\n\u003cli\u003eIt is impossible knows if original choice is (1, 'Item title 2.1') or ('1', 'Item title 2.1')\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: Form instance generated twice since Django  (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/168\"\u003e#168\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix CSS admin:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/173\"\u003e#173\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/7711f4aa755c81d00f07ce8a6ff0fd9240061f9c\"\u003e7711f4aa755c81d00f07ce8a6ff0fd9240061f9c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix Properly Display Categorized Choices in get_FOO_display (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/169\"\u003e#169\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSortMultiSelectField: (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/172\"\u003e#172\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/goinnn/django-multiselectfield/blob/master/CHANGES.rst\"\u003edjango-multiselectfield's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.0.1 (2025-06-12)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBadge image worked on GitHub but was broken on PyPI — fixed it.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.0.0 (2025-06-12)\u003c/h2\u003e\n\u003cp\u003eThis release introduces multiple changes that are incompatible with previous versions.\u003c/p\u003e\n\u003cp\u003eThe major version number has been incremented following \u003ccode\u003eSemantic Versioning (SemVer) \u0026lt;https://semver.org/\u0026gt;\u003c/code\u003e_, as several components of the package have changed in ways that may require updates in client code.\u003c/p\u003e\n\u003cp\u003eThe internal codebase has been significantly cleaned up and reorganized, making it more maintainable and consistent.\u003c/p\u003e\n\u003cp\u003eThis version contains \u003cstrong\u003e40% fewer lines of code\u003c/strong\u003e compared to the previous release.\u003c/p\u003e\n\u003cp\u003eLess code means fewer bugs, easier maintenance, and better long-term sustainability.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFList (\u003ccode\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\u0026gt;\u003c/code\u003e_):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ccode\u003e50d3f785883e0a314f2dc89950e3fe1e88a7ede6 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/50d3f785883e0a314f2dc89950e3fe1e88a7ede6\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eIt was created to support MultiSelectFields in admin.list_display, but it never actually worked. If you add a multiselect field to list_display, Django does not call to \u003cstrong\u003estr\u003c/strong\u003e method of MSGList (renamed to MSFList)\u003c/li\u003e\n\u003cli\u003eIt was created for integer choices too and it is a misconception. This is explained in the README file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFFlatchoices (\u003ccode\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\u0026gt;\u003c/code\u003e_):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ccode\u003e5638247c1d70670d4f81adf35143ef17a7d7575e \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/5638247c1d70670d4f81adf35143ef17a7d7575e\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eIn list_display, labels for the choices are now shown (comma-separated) instead of the values of the choices (comma-separated).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn to_python method, value is a list or a string. (\u003ccode\u003ec4579138dda2833cbce26afbf57da5353aa45690 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/c4579138dda2833cbce26afbf57da5353aa45690\u0026gt;\u003c/code\u003e_)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove set case and dict cas...\n\n_Description has been truncated_","html_url":"https://github.com/dsp-testing/paperless-ngx/pull/170","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/dsp-testing%2Fpaperless-ngx/issues/170","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/170/packages"}},{"old_version":"12.0","new_version":"15.1","update_type":null,"path":"/requirements","pr_created_at":"2025-05-19T01:57:54.000Z","version_change":"12.0 → 15.1","issue":{"uuid":"2527341900","node_id":"PR_kwDOCqWgoM6WpC1M","number":20838,"state":"closed","title":"build(deps): bump pytest-rerunfailures from 12.0 to 15.1 in /requirements","user":"dependabot[bot]","labels":["ci","fabric","pl","dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-05-19T07:30:52.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-05-19T01:57:54.000Z","updated_at":"2025-05-19T07:30:52.000Z","time_to_close":19978,"merged_at":"2025-05-19T07:30:52.000Z","merged_by":"Borda","closed_by":null,"dependency_metadata":{"prefix":"build(deps)","packages":[{"name":"pytest-rerunfailures","old_version":"12.0","new_version":"15.1","repository_url":"https://github.com/pytest-dev/pytest-rerunfailures"}],"path":"/requirements","ecosystem":"pip"},"body":"Bumps [pytest-rerunfailures](https://github.com/pytest-dev/pytest-rerunfailures) from 12.0 to 15.1.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/blob/master/CHANGES.rst\"\u003epytest-rerunfailures's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e15.1 (2025-05-08)\u003c/h2\u003e\n\u003cp\u003eBug fixes\n+++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003e--fail-on-flaky\u003c/code\u003e option to fail the test run with custom exit code\nonly when reruns are detected.\n(\u003ccode\u003e[#287](https://github.com/pytest-dev/pytest-rerunfailures/issues/287) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/287\u0026gt;\u003c/code\u003e_)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSwitched to using the SPDX license identifier in the project metadata.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eOther changes\n+++++++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eChange exception filtering logic to match \u003ccode\u003eAssertionError\u003c/code\u003e raised via\n\u003ccode\u003eassert\u003c/code\u003e statements when filtering by \u0026quot;AssertionError\u0026quot;.\n(\u003ccode\u003e[#292](https://github.com/pytest-dev/pytest-rerunfailures/issues/292) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/292\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e15.0 (2024-11-20)\u003c/h2\u003e\n\u003cp\u003eBreaking changes\n++++++++++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDrop support for Python 3.8.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDrop support for pytest \u0026lt; 7.4.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFeatures\n++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix compatibility with pytest 8.2.\n(\u003ccode\u003e[#267](https://github.com/pytest-dev/pytest-rerunfailures/issues/267) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/267\u0026gt;\u003c/code\u003e_)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd support for pytest 8.2, 8.3.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003e--fail-on-flaky\u003c/code\u003e option to fail the test run with custom exit code\nwhen test passed on rerun.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e14.0 (2024-03-13)\u003c/h2\u003e\n\u003cp\u003eBug fixes\n+++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix missing teardown for non-function scoped fixtures when using only_rerun or rerun_except queries.\n(\u003ccode\u003e[#234](https://github.com/pytest-dev/pytest-rerunfailures/issues/234) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/234\u0026gt;\u003c/code\u003e\u003cem\u003e)\nand (\u003ccode\u003e[#241](https://github.com/pytest-dev/pytest-rerunfailures/issues/241) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/241\u0026gt;\u003c/code\u003e\u003c/em\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/pytest-dev/pytest-rerunfailures/commit/beaa1a46d3d57e30c8e6fa2ad26d42721eeb7d73\"\u003e\u003ccode\u003ebeaa1a4\u003c/code\u003e\u003c/a\u003e Preparing release 15.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/1ddc2455289ef9a25c8b8736dfb84b401ca9be89\"\u003e\u003ccode\u003e1ddc245\u003c/code\u003e\u003c/a\u003e Pimp MANIFEST.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/c5a282cf4e1b20452440da6c16baa9ef9dda83a3\"\u003e\u003ccode\u003ec5a282c\u003c/code\u003e\u003c/a\u003e Update exception filtering to match against actual exception (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/293\"\u003e#293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/3064a7782efbee1ede8f76ae59d87b670b10b829\"\u003e\u003ccode\u003e3064a77\u003c/code\u003e\u003c/a\u003e Use SPDX license identifier (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/d0ff1d4337993cb0f74a46e59f1e6bed0857a0a6\"\u003e\u003ccode\u003ed0ff1d4\u003c/code\u003e\u003c/a\u003e Adjust \u003ccode\u003e--fail-on-flaky\u003c/code\u003e behavior to improve exit status handling (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/288\"\u003e#288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/c4992c38f17090debe74519eb3945e54e0c01d66\"\u003e\u003ccode\u003ec4992c3\u003c/code\u003e\u003c/a\u003e Configure for readthedocs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/5a1a3b2f48ad64e6944354b50eb188378e96dab2\"\u003e\u003ccode\u003e5a1a3b2\u003c/code\u003e\u003c/a\u003e Initial draft docs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/283\"\u003e#283\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/4bbc0bea3ba206639313d165d7252bd7501c96a5\"\u003e\u003ccode\u003e4bbc0be\u003c/code\u003e\u003c/a\u003e Fix duplicate keyword. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/88d1bf27871f1362b4c1d140a99183a1364f0099\"\u003e\u003ccode\u003e88d1bf2\u003c/code\u003e\u003c/a\u003e Release 15.0 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/281\"\u003e#281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/67e0056038dc8d0debf3fb242d205c3339db77f0\"\u003e\u003ccode\u003e67e0056\u003c/code\u003e\u003c/a\u003e Update versions (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/279\"\u003e#279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/compare/12.0...15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pytest-rerunfailures\u0026package-manager=pip\u0026previous-version=12.0\u0026new-version=15.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don'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\r\n\r\n\u003c!-- readthedocs-preview pytorch-lightning start --\u003e\r\n----\n📚 Documentation preview 📚: https://pytorch-lightning--20838.org.readthedocs.build/en/20838/\n\r\n\u003c!-- readthedocs-preview pytorch-lightning end --\u003e","html_url":"https://github.com/Lightning-AI/pytorch-lightning/pull/20838","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lightning-AI%2Fpytorch-lightning/issues/20838","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/20838/packages"}},{"old_version":"15.0","new_version":"15.1","update_type":null,"path":null,"pr_created_at":"2025-05-13T21:52:40.000Z","version_change":"15.0 → 15.1","issue":{"uuid":"3061315199","node_id":"PR_kwDOErvUqs6WEX68","number":834,"state":"open","title":"Bump pytest-rerunfailures from 15.0 to 15.1","user":"dependabot[bot]","labels":["dependencies","maintenance"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-05-13T21:52:40.000Z","updated_at":"2025-05-13T21:56:19.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"pytest-rerunfailures","old_version":"15.0","new_version":"15.1","repository_url":"https://github.com/pytest-dev/pytest-rerunfailures"}],"path":null,"ecosystem":"conda"},"body":"Bumps [pytest-rerunfailures](https://github.com/pytest-dev/pytest-rerunfailures) from 15.0 to 15.1.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/blob/master/CHANGES.rst\"\u003epytest-rerunfailures's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e15.1 (2025-05-08)\u003c/h2\u003e\n\u003cp\u003eBug fixes\n+++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003e--fail-on-flaky\u003c/code\u003e option to fail the test run with custom exit code\nonly when reruns are detected.\n(\u003ccode\u003e[#287](https://github.com/pytest-dev/pytest-rerunfailures/issues/287) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/287\u0026gt;\u003c/code\u003e_)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSwitched to using the SPDX license identifier in the project metadata.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eOther changes\n+++++++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eChange exception filtering logic to match \u003ccode\u003eAssertionError\u003c/code\u003e raised via\n\u003ccode\u003eassert\u003c/code\u003e statements when filtering by \u0026quot;AssertionError\u0026quot;.\n(\u003ccode\u003e[#292](https://github.com/pytest-dev/pytest-rerunfailures/issues/292) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/292\u0026gt;\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/pytest-dev/pytest-rerunfailures/commit/beaa1a46d3d57e30c8e6fa2ad26d42721eeb7d73\"\u003e\u003ccode\u003ebeaa1a4\u003c/code\u003e\u003c/a\u003e Preparing release 15.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/1ddc2455289ef9a25c8b8736dfb84b401ca9be89\"\u003e\u003ccode\u003e1ddc245\u003c/code\u003e\u003c/a\u003e Pimp MANIFEST.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/c5a282cf4e1b20452440da6c16baa9ef9dda83a3\"\u003e\u003ccode\u003ec5a282c\u003c/code\u003e\u003c/a\u003e Update exception filtering to match against actual exception (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/293\"\u003e#293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/3064a7782efbee1ede8f76ae59d87b670b10b829\"\u003e\u003ccode\u003e3064a77\u003c/code\u003e\u003c/a\u003e Use SPDX license identifier (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/d0ff1d4337993cb0f74a46e59f1e6bed0857a0a6\"\u003e\u003ccode\u003ed0ff1d4\u003c/code\u003e\u003c/a\u003e Adjust \u003ccode\u003e--fail-on-flaky\u003c/code\u003e behavior to improve exit status handling (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/288\"\u003e#288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/c4992c38f17090debe74519eb3945e54e0c01d66\"\u003e\u003ccode\u003ec4992c3\u003c/code\u003e\u003c/a\u003e Configure for readthedocs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/5a1a3b2f48ad64e6944354b50eb188378e96dab2\"\u003e\u003ccode\u003e5a1a3b2\u003c/code\u003e\u003c/a\u003e Initial draft docs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/283\"\u003e#283\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/4bbc0bea3ba206639313d165d7252bd7501c96a5\"\u003e\u003ccode\u003e4bbc0be\u003c/code\u003e\u003c/a\u003e Fix duplicate keyword. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/88d1bf27871f1362b4c1d140a99183a1364f0099\"\u003e\u003ccode\u003e88d1bf2\u003c/code\u003e\u003c/a\u003e Release 15.0 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/281\"\u003e#281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/compare/15.0...15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eMost Recent Ignore Conditions Applied to This Pull Request\u003c/summary\u003e\n\n| Dependency Name | Ignore Conditions |\n| --- | --- |\n| pytest-rerunfailures | [\u003e= 11.1.a, \u003c 11.2] |\n\u003c/details\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pytest-rerunfailures\u0026package-manager=pip\u0026previous-version=15.0\u0026new-version=15.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don'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/ansys/pydpf-post/pull/834","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ansys%2Fpydpf-post/issues/834","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/834/packages"}},{"old_version":"15.0","new_version":"15.1","update_type":null,"path":"/requirements","pr_created_at":"2025-05-12T23:50:58.000Z","version_change":"15.0 → 15.1","issue":{"uuid":"2515158589","node_id":"PR_kwDOE0uZvc6V6kY9","number":3092,"state":"closed","title":"build(deps): bump pytest-rerunfailures from 15.0 to 15.1 in /requirements","user":"dependabot[bot]","labels":["test / CI"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2025-05-13T10:40:19.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-05-12T23:50:58.000Z","updated_at":"2025-05-13T10:40:19.000Z","time_to_close":38961,"merged_at":"2025-05-13T10:40:19.000Z","merged_by":"Borda","closed_by":null,"dependency_metadata":{"prefix":"build(deps)","packages":[{"name":"pytest-rerunfailures","old_version":"15.0","new_version":"15.1","repository_url":"https://github.com/pytest-dev/pytest-rerunfailures"}],"path":"/requirements","ecosystem":"pip"},"body":"[//]: # (dependabot-start)\n⚠️  **Dependabot is rebasing this PR** ⚠️ \n\nRebasing might not happen immediately, so don't worry if this takes some time.\n\nNote: if you make any changes to this PR yourself, they will take precedence over the rebase.\n\n---\n\n[//]: # (dependabot-end)\n\nBumps [pytest-rerunfailures](https://github.com/pytest-dev/pytest-rerunfailures) from 15.0 to 15.1.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/blob/master/CHANGES.rst\"\u003epytest-rerunfailures's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e15.1 (2025-05-08)\u003c/h2\u003e\n\u003cp\u003eBug fixes\n+++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003e--fail-on-flaky\u003c/code\u003e option to fail the test run with custom exit code\nonly when reruns are detected.\n(\u003ccode\u003e[#287](https://github.com/pytest-dev/pytest-rerunfailures/issues/287) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/287\u0026gt;\u003c/code\u003e_)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSwitched to using the SPDX license identifier in the project metadata.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eOther changes\n+++++++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eChange exception filtering logic to match \u003ccode\u003eAssertionError\u003c/code\u003e raised via\n\u003ccode\u003eassert\u003c/code\u003e statements when filtering by \u0026quot;AssertionError\u0026quot;.\n(\u003ccode\u003e[#292](https://github.com/pytest-dev/pytest-rerunfailures/issues/292) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/292\u0026gt;\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/pytest-dev/pytest-rerunfailures/commit/beaa1a46d3d57e30c8e6fa2ad26d42721eeb7d73\"\u003e\u003ccode\u003ebeaa1a4\u003c/code\u003e\u003c/a\u003e Preparing release 15.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/1ddc2455289ef9a25c8b8736dfb84b401ca9be89\"\u003e\u003ccode\u003e1ddc245\u003c/code\u003e\u003c/a\u003e Pimp MANIFEST.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/c5a282cf4e1b20452440da6c16baa9ef9dda83a3\"\u003e\u003ccode\u003ec5a282c\u003c/code\u003e\u003c/a\u003e Update exception filtering to match against actual exception (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/293\"\u003e#293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/3064a7782efbee1ede8f76ae59d87b670b10b829\"\u003e\u003ccode\u003e3064a77\u003c/code\u003e\u003c/a\u003e Use SPDX license identifier (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/d0ff1d4337993cb0f74a46e59f1e6bed0857a0a6\"\u003e\u003ccode\u003ed0ff1d4\u003c/code\u003e\u003c/a\u003e Adjust \u003ccode\u003e--fail-on-flaky\u003c/code\u003e behavior to improve exit status handling (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/288\"\u003e#288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/c4992c38f17090debe74519eb3945e54e0c01d66\"\u003e\u003ccode\u003ec4992c3\u003c/code\u003e\u003c/a\u003e Configure for readthedocs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/5a1a3b2f48ad64e6944354b50eb188378e96dab2\"\u003e\u003ccode\u003e5a1a3b2\u003c/code\u003e\u003c/a\u003e Initial draft docs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/283\"\u003e#283\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/4bbc0bea3ba206639313d165d7252bd7501c96a5\"\u003e\u003ccode\u003e4bbc0be\u003c/code\u003e\u003c/a\u003e Fix duplicate keyword. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/88d1bf27871f1362b4c1d140a99183a1364f0099\"\u003e\u003ccode\u003e88d1bf2\u003c/code\u003e\u003c/a\u003e Release 15.0 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/281\"\u003e#281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/compare/15.0...15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pytest-rerunfailures\u0026package-manager=pip\u0026previous-version=15.0\u0026new-version=15.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don'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\r\n\r\n\u003c!-- readthedocs-preview torchmetrics start --\u003e\r\n----\n📚 Documentation preview 📚: https://torchmetrics--3092.org.readthedocs.build/en/3092/\n\r\n\u003c!-- readthedocs-preview torchmetrics end --\u003e","html_url":"https://github.com/Lightning-AI/torchmetrics/pull/3092","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lightning-AI%2Ftorchmetrics/issues/3092","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/3092/packages"}},{"old_version":"15.0","new_version":"15.1","update_type":null,"path":null,"pr_created_at":"2025-05-12T03:07:26.000Z","version_change":"15.0 → 15.1","issue":{"uuid":"2512555437","node_id":"PR_kwDOBAjJpM6Vwo2t","number":10254,"state":"closed","title":"Bump the pytest group across 1 directory with 2 updates","user":"dependabot[bot]","labels":["I-Dependency","I-Python"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":"2025-05-12T08:02:08.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-05-12T03:07:26.000Z","updated_at":"2025-05-12T08:02:08.000Z","time_to_close":17682,"merged_at":"2025-05-12T08:02:08.000Z","merged_by":"mmmarcos","closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"pytest","update_count":2,"packages":[{"name":"pytest-rerunfailures","old_version":"15.0","new_version":"15.1","repository_url":"https://github.com/pytest-dev/pytest-rerunfailures"},{"name":"pytest-timeout","old_version":"2.3.1","new_version":"2.4.0","repository_url":"https://github.com/pytest-dev/pytest-timeout"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pytest group with 2 updates in the /server directory: [pytest-rerunfailures](https://github.com/pytest-dev/pytest-rerunfailures) and [pytest-timeout](https://github.com/pytest-dev/pytest-timeout).\n\nUpdates `pytest-rerunfailures` from 15.0 to 15.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/blob/master/CHANGES.rst\"\u003epytest-rerunfailures's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e15.1 (2025-05-08)\u003c/h2\u003e\n\u003cp\u003eBug fixes\n+++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003e--fail-on-flaky\u003c/code\u003e option to fail the test run with custom exit code\nonly when reruns are detected.\n(\u003ccode\u003e[#287](https://github.com/pytest-dev/pytest-rerunfailures/issues/287) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/287\u0026gt;\u003c/code\u003e_)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSwitched to using the SPDX license identifier in the project metadata.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eOther changes\n+++++++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eChange exception filtering logic to match \u003ccode\u003eAssertionError\u003c/code\u003e raised via\n\u003ccode\u003eassert\u003c/code\u003e statements when filtering by \u0026quot;AssertionError\u0026quot;.\n(\u003ccode\u003e[#292](https://github.com/pytest-dev/pytest-rerunfailures/issues/292) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/292\u0026gt;\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/pytest-dev/pytest-rerunfailures/commit/beaa1a46d3d57e30c8e6fa2ad26d42721eeb7d73\"\u003e\u003ccode\u003ebeaa1a4\u003c/code\u003e\u003c/a\u003e Preparing release 15.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/1ddc2455289ef9a25c8b8736dfb84b401ca9be89\"\u003e\u003ccode\u003e1ddc245\u003c/code\u003e\u003c/a\u003e Pimp MANIFEST.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/c5a282cf4e1b20452440da6c16baa9ef9dda83a3\"\u003e\u003ccode\u003ec5a282c\u003c/code\u003e\u003c/a\u003e Update exception filtering to match against actual exception (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/293\"\u003e#293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/3064a7782efbee1ede8f76ae59d87b670b10b829\"\u003e\u003ccode\u003e3064a77\u003c/code\u003e\u003c/a\u003e Use SPDX license identifier (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/d0ff1d4337993cb0f74a46e59f1e6bed0857a0a6\"\u003e\u003ccode\u003ed0ff1d4\u003c/code\u003e\u003c/a\u003e Adjust \u003ccode\u003e--fail-on-flaky\u003c/code\u003e behavior to improve exit status handling (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/288\"\u003e#288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/c4992c38f17090debe74519eb3945e54e0c01d66\"\u003e\u003ccode\u003ec4992c3\u003c/code\u003e\u003c/a\u003e Configure for readthedocs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/5a1a3b2f48ad64e6944354b50eb188378e96dab2\"\u003e\u003ccode\u003e5a1a3b2\u003c/code\u003e\u003c/a\u003e Initial draft docs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/283\"\u003e#283\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/4bbc0bea3ba206639313d165d7252bd7501c96a5\"\u003e\u003ccode\u003e4bbc0be\u003c/code\u003e\u003c/a\u003e Fix duplicate keyword. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/88d1bf27871f1362b4c1d140a99183a1364f0099\"\u003e\u003ccode\u003e88d1bf2\u003c/code\u003e\u003c/a\u003e Release 15.0 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/281\"\u003e#281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/compare/15.0...15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-timeout` from 2.3.1 to 2.4.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-timeout/commit/ddabc934535081a5bf9ba7c9ca5b494aeaf8f665\"\u003e\u003ccode\u003eddabc93\u003c/code\u003e\u003c/a\u003e Add python 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-timeout/commit/617b1b6f0ab74517b92a4966b6db9e509d987972\"\u003e\u003ccode\u003e617b1b6\u003c/code\u003e\u003c/a\u003e Prepare release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-timeout/commit/2e96621ee1b61057438c0f8c5b158eddc31654c5\"\u003e\u003ccode\u003e2e96621\u003c/code\u003e\u003c/a\u003e Change error message to clearly relate it to pytest-timeout (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-timeout/issues/180\"\u003e#180\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-timeout/commit/733b26b5d3b6f1c86876339f336cd827dc7d1a0c\"\u003e\u003ccode\u003e733b26b\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-timeout/commit/fa5fd451afa3e7e676c7a31a9e7b058dabf0988b\"\u003e\u003ccode\u003efa5fd45\u003c/code\u003e\u003c/a\u003e Add support sys.monitoring\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-timeout/commit/3d41ba8042ab1d07613572d95853dcc1c3602880\"\u003e\u003ccode\u003e3d41ba8\u003c/code\u003e\u003c/a\u003e Update README.rst with pytest-xdist 3.0.2 news\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-timeout/commit/935f51cf0931dbbee8162e89b53289f1f43df499\"\u003e\u003ccode\u003e935f51c\u003c/code\u003e\u003c/a\u003e Add missing Python 3.12 trove classifier\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pytest-dev/pytest-timeout/compare/2.3.1...2.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\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 \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/Scille/parsec-cloud/pull/10254","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Scille%2Fparsec-cloud/issues/10254","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/10254/packages"}},{"old_version":"15.0","new_version":"15.1","update_type":null,"path":null,"pr_created_at":"2025-05-09T05:02:21.000Z","version_change":"15.0 → 15.1","issue":{"uuid":"2508643569","node_id":"PR_kwDOJAMqnc6Vhtzx","number":535,"state":"closed","title":"⬆ Bump pytest-rerunfailures from 15.0 to 15.1","user":"dependabot[bot]","labels":["🔍 enhancement","🐍 python","dependencies"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":"2025-05-09T06:47:35.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-05-09T05:02:21.000Z","updated_at":"2025-05-09T06:47:35.000Z","time_to_close":6314,"merged_at":"2025-05-09T06:47:35.000Z","merged_by":"Chisanan232","closed_by":null,"dependency_metadata":{"prefix":"⬆ Bump","packages":[{"name":"pytest-rerunfailures","old_version":"15.0","new_version":"15.1","repository_url":"https://github.com/pytest-dev/pytest-rerunfailures"}],"path":null,"ecosystem":"conda"},"body":"Bumps [pytest-rerunfailures](https://github.com/pytest-dev/pytest-rerunfailures) from 15.0 to 15.1.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/blob/master/CHANGES.rst\"\u003epytest-rerunfailures's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e15.1 (2025-05-08)\u003c/h2\u003e\n\u003cp\u003eBug fixes\n+++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003e--fail-on-flaky\u003c/code\u003e option to fail the test run with custom exit code\nonly when reruns are detected.\n(\u003ccode\u003e[#287](https://github.com/pytest-dev/pytest-rerunfailures/issues/287) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/287\u0026gt;\u003c/code\u003e_)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSwitched to using the SPDX license identifier in the project metadata.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eOther changes\n+++++++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eChange exception filtering logic to match \u003ccode\u003eAssertionError\u003c/code\u003e raised via\n\u003ccode\u003eassert\u003c/code\u003e statements when filtering by \u0026quot;AssertionError\u0026quot;.\n(\u003ccode\u003e[#292](https://github.com/pytest-dev/pytest-rerunfailures/issues/292) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/292\u0026gt;\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/pytest-dev/pytest-rerunfailures/commit/beaa1a46d3d57e30c8e6fa2ad26d42721eeb7d73\"\u003e\u003ccode\u003ebeaa1a4\u003c/code\u003e\u003c/a\u003e Preparing release 15.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/1ddc2455289ef9a25c8b8736dfb84b401ca9be89\"\u003e\u003ccode\u003e1ddc245\u003c/code\u003e\u003c/a\u003e Pimp MANIFEST.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/c5a282cf4e1b20452440da6c16baa9ef9dda83a3\"\u003e\u003ccode\u003ec5a282c\u003c/code\u003e\u003c/a\u003e Update exception filtering to match against actual exception (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/293\"\u003e#293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/3064a7782efbee1ede8f76ae59d87b670b10b829\"\u003e\u003ccode\u003e3064a77\u003c/code\u003e\u003c/a\u003e Use SPDX license identifier (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/d0ff1d4337993cb0f74a46e59f1e6bed0857a0a6\"\u003e\u003ccode\u003ed0ff1d4\u003c/code\u003e\u003c/a\u003e Adjust \u003ccode\u003e--fail-on-flaky\u003c/code\u003e behavior to improve exit status handling (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/288\"\u003e#288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/c4992c38f17090debe74519eb3945e54e0c01d66\"\u003e\u003ccode\u003ec4992c3\u003c/code\u003e\u003c/a\u003e Configure for readthedocs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/5a1a3b2f48ad64e6944354b50eb188378e96dab2\"\u003e\u003ccode\u003e5a1a3b2\u003c/code\u003e\u003c/a\u003e Initial draft docs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/283\"\u003e#283\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/4bbc0bea3ba206639313d165d7252bd7501c96a5\"\u003e\u003ccode\u003e4bbc0be\u003c/code\u003e\u003c/a\u003e Fix duplicate keyword. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/88d1bf27871f1362b4c1d140a99183a1364f0099\"\u003e\u003ccode\u003e88d1bf2\u003c/code\u003e\u003c/a\u003e Release 15.0 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/281\"\u003e#281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/compare/15.0...15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pytest-rerunfailures\u0026package-manager=pip\u0026previous-version=15.0\u0026new-version=15.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don'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/Chisanan232/PyFake-API-Server/pull/535","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Chisanan232%2FPyFake-API-Server/issues/535","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/535/packages"}},{"old_version":"15.0","new_version":"15.1","update_type":null,"path":"/requirements","pr_created_at":"2025-05-09T04:34:29.000Z","version_change":"15.0 → 15.1","issue":{"uuid":"2508614651","node_id":"PR_kwDOEWQDts6Vhmv7","number":2266,"state":"closed","title":"Bump pytest-rerunfailures from 15.0 to 15.1 in /requirements","user":"dependabot[bot]","labels":["maintenance","dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-05-12T14:15:20.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-05-09T04:34:29.000Z","updated_at":"2025-05-12T14:15:20.000Z","time_to_close":294051,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"pytest-rerunfailures","old_version":"15.0","new_version":"15.1","repository_url":"https://github.com/pytest-dev/pytest-rerunfailures"}],"path":"/requirements","ecosystem":"conda"},"body":"Bumps [pytest-rerunfailures](https://github.com/pytest-dev/pytest-rerunfailures) from 15.0 to 15.1.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/blob/master/CHANGES.rst\"\u003epytest-rerunfailures's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e15.1 (2025-05-08)\u003c/h2\u003e\n\u003cp\u003eBug fixes\n+++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003e--fail-on-flaky\u003c/code\u003e option to fail the test run with custom exit code\nonly when reruns are detected.\n(\u003ccode\u003e[#287](https://github.com/pytest-dev/pytest-rerunfailures/issues/287) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/287\u0026gt;\u003c/code\u003e_)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSwitched to using the SPDX license identifier in the project metadata.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eOther changes\n+++++++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eChange exception filtering logic to match \u003ccode\u003eAssertionError\u003c/code\u003e raised via\n\u003ccode\u003eassert\u003c/code\u003e statements when filtering by \u0026quot;AssertionError\u0026quot;.\n(\u003ccode\u003e[#292](https://github.com/pytest-dev/pytest-rerunfailures/issues/292) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/292\u0026gt;\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/pytest-dev/pytest-rerunfailures/commit/beaa1a46d3d57e30c8e6fa2ad26d42721eeb7d73\"\u003e\u003ccode\u003ebeaa1a4\u003c/code\u003e\u003c/a\u003e Preparing release 15.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/1ddc2455289ef9a25c8b8736dfb84b401ca9be89\"\u003e\u003ccode\u003e1ddc245\u003c/code\u003e\u003c/a\u003e Pimp MANIFEST.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/c5a282cf4e1b20452440da6c16baa9ef9dda83a3\"\u003e\u003ccode\u003ec5a282c\u003c/code\u003e\u003c/a\u003e Update exception filtering to match against actual exception (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/293\"\u003e#293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/3064a7782efbee1ede8f76ae59d87b670b10b829\"\u003e\u003ccode\u003e3064a77\u003c/code\u003e\u003c/a\u003e Use SPDX license identifier (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/d0ff1d4337993cb0f74a46e59f1e6bed0857a0a6\"\u003e\u003ccode\u003ed0ff1d4\u003c/code\u003e\u003c/a\u003e Adjust \u003ccode\u003e--fail-on-flaky\u003c/code\u003e behavior to improve exit status handling (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/288\"\u003e#288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/c4992c38f17090debe74519eb3945e54e0c01d66\"\u003e\u003ccode\u003ec4992c3\u003c/code\u003e\u003c/a\u003e Configure for readthedocs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/5a1a3b2f48ad64e6944354b50eb188378e96dab2\"\u003e\u003ccode\u003e5a1a3b2\u003c/code\u003e\u003c/a\u003e Initial draft docs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/283\"\u003e#283\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/4bbc0bea3ba206639313d165d7252bd7501c96a5\"\u003e\u003ccode\u003e4bbc0be\u003c/code\u003e\u003c/a\u003e Fix duplicate keyword. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/88d1bf27871f1362b4c1d140a99183a1364f0099\"\u003e\u003ccode\u003e88d1bf2\u003c/code\u003e\u003c/a\u003e Release 15.0 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/281\"\u003e#281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/compare/15.0...15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eMost Recent Ignore Conditions Applied to This Pull Request\u003c/summary\u003e\n\n| Dependency Name | Ignore Conditions |\n| --- | --- |\n| pytest-rerunfailures | [\u003c 12, \u003e 11.0] |\n\u003c/details\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pytest-rerunfailures\u0026package-manager=pip\u0026previous-version=15.0\u0026new-version=15.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don'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/ansys/pydpf-core/pull/2266","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ansys%2Fpydpf-core/issues/2266","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/2266/packages"}},{"old_version":"15.0","new_version":"15.1","update_type":null,"path":null,"pr_created_at":"2025-05-09T00:55:35.000Z","version_change":"15.0 → 15.1","issue":{"uuid":"2508384393","node_id":"PR_kwDOBDa8Z86VguiJ","number":3911,"state":"closed","title":"build: bump the testing group with 2 updates","user":"dependabot[bot]","labels":["dependencies","maintenance"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2025-05-09T09:30:43.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-05-09T00:55:35.000Z","updated_at":"2025-05-09T09:30:43.000Z","time_to_close":30908,"merged_at":"2025-05-09T09:30:43.000Z","merged_by":"germa89","closed_by":null,"dependency_metadata":{"prefix":"build: bump","group_name":"testing","update_count":2,"packages":[{"name":"pytest-rerunfailures","old_version":"15.0","new_version":"15.1","repository_url":"https://github.com/pytest-dev/pytest-rerunfailures"},{"name":"pytest-timeout","old_version":"2.3.1","new_version":"2.4.0","repository_url":"https://github.com/pytest-dev/pytest-timeout"}],"path":null,"ecosystem":"conda"},"body":"[//]: # (dependabot-start)\n⚠️  **Dependabot is rebasing this PR** ⚠️ \n\nRebasing might not happen immediately, so don't worry if this takes some time.\n\nNote: if you make any changes to this PR yourself, they will take precedence over the rebase.\n\n---\n\n[//]: # (dependabot-end)\n\nBumps the testing group with 2 updates: [pytest-rerunfailures](https://github.com/pytest-dev/pytest-rerunfailures) and [pytest-timeout](https://github.com/pytest-dev/pytest-timeout).\n\nUpdates `pytest-rerunfailures` from 15.0 to 15.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/blob/master/CHANGES.rst\"\u003epytest-rerunfailures's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e15.1 (2025-05-08)\u003c/h2\u003e\n\u003cp\u003eBug fixes\n+++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003e--fail-on-flaky\u003c/code\u003e option to fail the test run with custom exit code\nonly when reruns are detected.\n(\u003ccode\u003e[#287](https://github.com/pytest-dev/pytest-rerunfailures/issues/287) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/287\u0026gt;\u003c/code\u003e_)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSwitched to using the SPDX license identifier in the project metadata.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eOther changes\n+++++++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eChange exception filtering logic to match \u003ccode\u003eAssertionError\u003c/code\u003e raised via\n\u003ccode\u003eassert\u003c/code\u003e statements when filtering by \u0026quot;AssertionError\u0026quot;.\n(\u003ccode\u003e[#292](https://github.com/pytest-dev/pytest-rerunfailures/issues/292) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/292\u0026gt;\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/pytest-dev/pytest-rerunfailures/commit/beaa1a46d3d57e30c8e6fa2ad26d42721eeb7d73\"\u003e\u003ccode\u003ebeaa1a4\u003c/code\u003e\u003c/a\u003e Preparing release 15.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/1ddc2455289ef9a25c8b8736dfb84b401ca9be89\"\u003e\u003ccode\u003e1ddc245\u003c/code\u003e\u003c/a\u003e Pimp MANIFEST.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/c5a282cf4e1b20452440da6c16baa9ef9dda83a3\"\u003e\u003ccode\u003ec5a282c\u003c/code\u003e\u003c/a\u003e Update exception filtering to match against actual exception (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/293\"\u003e#293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/3064a7782efbee1ede8f76ae59d87b670b10b829\"\u003e\u003ccode\u003e3064a77\u003c/code\u003e\u003c/a\u003e Use SPDX license identifier (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/d0ff1d4337993cb0f74a46e59f1e6bed0857a0a6\"\u003e\u003ccode\u003ed0ff1d4\u003c/code\u003e\u003c/a\u003e Adjust \u003ccode\u003e--fail-on-flaky\u003c/code\u003e behavior to improve exit status handling (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/288\"\u003e#288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/c4992c38f17090debe74519eb3945e54e0c01d66\"\u003e\u003ccode\u003ec4992c3\u003c/code\u003e\u003c/a\u003e Configure for readthedocs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/5a1a3b2f48ad64e6944354b50eb188378e96dab2\"\u003e\u003ccode\u003e5a1a3b2\u003c/code\u003e\u003c/a\u003e Initial draft docs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/283\"\u003e#283\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/4bbc0bea3ba206639313d165d7252bd7501c96a5\"\u003e\u003ccode\u003e4bbc0be\u003c/code\u003e\u003c/a\u003e Fix duplicate keyword. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/88d1bf27871f1362b4c1d140a99183a1364f0099\"\u003e\u003ccode\u003e88d1bf2\u003c/code\u003e\u003c/a\u003e Release 15.0 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/281\"\u003e#281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/compare/15.0...15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-timeout` from 2.3.1 to 2.4.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-timeout/commit/ddabc934535081a5bf9ba7c9ca5b494aeaf8f665\"\u003e\u003ccode\u003eddabc93\u003c/code\u003e\u003c/a\u003e Add python 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-timeout/commit/617b1b6f0ab74517b92a4966b6db9e509d987972\"\u003e\u003ccode\u003e617b1b6\u003c/code\u003e\u003c/a\u003e Prepare release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-timeout/commit/2e96621ee1b61057438c0f8c5b158eddc31654c5\"\u003e\u003ccode\u003e2e96621\u003c/code\u003e\u003c/a\u003e Change error message to clearly relate it to pytest-timeout (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-timeout/issues/180\"\u003e#180\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-timeout/commit/733b26b5d3b6f1c86876339f336cd827dc7d1a0c\"\u003e\u003ccode\u003e733b26b\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-timeout/commit/fa5fd451afa3e7e676c7a31a9e7b058dabf0988b\"\u003e\u003ccode\u003efa5fd45\u003c/code\u003e\u003c/a\u003e Add support sys.monitoring\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-timeout/commit/3d41ba8042ab1d07613572d95853dcc1c3602880\"\u003e\u003ccode\u003e3d41ba8\u003c/code\u003e\u003c/a\u003e Update README.rst with pytest-xdist 3.0.2 news\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-timeout/commit/935f51cf0931dbbee8162e89b53289f1f43df499\"\u003e\u003ccode\u003e935f51c\u003c/code\u003e\u003c/a\u003e Add missing Python 3.12 trove classifier\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pytest-dev/pytest-timeout/compare/2.3.1...2.4.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\n\n## Summary by Sourcery\n\nUpdate testing dependencies.\n\nBuild:\n- Bump `pytest-rerunfailures` from 15.0 to 15.1.\n- Bump `pytest-timeout` from 2.3.1 to 2.4.0.","html_url":"https://github.com/ansys/pymapdl/pull/3911","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ansys%2Fpymapdl/issues/3911","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/3911/packages"}},{"old_version":"15.0","new_version":"15.1","update_type":null,"path":null,"pr_created_at":"2025-05-08T22:14:50.000Z","version_change":"15.0 → 15.1","issue":{"uuid":"2508184702","node_id":"PR_kwDONb48dc6Vf9x-","number":339,"state":"closed","title":"⬆ Bump pytest-rerunfailures from 15.0 to 15.1","user":"dependabot[bot]","labels":["🔎 enhancement","🐍 python","dependencies"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":"2025-05-09T01:52:12.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-05-08T22:14:50.000Z","updated_at":"2025-05-09T01:52:12.000Z","time_to_close":13042,"merged_at":"2025-05-09T01:52:12.000Z","merged_by":"Chisanan232","closed_by":null,"dependency_metadata":{"prefix":"⬆ Bump","packages":[{"name":"pytest-rerunfailures","old_version":"15.0","new_version":"15.1","repository_url":"https://github.com/pytest-dev/pytest-rerunfailures"}],"path":null,"ecosystem":"conda"},"body":"Bumps [pytest-rerunfailures](https://github.com/pytest-dev/pytest-rerunfailures) from 15.0 to 15.1.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/blob/master/CHANGES.rst\"\u003epytest-rerunfailures's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e15.1 (2025-05-08)\u003c/h2\u003e\n\u003cp\u003eBug fixes\n+++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003e--fail-on-flaky\u003c/code\u003e option to fail the test run with custom exit code\nonly when reruns are detected.\n(\u003ccode\u003e[#287](https://github.com/pytest-dev/pytest-rerunfailures/issues/287) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/287\u0026gt;\u003c/code\u003e_)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSwitched to using the SPDX license identifier in the project metadata.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eOther changes\n+++++++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eChange exception filtering logic to match \u003ccode\u003eAssertionError\u003c/code\u003e raised via\n\u003ccode\u003eassert\u003c/code\u003e statements when filtering by \u0026quot;AssertionError\u0026quot;.\n(\u003ccode\u003e[#292](https://github.com/pytest-dev/pytest-rerunfailures/issues/292) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/292\u0026gt;\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/pytest-dev/pytest-rerunfailures/commit/beaa1a46d3d57e30c8e6fa2ad26d42721eeb7d73\"\u003e\u003ccode\u003ebeaa1a4\u003c/code\u003e\u003c/a\u003e Preparing release 15.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/1ddc2455289ef9a25c8b8736dfb84b401ca9be89\"\u003e\u003ccode\u003e1ddc245\u003c/code\u003e\u003c/a\u003e Pimp MANIFEST.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/c5a282cf4e1b20452440da6c16baa9ef9dda83a3\"\u003e\u003ccode\u003ec5a282c\u003c/code\u003e\u003c/a\u003e Update exception filtering to match against actual exception (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/293\"\u003e#293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/3064a7782efbee1ede8f76ae59d87b670b10b829\"\u003e\u003ccode\u003e3064a77\u003c/code\u003e\u003c/a\u003e Use SPDX license identifier (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/d0ff1d4337993cb0f74a46e59f1e6bed0857a0a6\"\u003e\u003ccode\u003ed0ff1d4\u003c/code\u003e\u003c/a\u003e Adjust \u003ccode\u003e--fail-on-flaky\u003c/code\u003e behavior to improve exit status handling (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/288\"\u003e#288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/c4992c38f17090debe74519eb3945e54e0c01d66\"\u003e\u003ccode\u003ec4992c3\u003c/code\u003e\u003c/a\u003e Configure for readthedocs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/5a1a3b2f48ad64e6944354b50eb188378e96dab2\"\u003e\u003ccode\u003e5a1a3b2\u003c/code\u003e\u003c/a\u003e Initial draft docs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/283\"\u003e#283\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/4bbc0bea3ba206639313d165d7252bd7501c96a5\"\u003e\u003ccode\u003e4bbc0be\u003c/code\u003e\u003c/a\u003e Fix duplicate keyword. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/88d1bf27871f1362b4c1d140a99183a1364f0099\"\u003e\u003ccode\u003e88d1bf2\u003c/code\u003e\u003c/a\u003e Release 15.0 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/281\"\u003e#281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/compare/15.0...15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pytest-rerunfailures\u0026package-manager=pip\u0026previous-version=15.0\u0026new-version=15.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don'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/Chisanan232/PyFake-API-Server-Surveillance/pull/339","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Chisanan232%2FPyFake-API-Server-Surveillance/issues/339","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/339/packages"}},{"old_version":"15.0","new_version":"15.1","update_type":null,"path":null,"pr_created_at":"2025-05-08T19:40:59.000Z","version_change":"15.0 → 15.1","issue":{"uuid":"2507938780","node_id":"PR_kwDOOVNBGM6VfBvc","number":28,"state":"closed","title":"⬆ Bump pytest-rerunfailures from 15.0 to 15.1","user":"dependabot[bot]","labels":["dependencies","🐍 python","🔎 enhancement"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":"2025-05-09T01:52:38.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-05-08T19:40:59.000Z","updated_at":"2025-05-09T01:52:38.000Z","time_to_close":22299,"merged_at":"2025-05-09T01:52:38.000Z","merged_by":"Chisanan232","closed_by":null,"dependency_metadata":{"prefix":"⬆ Bump","packages":[{"name":"pytest-rerunfailures","old_version":"15.0","new_version":"15.1","repository_url":"https://github.com/pytest-dev/pytest-rerunfailures"}],"path":null,"ecosystem":"conda"},"body":"Bumps [pytest-rerunfailures](https://github.com/pytest-dev/pytest-rerunfailures) from 15.0 to 15.1.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/blob/master/CHANGES.rst\"\u003epytest-rerunfailures's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e15.1 (2025-05-08)\u003c/h2\u003e\n\u003cp\u003eBug fixes\n+++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003e--fail-on-flaky\u003c/code\u003e option to fail the test run with custom exit code\nonly when reruns are detected.\n(\u003ccode\u003e[#287](https://github.com/pytest-dev/pytest-rerunfailures/issues/287) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/287\u0026gt;\u003c/code\u003e_)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSwitched to using the SPDX license identifier in the project metadata.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eOther changes\n+++++++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eChange exception filtering logic to match \u003ccode\u003eAssertionError\u003c/code\u003e raised via\n\u003ccode\u003eassert\u003c/code\u003e statements when filtering by \u0026quot;AssertionError\u0026quot;.\n(\u003ccode\u003e[#292](https://github.com/pytest-dev/pytest-rerunfailures/issues/292) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/292\u0026gt;\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/pytest-dev/pytest-rerunfailures/commit/beaa1a46d3d57e30c8e6fa2ad26d42721eeb7d73\"\u003e\u003ccode\u003ebeaa1a4\u003c/code\u003e\u003c/a\u003e Preparing release 15.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/1ddc2455289ef9a25c8b8736dfb84b401ca9be89\"\u003e\u003ccode\u003e1ddc245\u003c/code\u003e\u003c/a\u003e Pimp MANIFEST.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/c5a282cf4e1b20452440da6c16baa9ef9dda83a3\"\u003e\u003ccode\u003ec5a282c\u003c/code\u003e\u003c/a\u003e Update exception filtering to match against actual exception (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/293\"\u003e#293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/3064a7782efbee1ede8f76ae59d87b670b10b829\"\u003e\u003ccode\u003e3064a77\u003c/code\u003e\u003c/a\u003e Use SPDX license identifier (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/d0ff1d4337993cb0f74a46e59f1e6bed0857a0a6\"\u003e\u003ccode\u003ed0ff1d4\u003c/code\u003e\u003c/a\u003e Adjust \u003ccode\u003e--fail-on-flaky\u003c/code\u003e behavior to improve exit status handling (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/288\"\u003e#288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/c4992c38f17090debe74519eb3945e54e0c01d66\"\u003e\u003ccode\u003ec4992c3\u003c/code\u003e\u003c/a\u003e Configure for readthedocs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/5a1a3b2f48ad64e6944354b50eb188378e96dab2\"\u003e\u003ccode\u003e5a1a3b2\u003c/code\u003e\u003c/a\u003e Initial draft docs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/283\"\u003e#283\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/4bbc0bea3ba206639313d165d7252bd7501c96a5\"\u003e\u003ccode\u003e4bbc0be\u003c/code\u003e\u003c/a\u003e Fix duplicate keyword. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/88d1bf27871f1362b4c1d140a99183a1364f0099\"\u003e\u003ccode\u003e88d1bf2\u003c/code\u003e\u003c/a\u003e Release 15.0 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/281\"\u003e#281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/compare/15.0...15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pytest-rerunfailures\u0026package-manager=pip\u0026previous-version=15.0\u0026new-version=15.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don'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/Chisanan232/Create-PR-Bot/pull/28","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Chisanan232%2FCreate-PR-Bot/issues/28","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/28/packages"}}]}