{"id":29154,"name":"setuptools","ecosystem":"conda","repository_url":"https://github.com/pypa/setuptools","issues_count":5,"created_at":"2025-06-07T06:02:15.266Z","updated_at":"2025-06-07T06:02:15.266Z","purl":"pkg:conda/setuptools","metadata":{"id":5284895,"name":"setuptools","ecosystem":"conda","description":"Setuptools is a fully-featured, actively-maintained, and stable library designed to facilitate packaging Python projects.","homepage":"https://github.com/pypa/setuptools","licenses":"MIT","normalized_licenses":["MIT"],"repository_url":"https://github.com/pypa/setuptools","keywords_array":[],"namespace":null,"versions_count":64,"first_release_published_at":"2017-09-19T19:25:12.000Z","latest_release_published_at":"2025-04-30T14:52:42.000Z","latest_release_number":"78.1.1","last_synced_at":"2025-06-07T00:02:54.388Z","created_at":"2022-10-03T15:41:32.241Z","updated_at":"2025-06-07T00:02:54.391Z","registry_url":"https://anaconda.org/anaconda/setuptools","install_command":"conda install -c anaconda setuptools","documentation_url":null,"metadata":{},"repo_metadata":{"uuid":"54980593","full_name":"pypa/setuptools","owner":"pypa","description":"Official project repository for the Setuptools build system","archived":false,"fork":false,"pushed_at":"2023-03-20T19:58:26.000Z","size":43255,"stargazers_count":1965,"open_issues_count":557,"forks_count":997,"subscribers_count":90,"default_branch":"main","last_synced_at":"2023-03-21T20:20:13.067Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://pypi.org/project/setuptools/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"logo_url":null,"metadata":{"files":{"readme":"README.rst","changelog":"CHANGES.rst","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"tidelift":"pypi/setuptools"}},"created_at":"2016-03-29T14:02:33.000Z","updated_at":"2023-03-20T06:28:00.000Z","dependencies_parsed_at":"2022-07-14T05:50:38.044Z","dependency_job_id":null,"html_url":"https://github.com/pypa/setuptools","commit_stats":null,"repository_url":"http://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pypa%2Fsetuptools","tags_url":"http://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pypa%2Fsetuptools/tags","manifests_url":"http://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pypa%2Fsetuptools/manifests","owner_url":"http://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pypa","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":108921946,"host_url":"http://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"http://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"http://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names"},"owner_record":{"login":"pypa","name":"Python Packaging Authority","uuid":"647025","kind":"organization","description":"","email":"info@pypa.io","website":"https://www.pypa.io","location":null,"twitter":null,"company":null,"avatar_url":"https://avatars.githubusercontent.com/u/647025?v=4","repositories_count":44,"last_synced_at":"2023-02-19T21:16:08.654Z","metadata":{"has_sponsors_listing":true},"owner_url":"http://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pypa"},"tags":[{"name":"v65.2.0","sha":"51f78baee91e4b75635fc58ae5d5f744873fc828","kind":"tag","published_at":"2022-08-21T21:43:20.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v65.2.0","html_url":"https://github.com/pypa/setuptools/releases/tag/v65.2.0"},{"name":"v65.1.1","sha":"1f28b237f600ca64b9d8c005be41f792aa03db93","kind":"tag","published_at":"2022-08-21T06:13:52.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v65.1.1","html_url":"https://github.com/pypa/setuptools/releases/tag/v65.1.1"},{"name":"v65.1.0","sha":"cc10f5595e7f0466d83d798a6365953aaf6d444d","kind":"tag","published_at":"2022-08-18T12:34:58.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v65.1.0","html_url":"https://github.com/pypa/setuptools/releases/tag/v65.1.0"},{"name":"v65.0.2","sha":"3c77cf812e9de05ac57e66f44be0e1c73b5736e4","kind":"tag","published_at":"2022-08-17T02:25:16.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v65.0.2","html_url":"https://github.com/pypa/setuptools/releases/tag/v65.0.2"},{"name":"v65.0.1","sha":"e2183b7e3c730bbcd68acf9e0efb38af340d6558","kind":"tag","published_at":"2022-08-15T20:39:45.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v65.0.1","html_url":"https://github.com/pypa/setuptools/releases/tag/v65.0.1"},{"name":"v65.0.0","sha":"7ea47306fb474a0c58825f134ec790a002b2df55","kind":"tag","published_at":"2022-08-14T15:49:33.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v65.0.0","html_url":"https://github.com/pypa/setuptools/releases/tag/v65.0.0"},{"name":"v64.0.3","sha":"12fe5c9c5ba6af9c59c34371d0166fa41a076257","kind":"tag","published_at":"2022-08-12T18:42:12.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v64.0.3","html_url":"https://github.com/pypa/setuptools/releases/tag/v64.0.3"},{"name":"v64.0.2","sha":"4c2d59de189b6f69653c7403c7228f2b5396fa67","kind":"tag","published_at":"2022-08-12T14:06:30.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v64.0.2","html_url":"https://github.com/pypa/setuptools/releases/tag/v64.0.2"},{"name":"v64.0.1","sha":"04d34798e4a00e6db8805a07088d2245135e25fc","kind":"tag","published_at":"2022-08-11T21:23:42.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v64.0.1","html_url":"https://github.com/pypa/setuptools/releases/tag/v64.0.1"},{"name":"v64.0.0","sha":"6a72807f850f4e37595c0da6edc30a0c8dfc40cf","kind":"tag","published_at":"2022-08-11T12:28:49.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v64.0.0","html_url":"https://github.com/pypa/setuptools/releases/tag/v64.0.0"},{"name":"v63.4.3","sha":"1c010b60652af7bcb605c1e201d89b86b9619b9f","kind":"tag","published_at":"2022-08-10T16:09:31.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v63.4.3","html_url":"https://github.com/pypa/setuptools/releases/tag/v63.4.3"},{"name":"v63.4.2","sha":"d1fdd2635c5ee3b26c9cb39b6bf49ee6454970a1","kind":"tag","published_at":"2022-08-06T19:06:33.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v63.4.2","html_url":"https://github.com/pypa/setuptools/releases/tag/v63.4.2"},{"name":"v63.4.1","sha":"77d3d403458fb058ce950d4873390c238af47459","kind":"tag","published_at":"2022-08-03T15:13:51.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v63.4.1","html_url":"https://github.com/pypa/setuptools/releases/tag/v63.4.1"},{"name":"v63.4.0","sha":"3d934429d31f5a86d3ad4ca4879bb61124855e35","kind":"tag","published_at":"2022-08-03T01:32:53.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v63.4.0","html_url":"https://github.com/pypa/setuptools/releases/tag/v63.4.0"},{"name":"v63.3.0","sha":"166482d9f2d220346985dd93c374dd8f4aba18cc","kind":"tag","published_at":"2022-07-31T23:35:25.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v63.3.0","html_url":"https://github.com/pypa/setuptools/releases/tag/v63.3.0"},{"name":"v63.2.0","sha":"39fae4530720d184f9b959b1c205bd3ac3190532","kind":"tag","published_at":"2022-07-13T22:06:55.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v63.2.0","html_url":"https://github.com/pypa/setuptools/releases/tag/v63.2.0"},{"name":"v64.0.0b1","sha":"49e21527f9e59ca881dab360e125bb2b17280694","kind":"commit","published_at":"2022-07-04T12:43:53.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v64.0.0b1","html_url":"https://github.com/pypa/setuptools/releases/tag/v64.0.0b1"},{"name":"v63.1.0","sha":"5097e822be4b9e4ae82d48e0e5d20b77cd18f31f","kind":"tag","published_at":"2022-07-04T01:04:52.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v63.1.0","html_url":"https://github.com/pypa/setuptools/releases/tag/v63.1.0"},{"name":"v63.0.0","sha":"d4b7d4ab89dbb41bea103bef3aacbb7644b81f7e","kind":"tag","published_at":"2022-07-03T22:05:57.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v63.0.0","html_url":"https://github.com/pypa/setuptools/releases/tag/v63.0.0"},{"name":"v63.0.0b1","sha":"85303e892eeb43314a3c1dbe75e5e9fda6980296","kind":"commit","published_at":"2022-06-29T18:55:51.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v63.0.0b1","html_url":"https://github.com/pypa/setuptools/releases/tag/v63.0.0b1"},{"name":"v62.6.0","sha":"80b893eba04dac7eb7e49f06a3cfefd65e841da5","kind":"tag","published_at":"2022-06-19T18:31:50.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v62.6.0","html_url":"https://github.com/pypa/setuptools/releases/tag/v62.6.0"},{"name":"v62.5.0","sha":"2968cc14ab8c9f705dd719b66c58267de4bf6911","kind":"tag","published_at":"2022-06-17T20:20:28.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v62.5.0","html_url":"https://github.com/pypa/setuptools/releases/tag/v62.5.0"},{"name":"v62.4.0","sha":"e20d72cabea86e07b771e17175359f790176dd45","kind":"tag","published_at":"2022-06-13T10:00:18.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v62.4.0","html_url":"https://github.com/pypa/setuptools/releases/tag/v62.4.0"},{"name":"v62.3.4","sha":"1e7c2941876585f7f3e149f5a6c32fd56518bff7","kind":"tag","published_at":"2022-06-11T11:09:46.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v62.3.4","html_url":"https://github.com/pypa/setuptools/releases/tag/v62.3.4"},{"name":"v62.3.3","sha":"314099e70e21a5215a5ba282bd26fd1753997dfc","kind":"tag","published_at":"2022-06-07T17:21:23.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v62.3.3","html_url":"https://github.com/pypa/setuptools/releases/tag/v62.3.3"},{"name":"v62.3.2","sha":"26e9bc9a667804cdc9dd72f4ee46a5ef2e4cc245","kind":"tag","published_at":"2022-05-18T15:38:21.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v62.3.2","html_url":"https://github.com/pypa/setuptools/releases/tag/v62.3.2"},{"name":"v62.3.1","sha":"61a893894405597709184dcf72d494e4aeb7f6f8","kind":"tag","published_at":"2022-05-17T06:48:10.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v62.3.1","html_url":"https://github.com/pypa/setuptools/releases/tag/v62.3.1"},{"name":"v62.3.0","sha":"5a297d004c7b8940a504223d9f3c8e099ce24799","kind":"tag","published_at":"2022-05-16T20:20:59.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v62.3.0","html_url":"https://github.com/pypa/setuptools/releases/tag/v62.3.0"},{"name":"v62.2.0","sha":"347ba08637ecdd70858876b41c2416efe9e3d4a9","kind":"tag","published_at":"2022-05-10T13:46:57.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v62.2.0","html_url":"https://github.com/pypa/setuptools/releases/tag/v62.2.0"},{"name":"v62.1.0","sha":"487729aa096994a8be7caa25f196720808445747","kind":"tag","published_at":"2022-04-10T19:46:46.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v62.1.0","html_url":"https://github.com/pypa/setuptools/releases/tag/v62.1.0"},{"name":"v62.0.0","sha":"786335b88e1eeb5feb02b7aefeafa3aa6a3499de","kind":"tag","published_at":"2022-04-04T10:27:45.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v62.0.0","html_url":"https://github.com/pypa/setuptools/releases/tag/v62.0.0"},{"name":"v61.3.1","sha":"adf1adf6057ea8ea506baa6b534d0fae7c534cbe","kind":"tag","published_at":"2022-04-01T21:37:20.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v61.3.1","html_url":"https://github.com/pypa/setuptools/releases/tag/v61.3.1"},{"name":"v61.3.0","sha":"702ee7c16c0464b074be6413b6120566a4036de0","kind":"tag","published_at":"2022-03-31T17:46:51.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v61.3.0","html_url":"https://github.com/pypa/setuptools/releases/tag/v61.3.0"},{"name":"v61.2.0","sha":"09ecebe6d39ed53c829aadcb60489307d227d993","kind":"tag","published_at":"2022-03-27T19:22:18.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v61.2.0","html_url":"https://github.com/pypa/setuptools/releases/tag/v61.2.0"},{"name":"v61.1.1","sha":"38729d33c0c085b0cc2909a47aac89ee4a731151","kind":"tag","published_at":"2022-03-26T09:33:29.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v61.1.1","html_url":"https://github.com/pypa/setuptools/releases/tag/v61.1.1"},{"name":"v61.1.0","sha":"ce0846f46d5d26827c5c5585cc22bba52afb55b4","kind":"tag","published_at":"2022-03-25T19:22:59.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v61.1.0","html_url":"https://github.com/pypa/setuptools/releases/tag/v61.1.0"},{"name":"v61.0.0","sha":"2b241232425a67eeed6c1d40bf941861bc5f6a3d","kind":"tag","published_at":"2022-03-24T18:28:25.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v61.0.0","html_url":"https://github.com/pypa/setuptools/releases/tag/v61.0.0"},{"name":"v60.10.0","sha":"e70088c96cd1708c026565021c751aa915164430","kind":"tag","published_at":"2022-03-16T14:56:08.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v60.10.0","html_url":"https://github.com/pypa/setuptools/releases/tag/v60.10.0"},{"name":"v60.9.3","sha":"9d57b4436dbe331f9d6d7ae4ff9e8b2113e43b70","kind":"tag","published_at":"2022-02-18T00:16:39.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v60.9.3","html_url":"https://github.com/pypa/setuptools/releases/tag/v60.9.3"},{"name":"v60.9.2","sha":"5eb59b4add09a1fba16e08bcfa2f632623d5d561","kind":"tag","published_at":"2022-02-16T02:16:11.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v60.9.2","html_url":"https://github.com/pypa/setuptools/releases/tag/v60.9.2"},{"name":"v60.9.1","sha":"7291169541195fe43dc0865a31b8f4435ea2c1c4","kind":"tag","published_at":"2022-02-15T02:56:51.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v60.9.1","html_url":"https://github.com/pypa/setuptools/releases/tag/v60.9.1"},{"name":"v60.9.0","sha":"eca8810677e65b67c196d0446ab49612943821ab","kind":"tag","published_at":"2022-02-13T21:43:47.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v60.9.0","html_url":"https://github.com/pypa/setuptools/releases/tag/v60.9.0"},{"name":"v60.8.2","sha":"4762b87eba79e48df1d0dc966da01697f33e5c7c","kind":"tag","published_at":"2022-02-08T22:53:41.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v60.8.2","html_url":"https://github.com/pypa/setuptools/releases/tag/v60.8.2"},{"name":"v60.8.1","sha":"cf23da2cfce20f9f576d609078155e9cc0229cf6","kind":"tag","published_at":"2022-02-06T15:31:58.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v60.8.1","html_url":"https://github.com/pypa/setuptools/releases/tag/v60.8.1"},{"name":"v60.8.0","sha":"9af697326bd1f929fa712707dd3ba44109c11697","kind":"tag","published_at":"2022-02-06T02:42:17.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v60.8.0","html_url":"https://github.com/pypa/setuptools/releases/tag/v60.8.0"},{"name":"v60.7.1","sha":"a59d507657fcdd956a8e26d1094e9e800e5eb856","kind":"tag","published_at":"2022-02-03T02:18:25.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v60.7.1","html_url":"https://github.com/pypa/setuptools/releases/tag/v60.7.1"},{"name":"v60.7.0","sha":"2eecda5a945efc528028a1a8dc4bb8a816d9831e","kind":"tag","published_at":"2022-02-02T01:14:22.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v60.7.0","html_url":"https://github.com/pypa/setuptools/releases/tag/v60.7.0"},{"name":"v60.6.0","sha":"2f956171bb13ae06985032b3e3840feef4943cb5","kind":"tag","published_at":"2022-01-31T00:53:24.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v60.6.0","html_url":"https://github.com/pypa/setuptools/releases/tag/v60.6.0"},{"name":"v60.5.4","sha":"c7fbaf4c4be26981174e5f3c4409d7faad76ea69","kind":"tag","published_at":"2022-01-17T00:40:51.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v60.5.4","html_url":"https://github.com/pypa/setuptools/releases/tag/v60.5.4"},{"name":"v60.5.3","sha":"f04271fa32659d72be3f43afdb9b11905eaa70fe","kind":"tag","published_at":"2022-01-14T02:32:52.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v60.5.3","html_url":"https://github.com/pypa/setuptools/releases/tag/v60.5.3"},{"name":"v60.5.2","sha":"f4f02d6d04bb4f8c3c601d18f7710ad2c4ec2199","kind":"tag","published_at":"2022-01-11T22:27:39.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v60.5.2","html_url":"https://github.com/pypa/setuptools/releases/tag/v60.5.2"},{"name":"v60.5.1","sha":"366ede100375f25cc869215d9e7aba4cff30ab65","kind":"tag","published_at":"2022-01-11T01:51:23.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v60.5.1","html_url":"https://github.com/pypa/setuptools/releases/tag/v60.5.1"},{"name":"v60.5.0","sha":"4f5ef0098fd97413e7f9bd9eff79d65c88fe226e","kind":"tag","published_at":"2022-01-08T19:39:45.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v60.5.0","html_url":"https://github.com/pypa/setuptools/releases/tag/v60.5.0"},{"name":"v60.4.0","sha":"25f9c501601cb5d3815426ffefbe98b171618c4d","kind":"tag","published_at":"2022-01-08T19:37:36.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v60.4.0","html_url":"https://github.com/pypa/setuptools/releases/tag/v60.4.0"},{"name":"v60.3.1","sha":"290256bed026784cbc58a256cb16f0227d3cba53","kind":"tag","published_at":"2022-01-06T15:52:55.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v60.3.1","html_url":"https://github.com/pypa/setuptools/releases/tag/v60.3.1"},{"name":"v60.3.0","sha":"4a5a4ddfc432f1fc569aa5a76b2b68ebb4b2062f","kind":"commit","published_at":"2022-01-06T00:50:29.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v60.3.0","html_url":"https://github.com/pypa/setuptools/releases/tag/v60.3.0"},{"name":"v60.2.0","sha":"7ccf6bf92f08ab1989d4b390311c814976a1a8ae","kind":"tag","published_at":"2021-12-29T20:34:39.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v60.2.0","html_url":"https://github.com/pypa/setuptools/releases/tag/v60.2.0"},{"name":"v60.1.1","sha":"e566d8affc5a30c6aabd2e0ec6bc161f14575ae8","kind":"tag","published_at":"2021-12-28T19:35:41.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v60.1.1","html_url":"https://github.com/pypa/setuptools/releases/tag/v60.1.1"},{"name":"v60.1.0","sha":"5564be3569682ffe67b2566a05737a4de63c6291","kind":"tag","published_at":"2021-12-24T00:30:24.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v60.1.0","html_url":"https://github.com/pypa/setuptools/releases/tag/v60.1.0"},{"name":"v60.0.5","sha":"ddc3dfe6c6fcc6c86e0ae62062868d45fbc13963","kind":"tag","published_at":"2021-12-23T17:16:27.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v60.0.5","html_url":"https://github.com/pypa/setuptools/releases/tag/v60.0.5"},{"name":"v60.0.4","sha":"3319f80ef31774e57063658976fa9324d7f4bc77","kind":"tag","published_at":"2021-12-22T09:41:54.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v60.0.4","html_url":"https://github.com/pypa/setuptools/releases/tag/v60.0.4"},{"name":"v60.0.3","sha":"9c91de4518c827aa8e2d2e2ad08434ce26345f3d","kind":"tag","published_at":"2021-12-21T00:56:14.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v60.0.3","html_url":"https://github.com/pypa/setuptools/releases/tag/v60.0.3"},{"name":"v60.0.2","sha":"7aa4f60ce5b2f594fb43237d81df8464b79afcc9","kind":"tag","published_at":"2021-12-20T21:43:58.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v60.0.2","html_url":"https://github.com/pypa/setuptools/releases/tag/v60.0.2"},{"name":"v60.0.1","sha":"a0be22a8891589790228e4ef8b011c59be5c3627","kind":"tag","published_at":"2021-12-20T18:53:51.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v60.0.1","html_url":"https://github.com/pypa/setuptools/releases/tag/v60.0.1"},{"name":"v60.0.0","sha":"fc9be9d13db27eb1ff899fb58184203f62e3b198","kind":"tag","published_at":"2021-12-20T00:26:17.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v60.0.0","html_url":"https://github.com/pypa/setuptools/releases/tag/v60.0.0"},{"name":"v59.8.0","sha":"72a79b1f5704cea0f1054eb9326f4a6075399ecc","kind":"tag","published_at":"2021-12-20T00:21:27.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v59.8.0","html_url":"https://github.com/pypa/setuptools/releases/tag/v59.8.0"},{"name":"v59.7.0","sha":"d99938a5b0779b92c1774de92d0428a8021a0d52","kind":"tag","published_at":"2021-12-18T04:29:32.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v59.7.0","html_url":"https://github.com/pypa/setuptools/releases/tag/v59.7.0"},{"name":"v59.6.0","sha":"5f52857c9960900d7013c5a2d1827ea5682d51f6","kind":"tag","published_at":"2021-12-12T18:33:41.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v59.6.0","html_url":"https://github.com/pypa/setuptools/releases/tag/v59.6.0"},{"name":"v59.5.0","sha":"ad56eb1d740f1d4450d3eab174c34b1414d39e82","kind":"tag","published_at":"2021-12-05T16:35:21.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v59.5.0","html_url":"https://github.com/pypa/setuptools/releases/tag/v59.5.0"},{"name":"v59.4.0","sha":"03a91b48f89a526e93abd55117c7abed202fcdb0","kind":"tag","published_at":"2021-11-29T00:08:58.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v59.4.0","html_url":"https://github.com/pypa/setuptools/releases/tag/v59.4.0"},{"name":"v59.3.0","sha":"ca6802c4f29e5c3342882d163fdd7bed91aa03fe","kind":"tag","published_at":"2021-11-26T20:24:02.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v59.3.0","html_url":"https://github.com/pypa/setuptools/releases/tag/v59.3.0"},{"name":"v59.2.0","sha":"60915917aee214c8235ea4c0925974db8bf0ef71","kind":"tag","published_at":"2021-11-19T00:36:37.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v59.2.0","html_url":"https://github.com/pypa/setuptools/releases/tag/v59.2.0"},{"name":"v59.1.1","sha":"1d3a1611b62a9a4957f44db4c5bea230ef4e86af","kind":"tag","published_at":"2021-11-15T23:59:43.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v59.1.1","html_url":"https://github.com/pypa/setuptools/releases/tag/v59.1.1"},{"name":"v59.1.0","sha":"457bf9bc2471f5bfe531822a7bc668ae90c1f40e","kind":"tag","published_at":"2021-11-14T22:45:41.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v59.1.0","html_url":"https://github.com/pypa/setuptools/releases/tag/v59.1.0"},{"name":"v59.0.1","sha":"3937ce9505dd75396e20b2e297a634d6a345e9b5","kind":"tag","published_at":"2021-11-14T20:04:51.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v59.0.1","html_url":"https://github.com/pypa/setuptools/releases/tag/v59.0.1"},{"name":"v59.0.0","sha":"08c8153589f66eb0c37d7a0152c3fdca48a1b1af","kind":"tag","published_at":"2021-11-13T01:00:53.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v59.0.0","html_url":"https://github.com/pypa/setuptools/releases/tag/v59.0.0"},{"name":"v58.5.3","sha":"82ca40cad7b8d1936b3eff2ec2fdcbf095213449","kind":"tag","published_at":"2021-11-04T22:42:46.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v58.5.3","html_url":"https://github.com/pypa/setuptools/releases/tag/v58.5.3"},{"name":"v58.5.2","sha":"4ed1310b678ef06f4cbd7518c92364aa3a8ec8f7","kind":"tag","published_at":"2021-11-03T23:30:13.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v58.5.2","html_url":"https://github.com/pypa/setuptools/releases/tag/v58.5.2"},{"name":"v58.5.1","sha":"f900021e8c140050799a0a4048fc79c540756c5a","kind":"tag","published_at":"2021-11-03T21:59:28.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v58.5.1","html_url":"https://github.com/pypa/setuptools/releases/tag/v58.5.1"},{"name":"v58.5.0","sha":"19646cc5ee80dac65d24bde62f658f2e7dad0643","kind":"tag","published_at":"2021-11-03T21:53:03.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v58.5.0","html_url":"https://github.com/pypa/setuptools/releases/tag/v58.5.0"},{"name":"v58.4.0","sha":"c361d1d665c8e80ce050714229dee308d64c6bc0","kind":"tag","published_at":"2021-11-01T01:39:54.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v58.4.0","html_url":"https://github.com/pypa/setuptools/releases/tag/v58.4.0"},{"name":"v58.3.0","sha":"2470848fb4b01f592ef20a62d2e6baa08197645c","kind":"tag","published_at":"2021-10-22T20:15:32.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v58.3.0","html_url":"https://github.com/pypa/setuptools/releases/tag/v58.3.0"},{"name":"v58.2.0","sha":"933cf72cbb3b45010ad3247f34260f459fcff11a","kind":"tag","published_at":"2021-10-02T02:19:16.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v58.2.0","html_url":"https://github.com/pypa/setuptools/releases/tag/v58.2.0"},{"name":"v58.1.0","sha":"bb490df6a53041780dc146e250a867c3740de0ec","kind":"tag","published_at":"2021-09-22T01:22:17.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v58.1.0","html_url":"https://github.com/pypa/setuptools/releases/tag/v58.1.0"},{"name":"v58.0.4","sha":"57070ab5c527108c114e1607f091e547d49c0707","kind":"tag","published_at":"2021-09-09T01:21:09.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v58.0.4","html_url":"https://github.com/pypa/setuptools/releases/tag/v58.0.4"},{"name":"v58.0.3","sha":"2a46103f0f6b6978beb45e323c4d018cffb10a0c","kind":"tag","published_at":"2021-09-08T00:20:59.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v58.0.3","html_url":"https://github.com/pypa/setuptools/releases/tag/v58.0.3"},{"name":"v58.0.2","sha":"c1d0a240abc5587295fd209bc35a86696cdbd108","kind":"tag","published_at":"2021-09-06T18:15:07.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v58.0.2","html_url":"https://github.com/pypa/setuptools/releases/tag/v58.0.2"},{"name":"v58.0.1","sha":"78c6d08756cbe95c62cd3482dbc4f53189ebc83d","kind":"tag","published_at":"2021-09-06T16:11:14.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v58.0.1","html_url":"https://github.com/pypa/setuptools/releases/tag/v58.0.1"},{"name":"v58.0.0","sha":"bc0ac2ca96cb7173593916b33789bef551e14d2b","kind":"tag","published_at":"2021-09-05T02:41:23.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v58.0.0","html_url":"https://github.com/pypa/setuptools/releases/tag/v58.0.0"},{"name":"v57.5.0","sha":"9eb61445bb1b5e81d69ad75c832c3675abac8d66","kind":"tag","published_at":"2021-09-04T14:36:26.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v57.5.0","html_url":"https://github.com/pypa/setuptools/releases/tag/v57.5.0"},{"name":"v57.4.0","sha":"93cc9cc0b5ccd9539947481940f5da895846d5a7","kind":"tag","published_at":"2021-07-19T00:30:57.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v57.4.0","html_url":"https://github.com/pypa/setuptools/releases/tag/v57.4.0"},{"name":"v57.3.0","sha":"a3eb385c774c589420dbf738d24efe947e190c05","kind":"tag","published_at":"2021-07-18T20:51:01.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v57.3.0","html_url":"https://github.com/pypa/setuptools/releases/tag/v57.3.0"},{"name":"v57.2.0","sha":"4c4960cdde826b802f995763fb22094a9d005022","kind":"tag","published_at":"2021-07-15T02:09:46.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v57.2.0","html_url":"https://github.com/pypa/setuptools/releases/tag/v57.2.0"},{"name":"v57.1.0","sha":"f78126ccb4f13ec8ceb040fd911821c40300e82c","kind":"tag","published_at":"2021-07-05T03:01:57.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v57.1.0","html_url":"https://github.com/pypa/setuptools/releases/tag/v57.1.0"},{"name":"v57.0.0","sha":"12966ebab4c85e2e6340e2969e9ae601fe40521e","kind":"tag","published_at":"2021-05-23T01:54:09.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v57.0.0","html_url":"https://github.com/pypa/setuptools/releases/tag/v57.0.0"},{"name":"v56.2.0","sha":"e3a13d71c4fc148d55bfb162cf0dc11dfa510d1c","kind":"tag","published_at":"2021-05-09T16:18:56.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v56.2.0","html_url":"https://github.com/pypa/setuptools/releases/tag/v56.2.0"},{"name":"v56.1.0","sha":"474f95b319ecaf448a78b38ddec2cb60f4b25771","kind":"tag","published_at":"2021-05-04T20:31:18.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v56.1.0","html_url":"https://github.com/pypa/setuptools/releases/tag/v56.1.0"},{"name":"v56.0.0","sha":"ca4d127ba5fbde73471e5d999f982bec9dbc81be","kind":"tag","published_at":"2021-04-08T23:34:42.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v56.0.0","html_url":"https://github.com/pypa/setuptools/releases/tag/v56.0.0"},{"name":"v55.0.0","sha":"f0bd8f0fb27b7acec058f30753b6cbdf1b2b70d4","kind":"tag","published_at":"2021-03-31T02:02:15.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v55.0.0","html_url":"https://github.com/pypa/setuptools/releases/tag/v55.0.0"},{"name":"v54.2.0","sha":"beb061f90d713b1feee89413b423deff14c8f523","kind":"tag","published_at":"2021-03-22T12:46:01.000Z","download_url":"https://codeload.github.com/pypa/setuptools/tar.gz/v54.2.0","html_url":"https://github.com/pypa/setuptools/releases/tag/v54.2.0"}]},"repo_metadata_updated_at":"2023-03-22T07:24:24.037Z","dependent_packages_count":96,"downloads":null,"downloads_period":null,"dependent_repos_count":5916,"rankings":{"downloads":null,"dependent_repos_count":0.18399264029438822,"dependent_packages_count":0.27598896044158233,"stargazers_count":17.66329346826127,"forks_count":11.039558417663294,"docker_downloads_count":null,"average":7.290708371665134},"purl":"pkg:conda/setuptools","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/conda/setuptools","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/conda/setuptools","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/conda/setuptools/dependencies","status":null,"funding_links":["https://tidelift.com/funding/github/pypi/setuptools","https://github.com/sponsors/pypa"],"critical":false,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/anaconda.org/packages/setuptools/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/anaconda.org/packages/setuptools/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/anaconda.org/packages/setuptools/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/anaconda.org/packages/setuptools/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":5,"unique_repositories_count_past_30_days":1,"recent_issues":[{"uuid":"4434834778","node_id":"PR_kwDOR76B_M7a9V6q","number":57,"state":"closed","title":"Bump the conda-dependencies group across 1 directory with 11 updates","user":"dependabot[bot]","labels":["dependencies","conda"],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":"2026-05-13T19:30:47.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-13T04:33:49.000Z","updated_at":"2026-05-13T19:30:49.000Z","time_to_close":53818,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"conda-dependencies","update_count":11,"packages":[{"name":"python","old_version":"3.14","new_version":"3.14.4"},{"name":"numba","old_version":"0.65.0","new_version":"0.65.1"},{"name":"numpyro","old_version":"0.20.1","new_version":"0.21.0"},{"name":"pandas","old_version":"3.0.1","new_version":"3.0.3"},{"name":"ipython","old_version":"9.12.0","new_version":"9.13.0","repository_url":"https://github.com/ipython/ipython"},{"name":"matplotlib","old_version":"3.10.8","new_version":"3.10.9","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"notebook","old_version":"7.5.5","new_version":"7.5.6","repository_url":"https://github.com/jupyter/notebook"},{"name":"orjson","old_version":"3.11.8","new_version":"3.11.9","repository_url":"https://github.com/ijl/orjson"},{"name":"pandas","old_version":"3.0.1","new_version":"3.0.3"},{"name":"ruff","old_version":"0.15.11","new_version":"0.15.12","repository_url":"https://github.com/astral-sh/ruff"},{"name":"setuptools","old_version":"81.0.0","new_version":"82.0.1","repository_url":"https://github.com/pypa/setuptools"}],"path":null,"ecosystem":"conda"},"body":"Updates the requirements on python, arviz, numba, numpyro, pandas, [ipython](https://github.com/ipython/ipython), [matplotlib](https://github.com/matplotlib/matplotlib), [notebook](https://github.com/jupyter/notebook), [orjson](https://github.com/ijl/orjson), [ruff](https://github.com/astral-sh/ruff) and [setuptools](https://github.com/pypa/setuptools) to permit the latest version.\nUpdates `python` from 3.14 to 3.14.4\n\nUpdates `arviz` to 1.1.0\n\nUpdates `numba` from 0.65.0 to 0.65.1\n\nUpdates `numpyro` from 0.20.1 to 0.21.0\n\nUpdates `pandas` from 3.0.1 to 3.0.3\n\nUpdates `ipython` from 9.12.0 to 9.13.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/7c1654dcb4bc0d4c841fbee1f5abf7c6c6007111\"\u003e\u003ccode\u003e7c1654d\u003c/code\u003e\u003c/a\u003e release 9.13.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/d7cd8a44234ddbdba782a42fce7893a4ff4529f4\"\u003e\u003ccode\u003ed7cd8a4\u003c/code\u003e\u003c/a\u003e Fix reStructuredText heading underline consistency in whatsnew (\u003ca href=\"https://redirect.github.com/ipython/ipython/issues/15189\"\u003e#15189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/6542c95bef054c7ed4c1725047726b7140fe0e4d\"\u003e\u003ccode\u003e6542c95\u003c/code\u003e\u003c/a\u003e Fix RST header levels in whatsnew/version9.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/0ca3e92249fb0af429b40e4827000955d5ceeeb3\"\u003e\u003ccode\u003e0ca3e92\u003c/code\u003e\u003c/a\u003e Prepare release notes for 9.13 (\u003ca href=\"https://redirect.github.com/ipython/ipython/issues/15188\"\u003e#15188\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/9c8ce1184eceb865d392b39030d6c670caea89c5\"\u003e\u003ccode\u003e9c8ce11\u003c/code\u003e\u003c/a\u003e Revert release.py change, keep as dev\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/1fb2f7dc221e9b889d857b79c38704eab594d4c0\"\u003e\u003ccode\u003e1fb2f7d\u003c/code\u003e\u003c/a\u003e Prepare release notes for 9.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/be4179d1ba8b5c4e0f0d35a7d2f1654fd15c96e3\"\u003e\u003ccode\u003ebe4179d\u003c/code\u003e\u003c/a\u003e Implement support for image/png format in terminal (\u003ca href=\"https://redirect.github.com/ipython/ipython/issues/15184\"\u003e#15184\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/1ec6bc9ca9558877b5bfccf66c22e8e61ceba83d\"\u003e\u003ccode\u003e1ec6bc9\u003c/code\u003e\u003c/a\u003e Implement support for image/png format in terminal\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/c6f48bceeec68b6ad9b9e6270eee9a7f4277b245\"\u003e\u003ccode\u003ec6f48bc\u003c/code\u003e\u003c/a\u003e solves \u003ca href=\"https://redirect.github.com/ipython/ipython/issues/14901\"\u003e#14901\u003c/a\u003e illegible yellow string on yellow background issue (\u003ca href=\"https://redirect.github.com/ipython/ipython/issues/15156\"\u003e#15156\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/8635f71fc551d76f017ad47c826bb7c7bfcb6b24\"\u003e\u003ccode\u003e8635f71\u003c/code\u003e\u003c/a\u003e fix: CapturedIO.\u003cstrong\u003einit\u003c/strong\u003e type annotations to accept Optional[StringIO] (\u003ca href=\"https://redirect.github.com/ipython/ipython/issues/15172\"\u003e#15172\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ipython/ipython/compare/9.12.0...9.13.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `matplotlib` from 3.10.8 to 3.10.9\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/matplotlib/matplotlib/releases\"\u003ematplotlib's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.10.9\u003c/h2\u003e\n\u003cp\u003eThis is a micro release of the v3.10.x series.\nHighlights of this release include:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious minor bug and doc fixes\u003c/li\u003e\n\u003cli\u003eSecurity hardening validation of cyclers - Removing eval usage\u003c/li\u003e\n\u003cli\u003eSecurity hardening in Latex and PS calls - Removing shell escapes\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/dd8d78b8dce60b6c8db86132892577a0b9dbe469\"\u003e\u003ccode\u003edd8d78b\u003c/code\u003e\u003c/a\u003e REL: v3.10.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/2fb18915bcfe69a188832c776fe18d88337de9bc\"\u003e\u003ccode\u003e2fb1891\u003c/code\u003e\u003c/a\u003e REL: Release prep v3.10.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/d0e923abfa016c04901fe4e315b9d215949f6fc5\"\u003e\u003ccode\u003ed0e923a\u003c/code\u003e\u003c/a\u003e Merge branch 'v3.10.8-doc' into v3.10.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/163793248a5fc9f23a560e45551c44351a8bd716\"\u003e\u003ccode\u003e1637932\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/31558\"\u003e#31558\u003c/a\u003e from meeseeksmachine/auto-backport-of-pr-31556-on-v...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/a83faacb0dbe7edd1bae38e1e715b77b6aaebb84\"\u003e\u003ccode\u003ea83faac\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/31556\"\u003e#31556\u003c/a\u003e: FIX: Inverted PyErr_Occurred check in enum type caster (_...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/a4f57ab0623f9d26be29e0a3b0de904667c7eeb7\"\u003e\u003ccode\u003ea4f57ab\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/31545\"\u003e#31545\u003c/a\u003e from ksunden/backport-of-pr-31282-on-v3.10.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/063288d0cc912aa2af5cc1b7e7ca3d228d9f8976\"\u003e\u003ccode\u003e063288d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/31544\"\u003e#31544\u003c/a\u003e from ksunden/backport-of-pr-31248-on-v3.10.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/b2ed1969191a03ec8927f96573664474662ab4c1\"\u003e\u003ccode\u003eb2ed196\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/31248\"\u003e#31248\u003c/a\u003e: SEC: Remove eval() from validate_cycler\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/acc60241a70b920eaf04fce41a8cf0a77010fb7d\"\u003e\u003ccode\u003eacc6024\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/31282\"\u003e#31282\u003c/a\u003e from scottshambaugh/tex_no_shell\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/e3fb54163b1ce9dbc1a9e8e0973289dc14e366c2\"\u003e\u003ccode\u003ee3fb541\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/31078\"\u003e#31078\u003c/a\u003e from meeseeksmachine/auto-backport-of-pr-31075-on-v...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/matplotlib/matplotlib/compare/v3.10.8...v3.10.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `notebook` from 7.5.5 to 7.5.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jupyter/notebook/releases\"\u003enotebook's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.5.6\u003c/h2\u003e\n\u003ch2\u003e7.5.6\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/jupyter/notebook/compare/@jupyter-notebook/application-extension@7.5.5...2e642f0cb10be314ba5d97d709cffe41bf992d9e\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eSecurity patches\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-42557 \u003ca href=\"https://github.com/jupyterlab/jupyterlab/security/advisories/GHSA-mqcg-5x36-vfcg\"\u003ehttps://github.com/jupyterlab/jupyterlab/security/advisories/GHSA-mqcg-5x36-vfcg\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCVE-2026-40171 \u003ca href=\"https://github.com/jupyter/notebook/security/advisories/GHSA-rch3-82jr-f9w9\"\u003ehttps://github.com/jupyter/notebook/security/advisories/GHSA-rch3-82jr-f9w9\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMaintenance and upkeep improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate to JupyterLab v4.5.7 \u003ca href=\"https://redirect.github.com/jupyter/notebook/pull/7902\"\u003e#7902\u003c/a\u003e (\u003ca href=\"https://github.com/jtpio\"\u003e\u003ccode\u003e@​jtpio\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edocs: Fix broken links in troubleshooting and migration docs \u003ca href=\"https://redirect.github.com/jupyter/notebook/pull/7824\"\u003e#7824\u003c/a\u003e (\u003ca href=\"https://github.com/RamiNoodle733\"\u003e\u003ccode\u003e@​RamiNoodle733\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors to this release\u003c/h3\u003e\n\u003cp\u003eThe following people contributed discussions, new ideas, code and documentation contributions, and review.\nSee \u003ca href=\"https://github-activity.readthedocs.io/en/latest/use/#how-does-this-tool-define-contributions-in-the-reports\"\u003eour definition of contributors\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/jupyter/notebook/graphs/contributors?from=2026-03-11\u0026amp;to=2026-04-30\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/jtpio\"\u003e\u003ccode\u003e@​jtpio\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2026-03-11..2026-04-30\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/RamiNoodle733\"\u003e\u003ccode\u003e@​RamiNoodle733\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3ARamiNoodle733+updated%3A2026-03-11..2026-04-30\u0026amp;type=Issues\"\u003eactivity\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/jupyter/notebook/blob/@jupyter-notebook/tree@7.5.6/CHANGELOG.md\"\u003enotebook's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.5.6\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/jupyter/notebook/compare/@jupyter-notebook/application-extension@7.5.5...2e642f0cb10be314ba5d97d709cffe41bf992d9e\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eMaintenance and upkeep improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate to JupyterLab v4.5.7 \u003ca href=\"https://redirect.github.com/jupyter/notebook/pull/7902\"\u003e#7902\u003c/a\u003e (\u003ca href=\"https://github.com/jtpio\"\u003e\u003ccode\u003e@​jtpio\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edocs: Fix broken links in troubleshooting and migration docs \u003ca href=\"https://redirect.github.com/jupyter/notebook/pull/7824\"\u003e#7824\u003c/a\u003e (\u003ca href=\"https://github.com/RamiNoodle733\"\u003e\u003ccode\u003e@​RamiNoodle733\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors to this release\u003c/h3\u003e\n\u003cp\u003eThe following people contributed discussions, new ideas, code and documentation contributions, and review.\nSee \u003ca href=\"https://github-activity.readthedocs.io/en/latest/use/#how-does-this-tool-define-contributions-in-the-reports\"\u003eour definition of contributors\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/jupyter/notebook/graphs/contributors?from=2026-03-11\u0026amp;to=2026-04-30\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/jtpio\"\u003e\u003ccode\u003e@​jtpio\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2026-03-11..2026-04-30\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/RamiNoodle733\"\u003e\u003ccode\u003e@​RamiNoodle733\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3ARamiNoodle733+updated%3A2026-03-11..2026-04-30\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e)\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyter/notebook/commit/1ab2d2b99261996e94069ca53dd3d74b8b2ee1ba\"\u003e\u003ccode\u003e1ab2d2b\u003c/code\u003e\u003c/a\u003e Publish 7.5.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyter/notebook/commit/50e5222c9670121c3369900c7dce01aae53823fc\"\u003e\u003ccode\u003e50e5222\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyter/notebook/commit/2e642f0cb10be314ba5d97d709cffe41bf992d9e\"\u003e\u003ccode\u003e2e642f0\u003c/code\u003e\u003c/a\u003e Update to JupyterLab v4.5.7 (\u003ca href=\"https://redirect.github.com/jupyter/notebook/issues/7902\"\u003e#7902\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyter/notebook/commit/4b93f98b5a6e57027a2e1d58694b56e2ebd793a3\"\u003e\u003ccode\u003e4b93f98\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyter/notebook/issues/7824\"\u003e#7824\u003c/a\u003e: docs: Fix broken links in troubleshooting and migration do...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/jupyter/notebook/compare/@jupyter-notebook/tree@7.5.5...@jupyter-notebook/tree@7.5.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `orjson` from 3.11.8 to 3.11.9\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ijl/orjson/releases\"\u003eorjson's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.11.9\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuild now depends on Rust 1.95 or later instead of 1.89.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix building on Rust 1.95.\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/ijl/orjson/blob/master/CHANGELOG.md\"\u003eorjson's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.11.9 - 2026-05-06\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuild now depends on Rust 1.95 or later instead of 1.89.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix building on Rust 1.95.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/705515d77b28429d0b7c30c3d781abe52e8a1e5a\"\u003e\u003ccode\u003e705515d\u003c/code\u003e\u003c/a\u003e 3.11.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/d19055d5bab432f98d53b71606a9c6c23fb21bf6\"\u003e\u003ccode\u003ed19055d\u003c/code\u003e\u003c/a\u003e build update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/77e2d96c3febe099cde2447856fe2523d68c71b0\"\u003e\u003ccode\u003e77e2d96\u003c/code\u003e\u003c/a\u003e MSRV 1.95, remove compiler feature detection\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/ijl/orjson/compare/3.11.8...3.11.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pandas` from 3.0.1 to 3.0.3\n\nUpdates `ruff` from 0.15.11 to 0.15.12\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.12\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-24.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImplement \u003ccode\u003e#ruff:file-ignore\u003c/code\u003e file-level suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23599\"\u003e#23599\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement \u003ccode\u003e#ruff:ignore\u003c/code\u003e logical-line suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23404\"\u003e#23404\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRevert preview changes to displayed diagnostic severity in LSP (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24789\"\u003e#24789\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003etask-branch-as-short-circuit\u003c/code\u003e (\u003ccode\u003eAIR004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23579\"\u003e#23579\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Fix \u003ccode\u003ebreak\u003c/code\u003e/\u003ccode\u003econtinue\u003c/code\u003e handling in \u003ccode\u003eloop-iterator-mutation\u003c/code\u003e (\u003ccode\u003eB909\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24440\"\u003e#24440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLC2701\u003c/code\u003e for type parameter scopes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24576\"\u003e#24576\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epandas-vet\u003c/code\u003e] Suggest \u003ccode\u003e.array\u003c/code\u003e as well in \u003ccode\u003ePD011\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24805\"\u003e#24805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRespect default Unix permissions for cache files (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24794\"\u003e#24794\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLR0124\u003c/code\u003e description not to claim self-comparison always returns the same value (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24749\"\u003e#24749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Expand docs on reusable \u003ccode\u003eTypeVar\u003c/code\u003es and scoping (\u003ccode\u003eUP046\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24153\"\u003e#24153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove rules table accessibility (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24711\"\u003e#24711\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/woodruffw\"\u003e\u003ccode\u003e@​woodruffw\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/avasis-ai\"\u003e\u003ccode\u003e@​avasis-ai\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Dev-iL\"\u003e\u003ccode\u003e@​Dev-iL\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/denyszhak\"\u003e\u003ccode\u003e@​denyszhak\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ShipItAndPray\"\u003e\u003ccode\u003e@​ShipItAndPray\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/augustelalande\"\u003e\u003ccode\u003e@​augustelalande\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/majiayu000\"\u003e\u003ccode\u003e@​majiayu000\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.15.12\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://releases.astral.sh/github/ruff/releases/download/0.15.12/ruff-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- 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/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.12\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-24.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImplement \u003ccode\u003e#ruff:file-ignore\u003c/code\u003e file-level suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23599\"\u003e#23599\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement \u003ccode\u003e#ruff:ignore\u003c/code\u003e logical-line suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23404\"\u003e#23404\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRevert preview changes to displayed diagnostic severity in LSP (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24789\"\u003e#24789\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003etask-branch-as-short-circuit\u003c/code\u003e (\u003ccode\u003eAIR004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23579\"\u003e#23579\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Fix \u003ccode\u003ebreak\u003c/code\u003e/\u003ccode\u003econtinue\u003c/code\u003e handling in \u003ccode\u003eloop-iterator-mutation\u003c/code\u003e (\u003ccode\u003eB909\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24440\"\u003e#24440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLC2701\u003c/code\u003e for type parameter scopes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24576\"\u003e#24576\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epandas-vet\u003c/code\u003e] Suggest \u003ccode\u003e.array\u003c/code\u003e as well in \u003ccode\u003ePD011\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24805\"\u003e#24805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRespect default Unix permissions for cache files (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24794\"\u003e#24794\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLR0124\u003c/code\u003e description not to claim self-comparison always returns the same value (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24749\"\u003e#24749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Expand docs on reusable \u003ccode\u003eTypeVar\u003c/code\u003es and scoping (\u003ccode\u003eUP046\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24153\"\u003e#24153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove rules table accessibility (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24711\"\u003e#24711\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/woodruffw\"\u003e\u003ccode\u003e@​woodruffw\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/avasis-ai\"\u003e\u003ccode\u003e@​avasis-ai\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Dev-iL\"\u003e\u003ccode\u003e@​Dev-iL\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/denyszhak\"\u003e\u003ccode\u003e@​denyszhak\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ShipItAndPray\"\u003e\u003ccode\u003e@​ShipItAndPray\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/augustelalande\"\u003e\u003ccode\u003e@​augustelalande\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/majiayu000\"\u003e\u003ccode\u003e@​majiayu000\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/astral-sh/ruff/commit/66f93cf7ed4d36325f35a452e4afa28268fbcd28\"\u003e\u003ccode\u003e66f93cf\u003c/code\u003e\u003c/a\u003e Bump 0.15.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24815\"\u003e#24815\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/476a4d02e8e3b6c157ac39979d8b698a1b6baa91\"\u003e\u003ccode\u003e476a4d0\u003c/code\u003e\u003c/a\u003e [ty] Complete support for more detailed diagnostics on possibly unbound error...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/ed669eab30095d6c51fe6cdef6050fb01276bcb3\"\u003e\u003ccode\u003eed669ea\u003c/code\u003e\u003c/a\u003e Implement \u003ccode\u003e#ruff:file-ignore\u003c/code\u003e file-level suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23599\"\u003e#23599\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e73d952e43feb51356ee740c5a973fce81396ff6\"\u003e\u003ccode\u003ee73d952\u003c/code\u003e\u003c/a\u003e [ty] Include inferred type in \u003ccode\u003einvalid-key\u003c/code\u003e concise diagnostic for union/inte...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/80feb29b31cd98c093316df2e0407b0c70c01b55\"\u003e\u003ccode\u003e80feb29\u003c/code\u003e\u003c/a\u003e [ty] report only dead annotation-only locals as unused (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24811\"\u003e#24811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/0fbf2bc27336a3d17d39af52cf89b78dcda8c7c8\"\u003e\u003ccode\u003e0fbf2bc\u003c/code\u003e\u003c/a\u003e Drop deprecated license classifier (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24808\"\u003e#24808\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/43b174cc7f2fcb0080bb1d4843cd4bf6b72bbe27\"\u003e\u003ccode\u003e43b174c\u003c/code\u003e\u003c/a\u003e [ty] Infer lambda parameter types with \u003ccode\u003eCallable\u003c/code\u003e type context (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24317\"\u003e#24317\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/4f449ae4a2377569330a5ab94799d389357b5a3f\"\u003e\u003ccode\u003e4f449ae\u003c/code\u003e\u003c/a\u003e [ty] Add error context for intersection types (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24772\"\u003e#24772\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/5b4e753acb46e96ad408e4904c15308e33efe307\"\u003e\u003ccode\u003e5b4e753\u003c/code\u003e\u003c/a\u003e [ty] Add support for goto in literal enum member inlay hint (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24792\"\u003e#24792\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e7cc76275a758ce1c636ea1c2d091fd576aac794\"\u003e\u003ccode\u003ee7cc762\u003c/code\u003e\u003c/a\u003e [ty] Add error context for TypedDict assignments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24790\"\u003e#24790\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.15.11...0.15.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `setuptools` from 81.0.0 to 82.0.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/setuptools/blob/main/NEWS.rst\"\u003esetuptools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev82.0.1\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix the loading of \u003ccode\u003elauncher manifest.xml\u003c/code\u003e file. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5047\"\u003e#5047\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReplaced deprecated \u003ccode\u003ejson.__version__\u003c/code\u003e with fixture in tests. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5186\"\u003e#5186\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved Documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd advice about how to improve predictability when installing sdists. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5168\"\u003e#5168\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4941\"\u003e#4941\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5157\"\u003e#5157\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5169\"\u003e#5169\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5175\"\u003e#5175\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev82.0.0\u003c/h1\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epkg_resources\u003c/code\u003e has been removed from Setuptools. Most common uses of \u003ccode\u003epkg_resources\u003c/code\u003e have been superseded by the \u003ccode\u003eimportlib.resources \u0026lt;https://docs.python.org/3/library/importlib.resources.html\u0026gt;\u003c/code\u003e_ and \u003ccode\u003eimportlib.metadata \u0026lt;https://docs.python.org/3/library/importlib.metadata.html\u0026gt;\u003c/code\u003e_ projects. Projects and environments relying on \u003ccode\u003epkg_resources\u003c/code\u003e for namespace packages or other behavior should depend on older versions of \u003ccode\u003esetuptools\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/3085\"\u003e#3085\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/pypa/setuptools/commit/5a13876673a41e3cd21d4d6e587f53d0fb4fd8e5\"\u003e\u003ccode\u003e5a13876\u003c/code\u003e\u003c/a\u003e Bump version: 82.0.0 → 82.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/51ab8f183f1c4112675d8d6ec6b004406d518ee8\"\u003e\u003ccode\u003e51ab8f1\u003c/code\u003e\u003c/a\u003e Avoid using (deprecated) 'json.\u003cstrong\u003eversion\u003c/strong\u003e' in tests (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5194\"\u003e#5194\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/f9c37b20bb0ed11203f676f9683452a4c3ace6f6\"\u003e\u003ccode\u003ef9c37b2\u003c/code\u003e\u003c/a\u003e Docs/CI: Fix intersphinx references (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5195\"\u003e#5195\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/8173db2a4fc0f6cb28926b3dba59116b79f435c8\"\u003e\u003ccode\u003e8173db2\u003c/code\u003e\u003c/a\u003e Docs: Fix intersphinx references\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/09bafbc74923f2a3591b5b098be75d6af6ca5141\"\u003e\u003ccode\u003e09bafbc\u003c/code\u003e\u003c/a\u003e Fix past tense on newsfragment\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/461ea56c8e629819a23920f44d9298d4f041abde\"\u003e\u003ccode\u003e461ea56\u003c/code\u003e\u003c/a\u003e Add news fragment\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/c4ffe535b58235ff9f9ebe90d24a2cffb57e70ae\"\u003e\u003ccode\u003ec4ffe53\u003c/code\u003e\u003c/a\u003e Avoid using (deprecated) 'json.\u003cstrong\u003eversion\u003c/strong\u003e' in tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/749258b1a96c7accc05ea7d842fb19fc378866fe\"\u003e\u003ccode\u003e749258b\u003c/code\u003e\u003c/a\u003e Cleanup \u003ccode\u003epkg_resources\u003c/code\u003e dependencies and configuration (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5175\"\u003e#5175\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/2019c16701667db1010c62ec11c6ef78c2e58206\"\u003e\u003ccode\u003e2019c16\u003c/code\u003e\u003c/a\u003e Parse \u003ccode\u003eext-module.define-macros\u003c/code\u003e from \u003ccode\u003epyproject.toml\u003c/code\u003e as list of tuples (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5169\"\u003e#5169\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/b809c86a37d97fcce290d5f51d4c293ab40bc685\"\u003e\u003ccode\u003eb809c86\u003c/code\u003e\u003c/a\u003e Sync setuptools schema with validate-pyproject (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5157\"\u003e#5157\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/setuptools/compare/v81.0.0...v82.0.1\"\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 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/dseinternational/language-reading-predictors/pull/57","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/dseinternational%2Flanguage-reading-predictors/issues/57","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/57/packages"},{"uuid":"3989174822","node_id":"PR_kwDOCmWyEM7GNury","number":30,"state":"closed","title":"Bump the all-dependencies group with 15 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-03-03T15:23:57.000Z","author_association":null,"state_reason":null,"created_at":"2026-02-25T12:25:38.000Z","updated_at":"2026-03-03T15:23:59.000Z","time_to_close":529099,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"all-dependencies","update_count":15,"packages":[{"name":"docutils","old_version":"0.22.3","new_version":"0.22.4","repository_url":"https://github.com/rtfd/recommonmark"},{"name":"babel","old_version":"2.17.0","new_version":"2.18.0","repository_url":"https://github.com/python-babel/babel"},{"name":"roman-numerals","old_version":"3.1.0","new_version":"4.1.0","repository_url":"https://github.com/AA-Turner/roman-numerals"},{"name":"packaging","old_version":"25.0","new_version":"26.0","repository_url":"https://github.com/pypa/packaging"},{"name":"ruff","old_version":"0.14.9","new_version":"0.15.2","repository_url":"https://github.com/astral-sh/ruff"},{"name":"build","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/pypa/build"},{"name":"pypi-attestations","old_version":"0.0.28","new_version":"0.0.29","repository_url":"https://github.com/pypi/pypi-attestations"},{"name":"pytest","old_version":"9.0.1","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"cython","old_version":"3.2.2","new_version":"3.2.4","repository_url":"https://github.com/cython/cython"},{"name":"setuptools","old_version":"80.9.0","new_version":"82.0.0","repository_url":"https://github.com/pypa/setuptools"},{"name":"pyrefly","old_version":"0.44.0","new_version":"0.54.0","repository_url":"https://github.com/facebook/pyrefly"},{"name":"pyright","old_version":"1.1.407","new_version":"1.1.408","repository_url":"https://github.com/RobertCraigie/pyright-python"},{"name":"ty","old_version":"0.0.1a30","new_version":"0.0.18","repository_url":"https://github.com/astral-sh/ty"},{"name":"types-docutils","old_version":"0.22.3.20251115","new_version":"0.22.3.20260223","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"types-requests","old_version":"2.32.4.20250913","new_version":"2.32.4.20260107","repository_url":"https://github.com/typeshed-internal/stub_uploader"}],"path":null,"ecosystem":"conda"},"body":"Bumps the all-dependencies group with 15 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [docutils](https://github.com/rtfd/recommonmark) | `0.22.3` | `0.22.4` |\n| [babel](https://github.com/python-babel/babel) | `2.17.0` | `2.18.0` |\n| [roman-numerals](https://github.com/AA-Turner/roman-numerals) | `3.1.0` | `4.1.0` |\n| [packaging](https://github.com/pypa/packaging) | `25.0` | `26.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.14.9` | `0.15.2` |\n| [build](https://github.com/pypa/build) | `1.3.0` | `1.4.0` |\n| [pypi-attestations](https://github.com/pypi/pypi-attestations) | `0.0.28` | `0.0.29` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.1` | `9.0.2` |\n| [cython](https://github.com/cython/cython) | `3.2.2` | `3.2.4` |\n| [setuptools](https://github.com/pypa/setuptools) | `80.9.0` | `82.0.0` |\n| [pyrefly](https://github.com/facebook/pyrefly) | `0.44.0` | `0.54.0` |\n| [pyright](https://github.com/RobertCraigie/pyright-python) | `1.1.407` | `1.1.408` |\n| [ty](https://github.com/astral-sh/ty) | `0.0.1a30` | `0.0.18` |\n| [types-docutils](https://github.com/typeshed-internal/stub_uploader) | `0.22.3.20251115` | `0.22.3.20260223` |\n| [types-requests](https://github.com/typeshed-internal/stub_uploader) | `2.32.4.20250913` | `2.32.4.20260107` |\n\nUpdates `docutils` from 0.22.3 to 0.22.4\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rtfd/recommonmark/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `babel` from 2.17.0 to 2.18.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-babel/babel/releases\"\u003ebabel's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.18.0\u003c/h2\u003e\n\u003cp\u003eHappy 2026! Like last year's release (ahem...), this one too is being made from FOSDEM 2026, in Brussels, Belgium. 🇧🇪\nWe'll aspire for a less glacial release cycle for 2.19. 😁\u003c/p\u003e\n\u003cp\u003ePlease see \u003ca href=\"https://github.com/python-babel/babel/blob/56c63caf50b18b152541b5dcafd51f645d867074/CHANGES.rst\"\u003eCHANGELOG.rst\u003c/a\u003e for the detailed change log.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/python-babel/babel/compare/v2.17.0...v2.18.0\"\u003ehttps://github.com/python-babel/babel/compare/v2.17.0...v2.18.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-babel/babel/blob/master/CHANGES.rst\"\u003ebabel's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 2.18.0\u003c/h2\u003e\n\u003cp\u003eHappy 2026! This release is, coincidentally, also being made from FOSDEM.\u003c/p\u003e\n\u003cp\u003eWe will aspire for a slightly less glacial release cadence in this year;\nthere are interesting features in the pipeline.\u003c/p\u003e\n\u003cp\u003eFeatures\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Core: Add `babel.core.get_cldr_version()` by @akx in :gh:`1242`\n* Core: Use CLDR 47 by @tomasr8 in :gh:`1210`\n* Core: Use canonical IANA zone names in zone_territories by @akx in :gh:`1220`\n* Messages: Improve extract performance via ignoring directories early during os.walk by @akx in :gh:`968`\n* Messages: Merge in per-format keywords and auto_comments by @akx in :gh:`1243`\n* Messages: Update keywords for extraction of dpgettext and dnpgettext by @mardiros in :gh:`1235`\n* Messages: Validate all plurals in Python format checker by @tomasr8 in :gh:`1188`\n* Time: Use standard library `timezone` instead of `FixedOffsetTimezone` by @akx in :gh:`1203`\n\u003cp\u003eBugfixes\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCore: Fix formatting for \u0026quot;Empty locale identifier\u0026quot; exception added in \u003ca href=\"https://redirect.github.com/python-babel/babel/issues/1164\"\u003e#1164\u003c/a\u003e by \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e in :gh:\u003ccode\u003e1184\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eCore: Improve handling of no-inheritance-marker in timezone data by \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e in :gh:\u003ccode\u003e1194\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eCore: Make the number pattern regular expression more efficient by \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e in :gh:\u003ccode\u003e1213\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eMessages: Keep translator comments next to the translation function call by \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e in :gh:\u003ccode\u003e1196\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eNumbers: Fix KeyError that occurred when formatting compact currencies of exactly one thousand in several locales  by \u003ca href=\"https://github.com/bartbroere\"\u003e\u003ccode\u003e@​bartbroere\u003c/code\u003e\u003c/a\u003e in :gh:\u003ccode\u003e1246\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eOther improvements\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Core: Avoid unnecessary uses of `map()` by @akx in :gh:`1180`\n* Messages: Have init-catalog create directories too by @akx in :gh:`1244`\n* Messages: Optimizations for read_po by @akx in :gh:`1200`\n* Messages: Use pathlib.Path() in catalog frontend; improve test coverage by @akx in :gh:`1204`\n\u003cp\u003eInfrastructure and documentation\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCI: Renovate CI \u0026amp; lint tools by \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e in :gh:\u003ccode\u003e1228\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eCI: Tighten up CI with Zizmor by \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e in :gh:\u003ccode\u003e1230\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eCI: make job permissions explicit by \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e in :gh:\u003ccode\u003e1227\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eDocs: Add SECURITY.md by \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e in :gh:\u003ccode\u003e1229\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eDocs: Remove u string prefix from docs by \u003ca href=\"https://github.com/verhovsky\"\u003e\u003ccode\u003e@​verhovsky\u003c/code\u003e\u003c/a\u003e in :gh:\u003ccode\u003e1174\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eDocs: Update dates.rst with current unicode.org tr35 link by \u003ca href=\"https://github.com/clach04\"\u003e\u003ccode\u003e@​clach04\u003c/code\u003e\u003c/a\u003e in :gh:\u003ccode\u003e1189\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGeneral: Add some PyPI classifiers by \u003ca href=\"https://github.com/tomasr8\"\u003e\u003ccode\u003e@​tomasr8\u003c/code\u003e\u003c/a\u003e in :gh:\u003ccode\u003e1186\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGeneral: Apply reformatting by hand and with Ruff by \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e in :gh:\u003ccode\u003e1202\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGeneral: Test on and declare support for Python 3.14 by \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e in :gh:\u003ccode\u003e1233\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-babel/babel/commit/56c63caf50b18b152541b5dcafd51f645d867074\"\u003e\u003ccode\u003e56c63ca\u003c/code\u003e\u003c/a\u003e Prepare for 2.18.0 (\u003ca href=\"https://redirect.github.com/python-babel/babel/issues/1248\"\u003e#1248\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-babel/babel/commit/73015a1217b90398fe76dcdc3b6e110ce26eb6d3\"\u003e\u003ccode\u003e73015a1\u003c/code\u003e\u003c/a\u003e Add user-agent to CLDR downloader (\u003ca href=\"https://redirect.github.com/python-babel/babel/issues/1247\"\u003e#1247\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-babel/babel/commit/29bd3624463f9b8694d09a308f67f353373c76af\"\u003e\u003ccode\u003e29bd362\u003c/code\u003e\u003c/a\u003e Fix formatting compact currencies of exactly one thousand in several locales ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-babel/babel/commit/851db43b2b175c6bdf69ae6977cd6ad642506046\"\u003e\u003ccode\u003e851db43\u003c/code\u003e\u003c/a\u003e Reuse InitCatalog's guts in UpdateCatalog (\u003ca href=\"https://redirect.github.com/python-babel/babel/issues/1244\"\u003e#1244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-babel/babel/commit/fd00e60adf7e0c74821a77ff2a8b564e9985fd8e\"\u003e\u003ccode\u003efd00e60\u003c/code\u003e\u003c/a\u003e Extract: Merge in per-format keywords and auto_comments (\u003ca href=\"https://redirect.github.com/python-babel/babel/issues/1243\"\u003e#1243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-babel/babel/commit/12a14b6b3f09b6f5c8c745791dd4928f1d58fda0\"\u003e\u003ccode\u003e12a14b6\u003c/code\u003e\u003c/a\u003e Add dpgettext and dnpgettext support (\u003ca href=\"https://redirect.github.com/python-babel/babel/issues/1235\"\u003e#1235\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-babel/babel/commit/7110e6206fd5ddc66db9613935fea8b8c668b7d5\"\u003e\u003ccode\u003e7110e62\u003c/code\u003e\u003c/a\u003e Use canonical IANA zone names in zone_territories (\u003ca href=\"https://redirect.github.com/python-babel/babel/issues/1220\"\u003e#1220\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-babel/babel/commit/e91c3467b0f3bdc4433eab6820819fe69784c2bf\"\u003e\u003ccode\u003ee91c346\u003c/code\u003e\u003c/a\u003e Improve extract performance via ignoring directories early during os.walk (\u003ca href=\"https://redirect.github.com/python-babel/babel/issues/968\"\u003e#968\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-babel/babel/commit/0c4f37838c3cb34cf527dd9890c1b69e98db1354\"\u003e\u003ccode\u003e0c4f378\u003c/code\u003e\u003c/a\u003e Convert Unittest testcases with setup/teardown to fixtures (\u003ca href=\"https://redirect.github.com/python-babel/babel/issues/1240\"\u003e#1240\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-babel/babel/commit/218c96ee305aad95bccb6402af4b4be60ad17ab1\"\u003e\u003ccode\u003e218c96e\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003ebabel.core.get_cldr_version()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-babel/babel/issues/1242\"\u003e#1242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-babel/babel/compare/v2.17.0...v2.18.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `roman-numerals` from 3.1.0 to 4.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/AA-Turner/roman-numerals/releases\"\u003eroman-numerals's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.1.0\u003c/h2\u003e\n\u003cp\u003eroman-numerals 4.1.0\u003c/p\u003e\n\u003ch2\u003ev4.0.0\u003c/h2\u003e\n\u003cp\u003eroman-numerals 4.0.0\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/AA-Turner/roman-numerals/blob/master/CHANGES.rst\"\u003eroman-numerals's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease 4.1.0 (released 17 Dec 2025)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRestore LICENCE.rst in the roman-numerals-py meta-package\u003c/li\u003e\n\u003cli\u003eAdd some debug assertions for unsafe blocks\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eRelease 4.0.0 (released 16 Dec 2025)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRename Python package to \u003ccode\u003eroman-numerals\u003c/code\u003e on PyPI.\u003c/li\u003e\n\u003cli\u003ePublish \u003ccode\u003eroman-numerals-py\u003c/code\u003e as a meta-package that depends\non \u003ccode\u003eroman-numerals\u003c/code\u003e and installs no modules.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.9.\u003c/li\u003e\n\u003cli\u003eDeclare support for Python 3.15.\u003c/li\u003e\n\u003cli\u003eIncrease the minimum supported Rust version (MSRV) to 1.81.0.\u003c/li\u003e\n\u003cli\u003eImplement the \u003ccode\u003ecore::error::Error\u003c/code\u003e trait for all error types.\u003c/li\u003e\n\u003cli\u003eImplement the \u003ccode\u003ecore::fmt\u003c/code\u003e traits in \u003ccode\u003eno-std\u003c/code\u003e mode.\u003c/li\u003e\n\u003cli\u003eImplement \u003ccode\u003eFrom\u0026lt;RomanNumeral\u0026gt;\u003c/code\u003e for most integer types.\u003c/li\u003e\n\u003cli\u003ePublish the \u003ccode\u003eroman-numerals-rs\u003c/code\u003e crate using \u003ccode\u003eTrusted Publishing \u0026lt;https://crates.io/docs/trusted-publishing\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/AA-Turner/roman-numerals/commit/53c9c4eac63b91728fba3c26329163ee57654d21\"\u003e\u003ccode\u003e53c9c4e\u003c/code\u003e\u003c/a\u003e Release v4.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/a3793b83fab7064107ac56a482a6fa93bc9c5048\"\u003e\u003ccode\u003ea3793b8\u003c/code\u003e\u003c/a\u003e Add more SAFETY notes and debug assertions to unsafe blocks (\u003ca href=\"https://redirect.github.com/AA-Turner/roman-numerals/issues/106\"\u003e#106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/46d346e2d08b634856c79783e404616b65626ba7\"\u003e\u003ccode\u003e46d346e\u003c/code\u003e\u003c/a\u003e Adjust annotations in light of PEP 649\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/b8fae405d948415f7397ae4f64569c53cb623105\"\u003e\u003ccode\u003eb8fae40\u003c/code\u003e\u003c/a\u003e Adjust an example in the README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/a88464130711ad5e8d56e6ff747d17068ae17534\"\u003e\u003ccode\u003ea884641\u003c/code\u003e\u003c/a\u003e Restore LICENCE.rst in the roman-numerals-py meta-package\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/c3e1b6b4e6e02e5e19c26dc6f72bbb7b1060cca5\"\u003e\u003ccode\u003ec3e1b6b\u003c/code\u003e\u003c/a\u003e Release v4.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/c335cb63ed97e684a4e9453639bfc7e9f487bb41\"\u003e\u003ccode\u003ec335cb6\u003c/code\u003e\u003c/a\u003e Add publishing step for the \u003ccode\u003eroman-numerals-py\u003c/code\u003e meta-package (\u003ca href=\"https://redirect.github.com/AA-Turner/roman-numerals/issues/105\"\u003e#105\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/649f6e62e7bd24123d7dd489609ae47168aaeb1b\"\u003e\u003ccode\u003e649f6e6\u003c/code\u003e\u003c/a\u003e Add Trusted Publishing workflow for crates.io (\u003ca href=\"https://redirect.github.com/AA-Turner/roman-numerals/issues/104\"\u003e#104\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/ffa4dd1b33eae62f1bd1d44549e10a528b8f1f58\"\u003e\u003ccode\u003effa4dd1\u003c/code\u003e\u003c/a\u003e rust: Refactor tests (\u003ca href=\"https://redirect.github.com/AA-Turner/roman-numerals/issues/103\"\u003e#103\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/26b41561c1d9813104548777b5ed9622d7125b38\"\u003e\u003ccode\u003e26b4156\u003c/code\u003e\u003c/a\u003e Simplify ASCII detection closures (\u003ca href=\"https://redirect.github.com/AA-Turner/roman-numerals/issues/102\"\u003e#102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/AA-Turner/roman-numerals/compare/v3.1.0...v4.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `packaging` from 25.0 to 26.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/packaging/releases\"\u003epackaging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.0\u003c/h2\u003e\n\u003cp\u003eRead about the performance improvements here: \u003ca href=\"https://iscinumpy.dev/post/packaging-faster\"\u003ehttps://iscinumpy.dev/post/packaging-faster\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePEP 751: support pylock by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/900\"\u003epypa/packaging#900\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePEP 794: import name metadata by \u003ca href=\"https://github.com/brettcannon\"\u003e\u003ccode\u003e@​brettcannon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/948\"\u003epypa/packaging#948\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport writing metadata by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/846\"\u003epypa/packaging#846\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003e__replace__\u003c/code\u003e for \u003ccode\u003eVersion\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1003\"\u003epypa/packaging#1003\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport positional pattern matching for \u003ccode\u003eVersion\u003c/code\u003e and \u003ccode\u003eSpecifier\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1004\"\u003epypa/packaging#1004\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBehavior adaptations:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePEP 440 handling of prereleases for \u003ccode\u003eSpecifier.contains\u003c/code\u003e, \u003ccode\u003eSpecifierSet.contains\u003c/code\u003e, and \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/897\"\u003epypa/packaging#897\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle PEP 440 edge case in \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/942\"\u003epypa/packaging#942\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdjust arbitrary equality intersection preservation in \u003ccode\u003eSpecifierSet\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/951\"\u003epypa/packaging#951\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReturn \u003ccode\u003eFalse\u003c/code\u003e instead of raising for \u003ccode\u003e.contains\u003c/code\u003e with invalid version by \u003ca href=\"https://github.com/Liam-DeVoe\"\u003e\u003ccode\u003e@​Liam-DeVoe\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/932\"\u003epypa/packaging#932\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport arbitrary equality on arbitrary strings for \u003ccode\u003eSpecifier\u003c/code\u003e and \u003ccode\u003eSpecifierSet\u003c/code\u003e's \u003ccode\u003efilter\u003c/code\u003e and \u003ccode\u003econtains\u003c/code\u003e method. by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/954\"\u003epypa/packaging#954\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly try to parse as \u003ccode\u003eVersion\u003c/code\u003e on certain marker keys, return \u003ccode\u003eFalse\u003c/code\u003e on unequal ordered comparsions by \u003ca href=\"https://github.com/JP-Ellis\"\u003e\u003ccode\u003e@​JP-Ellis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/939\"\u003epypa/packaging#939\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003e_hash\u003c/code\u003e when unpickling \u003ccode\u003eTag()\u003c/code\u003e by \u003ca href=\"https://github.com/dholth\"\u003e\u003ccode\u003e@​dholth\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/860\"\u003epypa/packaging#860\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrect comment and simplify implicit prerelease handling in \u003ccode\u003eSpecifier.prereleases\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/896\"\u003epypa/packaging#896\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse explicit \u003ccode\u003e_GLibCVersion\u003c/code\u003e \u003ccode\u003eNamedTuple\u003c/code\u003e in \u003ccode\u003e_manylinux\u003c/code\u003e by \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/868\"\u003epypa/packaging#868\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDetect invalid license expressions containing \u003ccode\u003e()\u003c/code\u003e by \u003ca href=\"https://github.com/bwoodsend\"\u003e\u003ccode\u003e@​bwoodsend\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/879\"\u003epypa/packaging#879\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrect regex for metadata \u003ccode\u003e'name'\u003c/code\u003e format by \u003ca href=\"https://github.com/di\"\u003e\u003ccode\u003e@​di\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/925\"\u003epypa/packaging#925\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove the message around expecting a semicolon by \u003ca href=\"https://github.com/pradyunsg\"\u003e\u003ccode\u003e@​pradyunsg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/833\"\u003epypa/packaging#833\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport nested parens in license expressions by \u003ca href=\"https://github.com/Liam-DeVoe\"\u003e\u003ccode\u003e@​Liam-DeVoe\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/931\"\u003epypa/packaging#931\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd space before at symbol in \u003ccode\u003eRequirements\u003c/code\u003e string by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/953\"\u003epypa/packaging#953\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eA root logger use found by ruff LOG, use \u003ccode\u003epackaging\u003c/code\u003e logger instead by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/965\"\u003epypa/packaging#965\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter support for subclassing \u003ccode\u003eMarker\u003c/code\u003e and \u003ccode\u003eRequirement\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1022\"\u003epypa/packaging#1022\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize all extras, not just if it comes first by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1024\"\u003epypa/packaging#1024\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't produce a broken repr if \u003ccode\u003eMarker\u003c/code\u003e fails to construct by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1033\"\u003epypa/packaging#1033\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePerformance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid recompiling regexes in the tokenizer for a 3x speedup by \u003ca href=\"https://github.com/hauntsaninja\"\u003e\u003ccode\u003e@​hauntsaninja\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1019\"\u003epypa/packaging#1019\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove performance in \u003ccode\u003e_manylinux.py\u003c/code\u003e by \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/869\"\u003epypa/packaging#869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMinor cleanups to \u003ccode\u003eVersion\u003c/code\u003e by \u003ca href=\"https://github.com/bearomorphism\"\u003e\u003ccode\u003e@​bearomorphism\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/913\"\u003epypa/packaging#913\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip redundant creation of \u003ccode\u003eVersion\u003c/code\u003es in specifier comparison by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/986\"\u003epypa/packaging#986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCache \u003ccode\u003eSpecifier\u003c/code\u003e's Version by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/985\"\u003epypa/packaging#985\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eVersion\u003c/code\u003e a little faster by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/987\"\u003epypa/packaging#987\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMinor \u003ccode\u003eVersion\u003c/code\u003e regex cleanup by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/990\"\u003epypa/packaging#990\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFaster regex on Python 3.11.5+ by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/988\"\u003epypa/packaging#988\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1055\"\u003epypa/packaging#1055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLazily calculate \u003ccode\u003e_key\u003c/code\u003e in \u003ccode\u003eVersion\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/989\"\u003epypa/packaging#989\u003c/a\u003e and regression for \u003ccode\u003epackaging_legacy\u003c/code\u003e fixed by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1048\"\u003epypa/packaging#1048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFaster \u003ccode\u003ecanonicalize_version\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/993\"\u003epypa/packaging#993\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003efullmatch\u003c/code\u003e in a couple more places by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/992\"\u003epypa/packaging#992\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/pypa/packaging/blob/main/CHANGELOG.rst\"\u003epackaging's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e26.0 - 2026-01-20\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nFeatures:\n\u003cul\u003e\n\u003cli\u003ePEP 751: support pylock (:pull:\u003ccode\u003e900\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ePEP 794: import name metadata (:pull:\u003ccode\u003e948\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport for writing metadata to a file (:pull:\u003ccode\u003e846\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003e__replace__\u003c/code\u003e on Version (:pull:\u003ccode\u003e1003\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport positional pattern matching for \u003ccode\u003eVersion\u003c/code\u003e and \u003ccode\u003eSpecifierSet\u003c/code\u003e (:pull:\u003ccode\u003e1004\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBehavior adaptations:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePEP 440 handling of prereleases for \u003ccode\u003eSpecifier.contains\u003c/code\u003e, \u003ccode\u003eSpecifierSet.contains\u003c/code\u003e, and \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e (:pull:\u003ccode\u003e897\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eHandle PEP 440 edge case in \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e (:pull:\u003ccode\u003e942\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdjust arbitrary equality intersection preservation in \u003ccode\u003eSpecifierSet\u003c/code\u003e (:pull:\u003ccode\u003e951\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eReturn \u003ccode\u003eFalse\u003c/code\u003e instead of raising for \u003ccode\u003e.contains\u003c/code\u003e with invalid version (:pull:\u003ccode\u003e932\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport arbitrary equality on arbitrary strings for \u003ccode\u003eSpecifier\u003c/code\u003e and \u003ccode\u003eSpecifierSet\u003c/code\u003e's \u003ccode\u003efilter\u003c/code\u003e and \u003ccode\u003econtains\u003c/code\u003e method. (:pull:\u003ccode\u003e954\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eOnly try to parse as \u003ccode\u003eVersion\u003c/code\u003e on certain marker keys, return \u003ccode\u003eFalse\u003c/code\u003e on unequal ordered comparisons (:pull:\u003ccode\u003e939\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003e_hash\u003c/code\u003e when unpickling \u003ccode\u003eTag()\u003c/code\u003e (:pull:\u003ccode\u003e860\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eCorrect comment and simplify implicit prerelease handling in \u003ccode\u003eSpecifier.prereleases\u003c/code\u003e (:pull:\u003ccode\u003e896\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse explicit \u003ccode\u003e_GLibCVersion\u003c/code\u003e \u003ccode\u003eNamedTuple\u003c/code\u003e in \u003ccode\u003e_manylinux\u003c/code\u003e (:pull:\u003ccode\u003e868\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDetect invalid license expressions containing \u003ccode\u003e()\u003c/code\u003e (:pull:\u003ccode\u003e879\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eCorrect regex for metadata \u003ccode\u003e'name'\u003c/code\u003e format (:pull:\u003ccode\u003e925\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eImprove the message around expecting a semicolon (:pull:\u003ccode\u003e833\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport nested parens in license expressions (:pull:\u003ccode\u003e931\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd space before at symbol in \u003ccode\u003eRequirements\u003c/code\u003e string (:pull:\u003ccode\u003e953\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eA root logger use found, use a \u003ccode\u003epackaging\u003c/code\u003e logger instead (:pull:\u003ccode\u003e965\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eBetter support for subclassing \u003ccode\u003eMarker\u003c/code\u003e and \u003ccode\u003eRequirement\u003c/code\u003e (:pull:\u003ccode\u003e1022\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eNormalize all extras, not just if it comes first (:pull:\u003ccode\u003e1024\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDon't produce a broken repr if \u003ccode\u003eMarker\u003c/code\u003e fails to construct (:pull:\u003ccode\u003e1033\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePerformance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid recompiling regexes in the tokenizer for a 3x speedup (:pull:\u003ccode\u003e1019\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eImprove performance in \u003ccode\u003e_manylinux.py\u003c/code\u003e (:pull:\u003ccode\u003e869\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMinor cleanups to \u003ccode\u003eVersion\u003c/code\u003e (:pull:\u003ccode\u003e913\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSkip redundant creation of \u003ccode\u003eVersion\u003c/code\u003e's in specifier comparison (:pull:\u003ccode\u003e986\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eCache the \u003ccode\u003eSpecifier\u003c/code\u003e's \u003ccode\u003eVersion\u003c/code\u003e (:pull:\u003ccode\u003e985\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eVersion\u003c/code\u003e a little faster (:pull:\u003ccode\u003e987\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMinor \u003ccode\u003eVersion\u003c/code\u003e regex cleanup (:pull:\u003ccode\u003e990\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFaster regex on Python 3.11.5+ for \u003ccode\u003eVersion\u003c/code\u003e (:pull:\u003ccode\u003e988\u003c/code\u003e, :pull:\u003ccode\u003e1055\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eLazily calculate \u003ccode\u003e_key\u003c/code\u003e in \u003ccode\u003eVersion\u003c/code\u003e (:pull:\u003ccode\u003e989\u003c/code\u003e, :pull:\u003ccode\u003e1048\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFaster \u003ccode\u003ecanonicalize_version\u003c/code\u003e (:pull:\u003ccode\u003e993\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003ere.fullmatch\u003c/code\u003e in a couple more places (:pull:\u003ccode\u003e992\u003c/code\u003e, :pull:\u003ccode\u003e1029\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003emap\u003c/code\u003e instead of generator (:pull:\u003ccode\u003e996\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDeprecate \u003ccode\u003e._version\u003c/code\u003e (\u003ccode\u003e_Version\u003c/code\u003e, a \u003ccode\u003eNamedTuple\u003c/code\u003e) (:pull:\u003ccode\u003e995\u003c/code\u003e, :pull:\u003ccode\u003e1062\u003c/code\u003e)\u003cbr /\u003e\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\u003cbr /\u003e\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/pypa/packaging/commit/3b77a26f5a27473ad3b08194d773f325d018a2d0\"\u003e\u003ccode\u003e3b77a26\u003c/code\u003e\u003c/a\u003e Bump for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/31371cce593d2bde0dd8c436ecfb7d53cb91cfb6\"\u003e\u003ccode\u003e31371cc\u003c/code\u003e\u003c/a\u003e docs: prepare for 26.0 final (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1063\"\u003e#1063\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/9627a8821f09e4c55cd6e9daadb617b67c4741c2\"\u003e\u003ccode\u003e9627a88\u003c/code\u003e\u003c/a\u003e perf: dual replace (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1064\"\u003e#1064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/d5398b8bc19f3fad7b035ceb83023caf06d6e2da\"\u003e\u003ccode\u003ed5398b8\u003c/code\u003e\u003c/a\u003e fix: restore ._version as a compat shim (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1062\"\u003e#1062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/3a7b600a126d237b2ad3cd7e25d2cb5c176276af\"\u003e\u003ccode\u003e3a7b600\u003c/code\u003e\u003c/a\u003e Bump for development\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/d4eefdccf992e963c48011875301d93df6a7f2cc\"\u003e\u003ccode\u003ed4eefdc\u003c/code\u003e\u003c/a\u003e Bump for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/46189124fb43d8989d370902c80ab156eb83a45d\"\u003e\u003ccode\u003e4618912\u003c/code\u003e\u003c/a\u003e docs: prepare for 26.0rc3 (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1060\"\u003e#1060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/0cf1b41b4b321ae08cad7d3e49cfaff5578fe813\"\u003e\u003ccode\u003e0cf1b41\u003c/code\u003e\u003c/a\u003e ci: test on first public release of CPythons (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1056\"\u003e#1056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/716beb1c0a5d7a398bf57fbd80bc2501811e616b\"\u003e\u003ccode\u003e716beb1\u003c/code\u003e\u003c/a\u003e perf:  10% faster stripping zeros (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1058\"\u003e#1058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/350a2306700b738f487f251efa278f532b263dee\"\u003e\u003ccode\u003e350a230\u003c/code\u003e\u003c/a\u003e fix: support CPython 3.11.0-3.11.4 and older PyPy3.11 (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1055\"\u003e#1055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/packaging/compare/25.0...26.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.14.9 to 0.15.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.2\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-02-19.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eExpand the default rule set (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23385\"\u003e#23385\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eIn preview, Ruff now enables a significantly expanded default rule set of 412 rules, up from the stable default set of 59 rules. The new rules are mostly a superset of the stable defaults, with the exception of these rules, which are removed from the preview defaults:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/multiple-imports-on-one-line\"\u003e\u003ccode\u003emultiple-imports-on-one-line\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE401\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/module-import-not-at-top-of-file\"\u003e\u003ccode\u003emodule-import-not-at-top-of-file\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE402\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/module-import-not-at-top-of-file\"\u003e\u003ccode\u003emodule-import-not-at-top-of-file\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE701\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/multiple-statements-on-one-line-semicolon\"\u003e\u003ccode\u003emultiple-statements-on-one-line-semicolon\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE702\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/useless-semicolon\"\u003e\u003ccode\u003euseless-semicolon\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE703\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/none-comparison\"\u003e\u003ccode\u003enone-comparison\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE711\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/true-false-comparison\"\u003e\u003ccode\u003etrue-false-comparison\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE712\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/not-in-test\"\u003e\u003ccode\u003enot-in-test\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE713\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/not-is-test\"\u003e\u003ccode\u003enot-is-test\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE714\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/type-comparison\"\u003e\u003ccode\u003etype-comparison\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE721\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/lambda-assignment\"\u003e\u003ccode\u003elambda-assignment\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE731\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/ambiguous-variable-name\"\u003e\u003ccode\u003eambiguous-variable-name\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE741\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/ambiguous-class-name\"\u003e\u003ccode\u003eambiguous-class-name\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE742\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/ambiguous-function-name\"\u003e\u003ccode\u003eambiguous-function-name\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE743\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/undefined-local-with-import-star\"\u003e\u003ccode\u003eundefined-local-with-import-star\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eF403\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/undefined-local-with-import-star-usage\"\u003e\u003ccode\u003eundefined-local-with-import-star-usage\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eF405\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/undefined-local-with-nested-import-star-usage\"\u003e\u003ccode\u003eundefined-local-with-nested-import-star-usage\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eF406\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/forward-annotation-syntax-error\"\u003e\u003ccode\u003eforward-annotation-syntax-error\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eF722\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf you use preview and prefer the old defaults, you can restore them with configuration like:\u003c/p\u003e\n\u003cpre lang=\"toml\"\u003e\u003ccode\u003e\r\n# ruff.toml\r\n\u003cp\u003e[lint]\nselect = [\u0026quot;E4\u0026quot;, \u0026quot;E7\u0026quot;, \u0026quot;E9\u0026quot;, \u0026quot;F\u0026quot;]\u003c/p\u003e\n\u003ch1\u003epyproject.toml\u003c/h1\u003e\n\u003cp\u003e[tool.ruff.lint]\nselect = [\u0026quot;E4\u0026quot;, \u0026quot;E7\u0026quot;, \u0026quot;E9\u0026quot;, \u0026quot;F\u0026quot;]\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eIf you do give them a try, feel free to share your feedback in the \u003ca href=\"https://github.com/astral-sh/ruff/discussions/23203\"\u003eGitHub discussion\u003c/a\u003e!\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Also check string annotations (\u003ccode\u003ePYI041\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19023\"\u003e#19023\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.2\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-02-19.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eExpand the default rule set (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23385\"\u003e#23385\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eIn preview, Ruff now enables a significantly expanded default rule set of 412\nrules, up from the stable default set of 59 rules. The new rules are mostly a\nsuperset of the stable defaults, with the exception of these rules, which are\nremoved from the preview defaults:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/multiple-imports-on-one-line\"\u003e\u003ccode\u003emultiple-imports-on-one-line\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE401\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/module-import-not-at-top-of-file\"\u003e\u003ccode\u003emodule-import-not-at-top-of-file\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE402\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/module-import-not-at-top-of-file\"\u003e\u003ccode\u003emodule-import-not-at-top-of-file\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE701\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/multiple-statements-on-one-line-semicolon\"\u003e\u003ccode\u003emultiple-statements-on-one-line-semicolon\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE702\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/useless-semicolon\"\u003e\u003ccode\u003euseless-semicolon\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE703\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/none-comparison\"\u003e\u003ccode\u003enone-comparison\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE711\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/true-false-comparison\"\u003e\u003ccode\u003etrue-false-comparison\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE712\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/not-in-test\"\u003e\u003ccode\u003enot-in-test\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE713\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/not-is-test\"\u003e\u003ccode\u003enot-is-test\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE714\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/type-comparison\"\u003e\u003ccode\u003etype-comparison\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE721\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/lambda-assignment\"\u003e\u003ccode\u003elambda-assignment\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE731\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/ambiguous-variable-name\"\u003e\u003ccode\u003eambiguous-variable-name\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE741\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/ambiguous-class-name\"\u003e\u003ccode\u003eambiguous-class-name\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE742\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/ambiguous-function-name\"\u003e\u003ccode\u003eambiguous-function-name\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE743\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/undefined-local-with-import-star\"\u003e\u003ccode\u003eundefined-local-with-import-star\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eF403\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/undefined-local-with-import-star-usage\"\u003e\u003ccode\u003eundefined-local-with-import-star-usage\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eF405\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/undefined-local-with-nested-import-star-usage\"\u003e\u003ccode\u003eundefined-local-with-nested-import-star-usage\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eF406\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/forward-annotation-syntax-error\"\u003e\u003ccode\u003eforward-annotation-syntax-error\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eF722\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf you use preview and prefer the old defaults, you can restore them with\nconfiguration like:\u003c/p\u003e\n\u003cpre lang=\"toml\"\u003e\u003ccode\u003e\n# ruff.toml\n\u003cp\u003e[lint]\nselect = [\u0026quot;E4\u0026quot;, \u0026quot;E7\u0026quot;, \u0026quot;E9\u0026quot;, \u0026quot;F\u0026quot;]\u003c/p\u003e\n\u003ch1\u003epyproject.toml\u003c/h1\u003e\n\u003cp\u003e[tool.ruff.lint]\nselect = [\u0026quot;E4\u0026quot;, \u0026quot;E7\u0026quot;, \u0026quot;E9\u0026quot;, \u0026quot;F\u0026quot;]\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eIf you do give them a try, feel free to share your feedback in the \u003ca href=\"https://github.com/astral-sh/ruff/discussions/23203\"\u003eGitHub\ndiscussion\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/astral-sh/ruff/commit/9d18ee9115f9cbb4c21478baa7c1fa2b46e0759c\"\u003e\u003ccode\u003e9d18ee9\u003c/code\u003e\u003c/a\u003e Hard code workflow name and \u003ccode\u003ecancel-in-progress\u003c/code\u003e only for PRs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23431\"\u003e#23431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7cc15f024b931fe56365f40de3fab01219c092c4\"\u003e\u003ccode\u003e7cc15f0\u003c/code\u003e\u003c/a\u003e Bump 0.15.2 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23430\"\u003e#23430\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/d1b544393ae9cddd8e48ebee8dbfd54bda89f375\"\u003e\u003ccode\u003ed1b5443\u003c/code\u003e\u003c/a\u003e Add extension mapping to configuration file options (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23384\"\u003e#23384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/222574af90c5c0ca8f84c8385cf30c7c10ac2496\"\u003e\u003ccode\u003e222574a\u003c/code\u003e\u003c/a\u003e Expand the default rule set (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23385\"\u003e#23385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/1465b5de3829549b45397e9587b83ab7ac6d26d0\"\u003e\u003ccode\u003e1465b5d\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-async\u003c/code\u003e] Fix \u003ccode\u003ein_async_context\u003c/code\u003e logic (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23426\"\u003e#23426\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/410902fa401afda969cc000f13be341896e6868e\"\u003e\u003ccode\u003e410902f\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003epyupgrade\u003c/code\u003e] Fix handling of \u003ccode\u003etyping.{io,re}\u003c/code\u003e (\u003ccode\u003eUP035\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23131\"\u003e#23131\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/729610acd9e19f57526e8ca40f355626154826bb\"\u003e\u003ccode\u003e729610a\u003c/code\u003e\u003c/a\u003e [ty] Fall back to ambiguous for large control flow graphs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23399\"\u003e#23399\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/1425c185b0a47be87112762f65b5bf7e323fb950\"\u003e\u003ccode\u003e1425c18\u003c/code\u003e\u003c/a\u003e [ty] Add code folding support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/97acaaea5f993f33d3f5bb27c5db760a2f3d1e8a\"\u003e\u003ccode\u003e97acaae\u003c/code\u003e\u003c/a\u003e [ty] Fix stack overflow for self-referential \u003ccode\u003eTypeOf\u003c/code\u003e in annotations (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23407\"\u003e#23407\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/1f380c82584a6dab7e8715bc7dd5ae187da1e69a\"\u003e\u003ccode\u003e1f380c8\u003c/code\u003e\u003c/a\u003e [ty] Update tests \u003ccode\u003ereveal_type\u003c/code\u003e and \u003ccode\u003eNever\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23418\"\u003e#23418\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.14.9...0.15.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `build` from 1.3.0 to 1.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/build/releases\"\u003ebuild's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.4.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--quiet\u003c/code\u003e flag (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/947\"\u003e#947\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd option to dump PEP 517 metadata with \u003ccode\u003e--metadata\u003c/code\u003e (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/940\"\u003e#940\u003c/a\u003e, PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/943\"\u003e#943\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003eUV\u003c/code\u003e environment variable (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/971\"\u003e#971\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove a workaround for 3.14b1 (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/960\"\u003e#960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIn 3.14 final release, \u003ccode\u003ecolor\u003c/code\u003e defaults to \u003ccode\u003eTrue\u003c/code\u003e already (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/962\"\u003e#962\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePass sp-repo-review (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/942\"\u003e#942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIn pytest configuration, \u003ccode\u003elog_level\u003c/code\u003e is better than \u003ccode\u003elog_cli_level\u003c/code\u003e (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/950\"\u003e#950\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSplit up typing and mypy (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/944\"\u003e#944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003etypes-colorama\u003c/code\u003e (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/945\"\u003e#945\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIn docs, first argument for \u003ccode\u003e_has_dependency\u003c/code\u003e is a name (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/970\"\u003e#970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix test failure when \u003ccode\u003eflit-core\u003c/code\u003e is installed (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/921\"\u003e#921\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/build/blob/main/CHANGELOG.rst\"\u003ebuild's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.4.0 (2026-01-08)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--quiet\u003c/code\u003e flag\n(:pr:\u003ccode\u003e947\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd option to dump PEP 517 metadata with \u003ccode\u003e--metadata\u003c/code\u003e\n(:pr:\u003ccode\u003e940\u003c/code\u003e, :pr:\u003ccode\u003e943\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003eUV\u003c/code\u003e environment variable\n(:pr:\u003ccode\u003e971\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eRemove a workaround for 3.14b1\n(:pr:\u003ccode\u003e960\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eIn 3.14 final release, \u003ccode\u003ecolor\u003c/code\u003e defaults to \u003ccode\u003eTrue\u003c/code\u003e already\n(:pr:\u003ccode\u003e962\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ePass sp-repo-review\n(:pr:\u003ccode\u003e942\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eIn pytest configuration, \u003ccode\u003elog_level\u003c/code\u003e is better than \u003ccode\u003elog_cli_level\u003c/code\u003e\n(:pr:\u003ccode\u003e950\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSplit up typing and mypy\n(:pr:\u003ccode\u003e944\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003etypes-colorama\u003c/code\u003e\n(:pr:\u003ccode\u003e945\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eIn docs, first argument for \u003ccode\u003e_has_dependency\u003c/code\u003e is a name\n(PR :pr:\u003ccode\u003e970\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix test failure when \u003ccode\u003eflit-core\u003c/code\u003e is installed\n(PR :pr:\u003ccode\u003e921\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/pypa/build/commit/54f238d1664124e06a68c6c22fd5b1418fa5feb2\"\u003e\u003ccode\u003e54f238d\u003c/code\u003e\u003c/a\u003e chore: prepare for 1.4.0 (\u003ca href=\"https://redirect.github.com/pypa/build/issues/972\"\u003e#972\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/f219276a6e2c6c8222780ba518ce52444a91deaa\"\u003e\u003ccode\u003ef219276\u003c/code\u003e\u003c/a\u003e docs: first argument for _has_dependency is a name (\u003ca href=\"https://redirect.github.com/pypa/build/issues/970\"\u003e#970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/7adb29e69d2744acc5391d3c58d234388a9ac0ed\"\u003e\u003ccode\u003e7adb29e\u003c/code\u003e\u003c/a\u003e fix: support UV environment variable (\u003ca href=\"https://redirect.github.com/pypa/build/issues/971\"\u003e#971\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/a40623b20de5d29c80b569283191d65e630f4fc0\"\u003e\u003ccode\u003ea40623b\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/attest-build-provenance in the actions group (\u003ca href=\"https://redirect.github.com/pypa/build/issues/968\"\u003e#968\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/c8fae3459dbe4456d82d705c6a3f1869b0b26e5c\"\u003e\u003ccode\u003ec8fae34\u003c/code\u003e\u003c/a\u003e pre-commit: bump repositories (\u003ca href=\"https://redirect.github.com/pypa/build/issues/965\"\u003e#965\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/ed9c379f51abca7c0c0ae20bee66aa548d597dc3\"\u003e\u003ccode\u003eed9c379\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/download-artifact in the actions group\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/0e44fd22f35c7b3c14d6410bbd8912dafba0e4a9\"\u003e\u003ccode\u003e0e44fd2\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003equiet\u003c/code\u003e flag (\u003ca href=\"https://redirect.github.com/pypa/build/issues/947\"\u003e#947\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/60e15ed4cb31209f0e07de750c831cdb3911c62c\"\u003e\u003ccode\u003e60e15ed\u003c/code\u003e\u003c/a\u003e chore: color defaults to True in 3.14 (\u003ca href=\"https://redirect.github.com/pypa/build/issues/962\"\u003e#962\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/0486d9df2e6caf7c04a3991824093eb6a16e7f29\"\u003e\u003ccode\u003e0486d9d\u003c/code\u003e\u003c/a\u003e pre-commit: bump repositories (\u003ca href=\"https://redirect.github.com/pypa/build/issues/961\"\u003e#961\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/393b775480523247c1ad07b8da9bb8c23c5cd0fa\"\u003e\u003ccode\u003e393b775\u003c/code\u003e\u003c/a\u003e MNT: remove workaround for 3.14b1 (\u003ca href=\"https://redirect.github.com/pypa/build/issues/960\"\u003e#960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/build/compare/1.3.0...1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pypi-attestations` from 0.0.28 to 0.0.29\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypi/pypi-attestations/releases\"\u003epypi-attestations's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.0.29\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix lint and remove support for Python 3.9 by \u003ca href=\"https://github.com/facutuesca\"\u003e\u003ccode\u003e@​facutuesca\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypi/pypi-attestations/pull/151\"\u003epypi/pypi-attestations#151\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd GCP support to CLI by \u003ca href=\"https://github.com/di\"\u003e\u003ccode\u003e@​di\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypi/pypi-attestations/pull/157\"\u003epypi/pypi-attestations#157\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pypi/pypi-attestations/compare/v0.0.28...v0.0.29\"\u003ehttps://github.com/pypi/pypi-attestations/compare/v0.0.28...v0.0.29\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypi/pypi-attestations/blob/main/CHANGELOG.md\"\u003epypi-attestations's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.0.29]\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for verifying Google Cloud attestations has been added to the CLI.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe minimum Python version required is now \u003ccode\u003e3.10\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/pypi/pypi-attestations/commit/fb35ffdce810566fdf7aa22f1b517f60be0c727f\"\u003e\u003ccode\u003efb35ffd\u003c/code\u003e\u003c/a\u003e chore: prep for release v0.0.29 (\u003ca href=\"https://redirect.github.com/pypi/pypi-attestations/issues/158\"\u003e#158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypi/pypi-attestations/commit/5afe2a125af6b2f8962dcf8326d2149f8dddc6f0\"\u003e\u003ccode\u003e5afe2a1\u003c/code\u003e\u003c/a\u003e Add GCP support to CLI (\u003ca href=\"https://redirect.github.com/pypi/pypi-attestations/issues/157\"\u003e#157\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypi/pypi-attestations/commit/0716b105c1c7b28a5bae1d8beca15a7f7e3c1a25\"\u003e\u003ccode\u003e0716b10\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python in the actions group (\u003ca href=\"https://redirect.github.com/pypi/pypi-attestations/issues/155\"\u003e#155\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypi/pypi-attestations/commit/34db665fba7f61aad1e4133cfff8b1a5b332cd60\"\u003e\u003ccode\u003e34db665\u003c/code\u003e\u003c/a\u003e build(deps): bump zizmorcore/zizmor-action in the actions group (\u003ca href=\"https://redirect.github.com/pypi/pypi-attestations/issues/154\"\u003e#154\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypi/pypi-attestations/commit/2a74c1e7f9882803692bea8924c9359ec8369933\"\u003e\u003ccode\u003e2a74c1e\u003c/code\u003e\u003c/a\u003e Remove unneeded permissions from zizmor workflow (\u003ca href=\"https://redirect.github.com/pypi/pypi-attestations/issues/153\"\u003e#153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypi/pypi-attestations/commit/d8d4ab106a76f107cd97b4ee041f1adfe1ff0cf6\"\u003e\u003ccode\u003ed8d4ab1\u003c/code\u003e\u003c/a\u003e Add zizmor to CI workflows\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypi/pypi-attestations/commit/26e8913b136b8166eac40ad9f9313a8affd656cf\"\u003e\u003ccode\u003e26e8913\u003c/code\u003e\u003c/a\u003e Update CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypi/pypi-attestations/commit/446816b7a16dc989da33b9f8dab989e640f8881a\"\u003e\u003ccode\u003e446816b\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout in the actions group (\u003ca href=\"https://redirect.github.com/pypi/pypi-attestations/issues/149\"\u003e#149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypi/pypi-attestations/commit/b8c452d338a6411e6d688f2498adbabf501680b3\"\u003e\u003ccode\u003eb8c452d\u003c/code\u003e\u003c/a\u003e Add cooldown to dependabot updates (\u003ca href=\"https://redirect.github.com/pypi/pypi-attestations/issues/150\"\u003e#150\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypi/pypi-attestations/commit/2c8d48e78417f12869b89fcbad619f52f5656a4f\"\u003e\u003ccode\u003e2c8d48e\u003c/code\u003e\u003c/a\u003e Fix lint and remove support for Python 3.9 (\u003ca href=\"https://redirect.github.com/pypi/pypi-attestations/issues/151\"\u003e#151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypi/pypi-attestations/compare/v0.0.28...v0.0.29\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 9.0.1 to 9.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.2\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.2 (2025-12-06)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.\u003c/p\u003e\n\u003cp\u003eYou may enable it again by passing \u003ccode\u003e-p terminalprogress\u003c/code\u003e. We may enable it by default again once compatibility improves in the future.\u003c/p\u003e\n\u003cp\u003eAdditionally, when the environment variable \u003ccode\u003eTERM\u003c/code\u003e is \u003ccode\u003edumb\u003c/code\u003e, the escape codes are no longer emitted, even if the plugin is enabled.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the \u003ccode\u003etmp_path_retention_count\u003c/code\u003e settings in the API reference from number to string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13946\"\u003e#13946\u003c/a\u003e: The private \u003ccode\u003econfig.inicfg\u003c/code\u003e attribute was changed in a breaking manner in pytest 9.0.0.\nDue to its usage in the ecosystem, it is now restored to working order using a compatibility shim.\nIt will be deprecated in pytest 9.1 and removed in pytest 10.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13965\"\u003e#13965\u003c/a\u003e: Fixed quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/4492\"\u003e#4492\u003c/a\u003e: The API Reference now contains cross-reference-able documentation of \u003ccode\u003epytest's command-line flags \u0026lt;command-line-flags\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/commit/3d10b5148e03eb82b3ee29181dbdc73cf82699e2\"\u003e\u003ccode\u003e3d10b51\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/188750b725add8c3400eee6fbb6b80559c296d69\"\u003e\u003ccode\u003e188750b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14030\"\u003e#14030\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/1e4b01d1f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7d7bef90cb9a6db8ac1d3dd5b9ae0eb9abd6c58\"\u003e\u003ccode\u003eb7d7bef\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14014\"\u003e#14014\u003c/a\u003e from bluetech/compat-note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bd08e85ac76614ff5ca9ae338aee8d8b06c8fae0\"\u003e\u003ccode\u003ebd08e85\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14013\"\u003e#14013\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/922b60377...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bc783862991241c442c9f9c068e51737ec15ea10\"\u003e\u003ccode\u003ebc78386\u003c/code\u003e\u003c/a\u003e Add CLI options reference documentation (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13930\"\u003e#13930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/5a4e398ce89bc23d2cf3fd98c042fdffb6fa8afa\"\u003e\u003ccode\u003e5a4e398\u003c/code\u003e\u003c/a\u003e Fix docs typo (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14005\"\u003e#14005\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14008\"\u003e#14008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/d7ae6df394398168bf9d926f803c26849c8f07ee\"\u003e\u003ccode\u003ed7ae6df\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14006\"\u003e#14006\u003c/a\u003e from pytest-dev/maintenance/update-plugin-list-tmpl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/556f6a22e12d13d1ffeceaf64424eb95d5e0fb87\"\u003e\u003ccode\u003e556f6a2\u003c/code\u003e\u003c/a\u003e pre-commit: fix rst-lint after new release (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13999\"\u003e#13999\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14001\"\u003e#14001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c60fbe63a26f64a42738e3f3527a8f79024fdf50\"\u003e\u003ccode\u003ec60fbe6\u003c/code\u003e\u003c/a\u003e Fix quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10 ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/73d9b011183d9a1c4a7007c1119d97a6e627788e\"\u003e\u003ccode\u003e73d9b01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13995\"\u003e#13995\u003c/a\u003e from nicoddemus/patchback/backports/9.0.x/1b5200c0f...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/9.0.1...9.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cython` from 3.2.2 to 3.2.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/cython/cython/blob/master/CHANGES.rst\"\u003ecython's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.2.4 (2026-01-04)\u003c/h1\u003e\n\u003ch2\u003eFeatures added\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eIn preparation of Cython 3.3, a new decorator \u003ccode\u003e@collection_type(tname)\u003c/code\u003e can be used\nto advertise an extension type as being a \u003ccode\u003e'sequence'\u003c/code\u003e or \u003ccode\u003e'mapping'\u003c/code\u003e.  This currently\nonly has the effect of setting the \u003ccode\u003ePy_TPFLAGS_SEQUENCE\u003c/code\u003e flag on the type or not, but\nis provided for convenience to allow using the new decorator already in Cython 3.2 code.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSeveral C++ exception declarations were added to \u003ccode\u003elibcpp.exceptions\u003c/code\u003e.\n(Github issue :issue:\u003ccode\u003e7389\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003ePseudo-literal default values of function arguments like \u003ccode\u003earg=str()\u003c/code\u003e could generate\ninvalid C code when internally converted into a real literal.\n(Github issue :issue:\u003ccode\u003e6192\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe pickle serialisation of extension types using the \u003ccode\u003eauto_pickle\u003c/code\u003e feature was\nlarger than necessary since 3.2.0 for types without Python object attributes.\nIt is now back to the state before 3.2.0 again.\n(Github issue :issue:\u003ccode\u003e7443\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eConstants are now only made immortal on freethreading Python if they are not shared.\n(Github issue :issue:\u003ccode\u003e7439\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003ePyDict_SetDefaultRef()\u003c/code\u003e is now used when available to avoid temporary borrowed references.\n(Github issue :issue:\u003ccode\u003e7347\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIncludes all fixes as of Cython 3.1.8.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e3.2.3 (2025-12-14)\u003c/h1\u003e\n\u003ch2\u003eFeatures added\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eThe C-API declarations were updated to include the new \u003ccode\u003ePyList_*()\u003c/code\u003e functions.\n(Github issue :issue:\u003ccode\u003e7291\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe \u003ccode\u003ePy_mod_gil\u003c/code\u003e module setting can now be changed with a C macro, overriding\nthe \u003ccode\u003efreethreading_compatible\u003c/code\u003e directive setting.\n(Github issue :issue:\u003ccode\u003e7404\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/21bda420d583bcf464fb9efb932b09c5f3db1efd\"\u003e\u003ccode\u003e21bda42\u003c/code\u003e\u003c/a\u003e Update changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/ea5e926e930fb50bd0b2be69717cb906f67ef18b\"\u003e\u003ccode\u003eea5e926\u003c/code\u003e\u003c/a\u003e Define missing C++ exception classes (\u003ca href=\"https://redirect.github.com/cython/cython/issues/7389\"\u003e#7389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/c533d67f2a9109111c4057b598d8d04698cfee3f\"\u003e\u003ccode\u003ec533d67\u003c/code\u003e\u003c/a\u003e Add sequence return type annotations in Parsing.py (\u003ca href=\"https://redirect.github.com/cython/cython/issues/7416\"\u003eGH-7416\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/d056a1808298ff6a569f950937b7ab3385b2f785\"\u003e\u003ccode\u003ed056a18\u003c/code\u003e\u003c/a\u003e Allow 'mapping' as \u003ca href=\"https://github.com/collection\"\u003e\u003ccode\u003e@​collection\u003c/code\u003e\u003c/a\u003e_type() in preparation of 3.3, but without actu...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/d347c82898f4e90139b63510d984860762c01f1c\"\u003e\u003ccode\u003ed347c82\u003c/code\u003e\u003c/a\u003e Remove exclusion of collection_type in test (\u003ca href=\"https://redirect.github.com/cython/cython/issues/7442\"\u003e#7442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/fd6e8253df013645fb028ea956175957dcff8e8b\"\u003e\u003ccode\u003efd6e825\u003c/code\u003e\u003c/a\u003e Merge branch '3.1.x' into 3.2.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/ce5c6cb05bdb5560937648558508241c681369ca\"\u003e\u003ccode\u003ece5c6cb\u003c/code\u003e\u003c/a\u003e Update changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/74b97f92075d2721abce7dfb246f426b0ab401ae\"\u003e\u003ccode\u003e74b97f9\u003c/code\u003e\u003c/a\u003e Fix arg=str() default argument (\u003ca href=\"https://redirect.github.com/cython/cython/issues/6193\"\u003eGH-6193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/9c9e5c7d31525672ad5b8ee703c719a33d98a118\"\u003e\u003ccode\u003e9c9e5c7\u003c/code\u003e\u003c/a\u003e Avoid immortalizing anything shared on freethreading (\u003ca href=\"https://redirect.github.com/cython/cython/issues/7439\"\u003eGH-7439\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/9d5507bf1cf713c314a9e37447463ad72ee9f8cd\"\u003e\u003ccode\u003e9d5507b\u003c/code\u003e\u003c/a\u003e Fix accidental inefficiency in auto-pickling that always stored the object st...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/cython/cython/compare/3.2.2...3.2.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `setuptools` from 80.9.0 to 82.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/setuptools/blob/main/NEWS.rst\"\u003esetuptools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev82.0.0\u003c/h1\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epkg_resources\u003c/code\u003e has been removed from Setuptools. Most common uses of \u003ccode\u003epkg_resources\u003c/code\u003e have been superseded by the \u003ccode\u003eimportlib.resources \u0026lt;https://docs.python.org/3/library/importlib.resources.html\u0026gt;\u003c/code\u003e_ and \u003ccode\u003eimportlib.metadata \u0026lt;https://docs.python.org/3/library/importlib.metadata.html\u0026gt;\u003c/code\u003e_ projects. Projects and environments relying on \u003ccode\u003epkg_resources\u003c/code\u003e for namespace packages or other behavior should depend on older versions of \u003ccode\u003esetuptools\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/3085\"\u003e#3085\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev81.0.0\u003c/h1\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved support for the --dry-run parameter to setup.py. This one feature by its nature threads through lots of core and ancillary functionality, adding complexity and friction. Removal of this parameter will help decouple the compiler functionality from distutils and thus the eventual full integration of distutils. These changes do affect some class and function signatures, so any derivative functionality may require some compatibility shims to support their expected interface. Please report any issues to the Setuptools project for investigation. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4872\"\u003e#4872\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev80.10.2\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate vendored dependencies. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5159\"\u003e#5159\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5115\"\u003e#5115\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5128\"\u003e#5128\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev80.10.1\u003c/h1\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5152\"\u003e#5152\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev80.10.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove post-release tags on setuptools' own build. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4530\"\u003e#4530\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefreshed vendored dependencies. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5139\"\u003e#5139\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/pypa/setuptools/commit/03f3615362c4eb19c770b71be5bd58e38f235528\"\u003e\u003ccode\u003e03f3615\u003c/code\u003e\u003c/a\u003e Bump version: 81.0.0 → 82.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/530d11498af526c4210d8eeaa1ed6c63f44a390f\"\u003e\u003ccode\u003e530d114\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5007\"\u003e#5007\u003c/a\u003e from pypa/feature/remove-more-pkg_resources\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/11efe9f552290bf536515d458aa85752a0606aa8\"\u003e\u003ccode\u003e11efe9f\u003c/code\u003e\u003c/a\u003e Merge branch 'maint/75.3'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/118f129dd0fb319058bd05f382c50188fd60a60e\"\u003e\u003ccode\u003e118f129\u003c/code\u003e\u003c/a\u003e Bump version: 75.3.3 → 75.3.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/90561ffde1220a590b7644745f48b5837b1a130d\"\u003e\u003ccode\u003e90561ff\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5150\"\u003e#5150\u003c/a\u003e from UladzimirTrehubenka/backport_cve_47273\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/4595034db8aab4ea33035a47a068b04fd8aa00cc\"\u003e\u003ccode\u003e4595034\u003c/code\u003e\u003c/a\u003e Add news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/fc008006fc072af02eb7e0b601172c67eba395e3\"\u003e\u003ccode\u003efc00800\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5171\"\u003e#5171\u003c/a\u003e from cclauss/ruff-v0.15.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/127e561362a2b4e560faabe9e979ed848106b62d\"\u003e\u003ccode\u003e127e561\u003c/code\u003e\u003c/a\u003e Remove tests reliant on pkg_resources, rather than xfailing them.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/64bc21e10b5d749b1b75fa334caedb67cc7414c4\"\u003e\u003ccode\u003e64bc21e\u003c/code\u003e\u003c/a\u003e Reference the superseding libraries.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/cf1ff459ea997b615a75d99304f6c9aa1fc94c06\"\u003e\u003ccode\u003ecf1ff45\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into debt/pbr-without-pkg_resources\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/setuptools/compare/v80.9.0...v82.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyrefly` from 0.44.0 to 0.54.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/facebook/pyrefly/releases\"\u003epyrefly's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ePyrefly v0.54.0\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eStatus: BETA\u003c/strong\u003e\u003cbr /\u003e\n\u003cem\u003e\u003cstrong\u003eRelease date:\u003c/strong\u003e February 23, 2026\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003ePyrefly 0.54.0 bundles \u003cstrong\u003e93 commits\u003c/strong\u003e from \u003cstrong\u003e18 contributors\u003c/strong\u003e.\u003c/p\u003e\n\u003ch2\u003e✨ New \u0026amp; Improved\u003c/h2\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth align=\"left\"\u003eArea\u003c/th\u003e\n\u003cth align=\"left\"\u003eWhat’s new\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd align=\"left\"\u003e\u003cstrong\u003eType checker\u003c/strong\u003e\u003c/td\u003e\n\u003ctd align=\"left\"\u003e- Pyrefly now supports using \u003ccode\u003etype(X)\u003c/code\u003e in base class lists, enabling compatibility with codebases that use metaclass expressions (e.g. those wrapping C extensions) \u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e- Added static evaluation support for more patterns of \u003ccode\u003esys.platform\u003c/code\u003e and \u003ccode\u003esys.version_info\u003c/code\u003e checks\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd align=\"left\"\u003e\u003cstrong\u003eLanguage Server\u003c/strong\u003e\u003c/td\u003e\n\u003ctd align=\"left\"\u003e- Autoimport and quickfix now surface explicit re-export paths, improving import suggestions for users working with re-exported symbols. \u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e- Diagnostics can now be controlled independently for each workspace folder in multi-root setups, allowing users to customize diagnostics per project \u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e- Enhanced  \u0026quot;Generate code\u0026quot; quick fix actions in Pyrefly's LSP, which will now infer parameter types and annotations from call-site arguments \u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e- Code completion and signature help now shows keyword argument and literal completions from all compatible overloads, not just the closest match\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e🐛 bug fixes\u003c/h2\u003e\n\u003cp\u003eWe closed 7 bug issues this release 👏\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/2273\"\u003e#2273\u003c/a\u003e - Adjusted overload-to-Callable subtyping so single-parameter overloads can satisfy a union-parameter Callable, fixing assignment errors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/2398\"\u003e#2398\u003c/a\u003e - When matching a value against a union containing both bare TypeVars and wrapped TypeVars, Pyrefly now tries wrapped vars first, producing better TypeVar solutions and satisfying bounds\u003c/li\u003e\n\u003cli\u003eAnd more! \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/2398\"\u003e#2398\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/949\"\u003e#949\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/2421\"\u003e#2421\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/2457\"\u003e#2457\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/1122\"\u003e#1122\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/2434\"\u003e#2434\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/787\"\u003e#787\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThank-you to all our contributors who found these bugs and reported them! Did you know this is one of the most helpful contributions you can make to an open-source project? If you find any bugs in Pyrefly we want to know about them! Please open a bug report issue \u003ca href=\"https://github.com/facebook/pyrefly/issues\"\u003ehere\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e📦 Upgrade\u003c/h2\u003e\n\u003cpre lang=\"shell\"\u003e\u003ccode\u003epip install --upgrade pyrefly==0.54.0\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eHow to safely upgrade your codebase\u003c/h3\u003e\n\u003cp\u003eUpgrading the version of Pyrefly you're using or a third-party library you depend on can reveal new type errors in your code. Fixing them all at once is often unrealistic. We've written scripts to help you temporarily silence them. After upgrading, follow ...\n\n_Description has been truncated_","html_url":"https://github.com/chrisjsewell/sphinx/pull/30","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisjsewell%2Fsphinx/issues/30","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/30/packages"},{"uuid":"3883022832","node_id":"PR_kwDOMI1fJ87Aw5pj","number":113,"state":"closed","title":"Build(deps-dev): Bump the minor group across 1 directory with 8 updates","user":"dependabot[bot]","labels":["part:tests","part:tooling","type:tech-debt"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-03-01T21:34:15.000Z","author_association":null,"state_reason":null,"created_at":"2026-02-01T21:35:45.000Z","updated_at":"2026-03-01T21:34:17.000Z","time_to_close":2419110,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Build(deps-dev): Bump","group_name":"minor","update_count":8,"packages":[{"name":"markdown","old_version":"3.9","new_version":"3.10.1","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"mkdocs-macros-plugin","old_version":"1.4.1","new_version":"1.5.0","repository_url":"https://github.com/fralau/mkdocs_macros_plugin"},{"name":"mkdocs-material","old_version":"9.6.23","new_version":"9.7.1","repository_url":"https://github.com/squidfunk/mkdocs-material"},{"name":"mypy","old_version":"1.18.2","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"types-markdown","old_version":"3.9.0.20250906","new_version":"3.10.0.20251106","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"nox","old_version":"2025.10.16","new_version":"2025.11.12","repository_url":"https://github.com/wntrblm/nox"},{"name":"hypothesis","old_version":"6.142.5","new_version":"6.151.4","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"setuptools","old_version":"80.9.0","new_version":"80.10.2","repository_url":"https://github.com/pypa/setuptools"}],"path":null,"ecosystem":"conda"},"body":"Bumps the minor group with 8 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.9` | `3.10.1` |\n| [mkdocs-macros-plugin](https://github.com/fralau/mkdocs_macros_plugin) | `1.4.1` | `1.5.0` |\n| [mkdocs-material](https://github.com/squidfunk/mkdocs-material) | `9.6.23` | `9.7.1` |\n| [mypy](https://github.com/python/mypy) | `1.18.2` | `1.19.1` |\n| [types-markdown](https://github.com/typeshed-internal/stub_uploader) | `3.9.0.20250906` | `3.10.0.20251106` |\n| [nox](https://github.com/wntrblm/nox) | `2025.10.16` | `2025.11.12` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.142.5` | `6.151.4` |\n| [setuptools](https://github.com/pypa/setuptools) | `80.9.0` | `80.10.2` |\n\n\nUpdates `markdown` from 3.9 to 3.10.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/releases\"\u003emarkdown's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.10.1\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure nested elements inside inline comments are properly unescaped (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1571\"\u003e#1571\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eMake the docs build successfully with mkdocstrings-python 2.0 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1575\"\u003e#1575\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix infinite loop when multiple bogus or unclosed HTML comments appear in input (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1578\"\u003e#1578\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix another infinite loop when handling bad comments (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1586\"\u003e#1586\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.10.0\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/blob/master/docs/changelog.md\"\u003emarkdown's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[3.10.1] - 2026-01-21\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure nested elements inside inline comments are properly unescaped (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1571\"\u003e#1571\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eMake the docs build successfully with mkdocstrings-python 2.0 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1575\"\u003e#1575\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix infinite loop when multiple bogus or unclosed HTML comments appear in input (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1578\"\u003e#1578\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix another infinite loop when handling bad comments (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1586\"\u003e#1586\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.10.0] - 2025-11-03\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.9.0] - 2025-09-04\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFootnotes are now ordered by the occurrence of their references in the\ndocument. A new configuration option for the footnotes extension,\n\u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e, has been added to support restoring the previous\nbehavior of ordering footnotes by the occurrence of definitions (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1367\"\u003e#1367\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure inline processing iterates through elements in document order (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1546\"\u003e#1546\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix handling of incomplete HTML tags in code spans in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1547\"\u003e#1547\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.8.2] - 2025-06-19\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003ecodecs\u003c/code\u003e deprecation in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed comment parsing in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed declarations in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed HTML tag \u003ccode\u003e\u0026lt;foo\u003c/code\u003e and Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.8.1] - 2025-06-18\u003c/h2\u003e\n\u003ch3\u003eFixed\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/Python-Markdown/markdown/commit/e5fa5b86e8ec380cbc520cfc637d72c779e5c601\"\u003e\u003ccode\u003ee5fa5b8\u003c/code\u003e\u003c/a\u003e Bump version to 3.10.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/f9253495f5d9919f2fdd5e147832b5fc21330f65\"\u003e\u003ccode\u003ef925349\u003c/code\u003e\u003c/a\u003e More HTML fixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/9933a0a4699f3dea91f46528a2bf54863f531c08\"\u003e\u003ccode\u003e9933a0a\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Allow reference links with backticks\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/07dfa4eb43f7a2ab3181b4f842a960a03a6c1221\"\u003e\u003ccode\u003e07dfa4e\u003c/code\u003e\u003c/a\u003e Allow reference links with backticks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/fb6b27a6ff90980b5bcb0cd51528a7c9dc3a93ca\"\u003e\u003ccode\u003efb6b27a\u003c/code\u003e\u003c/a\u003e Fix infinite loop when text contains multiple unclosed comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/89112c293f7b399ae8808f3a06306f46601e9684\"\u003e\u003ccode\u003e89112c2\u003c/code\u003e\u003c/a\u003e Make the docs build successfully with mkdocstrings-python 2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/961856ceb30623b929d8b7abdf5ed7074db7184c\"\u003e\u003ccode\u003e961856c\u003c/code\u003e\u003c/a\u003e Update link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/2b49115b1002142afbd84b3002f13c0e98a0f487\"\u003e\u003ccode\u003e2b49115\u003c/code\u003e\u003c/a\u003e Ensure nested elements inside inline comments are properly unescaped.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/22e89c1fc346f72218a10e392a0c3b4731912522\"\u003e\u003ccode\u003e22e89c1\u003c/code\u003e\u003c/a\u003e Bump version to 3.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/c138aea5139a6aceae05bb957e866d9ce7577b94\"\u003e\u003ccode\u003ec138aea\u003c/code\u003e\u003c/a\u003e + PY314 - PY39\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Python-Markdown/markdown/compare/3.9.0...3.10.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-macros-plugin` from 1.4.1 to 1.5.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/blob/master/CHANGELOG.md\"\u003emkdocs-macros-plugin's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.5.0, 2025-11-13\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded: For each push, testing on github for versions Python 3.8 to 3.12\u003c/li\u003e\n\u003cli\u003eFixed: bug in import of packages when not in source dir (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/278\"\u003e#278\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/fralau/mkdocs-macros-plugin/commit/0536f4da1dc643e1fa1f0cc90e71512ada67dc04\"\u003e\u003ccode\u003e0536f4d\u003c/code\u003e\u003c/a\u003e Fix type hint for compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/d9a6bc3aac5b12b86f9e2be7af18e1e9178287f6\"\u003e\u003ccode\u003ed9a6bc3\u003c/code\u003e\u003c/a\u003e Require mkdocs-test\u0026gt;=0.6.0 (compatibility with Python 3.8 and 3.9)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/bcaa72db2820d60822ffba15e87c75669abc7b92\"\u003e\u003ccode\u003ebcaa72d\u003c/code\u003e\u003c/a\u003e Make last minute corrections\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/356fc2a5b55d1897a2f2c47856d52b10cff4611c\"\u003e\u003ccode\u003e356fc2a\u003c/code\u003e\u003c/a\u003e Prepare for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/aaf16bdcb9dfcb9c6ea9b6567ea4af7f8c178185\"\u003e\u003ccode\u003eaaf16bd\u003c/code\u003e\u003c/a\u003e Limit testing to 3.10 up (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/279\"\u003e#279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/ba5356c0c263355556aa82dad0fbfde3cce4bc4d\"\u003e\u003ccode\u003eba5356c\u003c/code\u003e\u003c/a\u003e Use proper exit for pytest if Python \u0026lt; 3.10 (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/279\"\u003e#279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/6c796600bc0886696ce9b76b84354d7e2bc1b6fa\"\u003e\u003ccode\u003e6c79660\u003c/code\u003e\u003c/a\u003e Skip test_modules.py if Python version \u0026lt; 3.10 (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/279\"\u003e#279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/cec7440d46589b303d741a5e2df0a240c25b9bdb\"\u003e\u003ccode\u003ecec7440\u003c/code\u003e\u003c/a\u003e Test installation of d2 in a cross-platform way (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/279\"\u003e#279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/492759c5ab3d05f7c55ec62ffdf9573b715ac6ed\"\u003e\u003ccode\u003e492759c\u003c/code\u003e\u003c/a\u003e Update with changes from local repo (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/278\"\u003e#278\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/cc5416834a07ffd2ba1fe3d917a701ac6e9c98ad\"\u003e\u003ccode\u003ecc54168\u003c/code\u003e\u003c/a\u003e Merge branch 'master' of github.com:fralau/mkdocs_macros_plugin\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fralau/mkdocs_macros_plugin/compare/v1.4.1...v1.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-material` from 9.6.23 to 9.7.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/squidfunk/mkdocs-material/releases\"\u003emkdocs-material's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003emkdocs-material-9.7.1\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!WARNING]\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eMaterial for MkDocs is in maintenance mode\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eGoing forward, the Material for MkDocs team focuses on \u003ca href=\"https://zensical.org\"\u003eZensical\u003c/a\u003e, a next-gen static site generator built from first principles. We will provide critical bug fixes and security updates for Material for MkDocs until November 2026.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\"\u003eRead the full announcement on our blog\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated requests to 2.30+ to mitigate CVE in urllib\u003c/li\u003e\n\u003cli\u003eFixed privacy plugin not picking up protocol-relative URLs\u003c/li\u003e\n\u003cli\u003eFixed \u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8542\"\u003e#8542\u003c/a\u003e: false positives and negatives captured in privacy plugin\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003emkdocs-material-9.7.0\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!WARNING]\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eMaterial for MkDocs is now in maintenance mode\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eThis is the last release of Material for MkDocs that will receive new features. Going forward, the Material for MkDocs team focuses on \u003ca href=\"https://zensical.org\"\u003eZensical\u003c/a\u003e, a next-gen static site generator built from first principles. We will provide critical bug fixes and security updates for Material for MkDocs for 12 months at least.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\"\u003eRead the full announcement on our blog\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eThis release includes all features that were previously exclusive to the Insiders edition. These features are now freely available to everyone.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eNote on deprecated plugins\u003c/strong\u003e: The [projects] and [typeset] plugins are included in this release, but must be considered deprecated. Both plugins proved unsustainable to maintain and represent architectural dead ends. They are provided as-is without ongoing support.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eChanges\u003c/strong\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for projects plugin (for compat, now deprecated)\u003c/li\u003e\n\u003cli\u003eAdded support for typeset plugin (for compat, now deprecated)\u003c/li\u003e\n\u003cli\u003eAdded support for pinned blog posts and author profiles\u003c/li\u003e\n\u003cli\u003eAdded support for customizing pagination for blog index pages\u003c/li\u003e\n\u003cli\u003eAdded support for customizing blog category sort order\u003c/li\u003e\n\u003cli\u003eAdded support for staying on page when switching languages\u003c/li\u003e\n\u003cli\u003eAdded support for disabling tags in table of contents\u003c/li\u003e\n\u003cli\u003eAdded support for nested tags and shadow tags\u003c/li\u003e\n\u003cli\u003eAdded support for footnote tooltips\u003c/li\u003e\n\u003cli\u003eAdded support for instant previews\u003c/li\u003e\n\u003cli\u003eAdded support for instant prefetching\u003c/li\u003e\n\u003cli\u003eAdded support for custom social card layouts\u003c/li\u003e\n\u003cli\u003eAdded support for custom social card background images\u003c/li\u003e\n\u003cli\u003eAdded support for selectable rangs in code blocks\u003c/li\u003e\n\u003cli\u003eAdded support for custom selectors for code annotations\u003c/li\u003e\n\u003cli\u003eAdded support for configurable log level in privacy plugin\u003c/li\u003e\n\u003cli\u003eAdded support for processing of external links in privacy plugin\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/squidfunk/mkdocs-material/blob/master/CHANGELOG\"\u003emkdocs-material's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003emkdocs-material-9.7.1 (2025-12-18)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated requests to 2.30+ to mitigate CVE in urllib\u003c/li\u003e\n\u003cli\u003eFixed privacy plugin not picking up protocol-relative URLs\u003c/li\u003e\n\u003cli\u003eFixed \u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8542\"\u003e#8542\u003c/a\u003e: false positives and negatives captured in privacy plugin\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.0 (2025-11-11)\u003c/p\u003e\n\u003cp\u003e⚠️ Material for MkDocs is now in maintenance mode\u003c/p\u003e\n\u003cp\u003eThis is the last release of Material for MkDocs that will receive new features.\nGoing forward, the Material for MkDocs team focuses on Zensical, a next-gen\nstatic site generator built from first principles. We will provide critical\nbug fixes and security updates for Material for MkDocs for 12 months at least.\u003c/p\u003e\n\u003cp\u003eRead the full announcement on our blog:\n\u003ca href=\"https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\"\u003ehttps://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis release includes all features that were previously exclusive to the\nInsiders edition. These features are now freely available to everyone.\u003c/p\u003e\n\u003cp\u003eNote on deprecated plugins: The projects and typeset plugins are included in\nthis release, but must be considered deprecated. Both plugins proved\nunsustainable to maintain and represent architectural dead ends. They are\nprovided as-is without ongoing support.\u003c/p\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for pinned blog posts and author profiles\u003c/li\u003e\n\u003cli\u003eAdded support for customizing pagination for blog index pages\u003c/li\u003e\n\u003cli\u003eAdded support for customizing blog category sort order\u003c/li\u003e\n\u003cli\u003eAdded support for staying on page when switching languages\u003c/li\u003e\n\u003cli\u003eAdded support for disabling tags in table of contents\u003c/li\u003e\n\u003cli\u003eAdded support for nested tags and shadow tags\u003c/li\u003e\n\u003cli\u003eAdded support for footnote tooltips\u003c/li\u003e\n\u003cli\u003eAdded support for instant previews\u003c/li\u003e\n\u003cli\u003eAdded support for instant prefetching\u003c/li\u003e\n\u003cli\u003eAdded support for custom social card layouts\u003c/li\u003e\n\u003cli\u003eAdded support for custom social card background images\u003c/li\u003e\n\u003cli\u003eAdded support for selectable rangs in code blocks\u003c/li\u003e\n\u003cli\u003eAdded support for custom selectors for code annotations\u003c/li\u003e\n\u003cli\u003eAdded support for configurable log level in privacy plugin\u003c/li\u003e\n\u003cli\u003eAdded support for processing of external links in privacy plugin\u003c/li\u003e\n\u003cli\u003eAdded support for automatic image optimization via optimize plugin\u003c/li\u003e\n\u003cli\u003eAdded support for navigation paths (breadcrumbs)\u003c/li\u003e\n\u003cli\u003eFixed \u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8519\"\u003e#8519\u003c/a\u003e: Vector accents do not render when using KaTeX\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.6.23 (2025-11-01)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated Burmese translation\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/squidfunk/mkdocs-material/commit/7e236f6866b73aa080cd4d209752f6440bf67440\"\u003e\u003ccode\u003e7e236f6\u003c/code\u003e\u003c/a\u003e Temporarily disable publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/394149152dc10fc5383c956cd133a665c22fa907\"\u003e\u003ccode\u003e3941491\u003c/code\u003e\u003c/a\u003e Fixed CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/034eaf7b0b7a0a4d2e66179de0dcaded4c923f76\"\u003e\u003ccode\u003e034eaf7\u003c/code\u003e\u003c/a\u003e Prepare 9.7.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/79ba428abebf9b365d4930fb9b147255edd10b88\"\u003e\u003ccode\u003e79ba428\u003c/code\u003e\u003c/a\u003e Fixed privacy plugin not picking up protocol-relative URLs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/61cad249b6eec5727bcf245ca2dea3ef6c98790f\"\u003e\u003ccode\u003e61cad24\u003c/code\u003e\u003c/a\u003e Updated dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/dde13ceb9bb49be3b84bc8c1e59b313250ea8516\"\u003e\u003ccode\u003edde13ce\u003c/code\u003e\u003c/a\u003e Fixed false positives and negatives captured in privacy plugin  (\u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8542\"\u003e#8542\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/291012dcf5aff75a32a6fe9e9a6be4d769da12ac\"\u003e\u003ccode\u003e291012d\u003c/code\u003e\u003c/a\u003e Updated requests to 2.30+ to mitigate CVE in urllib\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/673d8ca986c37ddeabe25c7e7b7299ec644910ed\"\u003e\u003ccode\u003e673d8ca\u003c/code\u003e\u003c/a\u003e Fixed links\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/17227844dce216bf172c9e5de69809765a0b5ab7\"\u003e\u003ccode\u003e1722784\u003c/code\u003e\u003c/a\u003e Documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/aee925f5a0ae3e343ff310e35c667d24eeaff7df\"\u003e\u003ccode\u003eaee925f\u003c/code\u003e\u003c/a\u003e Fixed links\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/squidfunk/mkdocs-material/compare/9.6.23...9.7.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.18.2 to 1.19.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.19.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix noncommutative joins with bounded TypeVars (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20345\"\u003e20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect output format for cached runs by serializing raw errors in cache metas (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20372\"\u003e20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (A5rocks, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20383\"\u003e20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix mypyc generator regression with empty tuple (BobTheBuidler, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20371\"\u003e20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash involving Unpack-ed TypeVarTuple (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20323\"\u003e20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on star import of redefinition (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20333\"\u003e20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on typevar with forward ref used in other module (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20334\"\u003e20334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFail with an explicit error on PyPy (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20389\"\u003e20389\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChainfire\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eDavid Foster\u003c/li\u003e\n\u003cli\u003eFrank Dana\u003c/li\u003e\n\u003cli\u003eGuo Ci\u003c/li\u003e\n\u003cli\u003eiap\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilton-Balfe\u003c/li\u003e\n\u003cli\u003ejhance\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eJukka Lehtosalo\u003c/li\u003e\n\u003cli\u003eKarelKenens\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael Carlstrom\u003c/li\u003e\n\u003cli\u003eMichael J. Sullivan\u003c/li\u003e\n\u003cli\u003ePiotr Sawicki\u003c/li\u003e\n\u003cli\u003eRandolf Scholz\u003c/li\u003e\n\u003cli\u003eShantanu\u003c/li\u003e\n\u003cli\u003eSigve Sebastian Farstad\u003c/li\u003e\n\u003cli\u003esobolevn\u003c/li\u003e\n\u003cli\u003eStanislav Terliakov\u003c/li\u003e\n\u003cli\u003eStephen Morton\u003c/li\u003e\n\u003cli\u003eTheodore Ando\u003c/li\u003e\n\u003cli\u003eThiago J. Barbalho\u003c/li\u003e\n\u003cli\u003ewyattscarpenter\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eI’d also like to thank my employer, Dropbox, for supporting mypy development.\u003c/p\u003e\n\u003ch2\u003eMypy 1.18\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 1.18.1 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type checker for Python. This release includes new features, performance\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/python/mypy/commit/412c19a6bde31e7afa7f41afdf8356664689ae80\"\u003e\u003ccode\u003e412c19a\u003c/code\u003e\u003c/a\u003e Bump version to 1.19.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/20aea0a6ca0710f5427239bdd2fd8e8bf1caf634\"\u003e\u003ccode\u003e20aea0a\u003c/code\u003e\u003c/a\u003e Update changelog for 1.19.1 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20414\"\u003e#20414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2b23b507524bf1bd7513eea6f2a16fb91e072cb6\"\u003e\u003ccode\u003e2b23b50\u003c/code\u003e\u003c/a\u003e Serialize raw errors in cache metas (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20372\"\u003e#20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/f60f90fb8872bf722e32aefd548daaf6d8560e05\"\u003e\u003ccode\u003ef60f90f\u003c/code\u003e\u003c/a\u003e Fail on PyPy in main instead of setup.py (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20389\"\u003e#20389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/58d485b4ea4776e0b9d4045b306cb0818ecc2aa6\"\u003e\u003ccode\u003e58d485b\u003c/code\u003e\u003c/a\u003e Fail with an explicit error on PyPy (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20384\"\u003e#20384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a4b31a26788b70c4a2a19adbafa2bbda43dc2e8b\"\u003e\u003ccode\u003ea4b31a2\u003c/code\u003e\u003c/a\u003e Allow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20383\"\u003e#20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/8a6eff478416cd3ed3931a6ed77ce61c88ab69e9\"\u003e\u003ccode\u003e8a6eff4\u003c/code\u003e\u003c/a\u003e [mypyc] fix generator regression with empty tuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20371\"\u003e#20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/70eceea682c041c0d8e8462dffef9c7bb252e014\"\u003e\u003ccode\u003e70eceea\u003c/code\u003e\u003c/a\u003e Fix noncommutative joins with bounded TypeVars (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20345\"\u003e#20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/3890fc49bf7cc02db04b1e63eb2540aaacdeecc0\"\u003e\u003ccode\u003e3890fc4\u003c/code\u003e\u003c/a\u003e Fix crash involving Unpack-ed TypeVarTuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20323\"\u003e#20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c93d917a86993e06dcc88e508f28f4f5199ce1c8\"\u003e\u003ccode\u003ec93d917\u003c/code\u003e\u003c/a\u003e Fix crash on star import of redefinition (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20333\"\u003e#20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.18.2...v1.19.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `types-markdown` from 3.9.0.20250906 to 3.10.0.20251106\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\nUpdates `nox` from 2025.10.16 to 2025.11.12\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/wntrblm/nox/releases\"\u003enox's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2025.11.12 🦃\u003c/h2\u003e\n\u003cp\u003eThis is a small release to fix a warning when running in script mode before we drop Python 3.8.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid warnings when running in script mode by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1025\"\u003ewntrblm/nox#1025\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003enox --report \u0026lt;file\u0026gt; \u003c/code\u003e should support \u003ccode\u003ePath\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1026\"\u003ewntrblm/nox#1026\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInstall env was typed differently by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1028\"\u003ewntrblm/nox#1028\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003epytest \u003ccode\u003elog_level\u003c/code\u003e is better than \u003ccode\u003elog_cli_level\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1029\"\u003ewntrblm/nox#1029\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse last intel macOS image by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1031\"\u003ewntrblm/nox#1031\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd a few more passing ruff checks by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1030\"\u003ewntrblm/nox#1030\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/wntrblm/nox/blob/main/CHANGELOG.md\"\u003enox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2025.11.12\u003c/h2\u003e\n\u003cp\u003eThis is a small release to fix a warning when running in script mode before we\ndrop Python 3.8.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid warnings when running in script mode by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1025\"\u003ewntrblm/nox#1025\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003enox --report \u0026lt;file\u0026gt; \u003c/code\u003e should support \u003ccode\u003ePath\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1026\"\u003ewntrblm/nox#1026\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInstall env was typed differently by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1028\"\u003ewntrblm/nox#1028\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003epytest \u003ccode\u003elog_level\u003c/code\u003e is better than \u003ccode\u003elog_cli_level\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1029\"\u003ewntrblm/nox#1029\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse last intel macOS image by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1031\"\u003ewntrblm/nox#1031\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd a few more passing ruff checks by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1030\"\u003ewntrblm/nox#1030\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/wntrblm/nox/commit/0eee2e45758dbd06d48ebb23476439f0f00e5cbd\"\u003e\u003ccode\u003e0eee2e4\u003c/code\u003e\u003c/a\u003e chore: prepare for 2025.11.12 (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1032\"\u003e#1032\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/9e9b47eb82f577acb525e1bf4fa238fa3e1ce68a\"\u003e\u003ccode\u003e9e9b47e\u003c/code\u003e\u003c/a\u003e chore: add a few more passing ruff checks (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1030\"\u003e#1030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/5cfea6572e844e3180078d307d9ff49730ca3d8f\"\u003e\u003ccode\u003e5cfea65\u003c/code\u003e\u003c/a\u003e ci: use last intel macOS image (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1031\"\u003e#1031\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/f690869f3a8506282e38f379c488b9a117556b61\"\u003e\u003ccode\u003ef690869\u003c/code\u003e\u003c/a\u003e chore: pytest log_level is better than log_cli_level (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1029\"\u003e#1029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/6d669ae6da36d6bed8df051b37cb0cb49cb9d41e\"\u003e\u003ccode\u003e6d669ae\u003c/code\u003e\u003c/a\u003e fix(typing): install env was typed differently (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1028\"\u003e#1028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/3455f55e7cd9b32cfd781210f6a834a0ebac8de7\"\u003e\u003ccode\u003e3455f55\u003c/code\u003e\u003c/a\u003e fix: avoid warnings when running in script mode (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1025\"\u003e#1025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/b17113dc9f10bcc280201518441f8e8df677a95a\"\u003e\u003ccode\u003eb17113d\u003c/code\u003e\u003c/a\u003e fix: json should support Path (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1026\"\u003e#1026\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/38dea062a14355469fa44170ec64694b2c2d5e7f\"\u003e\u003ccode\u003e38dea06\u003c/code\u003e\u003c/a\u003e chore(deps): bump the actions group with 2 updates (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1020\"\u003e#1020\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/wntrblm/nox/compare/2025.10.16...2025.11.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `hypothesis` from 6.142.5 to 6.151.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/HypothesisWorks/hypothesis/releases\"\u003ehypothesis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eHypothesis for Python - version 6.151.4\u003c/h2\u003e\n\u003cp\u003eThis patch adjusts how we compute the stopping threshold introduced in\nversion 6.151.3, while still maintaining 99% confidence that \u0026lt;1% of\ntest cases pass.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-151-4\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.151.3\u003c/h2\u003e\n\u003cp\u003eThis patch makes Hypothesis more tolerant of slow-to-satisfy\n\u0026quot;assume()\u0026quot; calls. Previously, Hypothesis would give up after\n\u0026quot;max_examples * 10\u0026quot; attempts; now it uses a statistical test to stop\nonly when 99% confident that \u0026lt;1% of examples would pass (issue \u003ca href=\"https://redirect.github.com/HypothesisWorks/hypothesis/issues/4623\"\u003e#4623\u003c/a\u003e).\u003c/p\u003e\n\u003cp\u003eThanks to \u003ca href=\"https://github.com/ajdavis\"\u003e\u003ccode\u003e@​ajdavis\u003c/code\u003e\u003c/a\u003e for this improvement!\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-151-3\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.151.2\u003c/h2\u003e\n\u003cp\u003eFormat our code with the latest version of black.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-151-2\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.151.1\u003c/h2\u003e\n\u003cp\u003eImprove internal categorization of test cases when an alternative\nbackend raises \u0026quot;BackendCannotProceed\u0026quot;.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-151-1\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.151.0\u003c/h2\u003e\n\u003cp\u003eAdd 2025.12 to the list of recognized Array API versions in\n\u0026quot;hypothesis.extra.array_api\u0026quot;.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-151-0\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.150.3\u003c/h2\u003e\n\u003cp\u003eHypothesis now generates powers of 2 more often when using\n\u0026quot;integers()\u0026quot;.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-150-3\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.150.2\u003c/h2\u003e\n\u003cp\u003eUpdate some internal type hints.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-150-2\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.150.1\u003c/h2\u003e\n\u003cp\u003eThis patch fixes a bug where \u0026quot;recursive()\u0026quot; would fail in cases where\nthe \u0026quot;extend=\u0026quot; function does not reference it's argument - which was\nassumed by the recent \u0026quot;min_leaves=\u0026quot; feature, because the strategy\ncan't actually recurse otherwise.  (issue \u003ca href=\"https://redirect.github.com/HypothesisWorks/hypothesis/issues/4638\"\u003e#4638\u003c/a\u003e)\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/fefce87e942c07f67ba37af737cff5450f4e3dc4\"\u003e\u003ccode\u003efefce87\u003c/code\u003e\u003c/a\u003e Bump hypothesis-python version to 6.151.4 and update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/cfb0d374af128daf919268cb0cd2d893ea413eb2\"\u003e\u003ccode\u003ecfb0d37\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/HypothesisWorks/hypothesis/issues/4650\"\u003e#4650\u003c/a\u003e from Liam-DeVoe/stopping-rule\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/e4d7549d464a25cabdcbf9e818ee2b28e1f27f73\"\u003e\u003ccode\u003ee4d7549\u003c/code\u003e\u003c/a\u003e drop long comment\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/a09166c4057e34b7f7f2ac2449cc8da494d6a27e\"\u003e\u003ccode\u003ea09166c\u003c/code\u003e\u003c/a\u003e adjust stopping rule\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/f3d71e9a9f996b4ad9244602234a15b836babac8\"\u003e\u003ccode\u003ef3d71e9\u003c/code\u003e\u003c/a\u003e Bump hypothesis-python version to 6.151.3 and update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/42126d6e2e825338c8d17460589f60a3bd7f88ed\"\u003e\u003ccode\u003e42126d6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/HypothesisWorks/hypothesis/issues/4643\"\u003e#4643\u003c/a\u003e from ajdavis/issue-4623-filter-condition\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/f69cad62125b2aa64fab41d613aa68a2f80495f8\"\u003e\u003ccode\u003ef69cad6\u003c/code\u003e\u003c/a\u003e response to comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/34282ed3c0c2e913d86d2e8f3ff9cef6c4187539\"\u003e\u003ccode\u003e34282ed\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/HypothesisWorks/hypothesis/issues/4649\"\u003e#4649\u003c/a\u003e from Liam-DeVoe/next\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/7de805fa2fae2ae9c334cfcadfb207eac2b50db2\"\u003e\u003ccode\u003e7de805f\u003c/code\u003e\u003c/a\u003e Bump hypothesis-python version to 6.151.2 and update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/559b1c195c469a04e3ebfccafb18883475f4fd3b\"\u003e\u003ccode\u003e559b1c1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/HypothesisWorks/hypothesis/issues/4646\"\u003e#4646\u003c/a\u003e from HypothesisWorks/create-pull-request/patch\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/HypothesisWorks/hypothesis/compare/hypothesis-python-6.142.5...hypothesis-python-6.151.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `setuptools` from 80.9.0 to 80.10.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/setuptools/blob/main/NEWS.rst\"\u003esetuptools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev80.10.2\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate vendored dependencies. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5159\"\u003e#5159\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5115\"\u003e#5115\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5128\"\u003e#5128\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev80.10.1\u003c/h1\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5152\"\u003e#5152\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev80.10.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove post-release tags on setuptools' own build. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4530\"\u003e#4530\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefreshed vendored dependencies. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5139\"\u003e#5139\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5033\"\u003e#5033\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/pypa/setuptools/commit/5cf2d085186f2c8053940076db99045b826ec22a\"\u003e\u003ccode\u003e5cf2d08\u003c/code\u003e\u003c/a\u003e Bump version: 80.10.1 → 80.10.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/852cd5e9fa507c91f5f6683425f157649715d268\"\u003e\u003ccode\u003e852cd5e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5166\"\u003e#5166\u003c/a\u003e from pypa/bugfix/5159-vendor-bin-free\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/11115ee8e5b533c2cd948272b02f339f23b6d20a\"\u003e\u003ccode\u003e11115ee\u003c/code\u003e\u003c/a\u003e Suppress deprecation warning.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/5cf9185dc8f2b3fbf140ebf6558798ccc0ce1077\"\u003e\u003ccode\u003e5cf9185\u003c/code\u003e\u003c/a\u003e Update vendored dependencies.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/cf59f41400c75326d381f2d1989027b229b59a59\"\u003e\u003ccode\u003ecf59f41\u003c/code\u003e\u003c/a\u003e Delete all binaries generated by vendored package install.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/89a598167c614ebaf7da441389bce35534b7cd7f\"\u003e\u003ccode\u003e89a5981\u003c/code\u003e\u003c/a\u003e Add missing newsfragments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/c0114af5484625c25e48cd85429445f9d6a1cfc0\"\u003e\u003ccode\u003ec0114af\u003c/code\u003e\u003c/a\u003e Postpone deprecation warnings related to PEP 639 to 2027-Feb-18 (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5115\"\u003e#5115\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/de076038f164a3629c91e3f2bc88a7b9c4f5312d\"\u003e\u003ccode\u003ede07603\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;[CI] Constraint transient test dependency on pyobjc\u0026quot; (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5128\"\u003e#5128\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/3afd5d66606c092131052e982266b322f0a0dd4b\"\u003e\u003ccode\u003e3afd5d6\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;[CI] Constraint transient test dependency on pyobjc\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/adfb0c9e3d1789587d609228d9ea1d79272e4107\"\u003e\u003ccode\u003eadfb0c9\u003c/code\u003e\u003c/a\u003e Bump version: 80.10.0 → 80.10.1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/setuptools/compare/v80.9.0...v80.10.2\"\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/frequenz-floss/frequenz-quantities-python/pull/113","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/frequenz-floss%2Ffrequenz-quantities-python/issues/113","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/113/packages"},{"uuid":"2964137619","node_id":"PR_kwDOCex-o86Q-JHy","number":114,"state":"closed","title":"Bump the prod-dependencies group with 3 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-06-01T17:45:03.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-04-01T17:39:13.000Z","updated_at":"2025-06-01T17:45:04.000Z","time_to_close":5270750,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"prod-dependencies","update_count":3,"packages":[{"name":"google-cloud-logging","old_version":"3.11.3","new_version":"3.11.4","repository_url":"https://github.com/googleapis/python-logging"},{"name":"pytz","old_version":"2024.2","new_version":"2025.2","repository_url":"https://github.com/stub42/pytz"},{"name":"setuptools","old_version":"75.6.0","new_version":"78.1.0","repository_url":"https://github.com/pypa/setuptools"}],"path":null,"ecosystem":"conda"},"body":"Bumps the prod-dependencies group with 3 updates: [google-cloud-logging](https://github.com/googleapis/python-logging), [pytz](https://github.com/stub42/pytz) and [setuptools](https://github.com/pypa/setuptools).\n\nUpdates `google-cloud-logging` from 3.11.3 to 3.11.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-logging/releases\"\u003egoogle-cloud-logging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.11.4\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-logging/compare/v3.11.3...v3.11.4\"\u003e3.11.4\u003c/a\u003e (2025-01-22)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMade \u003ccode\u003ewrite_entries\u003c/code\u003e raise \u003ccode\u003eValueError\u003c/code\u003e on \u003ccode\u003eParseError\u003c/code\u003es (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/958\"\u003e#958\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-logging/commit/5309478c054d0f2b9301817fd835f2098f51dc3a\"\u003e5309478\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequire proto-plus \u0026gt;= 1.25 for Python 3.13 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/955\"\u003e#955\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-logging/commit/7baed8e968f0bfa6abdbf0715dc43822f2fba8ba\"\u003e7baed8e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequire proto-plus \u0026gt;= 1.25 for Python 3.13 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/955\"\u003e#955\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-logging/commit/002b1fcb395d77d94d7216560c30015b9aefca81\"\u003e002b1fc\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-logging/blob/main/CHANGELOG.md\"\u003egoogle-cloud-logging's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-logging/compare/v3.11.3...v3.11.4\"\u003e3.11.4\u003c/a\u003e (2025-01-22)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMade \u003ccode\u003ewrite_entries\u003c/code\u003e raise \u003ccode\u003eValueError\u003c/code\u003e on \u003ccode\u003eParseError\u003c/code\u003es (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/958\"\u003e#958\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-logging/commit/5309478c054d0f2b9301817fd835f2098f51dc3a\"\u003e5309478\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequire proto-plus \u0026gt;= 1.25 for Python 3.13 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/955\"\u003e#955\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-logging/commit/7baed8e968f0bfa6abdbf0715dc43822f2fba8ba\"\u003e7baed8e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequire proto-plus \u0026gt;= 1.25 for Python 3.13 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/955\"\u003e#955\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-logging/commit/002b1fcb395d77d94d7216560c30015b9aefca81\"\u003e002b1fc\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/c47946fee07f50d8772fd9c5a06224378e461317\"\u003e\u003ccode\u003ec47946f\u003c/code\u003e\u003c/a\u003e chore(main): release 3.11.4 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/956\"\u003e#956\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/5309478c054d0f2b9301817fd835f2098f51dc3a\"\u003e\u003ccode\u003e5309478\u003c/code\u003e\u003c/a\u003e fix: Made \u003ccode\u003ewrite_entries\u003c/code\u003e raise \u003ccode\u003eValueError\u003c/code\u003e on \u003ccode\u003eParseError\u003c/code\u003es (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/958\"\u003e#958\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/dfcce1f5edf941d53d8dcd73072136347bf68047\"\u003e\u003ccode\u003edfcce1f\u003c/code\u003e\u003c/a\u003e chore(python): exclude .github/workflows/unittest.yml in renovate config (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/959\"\u003e#959\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/8c2c5a798aa444ffa71d82a12428fbcd50395a7e\"\u003e\u003ccode\u003e8c2c5a7\u003c/code\u003e\u003c/a\u003e chore(python): update dependencies in .kokoro/docker/docs (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/957\"\u003e#957\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/7baed8e968f0bfa6abdbf0715dc43822f2fba8ba\"\u003e\u003ccode\u003e7baed8e\u003c/code\u003e\u003c/a\u003e fix: require proto-plus \u0026gt;= 1.25 for Python 3.13 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/955\"\u003e#955\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/002b1fcb395d77d94d7216560c30015b9aefca81\"\u003e\u003ccode\u003e002b1fc\u003c/code\u003e\u003c/a\u003e fix: require proto-plus \u0026gt;= 1.25 for Python 3.13 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/955\"\u003e#955\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/439eaa5b2f23b1d7bce4e1d7673134b2a138ee48\"\u003e\u003ccode\u003e439eaa5\u003c/code\u003e\u003c/a\u003e chore(python): update dependencies in .kokoro/docker/docs (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/954\"\u003e#954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/googleapis/python-logging/compare/v3.11.3...v3.11.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytz` from 2024.2 to 2025.2\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stub42/pytz/commit/82e0891730a38fdcf8c9c680af34712d45a97fde\"\u003e\u003ccode\u003e82e0891\u003c/code\u003e\u003c/a\u003e Bump version numbers to 2024.2 (2024b)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stub42/pytz/commit/277b33cd8482780a8e79694d4c2c13033cd121aa\"\u003e\u003ccode\u003e277b33c\u003c/code\u003e\u003c/a\u003e IANA 2025b\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stub42/pytz/commit/07d8e91a76d1ca14a57d77dde7bf157f54a03626\"\u003e\u003ccode\u003e07d8e91\u003c/code\u003e\u003c/a\u003e Squashed 'tz/' changes from a8e2fcd87b..a84610f010\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stub42/pytz/commit/00ad7f15b9d61ec6151255ff00283f79e93dc81e\"\u003e\u003ccode\u003e00ad7f1\u003c/code\u003e\u003c/a\u003e Bump version numbers to 2025.1 / 2025a\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stub42/pytz/commit/7abdc14abd46937b4a3920723f3dd702ba617e61\"\u003e\u003ccode\u003e7abdc14\u003c/code\u003e\u003c/a\u003e Squashed 'tz/' changes from 6903dde39e..5ad5cfba5b\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stub42/pytz/commit/f3a8f382c8c8d0cbd8f500c270886c6adcf6ddd2\"\u003e\u003ccode\u003ef3a8f38\u003c/code\u003e\u003c/a\u003e IANA 2025a\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/stub42/pytz/compare/release_2024.2...release_2025.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `setuptools` from 75.6.0 to 78.1.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/setuptools/blob/main/NEWS.rst\"\u003esetuptools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev78.1.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRestore access to _get_vc_env with a warning. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4874\"\u003e#4874\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev78.0.2\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePostponed removals of deprecated dash-separated and uppercase fields in \u003ccode\u003esetup.cfg\u003c/code\u003e.\nAll packages with deprecated configurations are advised to move before 2026. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4911\"\u003e#4911\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev78.0.1\u003c/h1\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4909\"\u003e#4909\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev78.0.0\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReverted distutils changes that broke the monkey patching of command classes. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4902\"\u003e#4902\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eSetuptools no longer accepts options containing uppercase or dash characters in \u003ccode\u003esetup.cfg\u003c/code\u003e.\nPlease ensure to write the options in \u003ccode\u003esetup.cfg\u003c/code\u003e using the :wiki:\u003ccode\u003elower_snake_case \u0026lt;Snake_case\u0026gt;\u003c/code\u003e convention\n(e.g. \u003ccode\u003eName =\u0026gt; name\u003c/code\u003e, \u003ccode\u003einstall-requires =\u0026gt; install_requires\u003c/code\u003e).\nThis is a follow-up on deprecations introduced in\n\u003ccode\u003ev54.1.0 \u0026lt;https://setuptools.pypa.io/en/latest/history.html#v54-1-0\u0026gt;\u003c/code\u003e_ (see \u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/1608\"\u003e#1608\u003c/a\u003e) and\n\u003ccode\u003ev54.1.1 \u0026lt;https://setuptools.pypa.io/en/latest/history.html#v54-1-1\u0026gt;\u003c/code\u003e_ (see \u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/2592\"\u003e#2592\u003c/a\u003e).\u003c/p\u003e\n\u003cp\u003e.. note::\nThis change \u003cem\u003edoes not affect configurations in\u003c/em\u003e \u003ccode\u003epyproject.toml\u003c/code\u003e\n(which uses the :wiki:\u003ccode\u003elower-kebab-case \u0026lt;Letter_case#Kebab_case\u0026gt;\u003c/code\u003e convention following the precedent set in :pep:\u003ccode\u003e517\u003c/code\u003e/:pep:\u003ccode\u003e518\u003c/code\u003e). (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4870\"\u003e#4870\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/pypa/setuptools/commit/6ead555c5fb29bc57fe6105b1bffc163f56fd558\"\u003e\u003ccode\u003e6ead555\u003c/code\u003e\u003c/a\u003e Bump version: 78.0.2 → 78.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/d37cd9ede4c0b529f4239d0c1e26c2a5996131c4\"\u003e\u003ccode\u003ed37cd9e\u003c/code\u003e\u003c/a\u003e Merge \u003ca href=\"https://github.com/pypa/distutils\"\u003ehttps://github.com/pypa/distutils\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/efa2eb231c82f6630468ad358cfe4b65a013b690\"\u003e\u003ccode\u003eefa2eb2\u003c/code\u003e\u003c/a\u003e Restore access to _get_vc_env with a warning.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/3c88de1c62420c1e0161f48e34af6424ac009aa5\"\u003e\u003ccode\u003e3c88de1\u003c/code\u003e\u003c/a\u003e Bump version: 78.0.1 → 78.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/a219451f7354816fe479cf2b0fd5bc47de0a57ee\"\u003e\u003ccode\u003ea219451\u003c/code\u003e\u003c/a\u003e Revert removals introduced in \u003ccode\u003ev78.0.0\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4911\"\u003e#4911\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/d4326dd6896caa87dbf928610fa160a536b69323\"\u003e\u003ccode\u003ed4326dd\u003c/code\u003e\u003c/a\u003e Allow PyPy to fail on CI.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/92e22dd5765b54e1ce7c9f25c419371e666b15dc\"\u003e\u003ccode\u003e92e22dd\u003c/code\u003e\u003c/a\u003e Manually remove file to try to stop flaky tests on PyPy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/caa48ab040420be2885e9d2a14ce6615bd17f992\"\u003e\u003ccode\u003ecaa48ab\u003c/code\u003e\u003c/a\u003e Add news fragment\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/4e9b8caec323aba5b2b3764ef97018a8b1596a4b\"\u003e\u003ccode\u003e4e9b8ca\u003c/code\u003e\u003c/a\u003e Revert removals introduced in v78.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/5450f57f1cefa44c961fb50fc18e9826c95a5d59\"\u003e\u003ccode\u003e5450f57\u003c/code\u003e\u003c/a\u003e Bump version: 78.0.0 → 78.0.1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/setuptools/compare/v75.6.0...v78.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/therefromhere/sureflap_gcloud/pull/114","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/therefromhere%2Fsureflap_gcloud/issues/114","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/114/packages"},{"uuid":"1970072801","node_id":"PR_kwDOGJylKs51bOzh","number":3,"state":"closed","title":"Bump the pip group across 1 directory with 7 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":"2025-08-31T03:44:47.000Z","author_association":"NONE","state_reason":null,"created_at":"2024-07-15T19:22:41.000Z","updated_at":"2025-08-31T03:44:47.000Z","time_to_close":35540526,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"pip","update_count":7,"packages":[{"name":"tqdm","old_version":"4.66.1","new_version":"4.66.3","repository_url":"https://github.com/tqdm/tqdm"},{"name":"certifi","old_version":"2023.11.17","new_version":"2024.7.4","repository_url":"https://github.com/certifi/python-certifi"},{"name":"requests","old_version":"2.31.0","new_version":"2.32.2","repository_url":"https://github.com/psf/requests"},{"name":"setuptools","old_version":"69.0.3","new_version":"70.0.0","repository_url":"https://github.com/pypa/setuptools"},{"name":"tornado","old_version":"6.4","new_version":"6.4.1","repository_url":"https://github.com/tornadoweb/tornado"},{"name":"urllib3","old_version":"2.1.0","new_version":"2.2.2","repository_url":"https://github.com/urllib3/urllib3"},{"name":"zipp","old_version":"3.17.0","new_version":"3.19.1","repository_url":"https://github.com/jaraco/zipp"}],"path":null,"ecosystem":"conda"},"body":"Bumps the pip group with 7 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [tqdm](https://github.com/tqdm/tqdm) | `4.66.1` | `4.66.3` |\n| [certifi](https://github.com/certifi/python-certifi) | `2023.11.17` | `2024.7.4` |\n| [requests](https://github.com/psf/requests) | `2.31.0` | `2.32.2` |\n| [setuptools](https://github.com/pypa/setuptools) | `69.0.3` | `70.0.0` |\n| [tornado](https://github.com/tornadoweb/tornado) | `6.4` | `6.4.1` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.1.0` | `2.2.2` |\n| [zipp](https://github.com/jaraco/zipp) | `3.17.0` | `3.19.1` |\n\n\nUpdates `tqdm` from 4.66.1 to 4.66.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tqdm/tqdm/releases\"\u003etqdm's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003etqdm v4.66.3 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ecli\u003c/code\u003e: \u003ccode\u003eeval\u003c/code\u003e safety (fixes CVE-2024-34062, GHSA-g7vv-2v7x-gj9p)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.66.2 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epandas\u003c/code\u003e: add \u003ccode\u003eDataFrame.progress_map\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1549\"\u003e#1549\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003enotebook\u003c/code\u003e: fix HTML padding (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1506\"\u003e#1506\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ekeras\u003c/code\u003e: fix resuming training when \u003ccode\u003everbose\u0026gt;=2\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1508\"\u003e#1508\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003eformat_num\u003c/code\u003e negative fractions missing leading zero (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1548\"\u003e#1548\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix Python 3.12 \u003ccode\u003eDeprecationWarning\u003c/code\u003e on \u003ccode\u003eimport\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1519\"\u003e#1519\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003elinting: use f-strings (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1549\"\u003e#1549\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate tests (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1549\"\u003e#1549\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003efix \u003ccode\u003epandas\u003c/code\u003e warnings\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003easv\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/airspeed-velocity/asv/issues/1323\"\u003eairspeed-velocity/asv#1323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix macos \u003ccode\u003enotebook\u003c/code\u003e docstring indentation\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eCI: bump actions (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1549\"\u003e#1549\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/tqdm/tqdm/commit/4e613f84ed2ae029559f539464df83fa91feb316\"\u003e\u003ccode\u003e4e613f8\u003c/code\u003e\u003c/a\u003e Merge pull request from GHSA-g7vv-2v7x-gj9p\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/b53348c73080b4edeb30b4823d1fa0d8d2c06721\"\u003e\u003ccode\u003eb53348c\u003c/code\u003e\u003c/a\u003e cli: eval safety\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/cc372d09dcd5a5eabdc6ed4cf365bdb0be004d44\"\u003e\u003ccode\u003ecc372d0\u003c/code\u003e\u003c/a\u003e bump version, merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1549\"\u003e#1549\u003c/a\u003e from tqdm/devel\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/e9f0c05097dc167031575391d83240d37556f098\"\u003e\u003ccode\u003ee9f0c05\u003c/code\u003e\u003c/a\u003e use PyPI trusted publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/7323d5bcc9b032d525f9d6468a9713f5be9c4174\"\u003e\u003ccode\u003e7323d5b\u003c/code\u003e\u003c/a\u003e slight makefile clean\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/5306125133d76e0f9326d747d29781fefe273c77\"\u003e\u003ccode\u003e5306125\u003c/code\u003e\u003c/a\u003e tests: bump pre-commit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/4a6fd4f690a4add231f4bef601521ed9bee513fb\"\u003e\u003ccode\u003e4a6fd4f\u003c/code\u003e\u003c/a\u003e fix datetime.utcfromtimestamp py3.12 warning (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1519\"\u003e#1519\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/6f13759f4a0e1047a09732e72f6d07e44d3e6855\"\u003e\u003ccode\u003e6f13759\u003c/code\u003e\u003c/a\u003e tests: fix macos notebook indentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/3abcd2ac90ecb01ac7f64071af600f803eab6a21\"\u003e\u003ccode\u003e3abcd2a\u003c/code\u003e\u003c/a\u003e tests: fix asv\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/a4d15c8e2f6c7322c1a1cd1d845927f037281da1\"\u003e\u003ccode\u003ea4d15c8\u003c/code\u003e\u003c/a\u003e tests: fix pandas warnings\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tqdm/tqdm/compare/v4.66.1...v4.66.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2023.11.17 to 2024.7.4\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/bd8153872e9c6fc98f4023df9c2deaffea2fa463\"\u003e\u003ccode\u003ebd81538\u003c/code\u003e\u003c/a\u003e 2024.07.04 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/295\"\u003e#295\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/06a2cbf21f345563dde6c28b60e29d57e9b210b3\"\u003e\u003ccode\u003e06a2cbf\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 6.0.5 to 6.1.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/294\"\u003e#294\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/13bba02b72bac97c432c277158bc04b4d2a6bc23\"\u003e\u003ccode\u003e13bba02\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4.1.6 to 4.1.7 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/293\"\u003e#293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/e8abcd0e62b334c164b95d49fcabdc9ecbca0554\"\u003e\u003ccode\u003ee8abcd0\u003c/code\u003e\u003c/a\u003e Bump pypa/gh-action-pypi-publish from 1.8.14 to 1.9.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/292\"\u003e#292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/124f4adf171e15cd9a91a8b6e0325ecc97be8fe1\"\u003e\u003ccode\u003e124f4ad\u003c/code\u003e\u003c/a\u003e 2024.06.02 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/291\"\u003e#291\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/c2196ce5d6ee675b27755a19948480a7823e2c6a\"\u003e\u003ccode\u003ec2196ce\u003c/code\u003e\u003c/a\u003e --- (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/290\"\u003e#290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/fefdeec7588ff1c05214b85a552afcad5fdb51b2\"\u003e\u003ccode\u003efefdeec\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4.1.4 to 4.1.5 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/3c5fb1560b826a7f83f1f9750173ff766492c9cf\"\u003e\u003ccode\u003e3c5fb15\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4.1.6 to 4.1.7 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/286\"\u003e#286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/4a9569a3eb58db8548536fc16c5c5c7af946a5b1\"\u003e\u003ccode\u003e4a9569a\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4.1.2 to 4.1.4 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/1fc808626a895a916b1e4c2b63abae6c5eafdbe3\"\u003e\u003ccode\u003e1fc8086\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 6.0.4 to 6.0.5 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/288\"\u003e#288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2023.11.17...2024.07.04\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.31.0 to 2.32.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.32.2\u003c/h2\u003e\n\u003ch2\u003e2.32.2 (2024-05-21)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eTo provide a more stable migration for custom HTTPAdapters impacted\nby the CVE changes in 2.32.0, we've renamed \u003ccode\u003e_get_connection\u003c/code\u003e to\na new public API, \u003ccode\u003eget_connection_with_tls_context\u003c/code\u003e. Existing custom\nHTTPAdapters will need to migrate their code to use this new API.\n\u003ccode\u003eget_connection\u003c/code\u003e is considered deprecated in all versions of Requests\u0026gt;=2.32.0.\u003c/p\u003e\n\u003cp\u003eA minimal (2-line) example has been provided in the linked PR to ease\nmigration, but we strongly urge users to evaluate if their custom adapter\nis subject to the same issue described in CVE-2024-35195. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6710\"\u003e#6710\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.32.1\u003c/h2\u003e\n\u003ch2\u003e2.32.1 (2024-05-20)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd missing test certs to the sdist distributed on PyPI.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.32.0\u003c/h2\u003e\n\u003ch2\u003e2.32.0 (2024-05-20)\u003c/h2\u003e\n\u003ch2\u003e🐍 PYCON US 2024 EDITION 🐍\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where setting \u003ccode\u003everify=False\u003c/code\u003e on the first request from a\nSession will cause subsequent requests to the \u003cem\u003esame origin\u003c/em\u003e to also ignore\ncert verification, regardless of the value of \u003ccode\u003everify\u003c/code\u003e.\n(\u003ca href=\"https://github.com/psf/requests/security/advisories/GHSA-9wx4-h78v-vm56\"\u003ehttps://github.com/psf/requests/security/advisories/GHSA-9wx4-h78v-vm56\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003everify=True\u003c/code\u003e now reuses a global SSLContext which should improve\nrequest time variance between first and subsequent requests. It should\nalso minimize certificate load time on Windows systems when using a Python\nversion built with OpenSSL 3.x. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6667\"\u003e#6667\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests now supports optional use of character detection\n(\u003ccode\u003echardet\u003c/code\u003e or \u003ccode\u003echarset_normalizer\u003c/code\u003e) when repackaged or vendored.\nThis enables \u003ccode\u003epip\u003c/code\u003e and other projects to minimize their vendoring\nsurface area. The \u003ccode\u003eResponse.text()\u003c/code\u003e and \u003ccode\u003eapparent_encoding\u003c/code\u003e APIs\nwill default to \u003ccode\u003eutf-8\u003c/code\u003e if neither library is present. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6702\"\u003e#6702\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed bug in length detection where emoji length was incorrectly\ncalculated in the request content-length. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6589\"\u003e#6589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed deserialization bug in JSONDecodeError. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6629\"\u003e#6629\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed bug where an extra leading \u003ccode\u003e/\u003c/code\u003e (path separator) could lead\nurllib3 to unnecessarily reparse the request URI. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6644\"\u003e#6644\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.32.2 (2024-05-21)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eTo provide a more stable migration for custom HTTPAdapters impacted\nby the CVE changes in 2.32.0, we've renamed \u003ccode\u003e_get_connection\u003c/code\u003e to\na new public API, \u003ccode\u003eget_connection_with_tls_context\u003c/code\u003e. Existing custom\nHTTPAdapters will need to migrate their code to use this new API.\n\u003ccode\u003eget_connection\u003c/code\u003e is considered deprecated in all versions of Requests\u0026gt;=2.32.0.\u003c/p\u003e\n\u003cp\u003eA minimal (2-line) example has been provided in the linked PR to ease\nmigration, but we strongly urge users to evaluate if their custom adapter\nis subject to the same issue described in CVE-2024-35195. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6710\"\u003e#6710\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.1 (2024-05-20)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd missing test certs to the sdist distributed on PyPI.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.0 (2024-05-20)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where setting \u003ccode\u003everify=False\u003c/code\u003e on the first request from a\nSession will cause subsequent requests to the \u003cem\u003esame origin\u003c/em\u003e to also ignore\ncert verification, regardless of the value of \u003ccode\u003everify\u003c/code\u003e.\n(\u003ca href=\"https://github.com/psf/requests/security/advisories/GHSA-9wx4-h78v-vm56\"\u003ehttps://github.com/psf/requests/security/advisories/GHSA-9wx4-h78v-vm56\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003everify=True\u003c/code\u003e now reuses a global SSLContext which should improve\nrequest time variance between first and subsequent requests. It should\nalso minimize certificate load time on Windows systems when using a Python\nversion built with OpenSSL 3.x. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6667\"\u003e#6667\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests now supports optional use of character detection\n(\u003ccode\u003echardet\u003c/code\u003e or \u003ccode\u003echarset_normalizer\u003c/code\u003e) when repackaged or vendored.\nThis enables \u003ccode\u003epip\u003c/code\u003e and other projects to minimize their vendoring\nsurface area. The \u003ccode\u003eResponse.text()\u003c/code\u003e and \u003ccode\u003eapparent_encoding\u003c/code\u003e APIs\nwill default to \u003ccode\u003eutf-8\u003c/code\u003e if neither library is present. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6702\"\u003e#6702\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed bug in length detection where emoji length was incorrectly\ncalculated in the request content-length. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6589\"\u003e#6589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed deserialization bug in JSONDecodeError. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6629\"\u003e#6629\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed bug where an extra leading \u003ccode\u003e/\u003c/code\u003e (path separator) could lead\nurllib3 to unnecessarily reparse the request URI. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6644\"\u003e#6644\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/88dce9d854797c05d0ff296b70e0430535ef8aaf\"\u003e\u003ccode\u003e88dce9d\u003c/code\u003e\u003c/a\u003e v2.32.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/c98e4d133ef29c46a9b68cd783087218a8075e05\"\u003e\u003ccode\u003ec98e4d1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psf/requests/issues/6710\"\u003e#6710\u003c/a\u003e from nateprewitt/api_rename\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/92075b330a30b9883f466a43d3f7566ab849f91b\"\u003e\u003ccode\u003e92075b3\u003c/code\u003e\u003c/a\u003e Add deprecation warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/aa1461b68aa73e2f6ec0e78c8853b635c76fd099\"\u003e\u003ccode\u003eaa1461b\u003c/code\u003e\u003c/a\u003e Move _get_connection to get_connection_with_tls_context\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/970e8cec988421bd43da57350723b05c8ce8dc7e\"\u003e\u003ccode\u003e970e8ce\u003c/code\u003e\u003c/a\u003e v2.32.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d6ebc4a2f1f68b7e355fb7e4dd5ffc0845547f9f\"\u003e\u003ccode\u003ed6ebc4a\u003c/code\u003e\u003c/a\u003e v2.32.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/9a40d1277807f0a4f26c9a37eea8ec90faa8aadc\"\u003e\u003ccode\u003e9a40d12\u003c/code\u003e\u003c/a\u003e Avoid reloading root certificates to improve concurrent performance (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6667\"\u003e#6667\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0c030f78d24f29a459dbf39b28b4cc765e2153d7\"\u003e\u003ccode\u003e0c030f7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psf/requests/issues/6702\"\u003e#6702\u003c/a\u003e from nateprewitt/no_char_detection\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/555b870eb19d497ddb67042645420083ec8efb02\"\u003e\u003ccode\u003e555b870\u003c/code\u003e\u003c/a\u003e Allow character detection dependencies to be optional in post-packaging steps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d6dded3f00afcf56a7e866cb0732799045301eb0\"\u003e\u003ccode\u003ed6dded3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psf/requests/issues/6700\"\u003e#6700\u003c/a\u003e from franekmagiera/update-redirect-to-invalid-uri-test\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.31.0...v2.32.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `setuptools` from 69.0.3 to 70.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/setuptools/blob/main/NEWS.rst\"\u003esetuptools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev70.0.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEmit a warning when \u003ccode\u003e[tools.setuptools]\u003c/code\u003e is present in \u003ccode\u003epyproject.toml\u003c/code\u003e and will be ignored. -- by :user:\u003ccode\u003eSnoopJ\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4150\"\u003e#4150\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved \u003ccode\u003eAttributeError\u003c/code\u003e error message if \u003ccode\u003epkg_resources.EntryPoint.require\u003c/code\u003e is called without extras or distribution\nGracefully \u0026quot;do nothing\u0026quot; when trying to activate a \u003ccode\u003epkg_resources.Distribution\u003c/code\u003e with a \u003ccode\u003eNone\u003c/code\u003e location, rather than raising a \u003ccode\u003eTypeError\u003c/code\u003e\n-- by :user:\u003ccode\u003eAvasam\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4262\"\u003e#4262\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTyped the dynamically defined variables from \u003ccode\u003epkg_resources\u003c/code\u003e -- by :user:\u003ccode\u003eAvasam\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4267\"\u003e#4267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eModernized and refactored VCS handling in package_index. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4332\"\u003e#4332\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIn install command, use super to call the superclass methods. Avoids race conditions when monkeypatching from _distutils_system_mod occurs late. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4136\"\u003e#4136\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix finder template for lenient editable installs of implicit nested namespaces\nconstructed by using \u003ccode\u003epackage_dir\u003c/code\u003e to reorganise directory structure. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4278\"\u003e#4278\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix an error with \u003ccode\u003eUnicodeDecodeError\u003c/code\u003e handling in \u003ccode\u003epkg_resources\u003c/code\u003e when trying to read files in UTF-8 with a fallback -- by :user:\u003ccode\u003eAvasam\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4348\"\u003e#4348\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved Documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUses RST substitution to put badges in 1 line. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4312\"\u003e#4312\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFurther adoption of UTF-8 in \u003ccode\u003esetuptools\u003c/code\u003e.\nThis change regards mostly files produced and consumed during the build process\n(e.g. metadata files, script wrappers, automatically updated config files, etc..)\nAlthough precautions were taken to minimize disruptions, some edge cases might\nbe subject to backwards incompatibility.\u003c/p\u003e\n\u003cp\u003eSupport for \u003ccode\u003e\u0026quot;locale\u0026quot;\u003c/code\u003e encoding is now \u003cstrong\u003edeprecated\u003c/strong\u003e. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4309\"\u003e#4309\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove \u003ccode\u003esetuptools.convert_path\u003c/code\u003e after long deprecation period.\nThis function was never defined by \u003ccode\u003esetuptools\u003c/code\u003e itself, but rather a\nside-effect of an import for internal usage. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4322\"\u003e#4322\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove fallback for customisations of \u003ccode\u003edistutils\u003c/code\u003e' \u003ccode\u003ebuild.sub_command\u003c/code\u003e after long\ndeprecated period.\nUsers are advised to import \u003ccode\u003ebuild\u003c/code\u003e directly from \u003ccode\u003esetuptools.command.build\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4322\"\u003e#4322\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved \u003ccode\u003etyping_extensions\u003c/code\u003e from vendored dependencies -- by :user:\u003ccode\u003eAvasam\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4324\"\u003e#4324\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove deprecated \u003ccode\u003esetuptools.dep_util\u003c/code\u003e.\nThe provided alternative is \u003ccode\u003esetuptools.modified\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4360\"\u003e#4360\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/pypa/setuptools/commit/5cbf12a9b63fd37985a4525617b46576b8ac3a7b\"\u003e\u003ccode\u003e5cbf12a\u003c/code\u003e\u003c/a\u003e Workaround for release error in v70\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/9c1bcc3417bd12668123f7e731e241d9e57bfc57\"\u003e\u003ccode\u003e9c1bcc3\u003c/code\u003e\u003c/a\u003e Bump version: 69.5.1 → 70.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/4dc0c31644b458ac43ce6148f6a9dc729a7e78b5\"\u003e\u003ccode\u003e4dc0c31\u003c/code\u003e\u003c/a\u003e Remove deprecated \u003ccode\u003esetuptools.dep_util\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4360\"\u003e#4360\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/6c1ef5748dbd70c8c5423e12680345766ee101d9\"\u003e\u003ccode\u003e6c1ef57\u003c/code\u003e\u003c/a\u003e Remove xfail now that test passes. Ref \u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4371\"\u003e#4371\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/d14fa0162c95450898c11534caf26a0f03553176\"\u003e\u003ccode\u003ed14fa01\u003c/code\u003e\u003c/a\u003e Add all site-packages dirs when creating simulated environment for test_edita...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/6b7f7a18afc90007544092c446dc0cd856d86b17\"\u003e\u003ccode\u003e6b7f7a1\u003c/code\u003e\u003c/a\u003e Prevent \u003ccode\u003ebin\u003c/code\u003e folders to be taken as extern packages when vendoring (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4370\"\u003e#4370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/69141f69f8bf38da34cbea552d6fdaa9c8619c53\"\u003e\u003ccode\u003e69141f6\u003c/code\u003e\u003c/a\u003e Add doctest for vendorised bin folder\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/2a53cc1200ec4b14e08e84be3c042f8983dfb7d7\"\u003e\u003ccode\u003e2a53cc1\u003c/code\u003e\u003c/a\u003e Prevent 'bin' folders to be taken as extern packages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/720862807dea012f3a0e7061880691025f736f11\"\u003e\u003ccode\u003e7208628\u003c/code\u003e\u003c/a\u003e Replace call to deprecated \u003ccode\u003evalidate_pyproject\u003c/code\u003e command (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4363\"\u003e#4363\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/96d681aa405460f724c62c00ca125ae722ad810a\"\u003e\u003ccode\u003e96d681a\u003c/code\u003e\u003c/a\u003e Remove call to deprecated validate_pyproject command\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/setuptools/compare/v69.0.3...v70.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tornado` from 6.4 to 6.4.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tornadoweb/tornado/blob/master/docs/releases.rst\"\u003etornado's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease notes\u003c/h1\u003e\n\u003cp\u003e.. toctree::\n:maxdepth: 2\u003c/p\u003e\n\u003cp\u003ereleases/v6.4.1\nreleases/v6.4.0\nreleases/v6.3.3\nreleases/v6.3.2\nreleases/v6.3.1\nreleases/v6.3.0\nreleases/v6.2.0\nreleases/v6.1.0\nreleases/v6.0.4\nreleases/v6.0.3\nreleases/v6.0.2\nreleases/v6.0.1\nreleases/v6.0.0\nreleases/v5.1.1\nreleases/v5.1.0\nreleases/v5.0.2\nreleases/v5.0.1\nreleases/v5.0.0\nreleases/v4.5.3\nreleases/v4.5.2\nreleases/v4.5.1\nreleases/v4.5.0\nreleases/v4.4.3\nreleases/v4.4.2\nreleases/v4.4.1\nreleases/v4.4.0\nreleases/v4.3.0\nreleases/v4.2.1\nreleases/v4.2.0\nreleases/v4.1.0\nreleases/v4.0.2\nreleases/v4.0.1\nreleases/v4.0.0\nreleases/v3.2.2\nreleases/v3.2.1\nreleases/v3.2.0\nreleases/v3.1.1\nreleases/v3.1.0\nreleases/v3.0.2\nreleases/v3.0.1\nreleases/v3.0.0\nreleases/v2.4.1\nreleases/v2.4.0\nreleases/v2.3.0\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/2a0e1d13b5222dca4388c0ec8a4bb74ea6fa4af2\"\u003e\u003ccode\u003e2a0e1d1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tornadoweb/tornado/issues/3388\"\u003e#3388\u003c/a\u003e from bdarnell/release-641\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/b7af4e8f5ee578b78e1be5ade43fdb1103659a0e\"\u003e\u003ccode\u003eb7af4e8\u003c/code\u003e\u003c/a\u003e Release notes and version bump for version 6.4.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/d65f6e71a77f53a1ff0a0dc55704be13f04eb572\"\u003e\u003ccode\u003ed65f6e7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tornadoweb/tornado/issues/3387\"\u003e#3387\u003c/a\u003e from bdarnell/chunked-parsing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/8d721a877dd5c2bc0693d9c4d3954eb11fbd404b\"\u003e\u003ccode\u003e8d721a8\u003c/code\u003e\u003c/a\u003e httputil: Only strip tabs and spaces from header values\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/7786f09f84c9f3f2012c4cf3878417cb9f053669\"\u003e\u003ccode\u003e7786f09\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tornadoweb/tornado/issues/3386\"\u003e#3386\u003c/a\u003e from bdarnell/curl-crlf\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/fb119c767e9c43e71ea823311b0d53f566d86b73\"\u003e\u003ccode\u003efb119c7\u003c/code\u003e\u003c/a\u003e http1connection: Stricter handling of transfer-encoding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/b0ffc58e02f33f6aa480f008b74495601d988ce1\"\u003e\u003ccode\u003eb0ffc58\u003c/code\u003e\u003c/a\u003e curl_httpclient,http1connection: Prohibit CR and LF in headers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/0efa9a42b4c94ee98549d86992c68227f83efd4e\"\u003e\u003ccode\u003e0efa9a4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tornadoweb/tornado/issues/3385\"\u003e#3385\u003c/a\u003e from bdarnell/update-black\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/2757c6e4874968dd2f74a4d08b450da795de5b6c\"\u003e\u003ccode\u003e2757c6e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tornadoweb/tornado/issues/3384\"\u003e#3384\u003c/a\u003e from tornadoweb/dependabot/pip/requests-2.32.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/291d1b661be273b86792e965ac65f9bced8d4ebe\"\u003e\u003ccode\u003e291d1b6\u003c/code\u003e\u003c/a\u003e *: Update black\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tornadoweb/tornado/compare/v6.4.0...v6.4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `urllib3` from 2.1.0 to 2.2.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/urllib3/urllib3/releases\"\u003eurllib3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.2.2\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support for 2023. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded the \u003ccode\u003eProxy-Authorization\u003c/code\u003e header to the list of headers to strip from requests when redirecting to a different host. As before, different headers can be set via \u003ccode\u003eRetry.remove_headers_on_redirect\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAllowed passing negative integers as \u003ccode\u003eamt\u003c/code\u003e to read methods of \u003ccode\u003ehttp.client.HTTPResponse\u003c/code\u003e as an alternative to \u003ccode\u003eNone\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3122\"\u003e#3122\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed return types representing copying actions to use \u003ccode\u003etyping.Self\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3363\"\u003e#3363\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/urllib3/urllib3/compare/2.2.1...2.2.2\"\u003ehttps://github.com/urllib3/urllib3/compare/2.2.1...2.2.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.2.1\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support for 2023. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed issue where \u003ccode\u003eInsecureRequestWarning\u003c/code\u003e was emitted for HTTPS connections when using Emscripten. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3331\"\u003e#3331\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPConnectionPool.urlopen\u003c/code\u003e to stop automatically casting non-proxy headers to \u003ccode\u003eHTTPHeaderDict\u003c/code\u003e. This change was premature as it did not apply to proxy headers and \u003ccode\u003eHTTPHeaderDict\u003c/code\u003e does not handle byte header values correctly yet. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3343\"\u003e#3343\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eProtocolError\u003c/code\u003e to \u003ccode\u003eInvalidChunkLength\u003c/code\u003e when response terminates before the chunk length is sent. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/2860\"\u003e#2860\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eProtocolError\u003c/code\u003e to be more verbose on incomplete reads with excess content. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3261\"\u003e#3261\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.2.0\u003c/h2\u003e\n\u003ch2\u003e🖥️ urllib3 now works in the browser\u003c/h2\u003e\n\u003cp\u003e:tada: \u003cstrong\u003eThis release adds experimental support for \u003ca href=\"https://urllib3.readthedocs.io/en/stable/reference/contrib/emscripten.html\"\u003eusing urllib3 in the browser with Pyodide\u003c/a\u003e!\u003c/strong\u003e :tada:\u003c/p\u003e\n\u003cp\u003eThanks to Joe Marshall (\u003ca href=\"https://github.com/joemarshall\"\u003e\u003ccode\u003e@​joemarshall\u003c/code\u003e\u003c/a\u003e) for contributing this feature. This change was possible thanks to work done in urllib3 v2.0 to detach our API from \u003ccode\u003ehttp.client\u003c/code\u003e. Please report all bugs to the \u003ca href=\"https://github.com/urllib3/urllib3/issues\"\u003eurllib3 issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support for 2023. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for \u003ca href=\"https://urllib3.readthedocs.io/en/latest/reference/contrib/emscripten.html\"\u003eEmscripten and Pyodide\u003c/a\u003e, including streaming support in cross-origin isolated browser environments where threading is enabled. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/2951\"\u003e#2951\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for \u003ccode\u003eHTTPResponse.read1()\u003c/code\u003e method. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3186\"\u003e#3186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded rudimentary support for HTTP/2. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3284\"\u003e#3284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed issue where requests against urls with trailing dots were failing due to SSL errors\nwhen using proxy. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/2244\"\u003e#2244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPConnection.proxy_is_verified\u003c/code\u003e and \u003ccode\u003eHTTPSConnection.proxy_is_verified\u003c/code\u003e to be always set to a boolean after connecting to a proxy. It could be \u003ccode\u003eNone\u003c/code\u003e in some cases previously. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3130\"\u003e#3130\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/urllib3/urllib3/blob/main/CHANGES.rst\"\u003eurllib3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.2.2 (2024-06-17)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded the \u003ccode\u003eProxy-Authorization\u003c/code\u003e header to the list of headers to strip from requests when redirecting to a different host. As before, different headers can be set via \u003ccode\u003eRetry.remove_headers_on_redirect\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAllowed passing negative integers as \u003ccode\u003eamt\u003c/code\u003e to read methods of \u003ccode\u003ehttp.client.HTTPResponse\u003c/code\u003e as an alternative to \u003ccode\u003eNone\u003c/code\u003e. (\u003ccode\u003e[#3122](https://github.com/urllib3/urllib3/issues/3122) \u0026lt;https://github.com/urllib3/urllib3/issues/3122\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed return types representing copying actions to use \u003ccode\u003etyping.Self\u003c/code\u003e. (\u003ccode\u003e[#3363](https://github.com/urllib3/urllib3/issues/3363) \u0026lt;https://github.com/urllib3/urllib3/issues/3363\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.2.1 (2024-02-16)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFixed issue where \u003ccode\u003eInsecureRequestWarning\u003c/code\u003e was emitted for HTTPS connections when using Emscripten. (\u003ccode\u003e[#3331](https://github.com/urllib3/urllib3/issues/3331) \u0026lt;https://github.com/urllib3/urllib3/issues/3331\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPConnectionPool.urlopen\u003c/code\u003e to stop automatically casting non-proxy headers to \u003ccode\u003eHTTPHeaderDict\u003c/code\u003e. This change was premature as it did not apply to proxy headers and \u003ccode\u003eHTTPHeaderDict\u003c/code\u003e does not handle byte header values correctly yet. (\u003ccode\u003e[#3343](https://github.com/urllib3/urllib3/issues/3343) \u0026lt;https://github.com/urllib3/urllib3/issues/3343\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eInvalidChunkLength\u003c/code\u003e to \u003ccode\u003eProtocolError\u003c/code\u003e when response terminates before the chunk length is sent. (\u003ccode\u003e[#2860](https://github.com/urllib3/urllib3/issues/2860) \u0026lt;https://github.com/urllib3/urllib3/issues/2860\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eProtocolError\u003c/code\u003e to be more verbose on incomplete reads with excess content. (\u003ccode\u003e[#3261](https://github.com/urllib3/urllib3/issues/3261) \u0026lt;https://github.com/urllib3/urllib3/issues/3261\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.2.0 (2024-01-30)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for \u003ccode\u003eEmscripten and Pyodide \u0026lt;https://urllib3.readthedocs.io/en/latest/reference/contrib/emscripten.html\u0026gt;\u003c/code\u003e\u003cstrong\u003e, including streaming support in cross-origin isolated browser environments where threading is enabled. (\u003ccode\u003e[#2951](https://github.com/urllib3/urllib3/issues/2951) \u0026lt;https://github.com/urllib3/urllib3/issues/2951\u0026gt;\u003c/code\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for \u003ccode\u003eHTTPResponse.read1()\u003c/code\u003e method. (\u003ccode\u003e[#3186](https://github.com/urllib3/urllib3/issues/3186) \u0026lt;https://github.com/urllib3/urllib3/issues/3186\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eAdded rudimentary support for HTTP/2. (\u003ccode\u003e[#3284](https://github.com/urllib3/urllib3/issues/3284) \u0026lt;https://github.com/urllib3/urllib3/issues/3284\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed issue where requests against urls with trailing dots were failing due to SSL errors\nwhen using proxy. (\u003ccode\u003e[#2244](https://github.com/urllib3/urllib3/issues/2244) \u0026lt;https://github.com/urllib3/urllib3/issues/2244\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPConnection.proxy_is_verified\u003c/code\u003e and \u003ccode\u003eHTTPSConnection.proxy_is_verified\u003c/code\u003e\nto be always set to a boolean after connecting to a proxy. It could be\n\u003ccode\u003eNone\u003c/code\u003e in some cases previously. (\u003ccode\u003e[#3130](https://github.com/urllib3/urllib3/issues/3130) \u0026lt;https://github.com/urllib3/urllib3/issues/3130\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed an issue where \u003ccode\u003eheaders\u003c/code\u003e passed in a request with \u003ccode\u003ejson=\u003c/code\u003e would be mutated (\u003ccode\u003e[#3203](https://github.com/urllib3/urllib3/issues/3203) \u0026lt;https://github.com/urllib3/urllib3/issues/3203\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPSConnection.is_verified\u003c/code\u003e to be set to \u003ccode\u003eFalse\u003c/code\u003e when connecting\nfrom a HTTPS proxy to an HTTP target. It was set to \u003ccode\u003eTrue\u003c/code\u003e previously. (\u003ccode\u003e[#3267](https://github.com/urllib3/urllib3/issues/3267) \u0026lt;https://github.com/urllib3/urllib3/issues/3267\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed handling of new error message from OpenSSL 3.2.0 when configuring an HTTP proxy as HTTPS (\u003ccode\u003e[#3268](https://github.com/urllib3/urllib3/issues/3268) \u0026lt;https://github.com/urllib3/urllib3/issues/3268\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed TLS 1.3 post-handshake auth when the server certificate validation is disabled (\u003ccode\u003e[#3325](https://github.com/urllib3/urllib3/issues/3325) \u0026lt;https://github.com/urllib3/urllib3/issues/3325\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eNote for downstream distributors: To run integration tests, you now need to run the tests a second\ntime with the \u003ccode\u003e--integration\u003c/code\u003e pytest flag. (\u003ccode\u003e[#3181](https://github.com/urllib3/urllib3/issues/3181) \u0026lt;https://github.com/urllib3/urllib3/issues/3181\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/urllib3/urllib3/commit/27e2a5c5a7ab6a517252cc8dcef3ffa6ffb8f61a\"\u003e\u003ccode\u003e27e2a5c\u003c/code\u003e\u003c/a\u003e Release 2.2.2 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3406\"\u003e#3406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/accff72ecc2f6cf5a76d9570198a93ac7c90270e\"\u003e\u003ccode\u003eaccff72\u003c/code\u003e\u003c/a\u003e Merge pull request from GHSA-34jh-p97f-mpxf\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/34be4a57e59eb7365bcc37d52e9f8271b5b8d0d3\"\u003e\u003ccode\u003e34be4a5\u003c/code\u003e\u003c/a\u003e Pin CFFI to a new release candidate instead of a Git commit (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3398\"\u003e#3398\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/da410581b6b3df73da976b5ce5eb20a4bd030437\"\u003e\u003ccode\u003eda41058\u003c/code\u003e\u003c/a\u003e Bump browser-actions/setup-chrome from 1.6.0 to 1.7.1 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3399\"\u003e#3399\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/b07a669bd970d69847801148286b726f0570b625\"\u003e\u003ccode\u003eb07a669\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 2.13.4 to 3.25.6 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3396\"\u003e#3396\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/b8589ec9f8c4da91511e601b632ac06af7e7c10e\"\u003e\u003ccode\u003eb8589ec\u003c/code\u003e\u003c/a\u003e Measure coverage with v4 of artifact actions (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3394\"\u003e#3394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/f3bdc5585111429e22c81b5fb26c3ec164d98b81\"\u003e\u003ccode\u003ef3bdc55\u003c/code\u003e\u003c/a\u003e Allow triggering CI manually (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3391\"\u003e#3391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/52392654b30183129cf3ec06010306f517d9c146\"\u003e\u003ccode\u003e5239265\u003c/code\u003e\u003c/a\u003e Fix HTTP version in debug log (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3316\"\u003e#3316\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/b34619f94ece0c40e691a5aaf1304953d88089de\"\u003e\u003ccode\u003eb34619f\u003c/code\u003e\u003c/a\u003e Bump actions/checkout to 4.1.4 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3387\"\u003e#3387\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/9961d14de7c920091d42d42ed76d5d479b80064d\"\u003e\u003ccode\u003e9961d14\u003c/code\u003e\u003c/a\u003e Bump browser-actions/setup-chrome from 1.5.0 to 1.6.0 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3386\"\u003e#3386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/urllib3/urllib3/compare/2.1.0...2.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `zipp` from 3.17.0 to 3.19.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jaraco/zipp/blob/main/NEWS.rst\"\u003ezipp's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev3.19.1\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved handling of malformed zip files. (\u003ca href=\"https://redirect.github.com/jaraco/zipp/issues/119\"\u003e#119\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev3.19.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImplement is_symlink. (\u003ca href=\"https://redirect.github.com/jaraco/zipp/issues/117\"\u003e#117\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev3.18.2\u003c/h1\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch1\u003ev3.18.1\u003c/h1\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch1\u003ev3.18.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBypass ZipFile.namelist in glob for better performance. (\u003ca href=\"https://redirect.github.com/jaraco/zipp/issues/106\"\u003e#106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactored glob functionality to support a more generalized solution with support for platform-specific path separators. (\u003ca href=\"https://redirect.github.com/jaraco/zipp/issues/108\"\u003e#108\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd special accounting for pypy when computing the stack level for text encoding warnings. (\u003ca href=\"https://redirect.github.com/jaraco/zipp/issues/114\"\u003e#114\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/jaraco/zipp/commit/6d1cb72aa55e0536f35d2af128994b5a61ca4c1a\"\u003e\u003ccode\u003e6d1cb72\u003c/code\u003e\u003c/a\u003e Finalize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/zipp/commit/fd604bd34f0343472521a36da1fbd22e793e14fd\"\u003e\u003ccode\u003efd604bd\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jaraco/zipp/issues/120\"\u003e#120\u003c/a\u003e from jaraco/bugfix/119-malformed-paths\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/zipp/commit/c18417ed2953e181728a7dac07bff88a2190abf7\"\u003e\u003ccode\u003ec18417e\u003c/code\u003e\u003c/a\u003e Add news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/zipp/commit/58115d2be968644ce71ce6bcc9b79826c82a1806\"\u003e\u003ccode\u003e58115d2\u003c/code\u003e\u003c/a\u003e Employ SanitizedNames in CompleteDirs. Fixes broken test.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/zipp/commit/564fcc10cdbfdaecdb33688e149827465931c9e0\"\u003e\u003ccode\u003e564fcc1\u003c/code\u003e\u003c/a\u003e Add SanitizedNames mixin.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/zipp/commit/79a309fe54dc6b7934fb72e9f31bcb58f2e9f547\"\u003e\u003ccode\u003e79a309f\u003c/code\u003e\u003c/a\u003e Add some assertions about malformed paths.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/zipp/commit/2d015c22348fab46ca765339f55f84fe9d6e8115\"\u003e\u003ccode\u003e2d015c2\u003c/code\u003e\u003c/a\u003e Merge \u003ca href=\"https://github.com/jaraco/skeleton\"\u003ehttps://github.com/jaraco/skeleton\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/zipp/commit/a595a0fad054cd20b69d3e954c99174e3a548938\"\u003e\u003ccode\u003ea595a0f\u003c/code\u003e\u003c/a\u003e Rename extras to align with core metadata spec.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/zipp/commit/608f90a6e74919501577a1312dc5c7d8e1d391d7\"\u003e\u003ccode\u003e608f90a\u003c/code\u003e\u003c/a\u003e Finalize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/zipp/commit/3a22d724acf874111b43f87f7110225122ec3de5\"\u003e\u003ccode\u003e3a22d72\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jaraco/zipp/issues/118\"\u003e#118\u003c/a\u003e from jaraco/feature/is-symlink\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jaraco/zipp/compare/v3.17.0...v3.19.1\"\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\nYou can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/ycechungAI/manim/network/alerts).\n\n\u003c/details\u003e\n\n\u003e **Note**\n\u003e Automatic rebases have been disabled on this pull request as it has been open for over 30 days.\n","html_url":"https://github.com/ycechungAI/manim/pull/3","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ycechungAI%2Fmanim/issues/3","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/3/packages"}],"issue_packages":[{"old_version":"81.0.0","new_version":"82.0.1","update_type":"major","path":null,"pr_created_at":"2026-05-13T04:33:49.000Z","version_change":"81.0.0 → 82.0.1","issue":{"uuid":"4434834778","node_id":"PR_kwDOR76B_M7a9V6q","number":57,"state":"closed","title":"Bump the conda-dependencies group across 1 directory with 11 updates","user":"dependabot[bot]","labels":["dependencies","conda"],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":"2026-05-13T19:30:47.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-13T04:33:49.000Z","updated_at":"2026-05-13T19:30:49.000Z","time_to_close":53818,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"conda-dependencies","update_count":11,"packages":[{"name":"python","old_version":"3.14","new_version":"3.14.4"},{"name":"numba","old_version":"0.65.0","new_version":"0.65.1"},{"name":"numpyro","old_version":"0.20.1","new_version":"0.21.0"},{"name":"pandas","old_version":"3.0.1","new_version":"3.0.3"},{"name":"ipython","old_version":"9.12.0","new_version":"9.13.0","repository_url":"https://github.com/ipython/ipython"},{"name":"matplotlib","old_version":"3.10.8","new_version":"3.10.9","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"notebook","old_version":"7.5.5","new_version":"7.5.6","repository_url":"https://github.com/jupyter/notebook"},{"name":"orjson","old_version":"3.11.8","new_version":"3.11.9","repository_url":"https://github.com/ijl/orjson"},{"name":"pandas","old_version":"3.0.1","new_version":"3.0.3"},{"name":"ruff","old_version":"0.15.11","new_version":"0.15.12","repository_url":"https://github.com/astral-sh/ruff"},{"name":"setuptools","old_version":"81.0.0","new_version":"82.0.1","repository_url":"https://github.com/pypa/setuptools"}],"path":null,"ecosystem":"conda"},"body":"Updates the requirements on python, arviz, numba, numpyro, pandas, [ipython](https://github.com/ipython/ipython), [matplotlib](https://github.com/matplotlib/matplotlib), [notebook](https://github.com/jupyter/notebook), [orjson](https://github.com/ijl/orjson), [ruff](https://github.com/astral-sh/ruff) and [setuptools](https://github.com/pypa/setuptools) to permit the latest version.\nUpdates `python` from 3.14 to 3.14.4\n\nUpdates `arviz` to 1.1.0\n\nUpdates `numba` from 0.65.0 to 0.65.1\n\nUpdates `numpyro` from 0.20.1 to 0.21.0\n\nUpdates `pandas` from 3.0.1 to 3.0.3\n\nUpdates `ipython` from 9.12.0 to 9.13.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/7c1654dcb4bc0d4c841fbee1f5abf7c6c6007111\"\u003e\u003ccode\u003e7c1654d\u003c/code\u003e\u003c/a\u003e release 9.13.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/d7cd8a44234ddbdba782a42fce7893a4ff4529f4\"\u003e\u003ccode\u003ed7cd8a4\u003c/code\u003e\u003c/a\u003e Fix reStructuredText heading underline consistency in whatsnew (\u003ca href=\"https://redirect.github.com/ipython/ipython/issues/15189\"\u003e#15189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/6542c95bef054c7ed4c1725047726b7140fe0e4d\"\u003e\u003ccode\u003e6542c95\u003c/code\u003e\u003c/a\u003e Fix RST header levels in whatsnew/version9.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/0ca3e92249fb0af429b40e4827000955d5ceeeb3\"\u003e\u003ccode\u003e0ca3e92\u003c/code\u003e\u003c/a\u003e Prepare release notes for 9.13 (\u003ca href=\"https://redirect.github.com/ipython/ipython/issues/15188\"\u003e#15188\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/9c8ce1184eceb865d392b39030d6c670caea89c5\"\u003e\u003ccode\u003e9c8ce11\u003c/code\u003e\u003c/a\u003e Revert release.py change, keep as dev\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/1fb2f7dc221e9b889d857b79c38704eab594d4c0\"\u003e\u003ccode\u003e1fb2f7d\u003c/code\u003e\u003c/a\u003e Prepare release notes for 9.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/be4179d1ba8b5c4e0f0d35a7d2f1654fd15c96e3\"\u003e\u003ccode\u003ebe4179d\u003c/code\u003e\u003c/a\u003e Implement support for image/png format in terminal (\u003ca href=\"https://redirect.github.com/ipython/ipython/issues/15184\"\u003e#15184\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/1ec6bc9ca9558877b5bfccf66c22e8e61ceba83d\"\u003e\u003ccode\u003e1ec6bc9\u003c/code\u003e\u003c/a\u003e Implement support for image/png format in terminal\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/c6f48bceeec68b6ad9b9e6270eee9a7f4277b245\"\u003e\u003ccode\u003ec6f48bc\u003c/code\u003e\u003c/a\u003e solves \u003ca href=\"https://redirect.github.com/ipython/ipython/issues/14901\"\u003e#14901\u003c/a\u003e illegible yellow string on yellow background issue (\u003ca href=\"https://redirect.github.com/ipython/ipython/issues/15156\"\u003e#15156\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/8635f71fc551d76f017ad47c826bb7c7bfcb6b24\"\u003e\u003ccode\u003e8635f71\u003c/code\u003e\u003c/a\u003e fix: CapturedIO.\u003cstrong\u003einit\u003c/strong\u003e type annotations to accept Optional[StringIO] (\u003ca href=\"https://redirect.github.com/ipython/ipython/issues/15172\"\u003e#15172\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ipython/ipython/compare/9.12.0...9.13.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `matplotlib` from 3.10.8 to 3.10.9\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/matplotlib/matplotlib/releases\"\u003ematplotlib's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.10.9\u003c/h2\u003e\n\u003cp\u003eThis is a micro release of the v3.10.x series.\nHighlights of this release include:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious minor bug and doc fixes\u003c/li\u003e\n\u003cli\u003eSecurity hardening validation of cyclers - Removing eval usage\u003c/li\u003e\n\u003cli\u003eSecurity hardening in Latex and PS calls - Removing shell escapes\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/dd8d78b8dce60b6c8db86132892577a0b9dbe469\"\u003e\u003ccode\u003edd8d78b\u003c/code\u003e\u003c/a\u003e REL: v3.10.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/2fb18915bcfe69a188832c776fe18d88337de9bc\"\u003e\u003ccode\u003e2fb1891\u003c/code\u003e\u003c/a\u003e REL: Release prep v3.10.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/d0e923abfa016c04901fe4e315b9d215949f6fc5\"\u003e\u003ccode\u003ed0e923a\u003c/code\u003e\u003c/a\u003e Merge branch 'v3.10.8-doc' into v3.10.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/163793248a5fc9f23a560e45551c44351a8bd716\"\u003e\u003ccode\u003e1637932\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/31558\"\u003e#31558\u003c/a\u003e from meeseeksmachine/auto-backport-of-pr-31556-on-v...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/a83faacb0dbe7edd1bae38e1e715b77b6aaebb84\"\u003e\u003ccode\u003ea83faac\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/31556\"\u003e#31556\u003c/a\u003e: FIX: Inverted PyErr_Occurred check in enum type caster (_...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/a4f57ab0623f9d26be29e0a3b0de904667c7eeb7\"\u003e\u003ccode\u003ea4f57ab\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/31545\"\u003e#31545\u003c/a\u003e from ksunden/backport-of-pr-31282-on-v3.10.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/063288d0cc912aa2af5cc1b7e7ca3d228d9f8976\"\u003e\u003ccode\u003e063288d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/31544\"\u003e#31544\u003c/a\u003e from ksunden/backport-of-pr-31248-on-v3.10.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/b2ed1969191a03ec8927f96573664474662ab4c1\"\u003e\u003ccode\u003eb2ed196\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/31248\"\u003e#31248\u003c/a\u003e: SEC: Remove eval() from validate_cycler\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/acc60241a70b920eaf04fce41a8cf0a77010fb7d\"\u003e\u003ccode\u003eacc6024\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/31282\"\u003e#31282\u003c/a\u003e from scottshambaugh/tex_no_shell\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/e3fb54163b1ce9dbc1a9e8e0973289dc14e366c2\"\u003e\u003ccode\u003ee3fb541\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/31078\"\u003e#31078\u003c/a\u003e from meeseeksmachine/auto-backport-of-pr-31075-on-v...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/matplotlib/matplotlib/compare/v3.10.8...v3.10.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `notebook` from 7.5.5 to 7.5.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jupyter/notebook/releases\"\u003enotebook's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.5.6\u003c/h2\u003e\n\u003ch2\u003e7.5.6\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/jupyter/notebook/compare/@jupyter-notebook/application-extension@7.5.5...2e642f0cb10be314ba5d97d709cffe41bf992d9e\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eSecurity patches\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-42557 \u003ca href=\"https://github.com/jupyterlab/jupyterlab/security/advisories/GHSA-mqcg-5x36-vfcg\"\u003ehttps://github.com/jupyterlab/jupyterlab/security/advisories/GHSA-mqcg-5x36-vfcg\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCVE-2026-40171 \u003ca href=\"https://github.com/jupyter/notebook/security/advisories/GHSA-rch3-82jr-f9w9\"\u003ehttps://github.com/jupyter/notebook/security/advisories/GHSA-rch3-82jr-f9w9\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMaintenance and upkeep improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate to JupyterLab v4.5.7 \u003ca href=\"https://redirect.github.com/jupyter/notebook/pull/7902\"\u003e#7902\u003c/a\u003e (\u003ca href=\"https://github.com/jtpio\"\u003e\u003ccode\u003e@​jtpio\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edocs: Fix broken links in troubleshooting and migration docs \u003ca href=\"https://redirect.github.com/jupyter/notebook/pull/7824\"\u003e#7824\u003c/a\u003e (\u003ca href=\"https://github.com/RamiNoodle733\"\u003e\u003ccode\u003e@​RamiNoodle733\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors to this release\u003c/h3\u003e\n\u003cp\u003eThe following people contributed discussions, new ideas, code and documentation contributions, and review.\nSee \u003ca href=\"https://github-activity.readthedocs.io/en/latest/use/#how-does-this-tool-define-contributions-in-the-reports\"\u003eour definition of contributors\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/jupyter/notebook/graphs/contributors?from=2026-03-11\u0026amp;to=2026-04-30\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/jtpio\"\u003e\u003ccode\u003e@​jtpio\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2026-03-11..2026-04-30\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/RamiNoodle733\"\u003e\u003ccode\u003e@​RamiNoodle733\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3ARamiNoodle733+updated%3A2026-03-11..2026-04-30\u0026amp;type=Issues\"\u003eactivity\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/jupyter/notebook/blob/@jupyter-notebook/tree@7.5.6/CHANGELOG.md\"\u003enotebook's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.5.6\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/jupyter/notebook/compare/@jupyter-notebook/application-extension@7.5.5...2e642f0cb10be314ba5d97d709cffe41bf992d9e\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eMaintenance and upkeep improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate to JupyterLab v4.5.7 \u003ca href=\"https://redirect.github.com/jupyter/notebook/pull/7902\"\u003e#7902\u003c/a\u003e (\u003ca href=\"https://github.com/jtpio\"\u003e\u003ccode\u003e@​jtpio\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edocs: Fix broken links in troubleshooting and migration docs \u003ca href=\"https://redirect.github.com/jupyter/notebook/pull/7824\"\u003e#7824\u003c/a\u003e (\u003ca href=\"https://github.com/RamiNoodle733\"\u003e\u003ccode\u003e@​RamiNoodle733\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors to this release\u003c/h3\u003e\n\u003cp\u003eThe following people contributed discussions, new ideas, code and documentation contributions, and review.\nSee \u003ca href=\"https://github-activity.readthedocs.io/en/latest/use/#how-does-this-tool-define-contributions-in-the-reports\"\u003eour definition of contributors\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/jupyter/notebook/graphs/contributors?from=2026-03-11\u0026amp;to=2026-04-30\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/jtpio\"\u003e\u003ccode\u003e@​jtpio\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2026-03-11..2026-04-30\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/RamiNoodle733\"\u003e\u003ccode\u003e@​RamiNoodle733\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3ARamiNoodle733+updated%3A2026-03-11..2026-04-30\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e)\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyter/notebook/commit/1ab2d2b99261996e94069ca53dd3d74b8b2ee1ba\"\u003e\u003ccode\u003e1ab2d2b\u003c/code\u003e\u003c/a\u003e Publish 7.5.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyter/notebook/commit/50e5222c9670121c3369900c7dce01aae53823fc\"\u003e\u003ccode\u003e50e5222\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyter/notebook/commit/2e642f0cb10be314ba5d97d709cffe41bf992d9e\"\u003e\u003ccode\u003e2e642f0\u003c/code\u003e\u003c/a\u003e Update to JupyterLab v4.5.7 (\u003ca href=\"https://redirect.github.com/jupyter/notebook/issues/7902\"\u003e#7902\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyter/notebook/commit/4b93f98b5a6e57027a2e1d58694b56e2ebd793a3\"\u003e\u003ccode\u003e4b93f98\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyter/notebook/issues/7824\"\u003e#7824\u003c/a\u003e: docs: Fix broken links in troubleshooting and migration do...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/jupyter/notebook/compare/@jupyter-notebook/tree@7.5.5...@jupyter-notebook/tree@7.5.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `orjson` from 3.11.8 to 3.11.9\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ijl/orjson/releases\"\u003eorjson's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.11.9\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuild now depends on Rust 1.95 or later instead of 1.89.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix building on Rust 1.95.\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/ijl/orjson/blob/master/CHANGELOG.md\"\u003eorjson's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.11.9 - 2026-05-06\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuild now depends on Rust 1.95 or later instead of 1.89.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix building on Rust 1.95.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/705515d77b28429d0b7c30c3d781abe52e8a1e5a\"\u003e\u003ccode\u003e705515d\u003c/code\u003e\u003c/a\u003e 3.11.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/d19055d5bab432f98d53b71606a9c6c23fb21bf6\"\u003e\u003ccode\u003ed19055d\u003c/code\u003e\u003c/a\u003e build update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/77e2d96c3febe099cde2447856fe2523d68c71b0\"\u003e\u003ccode\u003e77e2d96\u003c/code\u003e\u003c/a\u003e MSRV 1.95, remove compiler feature detection\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/ijl/orjson/compare/3.11.8...3.11.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pandas` from 3.0.1 to 3.0.3\n\nUpdates `ruff` from 0.15.11 to 0.15.12\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.12\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-24.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImplement \u003ccode\u003e#ruff:file-ignore\u003c/code\u003e file-level suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23599\"\u003e#23599\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement \u003ccode\u003e#ruff:ignore\u003c/code\u003e logical-line suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23404\"\u003e#23404\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRevert preview changes to displayed diagnostic severity in LSP (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24789\"\u003e#24789\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003etask-branch-as-short-circuit\u003c/code\u003e (\u003ccode\u003eAIR004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23579\"\u003e#23579\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Fix \u003ccode\u003ebreak\u003c/code\u003e/\u003ccode\u003econtinue\u003c/code\u003e handling in \u003ccode\u003eloop-iterator-mutation\u003c/code\u003e (\u003ccode\u003eB909\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24440\"\u003e#24440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLC2701\u003c/code\u003e for type parameter scopes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24576\"\u003e#24576\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epandas-vet\u003c/code\u003e] Suggest \u003ccode\u003e.array\u003c/code\u003e as well in \u003ccode\u003ePD011\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24805\"\u003e#24805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRespect default Unix permissions for cache files (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24794\"\u003e#24794\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLR0124\u003c/code\u003e description not to claim self-comparison always returns the same value (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24749\"\u003e#24749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Expand docs on reusable \u003ccode\u003eTypeVar\u003c/code\u003es and scoping (\u003ccode\u003eUP046\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24153\"\u003e#24153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove rules table accessibility (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24711\"\u003e#24711\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/woodruffw\"\u003e\u003ccode\u003e@​woodruffw\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/avasis-ai\"\u003e\u003ccode\u003e@​avasis-ai\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Dev-iL\"\u003e\u003ccode\u003e@​Dev-iL\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/denyszhak\"\u003e\u003ccode\u003e@​denyszhak\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ShipItAndPray\"\u003e\u003ccode\u003e@​ShipItAndPray\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/augustelalande\"\u003e\u003ccode\u003e@​augustelalande\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/majiayu000\"\u003e\u003ccode\u003e@​majiayu000\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.15.12\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://releases.astral.sh/github/ruff/releases/download/0.15.12/ruff-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- 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/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.12\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-24.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImplement \u003ccode\u003e#ruff:file-ignore\u003c/code\u003e file-level suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23599\"\u003e#23599\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement \u003ccode\u003e#ruff:ignore\u003c/code\u003e logical-line suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23404\"\u003e#23404\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRevert preview changes to displayed diagnostic severity in LSP (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24789\"\u003e#24789\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003etask-branch-as-short-circuit\u003c/code\u003e (\u003ccode\u003eAIR004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23579\"\u003e#23579\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Fix \u003ccode\u003ebreak\u003c/code\u003e/\u003ccode\u003econtinue\u003c/code\u003e handling in \u003ccode\u003eloop-iterator-mutation\u003c/code\u003e (\u003ccode\u003eB909\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24440\"\u003e#24440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLC2701\u003c/code\u003e for type parameter scopes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24576\"\u003e#24576\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epandas-vet\u003c/code\u003e] Suggest \u003ccode\u003e.array\u003c/code\u003e as well in \u003ccode\u003ePD011\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24805\"\u003e#24805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRespect default Unix permissions for cache files (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24794\"\u003e#24794\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLR0124\u003c/code\u003e description not to claim self-comparison always returns the same value (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24749\"\u003e#24749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Expand docs on reusable \u003ccode\u003eTypeVar\u003c/code\u003es and scoping (\u003ccode\u003eUP046\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24153\"\u003e#24153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove rules table accessibility (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24711\"\u003e#24711\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/woodruffw\"\u003e\u003ccode\u003e@​woodruffw\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/avasis-ai\"\u003e\u003ccode\u003e@​avasis-ai\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Dev-iL\"\u003e\u003ccode\u003e@​Dev-iL\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/denyszhak\"\u003e\u003ccode\u003e@​denyszhak\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ShipItAndPray\"\u003e\u003ccode\u003e@​ShipItAndPray\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/augustelalande\"\u003e\u003ccode\u003e@​augustelalande\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/majiayu000\"\u003e\u003ccode\u003e@​majiayu000\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/astral-sh/ruff/commit/66f93cf7ed4d36325f35a452e4afa28268fbcd28\"\u003e\u003ccode\u003e66f93cf\u003c/code\u003e\u003c/a\u003e Bump 0.15.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24815\"\u003e#24815\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/476a4d02e8e3b6c157ac39979d8b698a1b6baa91\"\u003e\u003ccode\u003e476a4d0\u003c/code\u003e\u003c/a\u003e [ty] Complete support for more detailed diagnostics on possibly unbound error...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/ed669eab30095d6c51fe6cdef6050fb01276bcb3\"\u003e\u003ccode\u003eed669ea\u003c/code\u003e\u003c/a\u003e Implement \u003ccode\u003e#ruff:file-ignore\u003c/code\u003e file-level suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23599\"\u003e#23599\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e73d952e43feb51356ee740c5a973fce81396ff6\"\u003e\u003ccode\u003ee73d952\u003c/code\u003e\u003c/a\u003e [ty] Include inferred type in \u003ccode\u003einvalid-key\u003c/code\u003e concise diagnostic for union/inte...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/80feb29b31cd98c093316df2e0407b0c70c01b55\"\u003e\u003ccode\u003e80feb29\u003c/code\u003e\u003c/a\u003e [ty] report only dead annotation-only locals as unused (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24811\"\u003e#24811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/0fbf2bc27336a3d17d39af52cf89b78dcda8c7c8\"\u003e\u003ccode\u003e0fbf2bc\u003c/code\u003e\u003c/a\u003e Drop deprecated license classifier (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24808\"\u003e#24808\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/43b174cc7f2fcb0080bb1d4843cd4bf6b72bbe27\"\u003e\u003ccode\u003e43b174c\u003c/code\u003e\u003c/a\u003e [ty] Infer lambda parameter types with \u003ccode\u003eCallable\u003c/code\u003e type context (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24317\"\u003e#24317\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/4f449ae4a2377569330a5ab94799d389357b5a3f\"\u003e\u003ccode\u003e4f449ae\u003c/code\u003e\u003c/a\u003e [ty] Add error context for intersection types (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24772\"\u003e#24772\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/5b4e753acb46e96ad408e4904c15308e33efe307\"\u003e\u003ccode\u003e5b4e753\u003c/code\u003e\u003c/a\u003e [ty] Add support for goto in literal enum member inlay hint (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24792\"\u003e#24792\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e7cc76275a758ce1c636ea1c2d091fd576aac794\"\u003e\u003ccode\u003ee7cc762\u003c/code\u003e\u003c/a\u003e [ty] Add error context for TypedDict assignments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24790\"\u003e#24790\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.15.11...0.15.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `setuptools` from 81.0.0 to 82.0.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/setuptools/blob/main/NEWS.rst\"\u003esetuptools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev82.0.1\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix the loading of \u003ccode\u003elauncher manifest.xml\u003c/code\u003e file. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5047\"\u003e#5047\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReplaced deprecated \u003ccode\u003ejson.__version__\u003c/code\u003e with fixture in tests. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5186\"\u003e#5186\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved Documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd advice about how to improve predictability when installing sdists. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5168\"\u003e#5168\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4941\"\u003e#4941\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5157\"\u003e#5157\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5169\"\u003e#5169\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5175\"\u003e#5175\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev82.0.0\u003c/h1\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epkg_resources\u003c/code\u003e has been removed from Setuptools. Most common uses of \u003ccode\u003epkg_resources\u003c/code\u003e have been superseded by the \u003ccode\u003eimportlib.resources \u0026lt;https://docs.python.org/3/library/importlib.resources.html\u0026gt;\u003c/code\u003e_ and \u003ccode\u003eimportlib.metadata \u0026lt;https://docs.python.org/3/library/importlib.metadata.html\u0026gt;\u003c/code\u003e_ projects. Projects and environments relying on \u003ccode\u003epkg_resources\u003c/code\u003e for namespace packages or other behavior should depend on older versions of \u003ccode\u003esetuptools\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/3085\"\u003e#3085\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/pypa/setuptools/commit/5a13876673a41e3cd21d4d6e587f53d0fb4fd8e5\"\u003e\u003ccode\u003e5a13876\u003c/code\u003e\u003c/a\u003e Bump version: 82.0.0 → 82.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/51ab8f183f1c4112675d8d6ec6b004406d518ee8\"\u003e\u003ccode\u003e51ab8f1\u003c/code\u003e\u003c/a\u003e Avoid using (deprecated) 'json.\u003cstrong\u003eversion\u003c/strong\u003e' in tests (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5194\"\u003e#5194\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/f9c37b20bb0ed11203f676f9683452a4c3ace6f6\"\u003e\u003ccode\u003ef9c37b2\u003c/code\u003e\u003c/a\u003e Docs/CI: Fix intersphinx references (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5195\"\u003e#5195\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/8173db2a4fc0f6cb28926b3dba59116b79f435c8\"\u003e\u003ccode\u003e8173db2\u003c/code\u003e\u003c/a\u003e Docs: Fix intersphinx references\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/09bafbc74923f2a3591b5b098be75d6af6ca5141\"\u003e\u003ccode\u003e09bafbc\u003c/code\u003e\u003c/a\u003e Fix past tense on newsfragment\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/461ea56c8e629819a23920f44d9298d4f041abde\"\u003e\u003ccode\u003e461ea56\u003c/code\u003e\u003c/a\u003e Add news fragment\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/c4ffe535b58235ff9f9ebe90d24a2cffb57e70ae\"\u003e\u003ccode\u003ec4ffe53\u003c/code\u003e\u003c/a\u003e Avoid using (deprecated) 'json.\u003cstrong\u003eversion\u003c/strong\u003e' in tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/749258b1a96c7accc05ea7d842fb19fc378866fe\"\u003e\u003ccode\u003e749258b\u003c/code\u003e\u003c/a\u003e Cleanup \u003ccode\u003epkg_resources\u003c/code\u003e dependencies and configuration (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5175\"\u003e#5175\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/2019c16701667db1010c62ec11c6ef78c2e58206\"\u003e\u003ccode\u003e2019c16\u003c/code\u003e\u003c/a\u003e Parse \u003ccode\u003eext-module.define-macros\u003c/code\u003e from \u003ccode\u003epyproject.toml\u003c/code\u003e as list of tuples (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5169\"\u003e#5169\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/b809c86a37d97fcce290d5f51d4c293ab40bc685\"\u003e\u003ccode\u003eb809c86\u003c/code\u003e\u003c/a\u003e Sync setuptools schema with validate-pyproject (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5157\"\u003e#5157\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/setuptools/compare/v81.0.0...v82.0.1\"\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 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/dseinternational/language-reading-predictors/pull/57","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/dseinternational%2Flanguage-reading-predictors/issues/57","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/57/packages"}},{"old_version":"80.9.0","new_version":"82.0.0","update_type":"major","path":null,"pr_created_at":"2026-02-25T12:25:38.000Z","version_change":"80.9.0 → 82.0.0","issue":{"uuid":"3989174822","node_id":"PR_kwDOCmWyEM7GNury","number":30,"state":"closed","title":"Bump the all-dependencies group with 15 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-03-03T15:23:57.000Z","author_association":null,"state_reason":null,"created_at":"2026-02-25T12:25:38.000Z","updated_at":"2026-03-03T15:23:59.000Z","time_to_close":529099,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"all-dependencies","update_count":15,"packages":[{"name":"docutils","old_version":"0.22.3","new_version":"0.22.4","repository_url":"https://github.com/rtfd/recommonmark"},{"name":"babel","old_version":"2.17.0","new_version":"2.18.0","repository_url":"https://github.com/python-babel/babel"},{"name":"roman-numerals","old_version":"3.1.0","new_version":"4.1.0","repository_url":"https://github.com/AA-Turner/roman-numerals"},{"name":"packaging","old_version":"25.0","new_version":"26.0","repository_url":"https://github.com/pypa/packaging"},{"name":"ruff","old_version":"0.14.9","new_version":"0.15.2","repository_url":"https://github.com/astral-sh/ruff"},{"name":"build","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/pypa/build"},{"name":"pypi-attestations","old_version":"0.0.28","new_version":"0.0.29","repository_url":"https://github.com/pypi/pypi-attestations"},{"name":"pytest","old_version":"9.0.1","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"cython","old_version":"3.2.2","new_version":"3.2.4","repository_url":"https://github.com/cython/cython"},{"name":"setuptools","old_version":"80.9.0","new_version":"82.0.0","repository_url":"https://github.com/pypa/setuptools"},{"name":"pyrefly","old_version":"0.44.0","new_version":"0.54.0","repository_url":"https://github.com/facebook/pyrefly"},{"name":"pyright","old_version":"1.1.407","new_version":"1.1.408","repository_url":"https://github.com/RobertCraigie/pyright-python"},{"name":"ty","old_version":"0.0.1a30","new_version":"0.0.18","repository_url":"https://github.com/astral-sh/ty"},{"name":"types-docutils","old_version":"0.22.3.20251115","new_version":"0.22.3.20260223","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"types-requests","old_version":"2.32.4.20250913","new_version":"2.32.4.20260107","repository_url":"https://github.com/typeshed-internal/stub_uploader"}],"path":null,"ecosystem":"conda"},"body":"Bumps the all-dependencies group with 15 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [docutils](https://github.com/rtfd/recommonmark) | `0.22.3` | `0.22.4` |\n| [babel](https://github.com/python-babel/babel) | `2.17.0` | `2.18.0` |\n| [roman-numerals](https://github.com/AA-Turner/roman-numerals) | `3.1.0` | `4.1.0` |\n| [packaging](https://github.com/pypa/packaging) | `25.0` | `26.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.14.9` | `0.15.2` |\n| [build](https://github.com/pypa/build) | `1.3.0` | `1.4.0` |\n| [pypi-attestations](https://github.com/pypi/pypi-attestations) | `0.0.28` | `0.0.29` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.1` | `9.0.2` |\n| [cython](https://github.com/cython/cython) | `3.2.2` | `3.2.4` |\n| [setuptools](https://github.com/pypa/setuptools) | `80.9.0` | `82.0.0` |\n| [pyrefly](https://github.com/facebook/pyrefly) | `0.44.0` | `0.54.0` |\n| [pyright](https://github.com/RobertCraigie/pyright-python) | `1.1.407` | `1.1.408` |\n| [ty](https://github.com/astral-sh/ty) | `0.0.1a30` | `0.0.18` |\n| [types-docutils](https://github.com/typeshed-internal/stub_uploader) | `0.22.3.20251115` | `0.22.3.20260223` |\n| [types-requests](https://github.com/typeshed-internal/stub_uploader) | `2.32.4.20250913` | `2.32.4.20260107` |\n\nUpdates `docutils` from 0.22.3 to 0.22.4\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rtfd/recommonmark/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `babel` from 2.17.0 to 2.18.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-babel/babel/releases\"\u003ebabel's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.18.0\u003c/h2\u003e\n\u003cp\u003eHappy 2026! Like last year's release (ahem...), this one too is being made from FOSDEM 2026, in Brussels, Belgium. 🇧🇪\nWe'll aspire for a less glacial release cycle for 2.19. 😁\u003c/p\u003e\n\u003cp\u003ePlease see \u003ca href=\"https://github.com/python-babel/babel/blob/56c63caf50b18b152541b5dcafd51f645d867074/CHANGES.rst\"\u003eCHANGELOG.rst\u003c/a\u003e for the detailed change log.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/python-babel/babel/compare/v2.17.0...v2.18.0\"\u003ehttps://github.com/python-babel/babel/compare/v2.17.0...v2.18.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-babel/babel/blob/master/CHANGES.rst\"\u003ebabel's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 2.18.0\u003c/h2\u003e\n\u003cp\u003eHappy 2026! This release is, coincidentally, also being made from FOSDEM.\u003c/p\u003e\n\u003cp\u003eWe will aspire for a slightly less glacial release cadence in this year;\nthere are interesting features in the pipeline.\u003c/p\u003e\n\u003cp\u003eFeatures\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Core: Add `babel.core.get_cldr_version()` by @akx in :gh:`1242`\n* Core: Use CLDR 47 by @tomasr8 in :gh:`1210`\n* Core: Use canonical IANA zone names in zone_territories by @akx in :gh:`1220`\n* Messages: Improve extract performance via ignoring directories early during os.walk by @akx in :gh:`968`\n* Messages: Merge in per-format keywords and auto_comments by @akx in :gh:`1243`\n* Messages: Update keywords for extraction of dpgettext and dnpgettext by @mardiros in :gh:`1235`\n* Messages: Validate all plurals in Python format checker by @tomasr8 in :gh:`1188`\n* Time: Use standard library `timezone` instead of `FixedOffsetTimezone` by @akx in :gh:`1203`\n\u003cp\u003eBugfixes\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCore: Fix formatting for \u0026quot;Empty locale identifier\u0026quot; exception added in \u003ca href=\"https://redirect.github.com/python-babel/babel/issues/1164\"\u003e#1164\u003c/a\u003e by \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e in :gh:\u003ccode\u003e1184\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eCore: Improve handling of no-inheritance-marker in timezone data by \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e in :gh:\u003ccode\u003e1194\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eCore: Make the number pattern regular expression more efficient by \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e in :gh:\u003ccode\u003e1213\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eMessages: Keep translator comments next to the translation function call by \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e in :gh:\u003ccode\u003e1196\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eNumbers: Fix KeyError that occurred when formatting compact currencies of exactly one thousand in several locales  by \u003ca href=\"https://github.com/bartbroere\"\u003e\u003ccode\u003e@​bartbroere\u003c/code\u003e\u003c/a\u003e in :gh:\u003ccode\u003e1246\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eOther improvements\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Core: Avoid unnecessary uses of `map()` by @akx in :gh:`1180`\n* Messages: Have init-catalog create directories too by @akx in :gh:`1244`\n* Messages: Optimizations for read_po by @akx in :gh:`1200`\n* Messages: Use pathlib.Path() in catalog frontend; improve test coverage by @akx in :gh:`1204`\n\u003cp\u003eInfrastructure and documentation\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCI: Renovate CI \u0026amp; lint tools by \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e in :gh:\u003ccode\u003e1228\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eCI: Tighten up CI with Zizmor by \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e in :gh:\u003ccode\u003e1230\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eCI: make job permissions explicit by \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e in :gh:\u003ccode\u003e1227\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eDocs: Add SECURITY.md by \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e in :gh:\u003ccode\u003e1229\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eDocs: Remove u string prefix from docs by \u003ca href=\"https://github.com/verhovsky\"\u003e\u003ccode\u003e@​verhovsky\u003c/code\u003e\u003c/a\u003e in :gh:\u003ccode\u003e1174\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eDocs: Update dates.rst with current unicode.org tr35 link by \u003ca href=\"https://github.com/clach04\"\u003e\u003ccode\u003e@​clach04\u003c/code\u003e\u003c/a\u003e in :gh:\u003ccode\u003e1189\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGeneral: Add some PyPI classifiers by \u003ca href=\"https://github.com/tomasr8\"\u003e\u003ccode\u003e@​tomasr8\u003c/code\u003e\u003c/a\u003e in :gh:\u003ccode\u003e1186\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGeneral: Apply reformatting by hand and with Ruff by \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e in :gh:\u003ccode\u003e1202\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGeneral: Test on and declare support for Python 3.14 by \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e in :gh:\u003ccode\u003e1233\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-babel/babel/commit/56c63caf50b18b152541b5dcafd51f645d867074\"\u003e\u003ccode\u003e56c63ca\u003c/code\u003e\u003c/a\u003e Prepare for 2.18.0 (\u003ca href=\"https://redirect.github.com/python-babel/babel/issues/1248\"\u003e#1248\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-babel/babel/commit/73015a1217b90398fe76dcdc3b6e110ce26eb6d3\"\u003e\u003ccode\u003e73015a1\u003c/code\u003e\u003c/a\u003e Add user-agent to CLDR downloader (\u003ca href=\"https://redirect.github.com/python-babel/babel/issues/1247\"\u003e#1247\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-babel/babel/commit/29bd3624463f9b8694d09a308f67f353373c76af\"\u003e\u003ccode\u003e29bd362\u003c/code\u003e\u003c/a\u003e Fix formatting compact currencies of exactly one thousand in several locales ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-babel/babel/commit/851db43b2b175c6bdf69ae6977cd6ad642506046\"\u003e\u003ccode\u003e851db43\u003c/code\u003e\u003c/a\u003e Reuse InitCatalog's guts in UpdateCatalog (\u003ca href=\"https://redirect.github.com/python-babel/babel/issues/1244\"\u003e#1244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-babel/babel/commit/fd00e60adf7e0c74821a77ff2a8b564e9985fd8e\"\u003e\u003ccode\u003efd00e60\u003c/code\u003e\u003c/a\u003e Extract: Merge in per-format keywords and auto_comments (\u003ca href=\"https://redirect.github.com/python-babel/babel/issues/1243\"\u003e#1243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-babel/babel/commit/12a14b6b3f09b6f5c8c745791dd4928f1d58fda0\"\u003e\u003ccode\u003e12a14b6\u003c/code\u003e\u003c/a\u003e Add dpgettext and dnpgettext support (\u003ca href=\"https://redirect.github.com/python-babel/babel/issues/1235\"\u003e#1235\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-babel/babel/commit/7110e6206fd5ddc66db9613935fea8b8c668b7d5\"\u003e\u003ccode\u003e7110e62\u003c/code\u003e\u003c/a\u003e Use canonical IANA zone names in zone_territories (\u003ca href=\"https://redirect.github.com/python-babel/babel/issues/1220\"\u003e#1220\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-babel/babel/commit/e91c3467b0f3bdc4433eab6820819fe69784c2bf\"\u003e\u003ccode\u003ee91c346\u003c/code\u003e\u003c/a\u003e Improve extract performance via ignoring directories early during os.walk (\u003ca href=\"https://redirect.github.com/python-babel/babel/issues/968\"\u003e#968\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-babel/babel/commit/0c4f37838c3cb34cf527dd9890c1b69e98db1354\"\u003e\u003ccode\u003e0c4f378\u003c/code\u003e\u003c/a\u003e Convert Unittest testcases with setup/teardown to fixtures (\u003ca href=\"https://redirect.github.com/python-babel/babel/issues/1240\"\u003e#1240\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-babel/babel/commit/218c96ee305aad95bccb6402af4b4be60ad17ab1\"\u003e\u003ccode\u003e218c96e\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003ebabel.core.get_cldr_version()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-babel/babel/issues/1242\"\u003e#1242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-babel/babel/compare/v2.17.0...v2.18.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `roman-numerals` from 3.1.0 to 4.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/AA-Turner/roman-numerals/releases\"\u003eroman-numerals's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.1.0\u003c/h2\u003e\n\u003cp\u003eroman-numerals 4.1.0\u003c/p\u003e\n\u003ch2\u003ev4.0.0\u003c/h2\u003e\n\u003cp\u003eroman-numerals 4.0.0\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/AA-Turner/roman-numerals/blob/master/CHANGES.rst\"\u003eroman-numerals's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease 4.1.0 (released 17 Dec 2025)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRestore LICENCE.rst in the roman-numerals-py meta-package\u003c/li\u003e\n\u003cli\u003eAdd some debug assertions for unsafe blocks\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eRelease 4.0.0 (released 16 Dec 2025)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRename Python package to \u003ccode\u003eroman-numerals\u003c/code\u003e on PyPI.\u003c/li\u003e\n\u003cli\u003ePublish \u003ccode\u003eroman-numerals-py\u003c/code\u003e as a meta-package that depends\non \u003ccode\u003eroman-numerals\u003c/code\u003e and installs no modules.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.9.\u003c/li\u003e\n\u003cli\u003eDeclare support for Python 3.15.\u003c/li\u003e\n\u003cli\u003eIncrease the minimum supported Rust version (MSRV) to 1.81.0.\u003c/li\u003e\n\u003cli\u003eImplement the \u003ccode\u003ecore::error::Error\u003c/code\u003e trait for all error types.\u003c/li\u003e\n\u003cli\u003eImplement the \u003ccode\u003ecore::fmt\u003c/code\u003e traits in \u003ccode\u003eno-std\u003c/code\u003e mode.\u003c/li\u003e\n\u003cli\u003eImplement \u003ccode\u003eFrom\u0026lt;RomanNumeral\u0026gt;\u003c/code\u003e for most integer types.\u003c/li\u003e\n\u003cli\u003ePublish the \u003ccode\u003eroman-numerals-rs\u003c/code\u003e crate using \u003ccode\u003eTrusted Publishing \u0026lt;https://crates.io/docs/trusted-publishing\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/AA-Turner/roman-numerals/commit/53c9c4eac63b91728fba3c26329163ee57654d21\"\u003e\u003ccode\u003e53c9c4e\u003c/code\u003e\u003c/a\u003e Release v4.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/a3793b83fab7064107ac56a482a6fa93bc9c5048\"\u003e\u003ccode\u003ea3793b8\u003c/code\u003e\u003c/a\u003e Add more SAFETY notes and debug assertions to unsafe blocks (\u003ca href=\"https://redirect.github.com/AA-Turner/roman-numerals/issues/106\"\u003e#106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/46d346e2d08b634856c79783e404616b65626ba7\"\u003e\u003ccode\u003e46d346e\u003c/code\u003e\u003c/a\u003e Adjust annotations in light of PEP 649\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/b8fae405d948415f7397ae4f64569c53cb623105\"\u003e\u003ccode\u003eb8fae40\u003c/code\u003e\u003c/a\u003e Adjust an example in the README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/a88464130711ad5e8d56e6ff747d17068ae17534\"\u003e\u003ccode\u003ea884641\u003c/code\u003e\u003c/a\u003e Restore LICENCE.rst in the roman-numerals-py meta-package\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/c3e1b6b4e6e02e5e19c26dc6f72bbb7b1060cca5\"\u003e\u003ccode\u003ec3e1b6b\u003c/code\u003e\u003c/a\u003e Release v4.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/c335cb63ed97e684a4e9453639bfc7e9f487bb41\"\u003e\u003ccode\u003ec335cb6\u003c/code\u003e\u003c/a\u003e Add publishing step for the \u003ccode\u003eroman-numerals-py\u003c/code\u003e meta-package (\u003ca href=\"https://redirect.github.com/AA-Turner/roman-numerals/issues/105\"\u003e#105\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/649f6e62e7bd24123d7dd489609ae47168aaeb1b\"\u003e\u003ccode\u003e649f6e6\u003c/code\u003e\u003c/a\u003e Add Trusted Publishing workflow for crates.io (\u003ca href=\"https://redirect.github.com/AA-Turner/roman-numerals/issues/104\"\u003e#104\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/ffa4dd1b33eae62f1bd1d44549e10a528b8f1f58\"\u003e\u003ccode\u003effa4dd1\u003c/code\u003e\u003c/a\u003e rust: Refactor tests (\u003ca href=\"https://redirect.github.com/AA-Turner/roman-numerals/issues/103\"\u003e#103\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/26b41561c1d9813104548777b5ed9622d7125b38\"\u003e\u003ccode\u003e26b4156\u003c/code\u003e\u003c/a\u003e Simplify ASCII detection closures (\u003ca href=\"https://redirect.github.com/AA-Turner/roman-numerals/issues/102\"\u003e#102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/AA-Turner/roman-numerals/compare/v3.1.0...v4.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `packaging` from 25.0 to 26.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/packaging/releases\"\u003epackaging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.0\u003c/h2\u003e\n\u003cp\u003eRead about the performance improvements here: \u003ca href=\"https://iscinumpy.dev/post/packaging-faster\"\u003ehttps://iscinumpy.dev/post/packaging-faster\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePEP 751: support pylock by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/900\"\u003epypa/packaging#900\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePEP 794: import name metadata by \u003ca href=\"https://github.com/brettcannon\"\u003e\u003ccode\u003e@​brettcannon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/948\"\u003epypa/packaging#948\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport writing metadata by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/846\"\u003epypa/packaging#846\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003e__replace__\u003c/code\u003e for \u003ccode\u003eVersion\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1003\"\u003epypa/packaging#1003\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport positional pattern matching for \u003ccode\u003eVersion\u003c/code\u003e and \u003ccode\u003eSpecifier\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1004\"\u003epypa/packaging#1004\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBehavior adaptations:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePEP 440 handling of prereleases for \u003ccode\u003eSpecifier.contains\u003c/code\u003e, \u003ccode\u003eSpecifierSet.contains\u003c/code\u003e, and \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/897\"\u003epypa/packaging#897\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle PEP 440 edge case in \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/942\"\u003epypa/packaging#942\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdjust arbitrary equality intersection preservation in \u003ccode\u003eSpecifierSet\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/951\"\u003epypa/packaging#951\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReturn \u003ccode\u003eFalse\u003c/code\u003e instead of raising for \u003ccode\u003e.contains\u003c/code\u003e with invalid version by \u003ca href=\"https://github.com/Liam-DeVoe\"\u003e\u003ccode\u003e@​Liam-DeVoe\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/932\"\u003epypa/packaging#932\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport arbitrary equality on arbitrary strings for \u003ccode\u003eSpecifier\u003c/code\u003e and \u003ccode\u003eSpecifierSet\u003c/code\u003e's \u003ccode\u003efilter\u003c/code\u003e and \u003ccode\u003econtains\u003c/code\u003e method. by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/954\"\u003epypa/packaging#954\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly try to parse as \u003ccode\u003eVersion\u003c/code\u003e on certain marker keys, return \u003ccode\u003eFalse\u003c/code\u003e on unequal ordered comparsions by \u003ca href=\"https://github.com/JP-Ellis\"\u003e\u003ccode\u003e@​JP-Ellis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/939\"\u003epypa/packaging#939\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003e_hash\u003c/code\u003e when unpickling \u003ccode\u003eTag()\u003c/code\u003e by \u003ca href=\"https://github.com/dholth\"\u003e\u003ccode\u003e@​dholth\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/860\"\u003epypa/packaging#860\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrect comment and simplify implicit prerelease handling in \u003ccode\u003eSpecifier.prereleases\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/896\"\u003epypa/packaging#896\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse explicit \u003ccode\u003e_GLibCVersion\u003c/code\u003e \u003ccode\u003eNamedTuple\u003c/code\u003e in \u003ccode\u003e_manylinux\u003c/code\u003e by \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/868\"\u003epypa/packaging#868\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDetect invalid license expressions containing \u003ccode\u003e()\u003c/code\u003e by \u003ca href=\"https://github.com/bwoodsend\"\u003e\u003ccode\u003e@​bwoodsend\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/879\"\u003epypa/packaging#879\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrect regex for metadata \u003ccode\u003e'name'\u003c/code\u003e format by \u003ca href=\"https://github.com/di\"\u003e\u003ccode\u003e@​di\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/925\"\u003epypa/packaging#925\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove the message around expecting a semicolon by \u003ca href=\"https://github.com/pradyunsg\"\u003e\u003ccode\u003e@​pradyunsg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/833\"\u003epypa/packaging#833\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport nested parens in license expressions by \u003ca href=\"https://github.com/Liam-DeVoe\"\u003e\u003ccode\u003e@​Liam-DeVoe\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/931\"\u003epypa/packaging#931\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd space before at symbol in \u003ccode\u003eRequirements\u003c/code\u003e string by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/953\"\u003epypa/packaging#953\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eA root logger use found by ruff LOG, use \u003ccode\u003epackaging\u003c/code\u003e logger instead by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/965\"\u003epypa/packaging#965\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter support for subclassing \u003ccode\u003eMarker\u003c/code\u003e and \u003ccode\u003eRequirement\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1022\"\u003epypa/packaging#1022\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize all extras, not just if it comes first by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1024\"\u003epypa/packaging#1024\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't produce a broken repr if \u003ccode\u003eMarker\u003c/code\u003e fails to construct by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1033\"\u003epypa/packaging#1033\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePerformance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid recompiling regexes in the tokenizer for a 3x speedup by \u003ca href=\"https://github.com/hauntsaninja\"\u003e\u003ccode\u003e@​hauntsaninja\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1019\"\u003epypa/packaging#1019\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove performance in \u003ccode\u003e_manylinux.py\u003c/code\u003e by \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/869\"\u003epypa/packaging#869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMinor cleanups to \u003ccode\u003eVersion\u003c/code\u003e by \u003ca href=\"https://github.com/bearomorphism\"\u003e\u003ccode\u003e@​bearomorphism\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/913\"\u003epypa/packaging#913\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip redundant creation of \u003ccode\u003eVersion\u003c/code\u003es in specifier comparison by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/986\"\u003epypa/packaging#986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCache \u003ccode\u003eSpecifier\u003c/code\u003e's Version by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/985\"\u003epypa/packaging#985\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eVersion\u003c/code\u003e a little faster by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/987\"\u003epypa/packaging#987\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMinor \u003ccode\u003eVersion\u003c/code\u003e regex cleanup by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/990\"\u003epypa/packaging#990\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFaster regex on Python 3.11.5+ by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/988\"\u003epypa/packaging#988\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1055\"\u003epypa/packaging#1055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLazily calculate \u003ccode\u003e_key\u003c/code\u003e in \u003ccode\u003eVersion\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/989\"\u003epypa/packaging#989\u003c/a\u003e and regression for \u003ccode\u003epackaging_legacy\u003c/code\u003e fixed by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1048\"\u003epypa/packaging#1048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFaster \u003ccode\u003ecanonicalize_version\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/993\"\u003epypa/packaging#993\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003efullmatch\u003c/code\u003e in a couple more places by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/992\"\u003epypa/packaging#992\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/pypa/packaging/blob/main/CHANGELOG.rst\"\u003epackaging's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e26.0 - 2026-01-20\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nFeatures:\n\u003cul\u003e\n\u003cli\u003ePEP 751: support pylock (:pull:\u003ccode\u003e900\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ePEP 794: import name metadata (:pull:\u003ccode\u003e948\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport for writing metadata to a file (:pull:\u003ccode\u003e846\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003e__replace__\u003c/code\u003e on Version (:pull:\u003ccode\u003e1003\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport positional pattern matching for \u003ccode\u003eVersion\u003c/code\u003e and \u003ccode\u003eSpecifierSet\u003c/code\u003e (:pull:\u003ccode\u003e1004\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBehavior adaptations:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePEP 440 handling of prereleases for \u003ccode\u003eSpecifier.contains\u003c/code\u003e, \u003ccode\u003eSpecifierSet.contains\u003c/code\u003e, and \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e (:pull:\u003ccode\u003e897\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eHandle PEP 440 edge case in \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e (:pull:\u003ccode\u003e942\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdjust arbitrary equality intersection preservation in \u003ccode\u003eSpecifierSet\u003c/code\u003e (:pull:\u003ccode\u003e951\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eReturn \u003ccode\u003eFalse\u003c/code\u003e instead of raising for \u003ccode\u003e.contains\u003c/code\u003e with invalid version (:pull:\u003ccode\u003e932\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport arbitrary equality on arbitrary strings for \u003ccode\u003eSpecifier\u003c/code\u003e and \u003ccode\u003eSpecifierSet\u003c/code\u003e's \u003ccode\u003efilter\u003c/code\u003e and \u003ccode\u003econtains\u003c/code\u003e method. (:pull:\u003ccode\u003e954\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eOnly try to parse as \u003ccode\u003eVersion\u003c/code\u003e on certain marker keys, return \u003ccode\u003eFalse\u003c/code\u003e on unequal ordered comparisons (:pull:\u003ccode\u003e939\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003e_hash\u003c/code\u003e when unpickling \u003ccode\u003eTag()\u003c/code\u003e (:pull:\u003ccode\u003e860\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eCorrect comment and simplify implicit prerelease handling in \u003ccode\u003eSpecifier.prereleases\u003c/code\u003e (:pull:\u003ccode\u003e896\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse explicit \u003ccode\u003e_GLibCVersion\u003c/code\u003e \u003ccode\u003eNamedTuple\u003c/code\u003e in \u003ccode\u003e_manylinux\u003c/code\u003e (:pull:\u003ccode\u003e868\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDetect invalid license expressions containing \u003ccode\u003e()\u003c/code\u003e (:pull:\u003ccode\u003e879\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eCorrect regex for metadata \u003ccode\u003e'name'\u003c/code\u003e format (:pull:\u003ccode\u003e925\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eImprove the message around expecting a semicolon (:pull:\u003ccode\u003e833\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport nested parens in license expressions (:pull:\u003ccode\u003e931\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd space before at symbol in \u003ccode\u003eRequirements\u003c/code\u003e string (:pull:\u003ccode\u003e953\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eA root logger use found, use a \u003ccode\u003epackaging\u003c/code\u003e logger instead (:pull:\u003ccode\u003e965\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eBetter support for subclassing \u003ccode\u003eMarker\u003c/code\u003e and \u003ccode\u003eRequirement\u003c/code\u003e (:pull:\u003ccode\u003e1022\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eNormalize all extras, not just if it comes first (:pull:\u003ccode\u003e1024\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDon't produce a broken repr if \u003ccode\u003eMarker\u003c/code\u003e fails to construct (:pull:\u003ccode\u003e1033\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePerformance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid recompiling regexes in the tokenizer for a 3x speedup (:pull:\u003ccode\u003e1019\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eImprove performance in \u003ccode\u003e_manylinux.py\u003c/code\u003e (:pull:\u003ccode\u003e869\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMinor cleanups to \u003ccode\u003eVersion\u003c/code\u003e (:pull:\u003ccode\u003e913\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSkip redundant creation of \u003ccode\u003eVersion\u003c/code\u003e's in specifier comparison (:pull:\u003ccode\u003e986\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eCache the \u003ccode\u003eSpecifier\u003c/code\u003e's \u003ccode\u003eVersion\u003c/code\u003e (:pull:\u003ccode\u003e985\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eVersion\u003c/code\u003e a little faster (:pull:\u003ccode\u003e987\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMinor \u003ccode\u003eVersion\u003c/code\u003e regex cleanup (:pull:\u003ccode\u003e990\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFaster regex on Python 3.11.5+ for \u003ccode\u003eVersion\u003c/code\u003e (:pull:\u003ccode\u003e988\u003c/code\u003e, :pull:\u003ccode\u003e1055\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eLazily calculate \u003ccode\u003e_key\u003c/code\u003e in \u003ccode\u003eVersion\u003c/code\u003e (:pull:\u003ccode\u003e989\u003c/code\u003e, :pull:\u003ccode\u003e1048\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFaster \u003ccode\u003ecanonicalize_version\u003c/code\u003e (:pull:\u003ccode\u003e993\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003ere.fullmatch\u003c/code\u003e in a couple more places (:pull:\u003ccode\u003e992\u003c/code\u003e, :pull:\u003ccode\u003e1029\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003emap\u003c/code\u003e instead of generator (:pull:\u003ccode\u003e996\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDeprecate \u003ccode\u003e._version\u003c/code\u003e (\u003ccode\u003e_Version\u003c/code\u003e, a \u003ccode\u003eNamedTuple\u003c/code\u003e) (:pull:\u003ccode\u003e995\u003c/code\u003e, :pull:\u003ccode\u003e1062\u003c/code\u003e)\u003cbr /\u003e\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\u003cbr /\u003e\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/pypa/packaging/commit/3b77a26f5a27473ad3b08194d773f325d018a2d0\"\u003e\u003ccode\u003e3b77a26\u003c/code\u003e\u003c/a\u003e Bump for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/31371cce593d2bde0dd8c436ecfb7d53cb91cfb6\"\u003e\u003ccode\u003e31371cc\u003c/code\u003e\u003c/a\u003e docs: prepare for 26.0 final (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1063\"\u003e#1063\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/9627a8821f09e4c55cd6e9daadb617b67c4741c2\"\u003e\u003ccode\u003e9627a88\u003c/code\u003e\u003c/a\u003e perf: dual replace (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1064\"\u003e#1064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/d5398b8bc19f3fad7b035ceb83023caf06d6e2da\"\u003e\u003ccode\u003ed5398b8\u003c/code\u003e\u003c/a\u003e fix: restore ._version as a compat shim (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1062\"\u003e#1062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/3a7b600a126d237b2ad3cd7e25d2cb5c176276af\"\u003e\u003ccode\u003e3a7b600\u003c/code\u003e\u003c/a\u003e Bump for development\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/d4eefdccf992e963c48011875301d93df6a7f2cc\"\u003e\u003ccode\u003ed4eefdc\u003c/code\u003e\u003c/a\u003e Bump for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/46189124fb43d8989d370902c80ab156eb83a45d\"\u003e\u003ccode\u003e4618912\u003c/code\u003e\u003c/a\u003e docs: prepare for 26.0rc3 (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1060\"\u003e#1060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/0cf1b41b4b321ae08cad7d3e49cfaff5578fe813\"\u003e\u003ccode\u003e0cf1b41\u003c/code\u003e\u003c/a\u003e ci: test on first public release of CPythons (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1056\"\u003e#1056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/716beb1c0a5d7a398bf57fbd80bc2501811e616b\"\u003e\u003ccode\u003e716beb1\u003c/code\u003e\u003c/a\u003e perf:  10% faster stripping zeros (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1058\"\u003e#1058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/350a2306700b738f487f251efa278f532b263dee\"\u003e\u003ccode\u003e350a230\u003c/code\u003e\u003c/a\u003e fix: support CPython 3.11.0-3.11.4 and older PyPy3.11 (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1055\"\u003e#1055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/packaging/compare/25.0...26.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.14.9 to 0.15.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.2\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-02-19.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eExpand the default rule set (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23385\"\u003e#23385\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eIn preview, Ruff now enables a significantly expanded default rule set of 412 rules, up from the stable default set of 59 rules. The new rules are mostly a superset of the stable defaults, with the exception of these rules, which are removed from the preview defaults:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/multiple-imports-on-one-line\"\u003e\u003ccode\u003emultiple-imports-on-one-line\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE401\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/module-import-not-at-top-of-file\"\u003e\u003ccode\u003emodule-import-not-at-top-of-file\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE402\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/module-import-not-at-top-of-file\"\u003e\u003ccode\u003emodule-import-not-at-top-of-file\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE701\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/multiple-statements-on-one-line-semicolon\"\u003e\u003ccode\u003emultiple-statements-on-one-line-semicolon\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE702\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/useless-semicolon\"\u003e\u003ccode\u003euseless-semicolon\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE703\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/none-comparison\"\u003e\u003ccode\u003enone-comparison\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE711\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/true-false-comparison\"\u003e\u003ccode\u003etrue-false-comparison\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE712\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/not-in-test\"\u003e\u003ccode\u003enot-in-test\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE713\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/not-is-test\"\u003e\u003ccode\u003enot-is-test\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE714\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/type-comparison\"\u003e\u003ccode\u003etype-comparison\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE721\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/lambda-assignment\"\u003e\u003ccode\u003elambda-assignment\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE731\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/ambiguous-variable-name\"\u003e\u003ccode\u003eambiguous-variable-name\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE741\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/ambiguous-class-name\"\u003e\u003ccode\u003eambiguous-class-name\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE742\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/ambiguous-function-name\"\u003e\u003ccode\u003eambiguous-function-name\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE743\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/undefined-local-with-import-star\"\u003e\u003ccode\u003eundefined-local-with-import-star\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eF403\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/undefined-local-with-import-star-usage\"\u003e\u003ccode\u003eundefined-local-with-import-star-usage\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eF405\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/undefined-local-with-nested-import-star-usage\"\u003e\u003ccode\u003eundefined-local-with-nested-import-star-usage\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eF406\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/forward-annotation-syntax-error\"\u003e\u003ccode\u003eforward-annotation-syntax-error\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eF722\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf you use preview and prefer the old defaults, you can restore them with configuration like:\u003c/p\u003e\n\u003cpre lang=\"toml\"\u003e\u003ccode\u003e\r\n# ruff.toml\r\n\u003cp\u003e[lint]\nselect = [\u0026quot;E4\u0026quot;, \u0026quot;E7\u0026quot;, \u0026quot;E9\u0026quot;, \u0026quot;F\u0026quot;]\u003c/p\u003e\n\u003ch1\u003epyproject.toml\u003c/h1\u003e\n\u003cp\u003e[tool.ruff.lint]\nselect = [\u0026quot;E4\u0026quot;, \u0026quot;E7\u0026quot;, \u0026quot;E9\u0026quot;, \u0026quot;F\u0026quot;]\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eIf you do give them a try, feel free to share your feedback in the \u003ca href=\"https://github.com/astral-sh/ruff/discussions/23203\"\u003eGitHub discussion\u003c/a\u003e!\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Also check string annotations (\u003ccode\u003ePYI041\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19023\"\u003e#19023\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.2\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-02-19.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eExpand the default rule set (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23385\"\u003e#23385\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eIn preview, Ruff now enables a significantly expanded default rule set of 412\nrules, up from the stable default set of 59 rules. The new rules are mostly a\nsuperset of the stable defaults, with the exception of these rules, which are\nremoved from the preview defaults:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/multiple-imports-on-one-line\"\u003e\u003ccode\u003emultiple-imports-on-one-line\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE401\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/module-import-not-at-top-of-file\"\u003e\u003ccode\u003emodule-import-not-at-top-of-file\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE402\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/module-import-not-at-top-of-file\"\u003e\u003ccode\u003emodule-import-not-at-top-of-file\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE701\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/multiple-statements-on-one-line-semicolon\"\u003e\u003ccode\u003emultiple-statements-on-one-line-semicolon\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE702\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/useless-semicolon\"\u003e\u003ccode\u003euseless-semicolon\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE703\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/none-comparison\"\u003e\u003ccode\u003enone-comparison\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE711\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/true-false-comparison\"\u003e\u003ccode\u003etrue-false-comparison\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE712\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/not-in-test\"\u003e\u003ccode\u003enot-in-test\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE713\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/not-is-test\"\u003e\u003ccode\u003enot-is-test\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE714\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/type-comparison\"\u003e\u003ccode\u003etype-comparison\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE721\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/lambda-assignment\"\u003e\u003ccode\u003elambda-assignment\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE731\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/ambiguous-variable-name\"\u003e\u003ccode\u003eambiguous-variable-name\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE741\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/ambiguous-class-name\"\u003e\u003ccode\u003eambiguous-class-name\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE742\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/ambiguous-function-name\"\u003e\u003ccode\u003eambiguous-function-name\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE743\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/undefined-local-with-import-star\"\u003e\u003ccode\u003eundefined-local-with-import-star\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eF403\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/undefined-local-with-import-star-usage\"\u003e\u003ccode\u003eundefined-local-with-import-star-usage\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eF405\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/undefined-local-with-nested-import-star-usage\"\u003e\u003ccode\u003eundefined-local-with-nested-import-star-usage\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eF406\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/forward-annotation-syntax-error\"\u003e\u003ccode\u003eforward-annotation-syntax-error\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eF722\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf you use preview and prefer the old defaults, you can restore them with\nconfiguration like:\u003c/p\u003e\n\u003cpre lang=\"toml\"\u003e\u003ccode\u003e\n# ruff.toml\n\u003cp\u003e[lint]\nselect = [\u0026quot;E4\u0026quot;, \u0026quot;E7\u0026quot;, \u0026quot;E9\u0026quot;, \u0026quot;F\u0026quot;]\u003c/p\u003e\n\u003ch1\u003epyproject.toml\u003c/h1\u003e\n\u003cp\u003e[tool.ruff.lint]\nselect = [\u0026quot;E4\u0026quot;, \u0026quot;E7\u0026quot;, \u0026quot;E9\u0026quot;, \u0026quot;F\u0026quot;]\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eIf you do give them a try, feel free to share your feedback in the \u003ca href=\"https://github.com/astral-sh/ruff/discussions/23203\"\u003eGitHub\ndiscussion\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/astral-sh/ruff/commit/9d18ee9115f9cbb4c21478baa7c1fa2b46e0759c\"\u003e\u003ccode\u003e9d18ee9\u003c/code\u003e\u003c/a\u003e Hard code workflow name and \u003ccode\u003ecancel-in-progress\u003c/code\u003e only for PRs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23431\"\u003e#23431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7cc15f024b931fe56365f40de3fab01219c092c4\"\u003e\u003ccode\u003e7cc15f0\u003c/code\u003e\u003c/a\u003e Bump 0.15.2 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23430\"\u003e#23430\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/d1b544393ae9cddd8e48ebee8dbfd54bda89f375\"\u003e\u003ccode\u003ed1b5443\u003c/code\u003e\u003c/a\u003e Add extension mapping to configuration file options (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23384\"\u003e#23384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/222574af90c5c0ca8f84c8385cf30c7c10ac2496\"\u003e\u003ccode\u003e222574a\u003c/code\u003e\u003c/a\u003e Expand the default rule set (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23385\"\u003e#23385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/1465b5de3829549b45397e9587b83ab7ac6d26d0\"\u003e\u003ccode\u003e1465b5d\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-async\u003c/code\u003e] Fix \u003ccode\u003ein_async_context\u003c/code\u003e logic (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23426\"\u003e#23426\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/410902fa401afda969cc000f13be341896e6868e\"\u003e\u003ccode\u003e410902f\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003epyupgrade\u003c/code\u003e] Fix handling of \u003ccode\u003etyping.{io,re}\u003c/code\u003e (\u003ccode\u003eUP035\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23131\"\u003e#23131\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/729610acd9e19f57526e8ca40f355626154826bb\"\u003e\u003ccode\u003e729610a\u003c/code\u003e\u003c/a\u003e [ty] Fall back to ambiguous for large control flow graphs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23399\"\u003e#23399\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/1425c185b0a47be87112762f65b5bf7e323fb950\"\u003e\u003ccode\u003e1425c18\u003c/code\u003e\u003c/a\u003e [ty] Add code folding support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/97acaaea5f993f33d3f5bb27c5db760a2f3d1e8a\"\u003e\u003ccode\u003e97acaae\u003c/code\u003e\u003c/a\u003e [ty] Fix stack overflow for self-referential \u003ccode\u003eTypeOf\u003c/code\u003e in annotations (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23407\"\u003e#23407\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/1f380c82584a6dab7e8715bc7dd5ae187da1e69a\"\u003e\u003ccode\u003e1f380c8\u003c/code\u003e\u003c/a\u003e [ty] Update tests \u003ccode\u003ereveal_type\u003c/code\u003e and \u003ccode\u003eNever\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23418\"\u003e#23418\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.14.9...0.15.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `build` from 1.3.0 to 1.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/build/releases\"\u003ebuild's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.4.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--quiet\u003c/code\u003e flag (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/947\"\u003e#947\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd option to dump PEP 517 metadata with \u003ccode\u003e--metadata\u003c/code\u003e (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/940\"\u003e#940\u003c/a\u003e, PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/943\"\u003e#943\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003eUV\u003c/code\u003e environment variable (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/971\"\u003e#971\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove a workaround for 3.14b1 (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/960\"\u003e#960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIn 3.14 final release, \u003ccode\u003ecolor\u003c/code\u003e defaults to \u003ccode\u003eTrue\u003c/code\u003e already (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/962\"\u003e#962\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePass sp-repo-review (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/942\"\u003e#942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIn pytest configuration, \u003ccode\u003elog_level\u003c/code\u003e is better than \u003ccode\u003elog_cli_level\u003c/code\u003e (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/950\"\u003e#950\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSplit up typing and mypy (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/944\"\u003e#944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003etypes-colorama\u003c/code\u003e (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/945\"\u003e#945\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIn docs, first argument for \u003ccode\u003e_has_dependency\u003c/code\u003e is a name (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/970\"\u003e#970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix test failure when \u003ccode\u003eflit-core\u003c/code\u003e is installed (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/921\"\u003e#921\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/build/blob/main/CHANGELOG.rst\"\u003ebuild's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.4.0 (2026-01-08)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--quiet\u003c/code\u003e flag\n(:pr:\u003ccode\u003e947\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd option to dump PEP 517 metadata with \u003ccode\u003e--metadata\u003c/code\u003e\n(:pr:\u003ccode\u003e940\u003c/code\u003e, :pr:\u003ccode\u003e943\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003eUV\u003c/code\u003e environment variable\n(:pr:\u003ccode\u003e971\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eRemove a workaround for 3.14b1\n(:pr:\u003ccode\u003e960\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eIn 3.14 final release, \u003ccode\u003ecolor\u003c/code\u003e defaults to \u003ccode\u003eTrue\u003c/code\u003e already\n(:pr:\u003ccode\u003e962\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ePass sp-repo-review\n(:pr:\u003ccode\u003e942\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eIn pytest configuration, \u003ccode\u003elog_level\u003c/code\u003e is better than \u003ccode\u003elog_cli_level\u003c/code\u003e\n(:pr:\u003ccode\u003e950\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSplit up typing and mypy\n(:pr:\u003ccode\u003e944\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003etypes-colorama\u003c/code\u003e\n(:pr:\u003ccode\u003e945\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eIn docs, first argument for \u003ccode\u003e_has_dependency\u003c/code\u003e is a name\n(PR :pr:\u003ccode\u003e970\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix test failure when \u003ccode\u003eflit-core\u003c/code\u003e is installed\n(PR :pr:\u003ccode\u003e921\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/pypa/build/commit/54f238d1664124e06a68c6c22fd5b1418fa5feb2\"\u003e\u003ccode\u003e54f238d\u003c/code\u003e\u003c/a\u003e chore: prepare for 1.4.0 (\u003ca href=\"https://redirect.github.com/pypa/build/issues/972\"\u003e#972\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/f219276a6e2c6c8222780ba518ce52444a91deaa\"\u003e\u003ccode\u003ef219276\u003c/code\u003e\u003c/a\u003e docs: first argument for _has_dependency is a name (\u003ca href=\"https://redirect.github.com/pypa/build/issues/970\"\u003e#970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/7adb29e69d2744acc5391d3c58d234388a9ac0ed\"\u003e\u003ccode\u003e7adb29e\u003c/code\u003e\u003c/a\u003e fix: support UV environment variable (\u003ca href=\"https://redirect.github.com/pypa/build/issues/971\"\u003e#971\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/a40623b20de5d29c80b569283191d65e630f4fc0\"\u003e\u003ccode\u003ea40623b\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/attest-build-provenance in the actions group (\u003ca href=\"https://redirect.github.com/pypa/build/issues/968\"\u003e#968\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/c8fae3459dbe4456d82d705c6a3f1869b0b26e5c\"\u003e\u003ccode\u003ec8fae34\u003c/code\u003e\u003c/a\u003e pre-commit: bump repositories (\u003ca href=\"https://redirect.github.com/pypa/build/issues/965\"\u003e#965\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/ed9c379f51abca7c0c0ae20bee66aa548d597dc3\"\u003e\u003ccode\u003eed9c379\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/download-artifact in the actions group\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/0e44fd22f35c7b3c14d6410bbd8912dafba0e4a9\"\u003e\u003ccode\u003e0e44fd2\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003equiet\u003c/code\u003e flag (\u003ca href=\"https://redirect.github.com/pypa/build/issues/947\"\u003e#947\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/60e15ed4cb31209f0e07de750c831cdb3911c62c\"\u003e\u003ccode\u003e60e15ed\u003c/code\u003e\u003c/a\u003e chore: color defaults to True in 3.14 (\u003ca href=\"https://redirect.github.com/pypa/build/issues/962\"\u003e#962\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/0486d9df2e6caf7c04a3991824093eb6a16e7f29\"\u003e\u003ccode\u003e0486d9d\u003c/code\u003e\u003c/a\u003e pre-commit: bump repositories (\u003ca href=\"https://redirect.github.com/pypa/build/issues/961\"\u003e#961\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/393b775480523247c1ad07b8da9bb8c23c5cd0fa\"\u003e\u003ccode\u003e393b775\u003c/code\u003e\u003c/a\u003e MNT: remove workaround for 3.14b1 (\u003ca href=\"https://redirect.github.com/pypa/build/issues/960\"\u003e#960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/build/compare/1.3.0...1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pypi-attestations` from 0.0.28 to 0.0.29\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypi/pypi-attestations/releases\"\u003epypi-attestations's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.0.29\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix lint and remove support for Python 3.9 by \u003ca href=\"https://github.com/facutuesca\"\u003e\u003ccode\u003e@​facutuesca\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypi/pypi-attestations/pull/151\"\u003epypi/pypi-attestations#151\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd GCP support to CLI by \u003ca href=\"https://github.com/di\"\u003e\u003ccode\u003e@​di\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypi/pypi-attestations/pull/157\"\u003epypi/pypi-attestations#157\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pypi/pypi-attestations/compare/v0.0.28...v0.0.29\"\u003ehttps://github.com/pypi/pypi-attestations/compare/v0.0.28...v0.0.29\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypi/pypi-attestations/blob/main/CHANGELOG.md\"\u003epypi-attestations's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.0.29]\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for verifying Google Cloud attestations has been added to the CLI.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe minimum Python version required is now \u003ccode\u003e3.10\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/pypi/pypi-attestations/commit/fb35ffdce810566fdf7aa22f1b517f60be0c727f\"\u003e\u003ccode\u003efb35ffd\u003c/code\u003e\u003c/a\u003e chore: prep for release v0.0.29 (\u003ca href=\"https://redirect.github.com/pypi/pypi-attestations/issues/158\"\u003e#158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypi/pypi-attestations/commit/5afe2a125af6b2f8962dcf8326d2149f8dddc6f0\"\u003e\u003ccode\u003e5afe2a1\u003c/code\u003e\u003c/a\u003e Add GCP support to CLI (\u003ca href=\"https://redirect.github.com/pypi/pypi-attestations/issues/157\"\u003e#157\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypi/pypi-attestations/commit/0716b105c1c7b28a5bae1d8beca15a7f7e3c1a25\"\u003e\u003ccode\u003e0716b10\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python in the actions group (\u003ca href=\"https://redirect.github.com/pypi/pypi-attestations/issues/155\"\u003e#155\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypi/pypi-attestations/commit/34db665fba7f61aad1e4133cfff8b1a5b332cd60\"\u003e\u003ccode\u003e34db665\u003c/code\u003e\u003c/a\u003e build(deps): bump zizmorcore/zizmor-action in the actions group (\u003ca href=\"https://redirect.github.com/pypi/pypi-attestations/issues/154\"\u003e#154\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypi/pypi-attestations/commit/2a74c1e7f9882803692bea8924c9359ec8369933\"\u003e\u003ccode\u003e2a74c1e\u003c/code\u003e\u003c/a\u003e Remove unneeded permissions from zizmor workflow (\u003ca href=\"https://redirect.github.com/pypi/pypi-attestations/issues/153\"\u003e#153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypi/pypi-attestations/commit/d8d4ab106a76f107cd97b4ee041f1adfe1ff0cf6\"\u003e\u003ccode\u003ed8d4ab1\u003c/code\u003e\u003c/a\u003e Add zizmor to CI workflows\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypi/pypi-attestations/commit/26e8913b136b8166eac40ad9f9313a8affd656cf\"\u003e\u003ccode\u003e26e8913\u003c/code\u003e\u003c/a\u003e Update CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypi/pypi-attestations/commit/446816b7a16dc989da33b9f8dab989e640f8881a\"\u003e\u003ccode\u003e446816b\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout in the actions group (\u003ca href=\"https://redirect.github.com/pypi/pypi-attestations/issues/149\"\u003e#149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypi/pypi-attestations/commit/b8c452d338a6411e6d688f2498adbabf501680b3\"\u003e\u003ccode\u003eb8c452d\u003c/code\u003e\u003c/a\u003e Add cooldown to dependabot updates (\u003ca href=\"https://redirect.github.com/pypi/pypi-attestations/issues/150\"\u003e#150\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypi/pypi-attestations/commit/2c8d48e78417f12869b89fcbad619f52f5656a4f\"\u003e\u003ccode\u003e2c8d48e\u003c/code\u003e\u003c/a\u003e Fix lint and remove support for Python 3.9 (\u003ca href=\"https://redirect.github.com/pypi/pypi-attestations/issues/151\"\u003e#151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypi/pypi-attestations/compare/v0.0.28...v0.0.29\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 9.0.1 to 9.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.2\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.2 (2025-12-06)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.\u003c/p\u003e\n\u003cp\u003eYou may enable it again by passing \u003ccode\u003e-p terminalprogress\u003c/code\u003e. We may enable it by default again once compatibility improves in the future.\u003c/p\u003e\n\u003cp\u003eAdditionally, when the environment variable \u003ccode\u003eTERM\u003c/code\u003e is \u003ccode\u003edumb\u003c/code\u003e, the escape codes are no longer emitted, even if the plugin is enabled.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the \u003ccode\u003etmp_path_retention_count\u003c/code\u003e settings in the API reference from number to string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13946\"\u003e#13946\u003c/a\u003e: The private \u003ccode\u003econfig.inicfg\u003c/code\u003e attribute was changed in a breaking manner in pytest 9.0.0.\nDue to its usage in the ecosystem, it is now restored to working order using a compatibility shim.\nIt will be deprecated in pytest 9.1 and removed in pytest 10.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13965\"\u003e#13965\u003c/a\u003e: Fixed quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/4492\"\u003e#4492\u003c/a\u003e: The API Reference now contains cross-reference-able documentation of \u003ccode\u003epytest's command-line flags \u0026lt;command-line-flags\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/commit/3d10b5148e03eb82b3ee29181dbdc73cf82699e2\"\u003e\u003ccode\u003e3d10b51\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/188750b725add8c3400eee6fbb6b80559c296d69\"\u003e\u003ccode\u003e188750b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14030\"\u003e#14030\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/1e4b01d1f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7d7bef90cb9a6db8ac1d3dd5b9ae0eb9abd6c58\"\u003e\u003ccode\u003eb7d7bef\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14014\"\u003e#14014\u003c/a\u003e from bluetech/compat-note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bd08e85ac76614ff5ca9ae338aee8d8b06c8fae0\"\u003e\u003ccode\u003ebd08e85\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14013\"\u003e#14013\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/922b60377...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bc783862991241c442c9f9c068e51737ec15ea10\"\u003e\u003ccode\u003ebc78386\u003c/code\u003e\u003c/a\u003e Add CLI options reference documentation (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13930\"\u003e#13930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/5a4e398ce89bc23d2cf3fd98c042fdffb6fa8afa\"\u003e\u003ccode\u003e5a4e398\u003c/code\u003e\u003c/a\u003e Fix docs typo (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14005\"\u003e#14005\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14008\"\u003e#14008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/d7ae6df394398168bf9d926f803c26849c8f07ee\"\u003e\u003ccode\u003ed7ae6df\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14006\"\u003e#14006\u003c/a\u003e from pytest-dev/maintenance/update-plugin-list-tmpl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/556f6a22e12d13d1ffeceaf64424eb95d5e0fb87\"\u003e\u003ccode\u003e556f6a2\u003c/code\u003e\u003c/a\u003e pre-commit: fix rst-lint after new release (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13999\"\u003e#13999\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14001\"\u003e#14001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c60fbe63a26f64a42738e3f3527a8f79024fdf50\"\u003e\u003ccode\u003ec60fbe6\u003c/code\u003e\u003c/a\u003e Fix quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10 ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/73d9b011183d9a1c4a7007c1119d97a6e627788e\"\u003e\u003ccode\u003e73d9b01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13995\"\u003e#13995\u003c/a\u003e from nicoddemus/patchback/backports/9.0.x/1b5200c0f...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/9.0.1...9.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cython` from 3.2.2 to 3.2.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/cython/cython/blob/master/CHANGES.rst\"\u003ecython's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.2.4 (2026-01-04)\u003c/h1\u003e\n\u003ch2\u003eFeatures added\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eIn preparation of Cython 3.3, a new decorator \u003ccode\u003e@collection_type(tname)\u003c/code\u003e can be used\nto advertise an extension type as being a \u003ccode\u003e'sequence'\u003c/code\u003e or \u003ccode\u003e'mapping'\u003c/code\u003e.  This currently\nonly has the effect of setting the \u003ccode\u003ePy_TPFLAGS_SEQUENCE\u003c/code\u003e flag on the type or not, but\nis provided for convenience to allow using the new decorator already in Cython 3.2 code.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSeveral C++ exception declarations were added to \u003ccode\u003elibcpp.exceptions\u003c/code\u003e.\n(Github issue :issue:\u003ccode\u003e7389\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003ePseudo-literal default values of function arguments like \u003ccode\u003earg=str()\u003c/code\u003e could generate\ninvalid C code when internally converted into a real literal.\n(Github issue :issue:\u003ccode\u003e6192\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe pickle serialisation of extension types using the \u003ccode\u003eauto_pickle\u003c/code\u003e feature was\nlarger than necessary since 3.2.0 for types without Python object attributes.\nIt is now back to the state before 3.2.0 again.\n(Github issue :issue:\u003ccode\u003e7443\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eConstants are now only made immortal on freethreading Python if they are not shared.\n(Github issue :issue:\u003ccode\u003e7439\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003ePyDict_SetDefaultRef()\u003c/code\u003e is now used when available to avoid temporary borrowed references.\n(Github issue :issue:\u003ccode\u003e7347\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIncludes all fixes as of Cython 3.1.8.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e3.2.3 (2025-12-14)\u003c/h1\u003e\n\u003ch2\u003eFeatures added\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eThe C-API declarations were updated to include the new \u003ccode\u003ePyList_*()\u003c/code\u003e functions.\n(Github issue :issue:\u003ccode\u003e7291\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe \u003ccode\u003ePy_mod_gil\u003c/code\u003e module setting can now be changed with a C macro, overriding\nthe \u003ccode\u003efreethreading_compatible\u003c/code\u003e directive setting.\n(Github issue :issue:\u003ccode\u003e7404\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/21bda420d583bcf464fb9efb932b09c5f3db1efd\"\u003e\u003ccode\u003e21bda42\u003c/code\u003e\u003c/a\u003e Update changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/ea5e926e930fb50bd0b2be69717cb906f67ef18b\"\u003e\u003ccode\u003eea5e926\u003c/code\u003e\u003c/a\u003e Define missing C++ exception classes (\u003ca href=\"https://redirect.github.com/cython/cython/issues/7389\"\u003e#7389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/c533d67f2a9109111c4057b598d8d04698cfee3f\"\u003e\u003ccode\u003ec533d67\u003c/code\u003e\u003c/a\u003e Add sequence return type annotations in Parsing.py (\u003ca href=\"https://redirect.github.com/cython/cython/issues/7416\"\u003eGH-7416\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/d056a1808298ff6a569f950937b7ab3385b2f785\"\u003e\u003ccode\u003ed056a18\u003c/code\u003e\u003c/a\u003e Allow 'mapping' as \u003ca href=\"https://github.com/collection\"\u003e\u003ccode\u003e@​collection\u003c/code\u003e\u003c/a\u003e_type() in preparation of 3.3, but without actu...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/d347c82898f4e90139b63510d984860762c01f1c\"\u003e\u003ccode\u003ed347c82\u003c/code\u003e\u003c/a\u003e Remove exclusion of collection_type in test (\u003ca href=\"https://redirect.github.com/cython/cython/issues/7442\"\u003e#7442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/fd6e8253df013645fb028ea956175957dcff8e8b\"\u003e\u003ccode\u003efd6e825\u003c/code\u003e\u003c/a\u003e Merge branch '3.1.x' into 3.2.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/ce5c6cb05bdb5560937648558508241c681369ca\"\u003e\u003ccode\u003ece5c6cb\u003c/code\u003e\u003c/a\u003e Update changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/74b97f92075d2721abce7dfb246f426b0ab401ae\"\u003e\u003ccode\u003e74b97f9\u003c/code\u003e\u003c/a\u003e Fix arg=str() default argument (\u003ca href=\"https://redirect.github.com/cython/cython/issues/6193\"\u003eGH-6193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/9c9e5c7d31525672ad5b8ee703c719a33d98a118\"\u003e\u003ccode\u003e9c9e5c7\u003c/code\u003e\u003c/a\u003e Avoid immortalizing anything shared on freethreading (\u003ca href=\"https://redirect.github.com/cython/cython/issues/7439\"\u003eGH-7439\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/9d5507bf1cf713c314a9e37447463ad72ee9f8cd\"\u003e\u003ccode\u003e9d5507b\u003c/code\u003e\u003c/a\u003e Fix accidental inefficiency in auto-pickling that always stored the object st...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/cython/cython/compare/3.2.2...3.2.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `setuptools` from 80.9.0 to 82.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/setuptools/blob/main/NEWS.rst\"\u003esetuptools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev82.0.0\u003c/h1\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epkg_resources\u003c/code\u003e has been removed from Setuptools. Most common uses of \u003ccode\u003epkg_resources\u003c/code\u003e have been superseded by the \u003ccode\u003eimportlib.resources \u0026lt;https://docs.python.org/3/library/importlib.resources.html\u0026gt;\u003c/code\u003e_ and \u003ccode\u003eimportlib.metadata \u0026lt;https://docs.python.org/3/library/importlib.metadata.html\u0026gt;\u003c/code\u003e_ projects. Projects and environments relying on \u003ccode\u003epkg_resources\u003c/code\u003e for namespace packages or other behavior should depend on older versions of \u003ccode\u003esetuptools\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/3085\"\u003e#3085\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev81.0.0\u003c/h1\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved support for the --dry-run parameter to setup.py. This one feature by its nature threads through lots of core and ancillary functionality, adding complexity and friction. Removal of this parameter will help decouple the compiler functionality from distutils and thus the eventual full integration of distutils. These changes do affect some class and function signatures, so any derivative functionality may require some compatibility shims to support their expected interface. Please report any issues to the Setuptools project for investigation. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4872\"\u003e#4872\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev80.10.2\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate vendored dependencies. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5159\"\u003e#5159\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5115\"\u003e#5115\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5128\"\u003e#5128\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev80.10.1\u003c/h1\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5152\"\u003e#5152\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev80.10.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove post-release tags on setuptools' own build. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4530\"\u003e#4530\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefreshed vendored dependencies. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5139\"\u003e#5139\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/pypa/setuptools/commit/03f3615362c4eb19c770b71be5bd58e38f235528\"\u003e\u003ccode\u003e03f3615\u003c/code\u003e\u003c/a\u003e Bump version: 81.0.0 → 82.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/530d11498af526c4210d8eeaa1ed6c63f44a390f\"\u003e\u003ccode\u003e530d114\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5007\"\u003e#5007\u003c/a\u003e from pypa/feature/remove-more-pkg_resources\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/11efe9f552290bf536515d458aa85752a0606aa8\"\u003e\u003ccode\u003e11efe9f\u003c/code\u003e\u003c/a\u003e Merge branch 'maint/75.3'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/118f129dd0fb319058bd05f382c50188fd60a60e\"\u003e\u003ccode\u003e118f129\u003c/code\u003e\u003c/a\u003e Bump version: 75.3.3 → 75.3.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/90561ffde1220a590b7644745f48b5837b1a130d\"\u003e\u003ccode\u003e90561ff\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5150\"\u003e#5150\u003c/a\u003e from UladzimirTrehubenka/backport_cve_47273\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/4595034db8aab4ea33035a47a068b04fd8aa00cc\"\u003e\u003ccode\u003e4595034\u003c/code\u003e\u003c/a\u003e Add news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/fc008006fc072af02eb7e0b601172c67eba395e3\"\u003e\u003ccode\u003efc00800\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5171\"\u003e#5171\u003c/a\u003e from cclauss/ruff-v0.15.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/127e561362a2b4e560faabe9e979ed848106b62d\"\u003e\u003ccode\u003e127e561\u003c/code\u003e\u003c/a\u003e Remove tests reliant on pkg_resources, rather than xfailing them.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/64bc21e10b5d749b1b75fa334caedb67cc7414c4\"\u003e\u003ccode\u003e64bc21e\u003c/code\u003e\u003c/a\u003e Reference the superseding libraries.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/cf1ff459ea997b615a75d99304f6c9aa1fc94c06\"\u003e\u003ccode\u003ecf1ff45\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into debt/pbr-without-pkg_resources\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/setuptools/compare/v80.9.0...v82.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyrefly` from 0.44.0 to 0.54.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/facebook/pyrefly/releases\"\u003epyrefly's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ePyrefly v0.54.0\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eStatus: BETA\u003c/strong\u003e\u003cbr /\u003e\n\u003cem\u003e\u003cstrong\u003eRelease date:\u003c/strong\u003e February 23, 2026\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003ePyrefly 0.54.0 bundles \u003cstrong\u003e93 commits\u003c/strong\u003e from \u003cstrong\u003e18 contributors\u003c/strong\u003e.\u003c/p\u003e\n\u003ch2\u003e✨ New \u0026amp; Improved\u003c/h2\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth align=\"left\"\u003eArea\u003c/th\u003e\n\u003cth align=\"left\"\u003eWhat’s new\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd align=\"left\"\u003e\u003cstrong\u003eType checker\u003c/strong\u003e\u003c/td\u003e\n\u003ctd align=\"left\"\u003e- Pyrefly now supports using \u003ccode\u003etype(X)\u003c/code\u003e in base class lists, enabling compatibility with codebases that use metaclass expressions (e.g. those wrapping C extensions) \u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e- Added static evaluation support for more patterns of \u003ccode\u003esys.platform\u003c/code\u003e and \u003ccode\u003esys.version_info\u003c/code\u003e checks\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd align=\"left\"\u003e\u003cstrong\u003eLanguage Server\u003c/strong\u003e\u003c/td\u003e\n\u003ctd align=\"left\"\u003e- Autoimport and quickfix now surface explicit re-export paths, improving import suggestions for users working with re-exported symbols. \u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e- Diagnostics can now be controlled independently for each workspace folder in multi-root setups, allowing users to customize diagnostics per project \u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e- Enhanced  \u0026quot;Generate code\u0026quot; quick fix actions in Pyrefly's LSP, which will now infer parameter types and annotations from call-site arguments \u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e- Code completion and signature help now shows keyword argument and literal completions from all compatible overloads, not just the closest match\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e🐛 bug fixes\u003c/h2\u003e\n\u003cp\u003eWe closed 7 bug issues this release 👏\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/2273\"\u003e#2273\u003c/a\u003e - Adjusted overload-to-Callable subtyping so single-parameter overloads can satisfy a union-parameter Callable, fixing assignment errors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/2398\"\u003e#2398\u003c/a\u003e - When matching a value against a union containing both bare TypeVars and wrapped TypeVars, Pyrefly now tries wrapped vars first, producing better TypeVar solutions and satisfying bounds\u003c/li\u003e\n\u003cli\u003eAnd more! \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/2398\"\u003e#2398\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/949\"\u003e#949\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/2421\"\u003e#2421\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/2457\"\u003e#2457\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/1122\"\u003e#1122\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/2434\"\u003e#2434\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/787\"\u003e#787\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThank-you to all our contributors who found these bugs and reported them! Did you know this is one of the most helpful contributions you can make to an open-source project? If you find any bugs in Pyrefly we want to know about them! Please open a bug report issue \u003ca href=\"https://github.com/facebook/pyrefly/issues\"\u003ehere\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e📦 Upgrade\u003c/h2\u003e\n\u003cpre lang=\"shell\"\u003e\u003ccode\u003epip install --upgrade pyrefly==0.54.0\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eHow to safely upgrade your codebase\u003c/h3\u003e\n\u003cp\u003eUpgrading the version of Pyrefly you're using or a third-party library you depend on can reveal new type errors in your code. Fixing them all at once is often unrealistic. We've written scripts to help you temporarily silence them. After upgrading, follow ...\n\n_Description has been truncated_","html_url":"https://github.com/chrisjsewell/sphinx/pull/30","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisjsewell%2Fsphinx/issues/30","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/30/packages"}},{"old_version":"80.9.0","new_version":"80.10.2","update_type":"minor","path":null,"pr_created_at":"2026-02-01T21:35:45.000Z","version_change":"80.9.0 → 80.10.2","issue":{"uuid":"3883022832","node_id":"PR_kwDOMI1fJ87Aw5pj","number":113,"state":"closed","title":"Build(deps-dev): Bump the minor group across 1 directory with 8 updates","user":"dependabot[bot]","labels":["part:tests","part:tooling","type:tech-debt"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-03-01T21:34:15.000Z","author_association":null,"state_reason":null,"created_at":"2026-02-01T21:35:45.000Z","updated_at":"2026-03-01T21:34:17.000Z","time_to_close":2419110,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Build(deps-dev): Bump","group_name":"minor","update_count":8,"packages":[{"name":"markdown","old_version":"3.9","new_version":"3.10.1","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"mkdocs-macros-plugin","old_version":"1.4.1","new_version":"1.5.0","repository_url":"https://github.com/fralau/mkdocs_macros_plugin"},{"name":"mkdocs-material","old_version":"9.6.23","new_version":"9.7.1","repository_url":"https://github.com/squidfunk/mkdocs-material"},{"name":"mypy","old_version":"1.18.2","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"types-markdown","old_version":"3.9.0.20250906","new_version":"3.10.0.20251106","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"nox","old_version":"2025.10.16","new_version":"2025.11.12","repository_url":"https://github.com/wntrblm/nox"},{"name":"hypothesis","old_version":"6.142.5","new_version":"6.151.4","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"setuptools","old_version":"80.9.0","new_version":"80.10.2","repository_url":"https://github.com/pypa/setuptools"}],"path":null,"ecosystem":"conda"},"body":"Bumps the minor group with 8 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.9` | `3.10.1` |\n| [mkdocs-macros-plugin](https://github.com/fralau/mkdocs_macros_plugin) | `1.4.1` | `1.5.0` |\n| [mkdocs-material](https://github.com/squidfunk/mkdocs-material) | `9.6.23` | `9.7.1` |\n| [mypy](https://github.com/python/mypy) | `1.18.2` | `1.19.1` |\n| [types-markdown](https://github.com/typeshed-internal/stub_uploader) | `3.9.0.20250906` | `3.10.0.20251106` |\n| [nox](https://github.com/wntrblm/nox) | `2025.10.16` | `2025.11.12` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.142.5` | `6.151.4` |\n| [setuptools](https://github.com/pypa/setuptools) | `80.9.0` | `80.10.2` |\n\n\nUpdates `markdown` from 3.9 to 3.10.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/releases\"\u003emarkdown's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.10.1\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure nested elements inside inline comments are properly unescaped (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1571\"\u003e#1571\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eMake the docs build successfully with mkdocstrings-python 2.0 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1575\"\u003e#1575\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix infinite loop when multiple bogus or unclosed HTML comments appear in input (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1578\"\u003e#1578\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix another infinite loop when handling bad comments (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1586\"\u003e#1586\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.10.0\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/blob/master/docs/changelog.md\"\u003emarkdown's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[3.10.1] - 2026-01-21\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure nested elements inside inline comments are properly unescaped (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1571\"\u003e#1571\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eMake the docs build successfully with mkdocstrings-python 2.0 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1575\"\u003e#1575\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix infinite loop when multiple bogus or unclosed HTML comments appear in input (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1578\"\u003e#1578\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix another infinite loop when handling bad comments (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1586\"\u003e#1586\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.10.0] - 2025-11-03\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.9.0] - 2025-09-04\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFootnotes are now ordered by the occurrence of their references in the\ndocument. A new configuration option for the footnotes extension,\n\u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e, has been added to support restoring the previous\nbehavior of ordering footnotes by the occurrence of definitions (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1367\"\u003e#1367\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure inline processing iterates through elements in document order (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1546\"\u003e#1546\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix handling of incomplete HTML tags in code spans in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1547\"\u003e#1547\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.8.2] - 2025-06-19\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003ecodecs\u003c/code\u003e deprecation in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed comment parsing in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed declarations in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed HTML tag \u003ccode\u003e\u0026lt;foo\u003c/code\u003e and Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.8.1] - 2025-06-18\u003c/h2\u003e\n\u003ch3\u003eFixed\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/Python-Markdown/markdown/commit/e5fa5b86e8ec380cbc520cfc637d72c779e5c601\"\u003e\u003ccode\u003ee5fa5b8\u003c/code\u003e\u003c/a\u003e Bump version to 3.10.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/f9253495f5d9919f2fdd5e147832b5fc21330f65\"\u003e\u003ccode\u003ef925349\u003c/code\u003e\u003c/a\u003e More HTML fixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/9933a0a4699f3dea91f46528a2bf54863f531c08\"\u003e\u003ccode\u003e9933a0a\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Allow reference links with backticks\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/07dfa4eb43f7a2ab3181b4f842a960a03a6c1221\"\u003e\u003ccode\u003e07dfa4e\u003c/code\u003e\u003c/a\u003e Allow reference links with backticks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/fb6b27a6ff90980b5bcb0cd51528a7c9dc3a93ca\"\u003e\u003ccode\u003efb6b27a\u003c/code\u003e\u003c/a\u003e Fix infinite loop when text contains multiple unclosed comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/89112c293f7b399ae8808f3a06306f46601e9684\"\u003e\u003ccode\u003e89112c2\u003c/code\u003e\u003c/a\u003e Make the docs build successfully with mkdocstrings-python 2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/961856ceb30623b929d8b7abdf5ed7074db7184c\"\u003e\u003ccode\u003e961856c\u003c/code\u003e\u003c/a\u003e Update link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/2b49115b1002142afbd84b3002f13c0e98a0f487\"\u003e\u003ccode\u003e2b49115\u003c/code\u003e\u003c/a\u003e Ensure nested elements inside inline comments are properly unescaped.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/22e89c1fc346f72218a10e392a0c3b4731912522\"\u003e\u003ccode\u003e22e89c1\u003c/code\u003e\u003c/a\u003e Bump version to 3.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/c138aea5139a6aceae05bb957e866d9ce7577b94\"\u003e\u003ccode\u003ec138aea\u003c/code\u003e\u003c/a\u003e + PY314 - PY39\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Python-Markdown/markdown/compare/3.9.0...3.10.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-macros-plugin` from 1.4.1 to 1.5.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/blob/master/CHANGELOG.md\"\u003emkdocs-macros-plugin's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.5.0, 2025-11-13\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded: For each push, testing on github for versions Python 3.8 to 3.12\u003c/li\u003e\n\u003cli\u003eFixed: bug in import of packages when not in source dir (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/278\"\u003e#278\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/fralau/mkdocs-macros-plugin/commit/0536f4da1dc643e1fa1f0cc90e71512ada67dc04\"\u003e\u003ccode\u003e0536f4d\u003c/code\u003e\u003c/a\u003e Fix type hint for compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/d9a6bc3aac5b12b86f9e2be7af18e1e9178287f6\"\u003e\u003ccode\u003ed9a6bc3\u003c/code\u003e\u003c/a\u003e Require mkdocs-test\u0026gt;=0.6.0 (compatibility with Python 3.8 and 3.9)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/bcaa72db2820d60822ffba15e87c75669abc7b92\"\u003e\u003ccode\u003ebcaa72d\u003c/code\u003e\u003c/a\u003e Make last minute corrections\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/356fc2a5b55d1897a2f2c47856d52b10cff4611c\"\u003e\u003ccode\u003e356fc2a\u003c/code\u003e\u003c/a\u003e Prepare for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/aaf16bdcb9dfcb9c6ea9b6567ea4af7f8c178185\"\u003e\u003ccode\u003eaaf16bd\u003c/code\u003e\u003c/a\u003e Limit testing to 3.10 up (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/279\"\u003e#279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/ba5356c0c263355556aa82dad0fbfde3cce4bc4d\"\u003e\u003ccode\u003eba5356c\u003c/code\u003e\u003c/a\u003e Use proper exit for pytest if Python \u0026lt; 3.10 (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/279\"\u003e#279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/6c796600bc0886696ce9b76b84354d7e2bc1b6fa\"\u003e\u003ccode\u003e6c79660\u003c/code\u003e\u003c/a\u003e Skip test_modules.py if Python version \u0026lt; 3.10 (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/279\"\u003e#279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/cec7440d46589b303d741a5e2df0a240c25b9bdb\"\u003e\u003ccode\u003ecec7440\u003c/code\u003e\u003c/a\u003e Test installation of d2 in a cross-platform way (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/279\"\u003e#279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/492759c5ab3d05f7c55ec62ffdf9573b715ac6ed\"\u003e\u003ccode\u003e492759c\u003c/code\u003e\u003c/a\u003e Update with changes from local repo (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/278\"\u003e#278\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/cc5416834a07ffd2ba1fe3d917a701ac6e9c98ad\"\u003e\u003ccode\u003ecc54168\u003c/code\u003e\u003c/a\u003e Merge branch 'master' of github.com:fralau/mkdocs_macros_plugin\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fralau/mkdocs_macros_plugin/compare/v1.4.1...v1.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-material` from 9.6.23 to 9.7.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/squidfunk/mkdocs-material/releases\"\u003emkdocs-material's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003emkdocs-material-9.7.1\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!WARNING]\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eMaterial for MkDocs is in maintenance mode\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eGoing forward, the Material for MkDocs team focuses on \u003ca href=\"https://zensical.org\"\u003eZensical\u003c/a\u003e, a next-gen static site generator built from first principles. We will provide critical bug fixes and security updates for Material for MkDocs until November 2026.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\"\u003eRead the full announcement on our blog\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated requests to 2.30+ to mitigate CVE in urllib\u003c/li\u003e\n\u003cli\u003eFixed privacy plugin not picking up protocol-relative URLs\u003c/li\u003e\n\u003cli\u003eFixed \u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8542\"\u003e#8542\u003c/a\u003e: false positives and negatives captured in privacy plugin\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003emkdocs-material-9.7.0\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!WARNING]\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eMaterial for MkDocs is now in maintenance mode\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eThis is the last release of Material for MkDocs that will receive new features. Going forward, the Material for MkDocs team focuses on \u003ca href=\"https://zensical.org\"\u003eZensical\u003c/a\u003e, a next-gen static site generator built from first principles. We will provide critical bug fixes and security updates for Material for MkDocs for 12 months at least.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\"\u003eRead the full announcement on our blog\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eThis release includes all features that were previously exclusive to the Insiders edition. These features are now freely available to everyone.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eNote on deprecated plugins\u003c/strong\u003e: The [projects] and [typeset] plugins are included in this release, but must be considered deprecated. Both plugins proved unsustainable to maintain and represent architectural dead ends. They are provided as-is without ongoing support.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eChanges\u003c/strong\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for projects plugin (for compat, now deprecated)\u003c/li\u003e\n\u003cli\u003eAdded support for typeset plugin (for compat, now deprecated)\u003c/li\u003e\n\u003cli\u003eAdded support for pinned blog posts and author profiles\u003c/li\u003e\n\u003cli\u003eAdded support for customizing pagination for blog index pages\u003c/li\u003e\n\u003cli\u003eAdded support for customizing blog category sort order\u003c/li\u003e\n\u003cli\u003eAdded support for staying on page when switching languages\u003c/li\u003e\n\u003cli\u003eAdded support for disabling tags in table of contents\u003c/li\u003e\n\u003cli\u003eAdded support for nested tags and shadow tags\u003c/li\u003e\n\u003cli\u003eAdded support for footnote tooltips\u003c/li\u003e\n\u003cli\u003eAdded support for instant previews\u003c/li\u003e\n\u003cli\u003eAdded support for instant prefetching\u003c/li\u003e\n\u003cli\u003eAdded support for custom social card layouts\u003c/li\u003e\n\u003cli\u003eAdded support for custom social card background images\u003c/li\u003e\n\u003cli\u003eAdded support for selectable rangs in code blocks\u003c/li\u003e\n\u003cli\u003eAdded support for custom selectors for code annotations\u003c/li\u003e\n\u003cli\u003eAdded support for configurable log level in privacy plugin\u003c/li\u003e\n\u003cli\u003eAdded support for processing of external links in privacy plugin\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/squidfunk/mkdocs-material/blob/master/CHANGELOG\"\u003emkdocs-material's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003emkdocs-material-9.7.1 (2025-12-18)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated requests to 2.30+ to mitigate CVE in urllib\u003c/li\u003e\n\u003cli\u003eFixed privacy plugin not picking up protocol-relative URLs\u003c/li\u003e\n\u003cli\u003eFixed \u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8542\"\u003e#8542\u003c/a\u003e: false positives and negatives captured in privacy plugin\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.0 (2025-11-11)\u003c/p\u003e\n\u003cp\u003e⚠️ Material for MkDocs is now in maintenance mode\u003c/p\u003e\n\u003cp\u003eThis is the last release of Material for MkDocs that will receive new features.\nGoing forward, the Material for MkDocs team focuses on Zensical, a next-gen\nstatic site generator built from first principles. We will provide critical\nbug fixes and security updates for Material for MkDocs for 12 months at least.\u003c/p\u003e\n\u003cp\u003eRead the full announcement on our blog:\n\u003ca href=\"https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\"\u003ehttps://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis release includes all features that were previously exclusive to the\nInsiders edition. These features are now freely available to everyone.\u003c/p\u003e\n\u003cp\u003eNote on deprecated plugins: The projects and typeset plugins are included in\nthis release, but must be considered deprecated. Both plugins proved\nunsustainable to maintain and represent architectural dead ends. They are\nprovided as-is without ongoing support.\u003c/p\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for pinned blog posts and author profiles\u003c/li\u003e\n\u003cli\u003eAdded support for customizing pagination for blog index pages\u003c/li\u003e\n\u003cli\u003eAdded support for customizing blog category sort order\u003c/li\u003e\n\u003cli\u003eAdded support for staying on page when switching languages\u003c/li\u003e\n\u003cli\u003eAdded support for disabling tags in table of contents\u003c/li\u003e\n\u003cli\u003eAdded support for nested tags and shadow tags\u003c/li\u003e\n\u003cli\u003eAdded support for footnote tooltips\u003c/li\u003e\n\u003cli\u003eAdded support for instant previews\u003c/li\u003e\n\u003cli\u003eAdded support for instant prefetching\u003c/li\u003e\n\u003cli\u003eAdded support for custom social card layouts\u003c/li\u003e\n\u003cli\u003eAdded support for custom social card background images\u003c/li\u003e\n\u003cli\u003eAdded support for selectable rangs in code blocks\u003c/li\u003e\n\u003cli\u003eAdded support for custom selectors for code annotations\u003c/li\u003e\n\u003cli\u003eAdded support for configurable log level in privacy plugin\u003c/li\u003e\n\u003cli\u003eAdded support for processing of external links in privacy plugin\u003c/li\u003e\n\u003cli\u003eAdded support for automatic image optimization via optimize plugin\u003c/li\u003e\n\u003cli\u003eAdded support for navigation paths (breadcrumbs)\u003c/li\u003e\n\u003cli\u003eFixed \u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8519\"\u003e#8519\u003c/a\u003e: Vector accents do not render when using KaTeX\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.6.23 (2025-11-01)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated Burmese translation\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/squidfunk/mkdocs-material/commit/7e236f6866b73aa080cd4d209752f6440bf67440\"\u003e\u003ccode\u003e7e236f6\u003c/code\u003e\u003c/a\u003e Temporarily disable publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/394149152dc10fc5383c956cd133a665c22fa907\"\u003e\u003ccode\u003e3941491\u003c/code\u003e\u003c/a\u003e Fixed CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/034eaf7b0b7a0a4d2e66179de0dcaded4c923f76\"\u003e\u003ccode\u003e034eaf7\u003c/code\u003e\u003c/a\u003e Prepare 9.7.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/79ba428abebf9b365d4930fb9b147255edd10b88\"\u003e\u003ccode\u003e79ba428\u003c/code\u003e\u003c/a\u003e Fixed privacy plugin not picking up protocol-relative URLs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/61cad249b6eec5727bcf245ca2dea3ef6c98790f\"\u003e\u003ccode\u003e61cad24\u003c/code\u003e\u003c/a\u003e Updated dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/dde13ceb9bb49be3b84bc8c1e59b313250ea8516\"\u003e\u003ccode\u003edde13ce\u003c/code\u003e\u003c/a\u003e Fixed false positives and negatives captured in privacy plugin  (\u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8542\"\u003e#8542\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/291012dcf5aff75a32a6fe9e9a6be4d769da12ac\"\u003e\u003ccode\u003e291012d\u003c/code\u003e\u003c/a\u003e Updated requests to 2.30+ to mitigate CVE in urllib\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/673d8ca986c37ddeabe25c7e7b7299ec644910ed\"\u003e\u003ccode\u003e673d8ca\u003c/code\u003e\u003c/a\u003e Fixed links\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/17227844dce216bf172c9e5de69809765a0b5ab7\"\u003e\u003ccode\u003e1722784\u003c/code\u003e\u003c/a\u003e Documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/aee925f5a0ae3e343ff310e35c667d24eeaff7df\"\u003e\u003ccode\u003eaee925f\u003c/code\u003e\u003c/a\u003e Fixed links\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/squidfunk/mkdocs-material/compare/9.6.23...9.7.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.18.2 to 1.19.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.19.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix noncommutative joins with bounded TypeVars (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20345\"\u003e20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect output format for cached runs by serializing raw errors in cache metas (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20372\"\u003e20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (A5rocks, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20383\"\u003e20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix mypyc generator regression with empty tuple (BobTheBuidler, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20371\"\u003e20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash involving Unpack-ed TypeVarTuple (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20323\"\u003e20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on star import of redefinition (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20333\"\u003e20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on typevar with forward ref used in other module (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20334\"\u003e20334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFail with an explicit error on PyPy (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20389\"\u003e20389\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChainfire\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eDavid Foster\u003c/li\u003e\n\u003cli\u003eFrank Dana\u003c/li\u003e\n\u003cli\u003eGuo Ci\u003c/li\u003e\n\u003cli\u003eiap\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilton-Balfe\u003c/li\u003e\n\u003cli\u003ejhance\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eJukka Lehtosalo\u003c/li\u003e\n\u003cli\u003eKarelKenens\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael Carlstrom\u003c/li\u003e\n\u003cli\u003eMichael J. Sullivan\u003c/li\u003e\n\u003cli\u003ePiotr Sawicki\u003c/li\u003e\n\u003cli\u003eRandolf Scholz\u003c/li\u003e\n\u003cli\u003eShantanu\u003c/li\u003e\n\u003cli\u003eSigve Sebastian Farstad\u003c/li\u003e\n\u003cli\u003esobolevn\u003c/li\u003e\n\u003cli\u003eStanislav Terliakov\u003c/li\u003e\n\u003cli\u003eStephen Morton\u003c/li\u003e\n\u003cli\u003eTheodore Ando\u003c/li\u003e\n\u003cli\u003eThiago J. Barbalho\u003c/li\u003e\n\u003cli\u003ewyattscarpenter\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eI’d also like to thank my employer, Dropbox, for supporting mypy development.\u003c/p\u003e\n\u003ch2\u003eMypy 1.18\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 1.18.1 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type checker for Python. This release includes new features, performance\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/python/mypy/commit/412c19a6bde31e7afa7f41afdf8356664689ae80\"\u003e\u003ccode\u003e412c19a\u003c/code\u003e\u003c/a\u003e Bump version to 1.19.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/20aea0a6ca0710f5427239bdd2fd8e8bf1caf634\"\u003e\u003ccode\u003e20aea0a\u003c/code\u003e\u003c/a\u003e Update changelog for 1.19.1 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20414\"\u003e#20414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2b23b507524bf1bd7513eea6f2a16fb91e072cb6\"\u003e\u003ccode\u003e2b23b50\u003c/code\u003e\u003c/a\u003e Serialize raw errors in cache metas (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20372\"\u003e#20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/f60f90fb8872bf722e32aefd548daaf6d8560e05\"\u003e\u003ccode\u003ef60f90f\u003c/code\u003e\u003c/a\u003e Fail on PyPy in main instead of setup.py (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20389\"\u003e#20389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/58d485b4ea4776e0b9d4045b306cb0818ecc2aa6\"\u003e\u003ccode\u003e58d485b\u003c/code\u003e\u003c/a\u003e Fail with an explicit error on PyPy (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20384\"\u003e#20384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a4b31a26788b70c4a2a19adbafa2bbda43dc2e8b\"\u003e\u003ccode\u003ea4b31a2\u003c/code\u003e\u003c/a\u003e Allow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20383\"\u003e#20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/8a6eff478416cd3ed3931a6ed77ce61c88ab69e9\"\u003e\u003ccode\u003e8a6eff4\u003c/code\u003e\u003c/a\u003e [mypyc] fix generator regression with empty tuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20371\"\u003e#20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/70eceea682c041c0d8e8462dffef9c7bb252e014\"\u003e\u003ccode\u003e70eceea\u003c/code\u003e\u003c/a\u003e Fix noncommutative joins with bounded TypeVars (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20345\"\u003e#20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/3890fc49bf7cc02db04b1e63eb2540aaacdeecc0\"\u003e\u003ccode\u003e3890fc4\u003c/code\u003e\u003c/a\u003e Fix crash involving Unpack-ed TypeVarTuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20323\"\u003e#20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c93d917a86993e06dcc88e508f28f4f5199ce1c8\"\u003e\u003ccode\u003ec93d917\u003c/code\u003e\u003c/a\u003e Fix crash on star import of redefinition (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20333\"\u003e#20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.18.2...v1.19.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `types-markdown` from 3.9.0.20250906 to 3.10.0.20251106\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\nUpdates `nox` from 2025.10.16 to 2025.11.12\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/wntrblm/nox/releases\"\u003enox's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2025.11.12 🦃\u003c/h2\u003e\n\u003cp\u003eThis is a small release to fix a warning when running in script mode before we drop Python 3.8.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid warnings when running in script mode by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1025\"\u003ewntrblm/nox#1025\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003enox --report \u0026lt;file\u0026gt; \u003c/code\u003e should support \u003ccode\u003ePath\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1026\"\u003ewntrblm/nox#1026\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInstall env was typed differently by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1028\"\u003ewntrblm/nox#1028\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003epytest \u003ccode\u003elog_level\u003c/code\u003e is better than \u003ccode\u003elog_cli_level\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1029\"\u003ewntrblm/nox#1029\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse last intel macOS image by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1031\"\u003ewntrblm/nox#1031\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd a few more passing ruff checks by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1030\"\u003ewntrblm/nox#1030\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/wntrblm/nox/blob/main/CHANGELOG.md\"\u003enox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2025.11.12\u003c/h2\u003e\n\u003cp\u003eThis is a small release to fix a warning when running in script mode before we\ndrop Python 3.8.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid warnings when running in script mode by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1025\"\u003ewntrblm/nox#1025\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003enox --report \u0026lt;file\u0026gt; \u003c/code\u003e should support \u003ccode\u003ePath\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1026\"\u003ewntrblm/nox#1026\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInstall env was typed differently by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1028\"\u003ewntrblm/nox#1028\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003epytest \u003ccode\u003elog_level\u003c/code\u003e is better than \u003ccode\u003elog_cli_level\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1029\"\u003ewntrblm/nox#1029\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse last intel macOS image by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1031\"\u003ewntrblm/nox#1031\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd a few more passing ruff checks by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1030\"\u003ewntrblm/nox#1030\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/wntrblm/nox/commit/0eee2e45758dbd06d48ebb23476439f0f00e5cbd\"\u003e\u003ccode\u003e0eee2e4\u003c/code\u003e\u003c/a\u003e chore: prepare for 2025.11.12 (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1032\"\u003e#1032\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/9e9b47eb82f577acb525e1bf4fa238fa3e1ce68a\"\u003e\u003ccode\u003e9e9b47e\u003c/code\u003e\u003c/a\u003e chore: add a few more passing ruff checks (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1030\"\u003e#1030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/5cfea6572e844e3180078d307d9ff49730ca3d8f\"\u003e\u003ccode\u003e5cfea65\u003c/code\u003e\u003c/a\u003e ci: use last intel macOS image (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1031\"\u003e#1031\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/f690869f3a8506282e38f379c488b9a117556b61\"\u003e\u003ccode\u003ef690869\u003c/code\u003e\u003c/a\u003e chore: pytest log_level is better than log_cli_level (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1029\"\u003e#1029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/6d669ae6da36d6bed8df051b37cb0cb49cb9d41e\"\u003e\u003ccode\u003e6d669ae\u003c/code\u003e\u003c/a\u003e fix(typing): install env was typed differently (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1028\"\u003e#1028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/3455f55e7cd9b32cfd781210f6a834a0ebac8de7\"\u003e\u003ccode\u003e3455f55\u003c/code\u003e\u003c/a\u003e fix: avoid warnings when running in script mode (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1025\"\u003e#1025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/b17113dc9f10bcc280201518441f8e8df677a95a\"\u003e\u003ccode\u003eb17113d\u003c/code\u003e\u003c/a\u003e fix: json should support Path (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1026\"\u003e#1026\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/38dea062a14355469fa44170ec64694b2c2d5e7f\"\u003e\u003ccode\u003e38dea06\u003c/code\u003e\u003c/a\u003e chore(deps): bump the actions group with 2 updates (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1020\"\u003e#1020\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/wntrblm/nox/compare/2025.10.16...2025.11.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `hypothesis` from 6.142.5 to 6.151.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/HypothesisWorks/hypothesis/releases\"\u003ehypothesis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eHypothesis for Python - version 6.151.4\u003c/h2\u003e\n\u003cp\u003eThis patch adjusts how we compute the stopping threshold introduced in\nversion 6.151.3, while still maintaining 99% confidence that \u0026lt;1% of\ntest cases pass.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-151-4\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.151.3\u003c/h2\u003e\n\u003cp\u003eThis patch makes Hypothesis more tolerant of slow-to-satisfy\n\u0026quot;assume()\u0026quot; calls. Previously, Hypothesis would give up after\n\u0026quot;max_examples * 10\u0026quot; attempts; now it uses a statistical test to stop\nonly when 99% confident that \u0026lt;1% of examples would pass (issue \u003ca href=\"https://redirect.github.com/HypothesisWorks/hypothesis/issues/4623\"\u003e#4623\u003c/a\u003e).\u003c/p\u003e\n\u003cp\u003eThanks to \u003ca href=\"https://github.com/ajdavis\"\u003e\u003ccode\u003e@​ajdavis\u003c/code\u003e\u003c/a\u003e for this improvement!\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-151-3\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.151.2\u003c/h2\u003e\n\u003cp\u003eFormat our code with the latest version of black.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-151-2\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.151.1\u003c/h2\u003e\n\u003cp\u003eImprove internal categorization of test cases when an alternative\nbackend raises \u0026quot;BackendCannotProceed\u0026quot;.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-151-1\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.151.0\u003c/h2\u003e\n\u003cp\u003eAdd 2025.12 to the list of recognized Array API versions in\n\u0026quot;hypothesis.extra.array_api\u0026quot;.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-151-0\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.150.3\u003c/h2\u003e\n\u003cp\u003eHypothesis now generates powers of 2 more often when using\n\u0026quot;integers()\u0026quot;.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-150-3\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.150.2\u003c/h2\u003e\n\u003cp\u003eUpdate some internal type hints.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-150-2\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.150.1\u003c/h2\u003e\n\u003cp\u003eThis patch fixes a bug where \u0026quot;recursive()\u0026quot; would fail in cases where\nthe \u0026quot;extend=\u0026quot; function does not reference it's argument - which was\nassumed by the recent \u0026quot;min_leaves=\u0026quot; feature, because the strategy\ncan't actually recurse otherwise.  (issue \u003ca href=\"https://redirect.github.com/HypothesisWorks/hypothesis/issues/4638\"\u003e#4638\u003c/a\u003e)\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/fefce87e942c07f67ba37af737cff5450f4e3dc4\"\u003e\u003ccode\u003efefce87\u003c/code\u003e\u003c/a\u003e Bump hypothesis-python version to 6.151.4 and update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/cfb0d374af128daf919268cb0cd2d893ea413eb2\"\u003e\u003ccode\u003ecfb0d37\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/HypothesisWorks/hypothesis/issues/4650\"\u003e#4650\u003c/a\u003e from Liam-DeVoe/stopping-rule\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/e4d7549d464a25cabdcbf9e818ee2b28e1f27f73\"\u003e\u003ccode\u003ee4d7549\u003c/code\u003e\u003c/a\u003e drop long comment\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/a09166c4057e34b7f7f2ac2449cc8da494d6a27e\"\u003e\u003ccode\u003ea09166c\u003c/code\u003e\u003c/a\u003e adjust stopping rule\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/f3d71e9a9f996b4ad9244602234a15b836babac8\"\u003e\u003ccode\u003ef3d71e9\u003c/code\u003e\u003c/a\u003e Bump hypothesis-python version to 6.151.3 and update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/42126d6e2e825338c8d17460589f60a3bd7f88ed\"\u003e\u003ccode\u003e42126d6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/HypothesisWorks/hypothesis/issues/4643\"\u003e#4643\u003c/a\u003e from ajdavis/issue-4623-filter-condition\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/f69cad62125b2aa64fab41d613aa68a2f80495f8\"\u003e\u003ccode\u003ef69cad6\u003c/code\u003e\u003c/a\u003e response to comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/34282ed3c0c2e913d86d2e8f3ff9cef6c4187539\"\u003e\u003ccode\u003e34282ed\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/HypothesisWorks/hypothesis/issues/4649\"\u003e#4649\u003c/a\u003e from Liam-DeVoe/next\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/7de805fa2fae2ae9c334cfcadfb207eac2b50db2\"\u003e\u003ccode\u003e7de805f\u003c/code\u003e\u003c/a\u003e Bump hypothesis-python version to 6.151.2 and update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/559b1c195c469a04e3ebfccafb18883475f4fd3b\"\u003e\u003ccode\u003e559b1c1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/HypothesisWorks/hypothesis/issues/4646\"\u003e#4646\u003c/a\u003e from HypothesisWorks/create-pull-request/patch\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/HypothesisWorks/hypothesis/compare/hypothesis-python-6.142.5...hypothesis-python-6.151.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `setuptools` from 80.9.0 to 80.10.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/setuptools/blob/main/NEWS.rst\"\u003esetuptools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev80.10.2\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate vendored dependencies. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5159\"\u003e#5159\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5115\"\u003e#5115\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5128\"\u003e#5128\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev80.10.1\u003c/h1\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5152\"\u003e#5152\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev80.10.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove post-release tags on setuptools' own build. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4530\"\u003e#4530\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefreshed vendored dependencies. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5139\"\u003e#5139\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5033\"\u003e#5033\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/pypa/setuptools/commit/5cf2d085186f2c8053940076db99045b826ec22a\"\u003e\u003ccode\u003e5cf2d08\u003c/code\u003e\u003c/a\u003e Bump version: 80.10.1 → 80.10.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/852cd5e9fa507c91f5f6683425f157649715d268\"\u003e\u003ccode\u003e852cd5e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5166\"\u003e#5166\u003c/a\u003e from pypa/bugfix/5159-vendor-bin-free\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/11115ee8e5b533c2cd948272b02f339f23b6d20a\"\u003e\u003ccode\u003e11115ee\u003c/code\u003e\u003c/a\u003e Suppress deprecation warning.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/5cf9185dc8f2b3fbf140ebf6558798ccc0ce1077\"\u003e\u003ccode\u003e5cf9185\u003c/code\u003e\u003c/a\u003e Update vendored dependencies.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/cf59f41400c75326d381f2d1989027b229b59a59\"\u003e\u003ccode\u003ecf59f41\u003c/code\u003e\u003c/a\u003e Delete all binaries generated by vendored package install.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/89a598167c614ebaf7da441389bce35534b7cd7f\"\u003e\u003ccode\u003e89a5981\u003c/code\u003e\u003c/a\u003e Add missing newsfragments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/c0114af5484625c25e48cd85429445f9d6a1cfc0\"\u003e\u003ccode\u003ec0114af\u003c/code\u003e\u003c/a\u003e Postpone deprecation warnings related to PEP 639 to 2027-Feb-18 (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5115\"\u003e#5115\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/de076038f164a3629c91e3f2bc88a7b9c4f5312d\"\u003e\u003ccode\u003ede07603\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;[CI] Constraint transient test dependency on pyobjc\u0026quot; (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5128\"\u003e#5128\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/3afd5d66606c092131052e982266b322f0a0dd4b\"\u003e\u003ccode\u003e3afd5d6\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;[CI] Constraint transient test dependency on pyobjc\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/adfb0c9e3d1789587d609228d9ea1d79272e4107\"\u003e\u003ccode\u003eadfb0c9\u003c/code\u003e\u003c/a\u003e Bump version: 80.10.0 → 80.10.1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/setuptools/compare/v80.9.0...v80.10.2\"\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/frequenz-floss/frequenz-quantities-python/pull/113","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/frequenz-floss%2Ffrequenz-quantities-python/issues/113","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/113/packages"}},{"old_version":"75.6.0","new_version":"78.1.0","update_type":"major","path":null,"pr_created_at":"2025-04-01T17:39:13.000Z","version_change":"75.6.0 → 78.1.0","issue":{"uuid":"2964137619","node_id":"PR_kwDOCex-o86Q-JHy","number":114,"state":"closed","title":"Bump the prod-dependencies group with 3 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-06-01T17:45:03.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-04-01T17:39:13.000Z","updated_at":"2025-06-01T17:45:04.000Z","time_to_close":5270750,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"prod-dependencies","update_count":3,"packages":[{"name":"google-cloud-logging","old_version":"3.11.3","new_version":"3.11.4","repository_url":"https://github.com/googleapis/python-logging"},{"name":"pytz","old_version":"2024.2","new_version":"2025.2","repository_url":"https://github.com/stub42/pytz"},{"name":"setuptools","old_version":"75.6.0","new_version":"78.1.0","repository_url":"https://github.com/pypa/setuptools"}],"path":null,"ecosystem":"conda"},"body":"Bumps the prod-dependencies group with 3 updates: [google-cloud-logging](https://github.com/googleapis/python-logging), [pytz](https://github.com/stub42/pytz) and [setuptools](https://github.com/pypa/setuptools).\n\nUpdates `google-cloud-logging` from 3.11.3 to 3.11.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-logging/releases\"\u003egoogle-cloud-logging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.11.4\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-logging/compare/v3.11.3...v3.11.4\"\u003e3.11.4\u003c/a\u003e (2025-01-22)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMade \u003ccode\u003ewrite_entries\u003c/code\u003e raise \u003ccode\u003eValueError\u003c/code\u003e on \u003ccode\u003eParseError\u003c/code\u003es (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/958\"\u003e#958\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-logging/commit/5309478c054d0f2b9301817fd835f2098f51dc3a\"\u003e5309478\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequire proto-plus \u0026gt;= 1.25 for Python 3.13 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/955\"\u003e#955\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-logging/commit/7baed8e968f0bfa6abdbf0715dc43822f2fba8ba\"\u003e7baed8e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequire proto-plus \u0026gt;= 1.25 for Python 3.13 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/955\"\u003e#955\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-logging/commit/002b1fcb395d77d94d7216560c30015b9aefca81\"\u003e002b1fc\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-logging/blob/main/CHANGELOG.md\"\u003egoogle-cloud-logging's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-logging/compare/v3.11.3...v3.11.4\"\u003e3.11.4\u003c/a\u003e (2025-01-22)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMade \u003ccode\u003ewrite_entries\u003c/code\u003e raise \u003ccode\u003eValueError\u003c/code\u003e on \u003ccode\u003eParseError\u003c/code\u003es (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/958\"\u003e#958\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-logging/commit/5309478c054d0f2b9301817fd835f2098f51dc3a\"\u003e5309478\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequire proto-plus \u0026gt;= 1.25 for Python 3.13 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/955\"\u003e#955\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-logging/commit/7baed8e968f0bfa6abdbf0715dc43822f2fba8ba\"\u003e7baed8e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequire proto-plus \u0026gt;= 1.25 for Python 3.13 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/955\"\u003e#955\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-logging/commit/002b1fcb395d77d94d7216560c30015b9aefca81\"\u003e002b1fc\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/c47946fee07f50d8772fd9c5a06224378e461317\"\u003e\u003ccode\u003ec47946f\u003c/code\u003e\u003c/a\u003e chore(main): release 3.11.4 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/956\"\u003e#956\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/5309478c054d0f2b9301817fd835f2098f51dc3a\"\u003e\u003ccode\u003e5309478\u003c/code\u003e\u003c/a\u003e fix: Made \u003ccode\u003ewrite_entries\u003c/code\u003e raise \u003ccode\u003eValueError\u003c/code\u003e on \u003ccode\u003eParseError\u003c/code\u003es (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/958\"\u003e#958\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/dfcce1f5edf941d53d8dcd73072136347bf68047\"\u003e\u003ccode\u003edfcce1f\u003c/code\u003e\u003c/a\u003e chore(python): exclude .github/workflows/unittest.yml in renovate config (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/959\"\u003e#959\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/8c2c5a798aa444ffa71d82a12428fbcd50395a7e\"\u003e\u003ccode\u003e8c2c5a7\u003c/code\u003e\u003c/a\u003e chore(python): update dependencies in .kokoro/docker/docs (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/957\"\u003e#957\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/7baed8e968f0bfa6abdbf0715dc43822f2fba8ba\"\u003e\u003ccode\u003e7baed8e\u003c/code\u003e\u003c/a\u003e fix: require proto-plus \u0026gt;= 1.25 for Python 3.13 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/955\"\u003e#955\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/002b1fcb395d77d94d7216560c30015b9aefca81\"\u003e\u003ccode\u003e002b1fc\u003c/code\u003e\u003c/a\u003e fix: require proto-plus \u0026gt;= 1.25 for Python 3.13 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/955\"\u003e#955\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/439eaa5b2f23b1d7bce4e1d7673134b2a138ee48\"\u003e\u003ccode\u003e439eaa5\u003c/code\u003e\u003c/a\u003e chore(python): update dependencies in .kokoro/docker/docs (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/954\"\u003e#954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/googleapis/python-logging/compare/v3.11.3...v3.11.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytz` from 2024.2 to 2025.2\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stub42/pytz/commit/82e0891730a38fdcf8c9c680af34712d45a97fde\"\u003e\u003ccode\u003e82e0891\u003c/code\u003e\u003c/a\u003e Bump version numbers to 2024.2 (2024b)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stub42/pytz/commit/277b33cd8482780a8e79694d4c2c13033cd121aa\"\u003e\u003ccode\u003e277b33c\u003c/code\u003e\u003c/a\u003e IANA 2025b\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stub42/pytz/commit/07d8e91a76d1ca14a57d77dde7bf157f54a03626\"\u003e\u003ccode\u003e07d8e91\u003c/code\u003e\u003c/a\u003e Squashed 'tz/' changes from a8e2fcd87b..a84610f010\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stub42/pytz/commit/00ad7f15b9d61ec6151255ff00283f79e93dc81e\"\u003e\u003ccode\u003e00ad7f1\u003c/code\u003e\u003c/a\u003e Bump version numbers to 2025.1 / 2025a\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stub42/pytz/commit/7abdc14abd46937b4a3920723f3dd702ba617e61\"\u003e\u003ccode\u003e7abdc14\u003c/code\u003e\u003c/a\u003e Squashed 'tz/' changes from 6903dde39e..5ad5cfba5b\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stub42/pytz/commit/f3a8f382c8c8d0cbd8f500c270886c6adcf6ddd2\"\u003e\u003ccode\u003ef3a8f38\u003c/code\u003e\u003c/a\u003e IANA 2025a\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/stub42/pytz/compare/release_2024.2...release_2025.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `setuptools` from 75.6.0 to 78.1.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/setuptools/blob/main/NEWS.rst\"\u003esetuptools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev78.1.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRestore access to _get_vc_env with a warning. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4874\"\u003e#4874\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev78.0.2\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePostponed removals of deprecated dash-separated and uppercase fields in \u003ccode\u003esetup.cfg\u003c/code\u003e.\nAll packages with deprecated configurations are advised to move before 2026. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4911\"\u003e#4911\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev78.0.1\u003c/h1\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4909\"\u003e#4909\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev78.0.0\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReverted distutils changes that broke the monkey patching of command classes. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4902\"\u003e#4902\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eSetuptools no longer accepts options containing uppercase or dash characters in \u003ccode\u003esetup.cfg\u003c/code\u003e.\nPlease ensure to write the options in \u003ccode\u003esetup.cfg\u003c/code\u003e using the :wiki:\u003ccode\u003elower_snake_case \u0026lt;Snake_case\u0026gt;\u003c/code\u003e convention\n(e.g. \u003ccode\u003eName =\u0026gt; name\u003c/code\u003e, \u003ccode\u003einstall-requires =\u0026gt; install_requires\u003c/code\u003e).\nThis is a follow-up on deprecations introduced in\n\u003ccode\u003ev54.1.0 \u0026lt;https://setuptools.pypa.io/en/latest/history.html#v54-1-0\u0026gt;\u003c/code\u003e_ (see \u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/1608\"\u003e#1608\u003c/a\u003e) and\n\u003ccode\u003ev54.1.1 \u0026lt;https://setuptools.pypa.io/en/latest/history.html#v54-1-1\u0026gt;\u003c/code\u003e_ (see \u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/2592\"\u003e#2592\u003c/a\u003e).\u003c/p\u003e\n\u003cp\u003e.. note::\nThis change \u003cem\u003edoes not affect configurations in\u003c/em\u003e \u003ccode\u003epyproject.toml\u003c/code\u003e\n(which uses the :wiki:\u003ccode\u003elower-kebab-case \u0026lt;Letter_case#Kebab_case\u0026gt;\u003c/code\u003e convention following the precedent set in :pep:\u003ccode\u003e517\u003c/code\u003e/:pep:\u003ccode\u003e518\u003c/code\u003e). (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4870\"\u003e#4870\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/pypa/setuptools/commit/6ead555c5fb29bc57fe6105b1bffc163f56fd558\"\u003e\u003ccode\u003e6ead555\u003c/code\u003e\u003c/a\u003e Bump version: 78.0.2 → 78.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/d37cd9ede4c0b529f4239d0c1e26c2a5996131c4\"\u003e\u003ccode\u003ed37cd9e\u003c/code\u003e\u003c/a\u003e Merge \u003ca href=\"https://github.com/pypa/distutils\"\u003ehttps://github.com/pypa/distutils\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/efa2eb231c82f6630468ad358cfe4b65a013b690\"\u003e\u003ccode\u003eefa2eb2\u003c/code\u003e\u003c/a\u003e Restore access to _get_vc_env with a warning.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/3c88de1c62420c1e0161f48e34af6424ac009aa5\"\u003e\u003ccode\u003e3c88de1\u003c/code\u003e\u003c/a\u003e Bump version: 78.0.1 → 78.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/a219451f7354816fe479cf2b0fd5bc47de0a57ee\"\u003e\u003ccode\u003ea219451\u003c/code\u003e\u003c/a\u003e Revert removals introduced in \u003ccode\u003ev78.0.0\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4911\"\u003e#4911\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/d4326dd6896caa87dbf928610fa160a536b69323\"\u003e\u003ccode\u003ed4326dd\u003c/code\u003e\u003c/a\u003e Allow PyPy to fail on CI.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/92e22dd5765b54e1ce7c9f25c419371e666b15dc\"\u003e\u003ccode\u003e92e22dd\u003c/code\u003e\u003c/a\u003e Manually remove file to try to stop flaky tests on PyPy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/caa48ab040420be2885e9d2a14ce6615bd17f992\"\u003e\u003ccode\u003ecaa48ab\u003c/code\u003e\u003c/a\u003e Add news fragment\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/4e9b8caec323aba5b2b3764ef97018a8b1596a4b\"\u003e\u003ccode\u003e4e9b8ca\u003c/code\u003e\u003c/a\u003e Revert removals introduced in v78.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/5450f57f1cefa44c961fb50fc18e9826c95a5d59\"\u003e\u003ccode\u003e5450f57\u003c/code\u003e\u003c/a\u003e Bump version: 78.0.0 → 78.0.1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/setuptools/compare/v75.6.0...v78.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/therefromhere/sureflap_gcloud/pull/114","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/therefromhere%2Fsureflap_gcloud/issues/114","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/114/packages"}},{"old_version":"69.0.3","new_version":"70.0.0","update_type":"major","path":null,"pr_created_at":"2024-07-15T19:22:41.000Z","version_change":"69.0.3 → 70.0.0","issue":{"uuid":"1970072801","node_id":"PR_kwDOGJylKs51bOzh","number":3,"state":"closed","title":"Bump the pip group across 1 directory with 7 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":"2025-08-31T03:44:47.000Z","author_association":"NONE","state_reason":null,"created_at":"2024-07-15T19:22:41.000Z","updated_at":"2025-08-31T03:44:47.000Z","time_to_close":35540526,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"pip","update_count":7,"packages":[{"name":"tqdm","old_version":"4.66.1","new_version":"4.66.3","repository_url":"https://github.com/tqdm/tqdm"},{"name":"certifi","old_version":"2023.11.17","new_version":"2024.7.4","repository_url":"https://github.com/certifi/python-certifi"},{"name":"requests","old_version":"2.31.0","new_version":"2.32.2","repository_url":"https://github.com/psf/requests"},{"name":"setuptools","old_version":"69.0.3","new_version":"70.0.0","repository_url":"https://github.com/pypa/setuptools"},{"name":"tornado","old_version":"6.4","new_version":"6.4.1","repository_url":"https://github.com/tornadoweb/tornado"},{"name":"urllib3","old_version":"2.1.0","new_version":"2.2.2","repository_url":"https://github.com/urllib3/urllib3"},{"name":"zipp","old_version":"3.17.0","new_version":"3.19.1","repository_url":"https://github.com/jaraco/zipp"}],"path":null,"ecosystem":"conda"},"body":"Bumps the pip group with 7 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [tqdm](https://github.com/tqdm/tqdm) | `4.66.1` | `4.66.3` |\n| [certifi](https://github.com/certifi/python-certifi) | `2023.11.17` | `2024.7.4` |\n| [requests](https://github.com/psf/requests) | `2.31.0` | `2.32.2` |\n| [setuptools](https://github.com/pypa/setuptools) | `69.0.3` | `70.0.0` |\n| [tornado](https://github.com/tornadoweb/tornado) | `6.4` | `6.4.1` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.1.0` | `2.2.2` |\n| [zipp](https://github.com/jaraco/zipp) | `3.17.0` | `3.19.1` |\n\n\nUpdates `tqdm` from 4.66.1 to 4.66.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tqdm/tqdm/releases\"\u003etqdm's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003etqdm v4.66.3 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ecli\u003c/code\u003e: \u003ccode\u003eeval\u003c/code\u003e safety (fixes CVE-2024-34062, GHSA-g7vv-2v7x-gj9p)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.66.2 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epandas\u003c/code\u003e: add \u003ccode\u003eDataFrame.progress_map\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1549\"\u003e#1549\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003enotebook\u003c/code\u003e: fix HTML padding (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1506\"\u003e#1506\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ekeras\u003c/code\u003e: fix resuming training when \u003ccode\u003everbose\u0026gt;=2\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1508\"\u003e#1508\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003eformat_num\u003c/code\u003e negative fractions missing leading zero (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1548\"\u003e#1548\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix Python 3.12 \u003ccode\u003eDeprecationWarning\u003c/code\u003e on \u003ccode\u003eimport\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1519\"\u003e#1519\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003elinting: use f-strings (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1549\"\u003e#1549\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate tests (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1549\"\u003e#1549\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003efix \u003ccode\u003epandas\u003c/code\u003e warnings\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003easv\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/airspeed-velocity/asv/issues/1323\"\u003eairspeed-velocity/asv#1323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix macos \u003ccode\u003enotebook\u003c/code\u003e docstring indentation\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eCI: bump actions (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1549\"\u003e#1549\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/tqdm/tqdm/commit/4e613f84ed2ae029559f539464df83fa91feb316\"\u003e\u003ccode\u003e4e613f8\u003c/code\u003e\u003c/a\u003e Merge pull request from GHSA-g7vv-2v7x-gj9p\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/b53348c73080b4edeb30b4823d1fa0d8d2c06721\"\u003e\u003ccode\u003eb53348c\u003c/code\u003e\u003c/a\u003e cli: eval safety\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/cc372d09dcd5a5eabdc6ed4cf365bdb0be004d44\"\u003e\u003ccode\u003ecc372d0\u003c/code\u003e\u003c/a\u003e bump version, merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1549\"\u003e#1549\u003c/a\u003e from tqdm/devel\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/e9f0c05097dc167031575391d83240d37556f098\"\u003e\u003ccode\u003ee9f0c05\u003c/code\u003e\u003c/a\u003e use PyPI trusted publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/7323d5bcc9b032d525f9d6468a9713f5be9c4174\"\u003e\u003ccode\u003e7323d5b\u003c/code\u003e\u003c/a\u003e slight makefile clean\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/5306125133d76e0f9326d747d29781fefe273c77\"\u003e\u003ccode\u003e5306125\u003c/code\u003e\u003c/a\u003e tests: bump pre-commit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/4a6fd4f690a4add231f4bef601521ed9bee513fb\"\u003e\u003ccode\u003e4a6fd4f\u003c/code\u003e\u003c/a\u003e fix datetime.utcfromtimestamp py3.12 warning (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1519\"\u003e#1519\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/6f13759f4a0e1047a09732e72f6d07e44d3e6855\"\u003e\u003ccode\u003e6f13759\u003c/code\u003e\u003c/a\u003e tests: fix macos notebook indentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/3abcd2ac90ecb01ac7f64071af600f803eab6a21\"\u003e\u003ccode\u003e3abcd2a\u003c/code\u003e\u003c/a\u003e tests: fix asv\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/a4d15c8e2f6c7322c1a1cd1d845927f037281da1\"\u003e\u003ccode\u003ea4d15c8\u003c/code\u003e\u003c/a\u003e tests: fix pandas warnings\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tqdm/tqdm/compare/v4.66.1...v4.66.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2023.11.17 to 2024.7.4\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/bd8153872e9c6fc98f4023df9c2deaffea2fa463\"\u003e\u003ccode\u003ebd81538\u003c/code\u003e\u003c/a\u003e 2024.07.04 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/295\"\u003e#295\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/06a2cbf21f345563dde6c28b60e29d57e9b210b3\"\u003e\u003ccode\u003e06a2cbf\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 6.0.5 to 6.1.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/294\"\u003e#294\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/13bba02b72bac97c432c277158bc04b4d2a6bc23\"\u003e\u003ccode\u003e13bba02\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4.1.6 to 4.1.7 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/293\"\u003e#293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/e8abcd0e62b334c164b95d49fcabdc9ecbca0554\"\u003e\u003ccode\u003ee8abcd0\u003c/code\u003e\u003c/a\u003e Bump pypa/gh-action-pypi-publish from 1.8.14 to 1.9.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/292\"\u003e#292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/124f4adf171e15cd9a91a8b6e0325ecc97be8fe1\"\u003e\u003ccode\u003e124f4ad\u003c/code\u003e\u003c/a\u003e 2024.06.02 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/291\"\u003e#291\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/c2196ce5d6ee675b27755a19948480a7823e2c6a\"\u003e\u003ccode\u003ec2196ce\u003c/code\u003e\u003c/a\u003e --- (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/290\"\u003e#290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/fefdeec7588ff1c05214b85a552afcad5fdb51b2\"\u003e\u003ccode\u003efefdeec\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4.1.4 to 4.1.5 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/3c5fb1560b826a7f83f1f9750173ff766492c9cf\"\u003e\u003ccode\u003e3c5fb15\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4.1.6 to 4.1.7 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/286\"\u003e#286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/4a9569a3eb58db8548536fc16c5c5c7af946a5b1\"\u003e\u003ccode\u003e4a9569a\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4.1.2 to 4.1.4 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/1fc808626a895a916b1e4c2b63abae6c5eafdbe3\"\u003e\u003ccode\u003e1fc8086\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 6.0.4 to 6.0.5 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/288\"\u003e#288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2023.11.17...2024.07.04\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.31.0 to 2.32.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.32.2\u003c/h2\u003e\n\u003ch2\u003e2.32.2 (2024-05-21)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eTo provide a more stable migration for custom HTTPAdapters impacted\nby the CVE changes in 2.32.0, we've renamed \u003ccode\u003e_get_connection\u003c/code\u003e to\na new public API, \u003ccode\u003eget_connection_with_tls_context\u003c/code\u003e. Existing custom\nHTTPAdapters will need to migrate their code to use this new API.\n\u003ccode\u003eget_connection\u003c/code\u003e is considered deprecated in all versions of Requests\u0026gt;=2.32.0.\u003c/p\u003e\n\u003cp\u003eA minimal (2-line) example has been provided in the linked PR to ease\nmigration, but we strongly urge users to evaluate if their custom adapter\nis subject to the same issue described in CVE-2024-35195. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6710\"\u003e#6710\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.32.1\u003c/h2\u003e\n\u003ch2\u003e2.32.1 (2024-05-20)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd missing test certs to the sdist distributed on PyPI.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.32.0\u003c/h2\u003e\n\u003ch2\u003e2.32.0 (2024-05-20)\u003c/h2\u003e\n\u003ch2\u003e🐍 PYCON US 2024 EDITION 🐍\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where setting \u003ccode\u003everify=False\u003c/code\u003e on the first request from a\nSession will cause subsequent requests to the \u003cem\u003esame origin\u003c/em\u003e to also ignore\ncert verification, regardless of the value of \u003ccode\u003everify\u003c/code\u003e.\n(\u003ca href=\"https://github.com/psf/requests/security/advisories/GHSA-9wx4-h78v-vm56\"\u003ehttps://github.com/psf/requests/security/advisories/GHSA-9wx4-h78v-vm56\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003everify=True\u003c/code\u003e now reuses a global SSLContext which should improve\nrequest time variance between first and subsequent requests. It should\nalso minimize certificate load time on Windows systems when using a Python\nversion built with OpenSSL 3.x. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6667\"\u003e#6667\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests now supports optional use of character detection\n(\u003ccode\u003echardet\u003c/code\u003e or \u003ccode\u003echarset_normalizer\u003c/code\u003e) when repackaged or vendored.\nThis enables \u003ccode\u003epip\u003c/code\u003e and other projects to minimize their vendoring\nsurface area. The \u003ccode\u003eResponse.text()\u003c/code\u003e and \u003ccode\u003eapparent_encoding\u003c/code\u003e APIs\nwill default to \u003ccode\u003eutf-8\u003c/code\u003e if neither library is present. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6702\"\u003e#6702\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed bug in length detection where emoji length was incorrectly\ncalculated in the request content-length. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6589\"\u003e#6589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed deserialization bug in JSONDecodeError. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6629\"\u003e#6629\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed bug where an extra leading \u003ccode\u003e/\u003c/code\u003e (path separator) could lead\nurllib3 to unnecessarily reparse the request URI. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6644\"\u003e#6644\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.32.2 (2024-05-21)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eTo provide a more stable migration for custom HTTPAdapters impacted\nby the CVE changes in 2.32.0, we've renamed \u003ccode\u003e_get_connection\u003c/code\u003e to\na new public API, \u003ccode\u003eget_connection_with_tls_context\u003c/code\u003e. Existing custom\nHTTPAdapters will need to migrate their code to use this new API.\n\u003ccode\u003eget_connection\u003c/code\u003e is considered deprecated in all versions of Requests\u0026gt;=2.32.0.\u003c/p\u003e\n\u003cp\u003eA minimal (2-line) example has been provided in the linked PR to ease\nmigration, but we strongly urge users to evaluate if their custom adapter\nis subject to the same issue described in CVE-2024-35195. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6710\"\u003e#6710\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.1 (2024-05-20)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd missing test certs to the sdist distributed on PyPI.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.0 (2024-05-20)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where setting \u003ccode\u003everify=False\u003c/code\u003e on the first request from a\nSession will cause subsequent requests to the \u003cem\u003esame origin\u003c/em\u003e to also ignore\ncert verification, regardless of the value of \u003ccode\u003everify\u003c/code\u003e.\n(\u003ca href=\"https://github.com/psf/requests/security/advisories/GHSA-9wx4-h78v-vm56\"\u003ehttps://github.com/psf/requests/security/advisories/GHSA-9wx4-h78v-vm56\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003everify=True\u003c/code\u003e now reuses a global SSLContext which should improve\nrequest time variance between first and subsequent requests. It should\nalso minimize certificate load time on Windows systems when using a Python\nversion built with OpenSSL 3.x. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6667\"\u003e#6667\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests now supports optional use of character detection\n(\u003ccode\u003echardet\u003c/code\u003e or \u003ccode\u003echarset_normalizer\u003c/code\u003e) when repackaged or vendored.\nThis enables \u003ccode\u003epip\u003c/code\u003e and other projects to minimize their vendoring\nsurface area. The \u003ccode\u003eResponse.text()\u003c/code\u003e and \u003ccode\u003eapparent_encoding\u003c/code\u003e APIs\nwill default to \u003ccode\u003eutf-8\u003c/code\u003e if neither library is present. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6702\"\u003e#6702\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed bug in length detection where emoji length was incorrectly\ncalculated in the request content-length. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6589\"\u003e#6589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed deserialization bug in JSONDecodeError. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6629\"\u003e#6629\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed bug where an extra leading \u003ccode\u003e/\u003c/code\u003e (path separator) could lead\nurllib3 to unnecessarily reparse the request URI. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6644\"\u003e#6644\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/88dce9d854797c05d0ff296b70e0430535ef8aaf\"\u003e\u003ccode\u003e88dce9d\u003c/code\u003e\u003c/a\u003e v2.32.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/c98e4d133ef29c46a9b68cd783087218a8075e05\"\u003e\u003ccode\u003ec98e4d1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psf/requests/issues/6710\"\u003e#6710\u003c/a\u003e from nateprewitt/api_rename\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/92075b330a30b9883f466a43d3f7566ab849f91b\"\u003e\u003ccode\u003e92075b3\u003c/code\u003e\u003c/a\u003e Add deprecation warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/aa1461b68aa73e2f6ec0e78c8853b635c76fd099\"\u003e\u003ccode\u003eaa1461b\u003c/code\u003e\u003c/a\u003e Move _get_connection to get_connection_with_tls_context\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/970e8cec988421bd43da57350723b05c8ce8dc7e\"\u003e\u003ccode\u003e970e8ce\u003c/code\u003e\u003c/a\u003e v2.32.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d6ebc4a2f1f68b7e355fb7e4dd5ffc0845547f9f\"\u003e\u003ccode\u003ed6ebc4a\u003c/code\u003e\u003c/a\u003e v2.32.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/9a40d1277807f0a4f26c9a37eea8ec90faa8aadc\"\u003e\u003ccode\u003e9a40d12\u003c/code\u003e\u003c/a\u003e Avoid reloading root certificates to improve concurrent performance (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6667\"\u003e#6667\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0c030f78d24f29a459dbf39b28b4cc765e2153d7\"\u003e\u003ccode\u003e0c030f7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psf/requests/issues/6702\"\u003e#6702\u003c/a\u003e from nateprewitt/no_char_detection\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/555b870eb19d497ddb67042645420083ec8efb02\"\u003e\u003ccode\u003e555b870\u003c/code\u003e\u003c/a\u003e Allow character detection dependencies to be optional in post-packaging steps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d6dded3f00afcf56a7e866cb0732799045301eb0\"\u003e\u003ccode\u003ed6dded3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psf/requests/issues/6700\"\u003e#6700\u003c/a\u003e from franekmagiera/update-redirect-to-invalid-uri-test\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.31.0...v2.32.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `setuptools` from 69.0.3 to 70.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/setuptools/blob/main/NEWS.rst\"\u003esetuptools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev70.0.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEmit a warning when \u003ccode\u003e[tools.setuptools]\u003c/code\u003e is present in \u003ccode\u003epyproject.toml\u003c/code\u003e and will be ignored. -- by :user:\u003ccode\u003eSnoopJ\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4150\"\u003e#4150\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved \u003ccode\u003eAttributeError\u003c/code\u003e error message if \u003ccode\u003epkg_resources.EntryPoint.require\u003c/code\u003e is called without extras or distribution\nGracefully \u0026quot;do nothing\u0026quot; when trying to activate a \u003ccode\u003epkg_resources.Distribution\u003c/code\u003e with a \u003ccode\u003eNone\u003c/code\u003e location, rather than raising a \u003ccode\u003eTypeError\u003c/code\u003e\n-- by :user:\u003ccode\u003eAvasam\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4262\"\u003e#4262\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTyped the dynamically defined variables from \u003ccode\u003epkg_resources\u003c/code\u003e -- by :user:\u003ccode\u003eAvasam\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4267\"\u003e#4267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eModernized and refactored VCS handling in package_index. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4332\"\u003e#4332\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIn install command, use super to call the superclass methods. Avoids race conditions when monkeypatching from _distutils_system_mod occurs late. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4136\"\u003e#4136\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix finder template for lenient editable installs of implicit nested namespaces\nconstructed by using \u003ccode\u003epackage_dir\u003c/code\u003e to reorganise directory structure. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4278\"\u003e#4278\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix an error with \u003ccode\u003eUnicodeDecodeError\u003c/code\u003e handling in \u003ccode\u003epkg_resources\u003c/code\u003e when trying to read files in UTF-8 with a fallback -- by :user:\u003ccode\u003eAvasam\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4348\"\u003e#4348\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved Documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUses RST substitution to put badges in 1 line. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4312\"\u003e#4312\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFurther adoption of UTF-8 in \u003ccode\u003esetuptools\u003c/code\u003e.\nThis change regards mostly files produced and consumed during the build process\n(e.g. metadata files, script wrappers, automatically updated config files, etc..)\nAlthough precautions were taken to minimize disruptions, some edge cases might\nbe subject to backwards incompatibility.\u003c/p\u003e\n\u003cp\u003eSupport for \u003ccode\u003e\u0026quot;locale\u0026quot;\u003c/code\u003e encoding is now \u003cstrong\u003edeprecated\u003c/strong\u003e. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4309\"\u003e#4309\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove \u003ccode\u003esetuptools.convert_path\u003c/code\u003e after long deprecation period.\nThis function was never defined by \u003ccode\u003esetuptools\u003c/code\u003e itself, but rather a\nside-effect of an import for internal usage. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4322\"\u003e#4322\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove fallback for customisations of \u003ccode\u003edistutils\u003c/code\u003e' \u003ccode\u003ebuild.sub_command\u003c/code\u003e after long\ndeprecated period.\nUsers are advised to import \u003ccode\u003ebuild\u003c/code\u003e directly from \u003ccode\u003esetuptools.command.build\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4322\"\u003e#4322\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved \u003ccode\u003etyping_extensions\u003c/code\u003e from vendored dependencies -- by :user:\u003ccode\u003eAvasam\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4324\"\u003e#4324\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove deprecated \u003ccode\u003esetuptools.dep_util\u003c/code\u003e.\nThe provided alternative is \u003ccode\u003esetuptools.modified\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4360\"\u003e#4360\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/pypa/setuptools/commit/5cbf12a9b63fd37985a4525617b46576b8ac3a7b\"\u003e\u003ccode\u003e5cbf12a\u003c/code\u003e\u003c/a\u003e Workaround for release error in v70\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/9c1bcc3417bd12668123f7e731e241d9e57bfc57\"\u003e\u003ccode\u003e9c1bcc3\u003c/code\u003e\u003c/a\u003e Bump version: 69.5.1 → 70.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/4dc0c31644b458ac43ce6148f6a9dc729a7e78b5\"\u003e\u003ccode\u003e4dc0c31\u003c/code\u003e\u003c/a\u003e Remove deprecated \u003ccode\u003esetuptools.dep_util\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4360\"\u003e#4360\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/6c1ef5748dbd70c8c5423e12680345766ee101d9\"\u003e\u003ccode\u003e6c1ef57\u003c/code\u003e\u003c/a\u003e Remove xfail now that test passes. Ref \u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4371\"\u003e#4371\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/d14fa0162c95450898c11534caf26a0f03553176\"\u003e\u003ccode\u003ed14fa01\u003c/code\u003e\u003c/a\u003e Add all site-packages dirs when creating simulated environment for test_edita...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/6b7f7a18afc90007544092c446dc0cd856d86b17\"\u003e\u003ccode\u003e6b7f7a1\u003c/code\u003e\u003c/a\u003e Prevent \u003ccode\u003ebin\u003c/code\u003e folders to be taken as extern packages when vendoring (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4370\"\u003e#4370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/69141f69f8bf38da34cbea552d6fdaa9c8619c53\"\u003e\u003ccode\u003e69141f6\u003c/code\u003e\u003c/a\u003e Add doctest for vendorised bin folder\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/2a53cc1200ec4b14e08e84be3c042f8983dfb7d7\"\u003e\u003ccode\u003e2a53cc1\u003c/code\u003e\u003c/a\u003e Prevent 'bin' folders to be taken as extern packages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/720862807dea012f3a0e7061880691025f736f11\"\u003e\u003ccode\u003e7208628\u003c/code\u003e\u003c/a\u003e Replace call to deprecated \u003ccode\u003evalidate_pyproject\u003c/code\u003e command (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4363\"\u003e#4363\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/96d681aa405460f724c62c00ca125ae722ad810a\"\u003e\u003ccode\u003e96d681a\u003c/code\u003e\u003c/a\u003e Remove call to deprecated validate_pyproject command\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/setuptools/compare/v69.0.3...v70.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tornado` from 6.4 to 6.4.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tornadoweb/tornado/blob/master/docs/releases.rst\"\u003etornado's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease notes\u003c/h1\u003e\n\u003cp\u003e.. toctree::\n:maxdepth: 2\u003c/p\u003e\n\u003cp\u003ereleases/v6.4.1\nreleases/v6.4.0\nreleases/v6.3.3\nreleases/v6.3.2\nreleases/v6.3.1\nreleases/v6.3.0\nreleases/v6.2.0\nreleases/v6.1.0\nreleases/v6.0.4\nreleases/v6.0.3\nreleases/v6.0.2\nreleases/v6.0.1\nreleases/v6.0.0\nreleases/v5.1.1\nreleases/v5.1.0\nreleases/v5.0.2\nreleases/v5.0.1\nreleases/v5.0.0\nreleases/v4.5.3\nreleases/v4.5.2\nreleases/v4.5.1\nreleases/v4.5.0\nreleases/v4.4.3\nreleases/v4.4.2\nreleases/v4.4.1\nreleases/v4.4.0\nreleases/v4.3.0\nreleases/v4.2.1\nreleases/v4.2.0\nreleases/v4.1.0\nreleases/v4.0.2\nreleases/v4.0.1\nreleases/v4.0.0\nreleases/v3.2.2\nreleases/v3.2.1\nreleases/v3.2.0\nreleases/v3.1.1\nreleases/v3.1.0\nreleases/v3.0.2\nreleases/v3.0.1\nreleases/v3.0.0\nreleases/v2.4.1\nreleases/v2.4.0\nreleases/v2.3.0\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/2a0e1d13b5222dca4388c0ec8a4bb74ea6fa4af2\"\u003e\u003ccode\u003e2a0e1d1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tornadoweb/tornado/issues/3388\"\u003e#3388\u003c/a\u003e from bdarnell/release-641\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/b7af4e8f5ee578b78e1be5ade43fdb1103659a0e\"\u003e\u003ccode\u003eb7af4e8\u003c/code\u003e\u003c/a\u003e Release notes and version bump for version 6.4.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/d65f6e71a77f53a1ff0a0dc55704be13f04eb572\"\u003e\u003ccode\u003ed65f6e7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tornadoweb/tornado/issues/3387\"\u003e#3387\u003c/a\u003e from bdarnell/chunked-parsing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/8d721a877dd5c2bc0693d9c4d3954eb11fbd404b\"\u003e\u003ccode\u003e8d721a8\u003c/code\u003e\u003c/a\u003e httputil: Only strip tabs and spaces from header values\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/7786f09f84c9f3f2012c4cf3878417cb9f053669\"\u003e\u003ccode\u003e7786f09\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tornadoweb/tornado/issues/3386\"\u003e#3386\u003c/a\u003e from bdarnell/curl-crlf\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/fb119c767e9c43e71ea823311b0d53f566d86b73\"\u003e\u003ccode\u003efb119c7\u003c/code\u003e\u003c/a\u003e http1connection: Stricter handling of transfer-encoding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/b0ffc58e02f33f6aa480f008b74495601d988ce1\"\u003e\u003ccode\u003eb0ffc58\u003c/code\u003e\u003c/a\u003e curl_httpclient,http1connection: Prohibit CR and LF in headers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/0efa9a42b4c94ee98549d86992c68227f83efd4e\"\u003e\u003ccode\u003e0efa9a4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tornadoweb/tornado/issues/3385\"\u003e#3385\u003c/a\u003e from bdarnell/update-black\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/2757c6e4874968dd2f74a4d08b450da795de5b6c\"\u003e\u003ccode\u003e2757c6e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tornadoweb/tornado/issues/3384\"\u003e#3384\u003c/a\u003e from tornadoweb/dependabot/pip/requests-2.32.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/291d1b661be273b86792e965ac65f9bced8d4ebe\"\u003e\u003ccode\u003e291d1b6\u003c/code\u003e\u003c/a\u003e *: Update black\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tornadoweb/tornado/compare/v6.4.0...v6.4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `urllib3` from 2.1.0 to 2.2.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/urllib3/urllib3/releases\"\u003eurllib3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.2.2\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support for 2023. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded the \u003ccode\u003eProxy-Authorization\u003c/code\u003e header to the list of headers to strip from requests when redirecting to a different host. As before, different headers can be set via \u003ccode\u003eRetry.remove_headers_on_redirect\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAllowed passing negative integers as \u003ccode\u003eamt\u003c/code\u003e to read methods of \u003ccode\u003ehttp.client.HTTPResponse\u003c/code\u003e as an alternative to \u003ccode\u003eNone\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3122\"\u003e#3122\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed return types representing copying actions to use \u003ccode\u003etyping.Self\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3363\"\u003e#3363\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/urllib3/urllib3/compare/2.2.1...2.2.2\"\u003ehttps://github.com/urllib3/urllib3/compare/2.2.1...2.2.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.2.1\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support for 2023. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed issue where \u003ccode\u003eInsecureRequestWarning\u003c/code\u003e was emitted for HTTPS connections when using Emscripten. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3331\"\u003e#3331\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPConnectionPool.urlopen\u003c/code\u003e to stop automatically casting non-proxy headers to \u003ccode\u003eHTTPHeaderDict\u003c/code\u003e. This change was premature as it did not apply to proxy headers and \u003ccode\u003eHTTPHeaderDict\u003c/code\u003e does not handle byte header values correctly yet. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3343\"\u003e#3343\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eProtocolError\u003c/code\u003e to \u003ccode\u003eInvalidChunkLength\u003c/code\u003e when response terminates before the chunk length is sent. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/2860\"\u003e#2860\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eProtocolError\u003c/code\u003e to be more verbose on incomplete reads with excess content. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3261\"\u003e#3261\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.2.0\u003c/h2\u003e\n\u003ch2\u003e🖥️ urllib3 now works in the browser\u003c/h2\u003e\n\u003cp\u003e:tada: \u003cstrong\u003eThis release adds experimental support for \u003ca href=\"https://urllib3.readthedocs.io/en/stable/reference/contrib/emscripten.html\"\u003eusing urllib3 in the browser with Pyodide\u003c/a\u003e!\u003c/strong\u003e :tada:\u003c/p\u003e\n\u003cp\u003eThanks to Joe Marshall (\u003ca href=\"https://github.com/joemarshall\"\u003e\u003ccode\u003e@​joemarshall\u003c/code\u003e\u003c/a\u003e) for contributing this feature. This change was possible thanks to work done in urllib3 v2.0 to detach our API from \u003ccode\u003ehttp.client\u003c/code\u003e. Please report all bugs to the \u003ca href=\"https://github.com/urllib3/urllib3/issues\"\u003eurllib3 issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support for 2023. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for \u003ca href=\"https://urllib3.readthedocs.io/en/latest/reference/contrib/emscripten.html\"\u003eEmscripten and Pyodide\u003c/a\u003e, including streaming support in cross-origin isolated browser environments where threading is enabled. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/2951\"\u003e#2951\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for \u003ccode\u003eHTTPResponse.read1()\u003c/code\u003e method. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3186\"\u003e#3186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded rudimentary support for HTTP/2. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3284\"\u003e#3284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed issue where requests against urls with trailing dots were failing due to SSL errors\nwhen using proxy. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/2244\"\u003e#2244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPConnection.proxy_is_verified\u003c/code\u003e and \u003ccode\u003eHTTPSConnection.proxy_is_verified\u003c/code\u003e to be always set to a boolean after connecting to a proxy. It could be \u003ccode\u003eNone\u003c/code\u003e in some cases previously. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3130\"\u003e#3130\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/urllib3/urllib3/blob/main/CHANGES.rst\"\u003eurllib3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.2.2 (2024-06-17)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded the \u003ccode\u003eProxy-Authorization\u003c/code\u003e header to the list of headers to strip from requests when redirecting to a different host. As before, different headers can be set via \u003ccode\u003eRetry.remove_headers_on_redirect\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAllowed passing negative integers as \u003ccode\u003eamt\u003c/code\u003e to read methods of \u003ccode\u003ehttp.client.HTTPResponse\u003c/code\u003e as an alternative to \u003ccode\u003eNone\u003c/code\u003e. (\u003ccode\u003e[#3122](https://github.com/urllib3/urllib3/issues/3122) \u0026lt;https://github.com/urllib3/urllib3/issues/3122\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed return types representing copying actions to use \u003ccode\u003etyping.Self\u003c/code\u003e. (\u003ccode\u003e[#3363](https://github.com/urllib3/urllib3/issues/3363) \u0026lt;https://github.com/urllib3/urllib3/issues/3363\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.2.1 (2024-02-16)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFixed issue where \u003ccode\u003eInsecureRequestWarning\u003c/code\u003e was emitted for HTTPS connections when using Emscripten. (\u003ccode\u003e[#3331](https://github.com/urllib3/urllib3/issues/3331) \u0026lt;https://github.com/urllib3/urllib3/issues/3331\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPConnectionPool.urlopen\u003c/code\u003e to stop automatically casting non-proxy headers to \u003ccode\u003eHTTPHeaderDict\u003c/code\u003e. This change was premature as it did not apply to proxy headers and \u003ccode\u003eHTTPHeaderDict\u003c/code\u003e does not handle byte header values correctly yet. (\u003ccode\u003e[#3343](https://github.com/urllib3/urllib3/issues/3343) \u0026lt;https://github.com/urllib3/urllib3/issues/3343\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eInvalidChunkLength\u003c/code\u003e to \u003ccode\u003eProtocolError\u003c/code\u003e when response terminates before the chunk length is sent. (\u003ccode\u003e[#2860](https://github.com/urllib3/urllib3/issues/2860) \u0026lt;https://github.com/urllib3/urllib3/issues/2860\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eProtocolError\u003c/code\u003e to be more verbose on incomplete reads with excess content. (\u003ccode\u003e[#3261](https://github.com/urllib3/urllib3/issues/3261) \u0026lt;https://github.com/urllib3/urllib3/issues/3261\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.2.0 (2024-01-30)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for \u003ccode\u003eEmscripten and Pyodide \u0026lt;https://urllib3.readthedocs.io/en/latest/reference/contrib/emscripten.html\u0026gt;\u003c/code\u003e\u003cstrong\u003e, including streaming support in cross-origin isolated browser environments where threading is enabled. (\u003ccode\u003e[#2951](https://github.com/urllib3/urllib3/issues/2951) \u0026lt;https://github.com/urllib3/urllib3/issues/2951\u0026gt;\u003c/code\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for \u003ccode\u003eHTTPResponse.read1()\u003c/code\u003e method. (\u003ccode\u003e[#3186](https://github.com/urllib3/urllib3/issues/3186) \u0026lt;https://github.com/urllib3/urllib3/issues/3186\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eAdded rudimentary support for HTTP/2. (\u003ccode\u003e[#3284](https://github.com/urllib3/urllib3/issues/3284) \u0026lt;https://github.com/urllib3/urllib3/issues/3284\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed issue where requests against urls with trailing dots were failing due to SSL errors\nwhen using proxy. (\u003ccode\u003e[#2244](https://github.com/urllib3/urllib3/issues/2244) \u0026lt;https://github.com/urllib3/urllib3/issues/2244\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPConnection.proxy_is_verified\u003c/code\u003e and \u003ccode\u003eHTTPSConnection.proxy_is_verified\u003c/code\u003e\nto be always set to a boolean after connecting to a proxy. It could be\n\u003ccode\u003eNone\u003c/code\u003e in some cases previously. (\u003ccode\u003e[#3130](https://github.com/urllib3/urllib3/issues/3130) \u0026lt;https://github.com/urllib3/urllib3/issues/3130\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed an issue where \u003ccode\u003eheaders\u003c/code\u003e passed in a request with \u003ccode\u003ejson=\u003c/code\u003e would be mutated (\u003ccode\u003e[#3203](https://github.com/urllib3/urllib3/issues/3203) \u0026lt;https://github.com/urllib3/urllib3/issues/3203\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPSConnection.is_verified\u003c/code\u003e to be set to \u003ccode\u003eFalse\u003c/code\u003e when connecting\nfrom a HTTPS proxy to an HTTP target. It was set to \u003ccode\u003eTrue\u003c/code\u003e previously. (\u003ccode\u003e[#3267](https://github.com/urllib3/urllib3/issues/3267) \u0026lt;https://github.com/urllib3/urllib3/issues/3267\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed handling of new error message from OpenSSL 3.2.0 when configuring an HTTP proxy as HTTPS (\u003ccode\u003e[#3268](https://github.com/urllib3/urllib3/issues/3268) \u0026lt;https://github.com/urllib3/urllib3/issues/3268\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed TLS 1.3 post-handshake auth when the server certificate validation is disabled (\u003ccode\u003e[#3325](https://github.com/urllib3/urllib3/issues/3325) \u0026lt;https://github.com/urllib3/urllib3/issues/3325\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eNote for downstream distributors: To run integration tests, you now need to run the tests a second\ntime with the \u003ccode\u003e--integration\u003c/code\u003e pytest flag. (\u003ccode\u003e[#3181](https://github.com/urllib3/urllib3/issues/3181) \u0026lt;https://github.com/urllib3/urllib3/issues/3181\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/urllib3/urllib3/commit/27e2a5c5a7ab6a517252cc8dcef3ffa6ffb8f61a\"\u003e\u003ccode\u003e27e2a5c\u003c/code\u003e\u003c/a\u003e Release 2.2.2 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3406\"\u003e#3406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/accff72ecc2f6cf5a76d9570198a93ac7c90270e\"\u003e\u003ccode\u003eaccff72\u003c/code\u003e\u003c/a\u003e Merge pull request from GHSA-34jh-p97f-mpxf\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/34be4a57e59eb7365bcc37d52e9f8271b5b8d0d3\"\u003e\u003ccode\u003e34be4a5\u003c/code\u003e\u003c/a\u003e Pin CFFI to a new release candidate instead of a Git commit (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3398\"\u003e#3398\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/da410581b6b3df73da976b5ce5eb20a4bd030437\"\u003e\u003ccode\u003eda41058\u003c/code\u003e\u003c/a\u003e Bump browser-actions/setup-chrome from 1.6.0 to 1.7.1 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3399\"\u003e#3399\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/b07a669bd970d69847801148286b726f0570b625\"\u003e\u003ccode\u003eb07a669\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 2.13.4 to 3.25.6 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3396\"\u003e#3396\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/b8589ec9f8c4da91511e601b632ac06af7e7c10e\"\u003e\u003ccode\u003eb8589ec\u003c/code\u003e\u003c/a\u003e Measure coverage with v4 of artifact actions (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3394\"\u003e#3394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/f3bdc5585111429e22c81b5fb26c3ec164d98b81\"\u003e\u003ccode\u003ef3bdc55\u003c/code\u003e\u003c/a\u003e Allow triggering CI manually (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3391\"\u003e#3391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/52392654b30183129cf3ec06010306f517d9c146\"\u003e\u003ccode\u003e5239265\u003c/code\u003e\u003c/a\u003e Fix HTTP version in debug log (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3316\"\u003e#3316\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/b34619f94ece0c40e691a5aaf1304953d88089de\"\u003e\u003ccode\u003eb34619f\u003c/code\u003e\u003c/a\u003e Bump actions/checkout to 4.1.4 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3387\"\u003e#3387\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/9961d14de7c920091d42d42ed76d5d479b80064d\"\u003e\u003ccode\u003e9961d14\u003c/code\u003e\u003c/a\u003e Bump browser-actions/setup-chrome from 1.5.0 to 1.6.0 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3386\"\u003e#3386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/urllib3/urllib3/compare/2.1.0...2.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `zipp` from 3.17.0 to 3.19.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jaraco/zipp/blob/main/NEWS.rst\"\u003ezipp's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev3.19.1\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved handling of malformed zip files. (\u003ca href=\"https://redirect.github.com/jaraco/zipp/issues/119\"\u003e#119\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev3.19.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImplement is_symlink. (\u003ca href=\"https://redirect.github.com/jaraco/zipp/issues/117\"\u003e#117\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev3.18.2\u003c/h1\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch1\u003ev3.18.1\u003c/h1\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch1\u003ev3.18.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBypass ZipFile.namelist in glob for better performance. (\u003ca href=\"https://redirect.github.com/jaraco/zipp/issues/106\"\u003e#106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactored glob functionality to support a more generalized solution with support for platform-specific path separators. (\u003ca href=\"https://redirect.github.com/jaraco/zipp/issues/108\"\u003e#108\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd special accounting for pypy when computing the stack level for text encoding warnings. (\u003ca href=\"https://redirect.github.com/jaraco/zipp/issues/114\"\u003e#114\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/jaraco/zipp/commit/6d1cb72aa55e0536f35d2af128994b5a61ca4c1a\"\u003e\u003ccode\u003e6d1cb72\u003c/code\u003e\u003c/a\u003e Finalize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/zipp/commit/fd604bd34f0343472521a36da1fbd22e793e14fd\"\u003e\u003ccode\u003efd604bd\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jaraco/zipp/issues/120\"\u003e#120\u003c/a\u003e from jaraco/bugfix/119-malformed-paths\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/zipp/commit/c18417ed2953e181728a7dac07bff88a2190abf7\"\u003e\u003ccode\u003ec18417e\u003c/code\u003e\u003c/a\u003e Add news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/zipp/commit/58115d2be968644ce71ce6bcc9b79826c82a1806\"\u003e\u003ccode\u003e58115d2\u003c/code\u003e\u003c/a\u003e Employ SanitizedNames in CompleteDirs. Fixes broken test.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/zipp/commit/564fcc10cdbfdaecdb33688e149827465931c9e0\"\u003e\u003ccode\u003e564fcc1\u003c/code\u003e\u003c/a\u003e Add SanitizedNames mixin.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/zipp/commit/79a309fe54dc6b7934fb72e9f31bcb58f2e9f547\"\u003e\u003ccode\u003e79a309f\u003c/code\u003e\u003c/a\u003e Add some assertions about malformed paths.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/zipp/commit/2d015c22348fab46ca765339f55f84fe9d6e8115\"\u003e\u003ccode\u003e2d015c2\u003c/code\u003e\u003c/a\u003e Merge \u003ca href=\"https://github.com/jaraco/skeleton\"\u003ehttps://github.com/jaraco/skeleton\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/zipp/commit/a595a0fad054cd20b69d3e954c99174e3a548938\"\u003e\u003ccode\u003ea595a0f\u003c/code\u003e\u003c/a\u003e Rename extras to align with core metadata spec.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/zipp/commit/608f90a6e74919501577a1312dc5c7d8e1d391d7\"\u003e\u003ccode\u003e608f90a\u003c/code\u003e\u003c/a\u003e Finalize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/zipp/commit/3a22d724acf874111b43f87f7110225122ec3de5\"\u003e\u003ccode\u003e3a22d72\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jaraco/zipp/issues/118\"\u003e#118\u003c/a\u003e from jaraco/feature/is-symlink\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jaraco/zipp/compare/v3.17.0...v3.19.1\"\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\nYou can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/ycechungAI/manim/network/alerts).\n\n\u003c/details\u003e\n\n\u003e **Note**\n\u003e Automatic rebases have been disabled on this pull request as it has been open for over 30 days.\n","html_url":"https://github.com/ycechungAI/manim/pull/3","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ycechungAI%2Fmanim/issues/3","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/3/packages"}}]}